AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.
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.
Exécuter l'inférence de Machine Learning
Cette fonction est disponible pourAWS IoT GreengrassCore v1.6 ou une version ultérieure.
AWS IoT Greengrass vous permet d'exécuter l'inférence de Machine Learning en périphérie sur des données générées localement à l'aide de modèles formés dans le cloud. Vous bénéficiez d'une faible latence et de coûts d'inférence locale réduits, tout en profitant des avantages de la puissance du cloud computing pour les modèles de formation et les traitements complexes.
Pour commencer à exécuter l'inférence locale, consultez Configuration de l'inférence Machine Learning à l'aide d'AWS Management Console.
Fonctionnement de l'inférence de Machine Learning AWS IoT Greengrass
Vous pouvez former vos modèles d'inférence n'importe où, les déployer localement commeressources de Machine Learningdans un groupe Greengrass, puis y accéder à partir des fonctions Lambda Greengrass. Vous pouvez par exemple créer et former des modèles d'apprentissage profond dansSageMaker
Le schéma suivant illustre le flux de travail de l'inférence de Machine Learning AWS IoT Greengrass.
L'inférence de Machine Learning AWS IoT Greengrass simplifie chaque étape du flux de travail de Machine Learning, y compris :
-
La création et le déploiement de prototypes d'infrastructure de Machine Learning.
-
L'accès aux modèles formés dans le cloud et leur déploiement dans les appareils Greengrass principaux.
-
La création d'applications d'inférence pouvant accéder à des accélérateurs matériels (tels que des GPU et des FPGA) en tant que ressources locales.
Ressource de Machine Learning
Les ressources de Machine Learning représentent des modèles d'inférence formés dans le cloud et déployés dans unAWS IoT Greengrassnoyau. Pour déployer des ressources de Machine Learning, commencez par ajouter les ressources à un groupe Greengrass, puis définissez la méthode d'accès des fonctions Lambda à ces ressources. Pendant le déploiement de groupe,AWS IoT Greengrassrécupère les packages de modèles source à partir du cloud et les extrait dans des répertoires à l'intérieur de l'espace de noms d'exécution Lambda. Les fonctions Lambda Greengrass utilisent ensuite les modèles déployés localement pour exécuter l'inférence.
Pour mettre à jour un modèle déployé localement, commencez par mettre à jour le modèle source (dans le cloud) qui correspond à la ressource de Machine Learning, puis déployez le groupe. Pendant le déploiement, AWS IoT Greengrass vérifie si la source a fait l'objet de modifications. Si des modifications sont détectées, AWS IoT Greengrass met à jour le modèle local.
Sources de modèles prises en charge
AWS IoT Greengrassappuis SageMaker et des sources de modèles Amazon S3 pour les ressources de Machine Learning.
Les exigences suivantes s'appliquent aux sources de modèles :
-
Godets S3 qui stockent votre SageMaker et les sources du modèle Amazon S3 ne doivent pas être chiffrées à l'aide de SSE-C. Pour les compartiments qui utilisent le chiffrement côté serveur,AWS IoT GreengrassL'inférence de Machine Learning prend actuellement en charge les options de chiffrement SSE-S3 ou SSE-KMS uniquement. Pour de plus amples informations sur les options de chiffrement côté serveur, veuillez consulter.Protection des données à l'aide d'un chiffrement côté serveurdans leManuel de l'utilisateur Amazon Simple Storage Service.
-
Les noms des compartiments S3 qui stockent votre SageMaker et les sources du modèle Amazon S3 ne doivent pas contenir de points (
.
). Pour de plus amples informations, veuillez consulter la règle d'utilisation des compartiments d'hébergement virtuel avec SSL dansRègles relatives à l'attribution des noms de compartimentsdans leManuel de l'utilisateur Amazon Simple Storage Service. -
Niveau de serviceRégion AWSl'assistance doit être disponible pour les deuxAWS IoT GreengrassetSageMaker. Actuellement,AWS IoT Greengrassappuis SageMaker modèles dans les régions suivantes :
-
US East (Ohio)
-
USA Est (Virginie du Nord)
-
USA Ouest (Oregon)
-
Asie-Pacifique (Mumbai)
-
Asie-Pacifique (Séoul)
-
Asie-Pacifique (Singapour)
-
Asie-Pacifique (Sydney)
-
Asie-Pacifique (Tokyo)
-
Europe (Francfort)
-
Europe (Irlande)
-
Europe (Londres)
-
-
AWS IoT Greengrass doit disposer de l'autorisation
read
pour la source de modèle, comme décrit dans les sections suivantes.
- SageMaker
-
AWS IoT Greengrassprend en charge les modèles enregistrés sous SageMaker tâches d'entraînement. SageMaker est un service de Machine Learning entièrement géré qui vous permet de créer et de former des modèles à l'aide d'algorithmes intégrés ou personnalisés. Pour de plus amples informations, veuillez consulterQu'est-ce que SageMaker ?dans leManuel du développeur SageMaker.
Si vous avez configuré votre SageMaker Environment bycréer un compartimentdont le nom contient
sagemaker
, puisAWS IoT Greengrassdispose d'une autorisation suffisante pour accéder à votre SageMaker tâches d'entraînement. La stratégie géréeAWSGreengrassResourceAccessRolePolicy
autorise l'accès aux compartiments dont le nom contient la chaînesagemaker
. Cette stratégie est attachée au rôle de service Greengrass.Dans le cas contraire, vous devez accorder à AWS IoT Greengrass l'autorisation
read
pour le compartiment dans lequel votre tâche de formation est stockée. Pour ce faire, intégrez la stratégie en ligne suivante dans le rôle de service. Vous pouvez répertorier plusieurs ARN de compartiment.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
my-bucket-name
" ] } ] } - Amazon S3
-
AWS IoT Greengrassprend en charge les modèles stockés dans Amazon S3 sous
tar.gz
ou.zip
fichiers suivants.Pour activerAWS IoT GreengrassPour accéder aux modèles stockés dans des compartiments Amazon S3, vous devez accorderAWS IoT Greengrass
read
autorisation d'accès aux compartiments en effectuantundes éléments suivants :-
Stockez votre modèle dans un compartiment dont le nom contient
greengrass
.La stratégie gérée
AWSGreengrassResourceAccessRolePolicy
autorise l'accès aux compartiments dont le nom contient la chaînegreengrass
. Cette stratégie est attachée au rôle de service Greengrass. -
Intégrez une stratégie en ligne dans le rôle de service Greengrass.
Si le nom de votre compartiment ne contient pas
greengrass
, ajoutez la stratégie en ligne suivante au rôle de service. Vous pouvez répertorier plusieurs ARN de compartiment.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
my-bucket-name
" ] } ] }Pour de plus amples informations, veuillez consulterIntégrer des stratégies en lignedans leIAM User Guide.
-
Prérequis
Les exigences suivantes s'appliquent pour la création et l'utilisation des ressources de Machine Learning :
-
Vous devez utiliserAWS IoT GreengrassCore v1.6 ou une version ultérieure.
-
Les fonctions Lambda définies par l'utilisateur peuvent exécuter
read
ouread and write
opérations sur la ressource. Les autorisations pour d'autres opérations ne sont pas disponibles. Le mode conteneurisation des fonctions Lambda affiliées détermine la façon dont vous définissez les autorisations d'accès. Pour plus d'informations, consultez Accédez aux ressources d'apprentissage automatique à partir des fonctions Lambda. -
Vous devez fournir le chemin d'accès complet de la ressource sur le système d'exploitation de l'appareil principal.
-
Un ID ou un nom de ressource doit comporter 128 caractères au maximum et utiliser le modèle
[a-zA-Z0-9:_-]+
.
Environnements d'exécution et bibliothèques pour l'inférence ML
Vous pouvez utiliser les environnement d'exécution et bibliothèques ML suivants avec AWS IoT Greengrass.
-
Apache MXNet
-
TensorFlow
Ces environnements d’exécution et ces bibliothèques peuvent être installés sur les plateformes NVIDIA Jetson TX2, Intel Atom et Raspberry Pi. Pour obtenir des informations sur le téléchargement, consultez Bibliothèques et environnements d'exécution de machine learning pris en charge. Vous pouvez les installer directement sur votre appareil principal (noyau).
Assurez-vous de lire les informations de compatibilités et les limitations suivantes.
Exécution SageMaker Neo Deep Learning
Vous pouvez utiliser le plugin SageMaker Exécution Neo deep learning pour exécuter des inférences avec des modèles de machine learning optimisés sur votreAWS IoT Greengrassappareils. Ces modèles sont optimisés à l'aide du SageMaker Compilateur Neo Deep Learning pour améliorer les vitesses de prédiction des inférences de Machine Learning. Pour de plus amples informations sur l'optimisation des modèles dans SageMaker, consultez leDocumentation SageMaker Neo.
Note
Actuellement, vous pouvez optimiser des modèles de Machine Learning à l'aide du compilateur Neo Deep Learning dans des régions Amazon Web Services spécifiques uniquement. Cependant, vous pouvez utiliser le moteur d'exécution Neo Deep Learning avec des modèles optimisés dans chaqueRégion AWSoùAWS IoT Greengrasscore est pris en charge. Pour plus d'informations, consultez Configuration de l'inférence Machine Learning optimisée.
Gestion des versions MXNet
Apache MXNet ne garantit actuellement pas une compatibilité ascendante. Par conséquent, les modèles que vous formez à l'aide de versions ultérieures de l'infrastructure peuvent ne pas fonctionner correctement dans des versions antérieures de l'infrastructure. Pour éviter les conflits entre les étapes de formation des modèles et de service des modèles, et fournir une cohérence end-to-end , utilisez la même version du framework MXNet dans les deux étapes.
MXNet sur Raspberry Pi
Les fonctions Lambda Greengrass qui accèdent aux modèles MXNet locaux doivent définir la variable d'environnement suivante :
MXNET_ENGINE_TYPE=NativeEngine
Vous pouvez définir la variable d'environnement dans le code de la fonction ou l'ajouter à la configuration spécifique au groupe de la fonction. Cette étape présente un exemple qui ajoute la variable d'environnement en tant que paramètre de configuration.
Note
Pour une utilisation générale de l'infrastructure MXNet, telle que l'exécution d'un exemple de code tiers, la variable d'environnement doit être configurée sur le Raspberry Pi.
Limitations d'utilisation des modèles TensorFlow sur Raspberry Pi
Les recommandations suivantes visent à améliorer les résultats d'inférence et sont basées sur les tests réalisés avec le TensorFlow bibliothèques Arm 32 bits sur la plateforme Raspberry Pi. Ces recommandations sont destinées aux utilisateurs avancés pour référence uniquement, sans garantie d'aucune sorte.
-
Les modèles formés à l'aide du format Checkpoint
doivent être « bloqués » dans le format tampon du protocole avant d'être utilisés. Pour obtenir un exemple, consultez la bibliothèque du modèle de classification d'images TensorFlow-Slim . -
N'utilisez pas les bibliothèques TF-Estimator et TF-Slim dans le code de formation ou d'inférence. À la place, utilisez le modèle de chargement de fichier
.pb
indiqué dans l'exemple suivant.graph = tf.Graph() graph_def = tf.GraphDef() graph_def.ParseFromString(pb_file.read()) with graph.as_default(): tf.import_graph_def(graph_def)
Note
Pour de plus amples informations sur les plateformes prises en charge pour TensorFlow, veuillez consulter.Installation de TensorFlow