Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Personnalisez vos composants d'apprentissage automatique
DansAWS IoT Greengrass, vous pouvez configurer des exemples de composants d'apprentissage automatique pour personnaliser la manière dont vous effectuez l'inférence d'apprentissage automatique sur vos appareils en utilisant les composants d'inférence, de modèle et d'exécution comme éléments de base. AWS IoT Greengrassvous offre également la possibilité d'utiliser les exemples de composants comme modèles et de créer vos propres composants personnalisés selon vos besoins. Vous pouvez combiner cette approche modulaire pour personnaliser vos composants d'inférence d'apprentissage automatique de la manière suivante :
- Utilisation d'échantillons de composants d'inférence
-
-
Modifiez la configuration des composants d'inférence lorsque vous les déployez.
-
Utilisez un modèle personnalisé avec le composant d'inférence d'exemple en remplaçant l'exemple de composant de magasin de modèles par un composant de modèle personnalisé. Votre modèle personnalisé doit être entraîné en utilisant le même environnement d'exécution que le modèle d'exemple.
-
- Utilisation de composants d'inférence personnalisés
-
-
Utilisez un code d'inférence personnalisé avec les exemples de modèles et d'environnements d'exécution en ajoutant des composants de modèles publics et des composants d'exécution en tant que dépendances des composants d'inférence personnalisés.
-
Créez et ajoutez des composants de modèle personnalisés ou des composants d'exécution en tant que dépendances de composants d'inférence personnalisés. Vous devez utiliser des composants personnalisés si vous souhaitez utiliser un code d'inférence personnalisé ou un environnement d'exécution pour lequel aucun exemple de composant AWS IoT Greengrass n'est fourni.
-
Rubriques
Modifier la configuration d'un composant d'inférence public
Dans la AWS IoT Greengrassconsole
{ "accessControl": { "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }, "PublishResultsOnTopic": "ml/tflite/image-classification", "ImageName": "cat.jpeg", "InferenceInterval": 3600, "ModelResourceKey": { "model": "TensorFlowLite-Mobilenet" } }
Lorsque vous déployez un composant d'inférence public, vous pouvez modifier la configuration par défaut pour personnaliser votre déploiement. Pour plus d'informations sur les paramètres de configuration disponibles pour chaque composant d'inférence public, consultez la rubrique relative au composant dansAWS-composants d'apprentissage automatique fournis.
Cette section décrit comment déployer un composant modifié depuis la AWS IoT Greengrass console. Pour plus d'informations sur le déploiement de composants à l'aide duAWS CLI, consultezCréer des déploiements.
Pour déployer un composant d'inférence publique modifié (console)
-
Connectez-vous à la console AWS IoT Greengrass
. -
Dans le menu de navigation, sélectionnez Composants.
-
Sur la page Composants, sous l'onglet Composants publics, choisissez le composant que vous souhaitez déployer.
-
Sur la page du composant, choisissez Deploy.
-
Dans Ajouter au déploiement, sélectionnez l'une des options suivantes :
-
Pour fusionner ce composant avec un déploiement existant sur votre dispositif cible, choisissez Add to existing deployment (Ajouter à un déploiement existant), puis sélectionnez le déploiement à réviser.
-
Pour créer un nouveau déploiement sur votre dispositif cible, choisissez Create new deployment (Créer un déploiement). S'il existe un déploiement sur votre dispositif et que vous choisissez cette étape, le déploiement existant sera remplacé.
-
-
Sur la page Specify target (Spécifier une cible), procédez comme suit :
-
Sous Deployment information (Informations sur le déploiement), saisissez ou modifiez le nom convivial de votre déploiement.
-
Sous Deployment targets (Cibles de déploiement), sélectionnez une cible pour votre déploiement, puis choisissez Next (Suivant). Vous ne pouvez pas modifier la cible de déploiement si vous révisez un déploiement existant.
-
-
Sur la page Sélectionner les composants, sous Composants publics, vérifiez que le composant d'inférence avec votre configuration modifiée est sélectionné, puis choisissez Next.
-
Sur la page Configurer les composants, procédez comme suit :
-
Sélectionnez le composant d'inférence, puis sélectionnez Configurer le composant.
-
Sous Mise à jour de la configuration, entrez les valeurs de configuration que vous souhaitez mettre à jour. Par exemple, entrez la mise à jour de configuration suivante dans la zone Configuration à fusionner pour modifier l'intervalle d'inférence à 15 secondes, et demandez au composant de rechercher l'image nommée
custom.jpg
dans le/custom-ml-inference/images/
dossier.{ "InferenceInterval": "15", "ImageName": "custom.jpg", "ImageDirectory": "/custom-ml-inference/images/" }
Pour rétablir les valeurs par défaut de l'ensemble de la configuration d'un composant, spécifiez une seule chaîne vide
""
dans le champ Réinitialiser les chemins. -
Choisissez Confirm (Confirmer), puis Next (Suivant).
-
-
Sur la page Configurer les paramètres avancés, conservez les paramètres de configuration par défaut et choisissez Next.
-
Sur la page de révision, choisissez Déployer
Utiliser un modèle personnalisé avec le composant d'inférence d'échantillon
Si vous souhaitez utiliser le composant d'inférence d'exemple avec vos propres modèles d'apprentissage automatique pour un environnement d'exécution AWS IoT Greengrass fournissant un exemple de composant d'exécution, vous devez remplacer les composants du modèle public par des composants qui utilisent ces modèles comme artefacts. À un niveau élevé, vous devez suivre les étapes suivantes pour utiliser un modèle personnalisé avec le composant d'inférence d'échantillon :
-
Créez un composant de modèle qui utilise un modèle personnalisé dans un compartiment S3 comme artefact. Votre modèle personnalisé doit être entraîné en utilisant le même environnement d'exécution que le modèle que vous souhaitez remplacer.
-
Modifiez le paramètre
ModelResourceKey
de configuration dans le composant d'inférence pour utiliser le modèle personnalisé. Pour plus d'informations sur la mise à jour de la configuration du composant d'inférence, voir Modifier la configuration d'un composant d'inférence public
Lorsque vous déployez le composant d'inférenceAWS IoT Greengrass, recherchez la dernière version de ses dépendances. Il remplace le composant du modèle public dépendant si une version personnalisée ultérieure du composant existe dans le même Compte AWS etRégion AWS.
-
Téléchargez votre modèle dans un compartiment S3. Pour plus d'informations sur le téléchargement de vos modèles dans un compartiment S3, consultez la section Utilisation des compartiments Amazon S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Note
Vous devez stocker vos artefacts dans des compartiments S3 situés en même temps Région AWS que Compte AWS les composants. Pour permettre AWS IoT Greengrass l'accès à ces artefacts, le rôle de l'appareil Greengrass doit autoriser l'
s3:GetObject
action. Pour plus d'informations sur le rôle de l'appareil, consultezAutoriser les appareils principaux à interagir avec les AWS services. -
Dans le menu de navigation de la AWS IoT Greengrassconsole
, sélectionnez Composants. -
Récupérez la recette du composant public du model store.
-
Sur la page Composants, sous l'onglet Composants publics, recherchez et choisissez le composant du modèle public pour lequel vous souhaitez créer une nouvelle version. Par exemple,
variant.DLR.ImageClassification.ModelStore
. -
Sur la page du composant, choisissez Afficher la recette et copiez la recette JSON affichée.
-
-
Sur la page Composants, dans l'onglet Mes composants, choisissez Créer un composant.
-
Sur la page Créer un composant, sous Informations sur le composant, sélectionnez Entrer la recette au format JSON comme source de composant.
-
Dans le champ Recette, collez la recette du composant que vous avez précédemment copiée.
-
Dans la recette, mettez à jour les valeurs suivantes :
-
ComponentVersion
: incrémente la version secondaire du composant.Lorsque vous créez un composant personnalisé pour remplacer un composant de modèle public, vous devez uniquement mettre à jour la version secondaire de la version du composant existant. Par exemple, si la version du composant public est
2.1.0
, vous pouvez créer un composant personnalisé avec la version2.1.1
. -
Manifests.Artifacts.Uri
: mettez à jour chaque valeur d'URI en fonction de l'URI Amazon S3 du modèle que vous souhaitez utiliser.
Note
Ne modifiez pas le nom du composant.
-
-
Choisissez Créer un composant.
-
Téléchargez votre modèle dans un compartiment S3. Pour plus d'informations sur le téléchargement de vos modèles dans un compartiment S3, consultez la section Utilisation des compartiments Amazon S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Note
Vous devez stocker vos artefacts dans des compartiments S3 situés en même temps Région AWS que Compte AWS les composants. Pour permettre AWS IoT Greengrass l'accès à ces artefacts, le rôle de l'appareil Greengrass doit autoriser l'
s3:GetObject
action. Pour plus d'informations sur le rôle de l'appareil, consultezAutoriser les appareils principaux à interagir avec les AWS services. -
Exécutez la commande suivante pour récupérer la recette du composant public. Cette commande écrit la recette du composant dans le fichier de sortie que vous fournissez dans votre commande. Convertissez la chaîne codée en base64 récupérée en JSON ou YAML, selon vos besoins.
-
Mettez à jour le nom du fichier de recette en
, où la version du composant est la version cible du nouveau composant. Par exemple,<component-name>
-<component-version>
variant.DLR.ImageClassification.ModelStore-2.1.1.yaml
. -
Dans la recette, mettez à jour les valeurs suivantes :
-
ComponentVersion
: incrémente la version secondaire du composant.Lorsque vous créez un composant personnalisé pour remplacer un composant de modèle public, vous devez uniquement mettre à jour la version secondaire de la version du composant existant. Par exemple, si la version du composant public est
2.1.0
, vous pouvez créer un composant personnalisé avec la version2.1.1
. -
Manifests.Artifacts.Uri
: mettez à jour chaque valeur d'URI en fonction de l'URI Amazon S3 du modèle que vous souhaitez utiliser.
Note
Ne modifiez pas le nom du composant.
-
-
Exécutez la commande suivante pour créer un nouveau composant à l'aide de la recette que vous avez récupérée et modifiée.
aws greengrassv2 create-component-version \ --inline-recipe fileb://
path/to/component/recipe
Note
Cette étape crée le composant dans le AWS IoT Greengrass service dans leAWS Cloud. Vous pouvez utiliser la CLI Greengrass pour développer, tester et déployer votre composant localement avant de le télécharger dans le cloud. Pour plus d’informations, consultez Développer des AWS IoT Greengrass composants.
Pour plus d'informations sur la création de composants, consultezDévelopper des AWS IoT Greengrass composants.
Création de composants d'apprentissage automatique personnalisés
Vous devez créer des composants personnalisés si vous souhaitez utiliser un code d'inférence personnalisé ou un environnement d'exécution pour lequel aucun exemple de composant AWS IoT Greengrass n'est fourni. Vous pouvez utiliser votre code d'inférence personnalisé avec les exemples de modèles et d'environnements d'exécution d'apprentissage automatique AWS fournis, ou vous pouvez développer une solution d'inférence d'apprentissage automatique entièrement personnalisée avec vos propres modèles et environnements d'exécution. Si vos modèles utilisent un environnement d'exécution qui AWS IoT Greengrass fournit un exemple de composant d'exécution, vous pouvez utiliser ce composant d'exécution et vous devez créer des composants personnalisés uniquement pour votre code d'inférence et les modèles que vous souhaitez utiliser.
Rubriques
Récupérez la recette d'un composant public
Vous pouvez utiliser la recette d'un composant d'apprentissage automatique public existant comme modèle pour créer un composant personnalisé. Pour afficher la recette de composant de la dernière version d'un composant public, utilisez la console ou procédez AWS CLI comme suit :
-
Utilisation de la console
-
Sur la page Composants, sous l'onglet Composants publics, recherchez et sélectionnez le composant public.
-
Sur la page du composant, choisissez Afficher la recette.
-
-
Utilisation de AWS CLI
Exécutez la commande suivante pour récupérer la recette du composant variant public. Cette commande écrit la recette du composant dans le fichier de recette JSON ou YAML que vous fournissez dans votre commande.
Remplacez les valeurs de votre commande comme suit :
-
. Le nom de ressource Amazon (ARN) du composant public.<arn>
-
. Format dans lequel vous souhaitez créer le fichier de recette. Les valeurs prises en charge sont<recipe-format>
JSON
etYAML
. -
. Le nom de la recette dans le format<recipe-file>
.<component-name>
-<component-version>
-
Récupérez des exemples d'artefacts de composants
Vous pouvez utiliser les artefacts utilisés par les composants d'apprentissage automatique publics comme modèles pour créer vos artefacts de composants personnalisés, tels que du code d'inférence ou des scripts d'installation d'exécution.
Pour afficher les exemples d'artefacts inclus dans les composants publics d'apprentissage automatique, déployez le composant d'inférence public, puis affichez les artefacts sur votre appareil dans le
dossier.
/packages/artifacts-unarchived//greengrass/v2
component-name
/component-version
/
Charger les artefacts des composants dans un compartiment S3
Avant de créer un composant personnalisé, vous devez télécharger les artefacts du composant dans un compartiment S3 et utiliser les URI S3 dans la recette de votre composant. Par exemple, pour utiliser un code d'inférence personnalisé dans votre composant d'inférence, téléchargez le code dans un compartiment S3. Vous pouvez ensuite utiliser l'URI Amazon S3 de votre code d'inférence comme artefact dans votre composant.
Pour plus d'informations sur le téléchargement de contenu dans un compartiment S3, consultez la section Utilisation des compartiments Amazon S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Note
Vous devez stocker vos artefacts dans des compartiments S3 situés en même temps Région AWS que Compte AWS les composants. Pour permettre AWS IoT Greengrass l'accès à ces artefacts, le rôle de l'appareil Greengrass doit autoriser l's3:GetObject
action. Pour plus d'informations sur le rôle de l'appareil, consultezAutoriser les appareils principaux à interagir avec les AWS
services.
Création de composants personnalisés
Vous pouvez utiliser les artefacts et les recettes que vous avez récupérés pour créer vos composants d'apprentissage automatique personnalisés. Pour obtenir un exemple, consultez Création d'un composant d'inférence personnalisé.
Pour des informations détaillées sur la création et le déploiement de composants sur les appareils Greengrass, reportez-vous Développer des AWS IoT Greengrass composants aux sections et. Déployer AWS IoT Greengrass des composants sur des appareils
Création d'un composant d'inférence personnalisé
Cette section explique comment créer un composant d'inférence personnalisé en utilisant le composant de classification d'images DLR comme modèle.
Rubriques
Téléchargez votre code d'inférence dans un compartiment Amazon S3
Créez votre code d'inférence, puis chargez-le dans un compartiment S3. Pour plus d'informations sur le téléchargement de contenu dans un compartiment S3, consultez la section Utilisation des compartiments Amazon S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Note
Vous devez stocker vos artefacts dans des compartiments S3 situés en même temps Région AWS que Compte AWS les composants. Pour permettre AWS IoT Greengrass l'accès à ces artefacts, le rôle de l'appareil Greengrass doit autoriser l's3:GetObject
action. Pour plus d'informations sur le rôle de l'appareil, consultezAutoriser les appareils principaux à interagir avec les AWS
services.
Créez une recette pour votre composant d'inférence
-
Exécutez la commande suivante pour récupérer la recette du composant de classification d'images DLR. Cette commande écrit la recette du composant dans le fichier de recette JSON ou YAML que vous fournissez dans votre commande.
Remplacez
<recipe-file>par le nom de la recette dans le format
.<component-name>
-<component-version>
-
Dans l'
ComponentDependencies
objet de votre recette, effectuez l'une ou plusieurs des opérations suivantes en fonction du modèle et des composants d'exécution que vous souhaitez utiliser :-
Conservez la dépendance aux composants DLR si vous souhaitez utiliser des modèles compilés par DLR. Vous pouvez également le remplacer par une dépendance à un composant d'exécution personnalisé, comme illustré dans l'exemple suivant.
Composant d'exécution
-
Conservez la dépendance du magasin de modèles de classification des images DLR pour utiliser les modèles ResNet -50 préentraînés qui le AWS fournissent, ou modifiez-la pour utiliser un composant de modèle personnalisé. Lorsque vous incluez une dépendance pour un composant de modèle public, si une version personnalisée ultérieure du composant existe dans le même Compte AWS etRégion AWS, le composant d'inférence utilise ce composant personnalisé. Spécifiez la dépendance entre les composants du modèle, comme indiqué dans les exemples suivants.
Composant du modèle public
Composant de modèle personnalisé
-
-
Dans l'
ComponentConfiguration
objet, ajoutez la configuration par défaut pour ce composant. Vous pouvez modifier cette configuration ultérieurement lorsque vous déployez le composant. L'extrait suivant montre la configuration du composant de classification d'images DLR.Par exemple, si vous utilisez un composant de modèle personnalisé comme dépendance pour votre composant d'inférence personnalisé,
ModelResourceKey
modifiez-le pour fournir les noms des modèles que vous utilisez. -
Dans l'
Manifests
objet, fournissez des informations sur les artefacts et la configuration de ce composant utilisés lorsque le composant est déployé sur différentes plateformes, ainsi que toute autre information requise pour exécuter correctement le composant. L'extrait suivant montre la configuration de l'Manifests
objet pour la plate-forme Linux dans le composant de classification d'images DLR.
Pour obtenir des informations détaillées sur la création de recettes de composants, consultezAWS IoT Greengrass référence de recette de composant.
Création du composant d'inférence
Utilisez la AWS IoT Greengrass console ou le AWS CLI pour créer un composant à l'aide de la recette que vous venez de définir. Après avoir créé le composant, vous pouvez le déployer pour effectuer des inférences sur votre appareil. Pour un exemple de déploiement d'un composant d'inférence, consultezTutoriel : Effectuer une inférence de classification d'images d'échantillons à l'aide TensorFlow de Lite.
-
Connectez-vous à la console AWS IoT Greengrass
. -
Dans le menu de navigation, sélectionnez Composants.
-
Sur la page Composants, dans l'onglet Mes composants, choisissez Créer un composant.
-
Sur la page Créer un composant, sous Informations sur le composant, sélectionnez Entrer la recette en tant que JSON ou Entrer la recette en tant que YAML comme source de composant.
-
Dans le champ Recette, entrez la recette personnalisée que vous avez créée.
-
Cliquez sur Créer un composant.
Exécutez la commande suivante pour créer un nouveau composant personnalisé à l'aide de la recette que vous avez créée.
aws greengrassv2 create-component-version \ --inline-recipe fileb://
path/to/recipe/file
Note
Cette étape crée le composant dans le AWS IoT Greengrass service dans leAWS Cloud. Vous pouvez utiliser la CLI Greengrass pour développer, tester et déployer votre composant localement avant de le télécharger dans le cloud. Pour plus d'informations, consultez Développer des AWS IoT Greengrass composants.