Il s'agit de la troisième partie de notre série dans laquelle nous concevons et mettons en œuvre un pipeline MLOps pour l'inspection visuelle de la qualité en périphérie. Dans cet article, nous nous concentrons sur la façon d'automatiser la partie déploiement périphérique du pipeline MLOps de bout en bout. Nous vous montrons comment utiliser AWS IoT Greengrass pour gérer l'inférence de modèle à la périphérie et comment automatiser le processus à l'aide Fonctions d'étape AWS et d'autres services AWS.
Vue d'ensemble de la solution
In Partie 1 de cette série, nous avons défini une architecture pour notre pipeline MLOps de bout en bout qui automatise l'ensemble du processus d'apprentissage automatique (ML), de l'étiquetage des données à la formation des modèles et au déploiement en périphérie. Dans Partie 2, nous avons montré comment automatiser les parties d'étiquetage et de formation de modèles du pipeline.
L'exemple de cas d'utilisation utilisé pour cette série est une solution d'inspection visuelle de la qualité capable de détecter des défauts sur des étiquettes métalliques, que vous pouvez déployer dans le cadre d'un processus de fabrication. Le diagramme suivant montre l'architecture de haut niveau du pipeline MLOps que nous avons défini au début de cette série. Si vous ne l'avez pas encore lu, nous vous recommandons de le consulter Partie 1.
Automatisation du déploiement Edge d'un modèle ML
Une fois qu'un modèle ML a été formé et évalué, il doit être déployé sur un système de production pour générer de la valeur commerciale en faisant des prédictions sur les données entrantes. Ce processus peut rapidement devenir complexe dans un environnement Edge où les modèles doivent être déployés et exécutés sur des appareils souvent situés loin de l'environnement cloud dans lequel les modèles ont été formés. Voici quelques-uns des défis propres au machine learning à la périphérie :
- Les modèles ML doivent souvent être optimisés en raison des contraintes de ressources sur les appareils Edge
- Les appareils Edge ne peuvent pas être redéployés ni même remplacés comme un serveur dans le cloud. Vous avez donc besoin d'un processus robuste de déploiement de modèles et de gestion des appareils.
- La communication entre les appareils et le cloud doit être efficace et sécurisée, car elle traverse souvent des réseaux à faible bande passante non fiables.
Voyons comment nous pouvons relever ces défis avec les services AWS en plus d'exporter le modèle au format ONNX, ce qui nous permet, par exemple, d'appliquer des optimisations comme la quantification pour réduire la taille du modèle pour les dispositifs de contraintes. ONNX fournit également des temps d'exécution optimisés pour les plates-formes matérielles de périphérie les plus courantes.
Pour décomposer le processus de déploiement en périphérie, nous avons besoin de deux composants :
- Un mécanisme de déploiement pour la livraison du modèle, qui inclut le modèle lui-même et une certaine logique métier pour gérer et interagir avec le modèle
- Un moteur de workflow capable d'orchestrer l'ensemble du processus pour le rendre robuste et reproductible
Dans cet exemple, nous utilisons différents services AWS pour créer notre mécanisme de déploiement automatisé en périphérie, qui intègre tous les composants requis dont nous avons discuté.
Tout d’abord, nous simulons un périphérique Edge. Pour vous faciliter la tâche tout au long du flux de travail de bout en bout, nous utilisons un Cloud de calcul élastique Amazon (Amazon EC2) pour simuler un appareil périphérique en installant le logiciel AWS IoT Greengrass Core sur l'instance. Vous pouvez également utiliser des instances EC2 pour valider les différents composants d'un processus d'assurance qualité avant le déploiement sur un appareil de production Edge réel. AWS IoT Greengrass est un environnement d'exécution et un service cloud open source pour l'Internet des objets (IoT) qui vous aide à créer, déployer et gérer des logiciels d'appareils de périphérie. AWS IoT Greengrass réduit les efforts de création, de déploiement et de gestion des logiciels des appareils de périphérie de manière sécurisée et évolutive. Après avoir installé le logiciel AWS IoT Greengrass Core sur votre appareil, vous pouvez ajouter ou supprimer des fonctionnalités et des composants, et gérer les applications de votre appareil IoT à l'aide d'AWS IoT Greengrass. Il offre de nombreux composants intégrés pour vous faciliter la vie, tels que les composants StreamManager et MQTT Broker, que vous pouvez utiliser pour communiquer en toute sécurité avec le cloud, prenant en charge le cryptage de bout en bout. Vous pouvez utiliser ces fonctionnalités pour télécharger efficacement des résultats d’inférence et des images.
Dans un environnement de production, vous disposez généralement d'une caméra industrielle fournissant des images pour lesquelles le modèle ML doit produire des prédictions. Pour notre configuration, nous simulons cette entrée d'image en téléchargeant un préréglage d'images dans un répertoire spécifique sur le périphérique Edge. Nous utilisons ensuite ces images comme entrée d'inférence pour le modèle.
Nous avons divisé le processus global de déploiement et d'inférence en trois étapes consécutives pour déployer un modèle de ML formé dans le cloud dans un environnement périphérique et l'utiliser pour les prédictions :
- Préparer – Packagez le modèle formé pour le déploiement en périphérie.
- Déployer – Transfert des composants de modèle et d’inférence du cloud vers l’appareil Edge.
- Inférence – Chargez le modèle et exécutez le code d’inférence pour les prédictions d’images.
Le diagramme d'architecture suivant montre les détails de ce processus en trois étapes et comment nous l'avons mis en œuvre avec les services AWS.
Dans les sections suivantes, nous discutons des détails de chaque étape et montrons comment intégrer ce processus dans une orchestration et un flux de travail CI/CD automatisés et reproductibles pour les modèles ML et le code d'inférence correspondant.
Préparer
Les appareils Edge sont souvent dotés de ressources de calcul et de mémoire limitées par rapport à un environnement cloud dans lequel des processeurs et des GPU puissants peuvent exécuter facilement des modèles ML. Différentes techniques d'optimisation de modèle vous permettent d'adapter un modèle à une plate-forme logicielle ou matérielle spécifique afin d'augmenter la vitesse de prédiction sans perdre en précision.
Dans cet exemple, nous avons exporté le modèle entraîné dans le pipeline de formation au format ONNX pour la portabilité, les optimisations possibles, ainsi que les temps d'exécution Edge optimisés, et avons enregistré le modèle dans Registre de modèles Amazon SageMaker. Au cours de cette étape, nous créons un nouveau composant de modèle Greengrass comprenant le dernier modèle enregistré pour un déploiement ultérieur.
Déployer
Un mécanisme de déploiement sécurisé et fiable est essentiel lors du déploiement d’un modèle depuis le cloud vers un appareil périphérique. Étant donné qu'AWS IoT Greengrass intègre déjà un système de déploiement périphérique robuste et sécurisé, nous l'utilisons à des fins de déploiement. Avant d'examiner notre processus de déploiement en détail, faisons un bref récapitulatif du fonctionnement des déploiements AWS IoT Greengrass. Au cœur du système de déploiement AWS IoT Greengrass se trouvent composants électriques , qui définissent les modules logiciels déployés sur un appareil périphérique exécutant AWS IoT Greengrass Core. Il peut s'agir de composants privés que vous créez ou de composants publics fournis par AWS ou le plus large Communauté d'herbe verte. Plusieurs composants peuvent être regroupés dans le cadre d’un déploiement. Une configuration de déploiement définit les composants inclus dans un déploiement et les machines cibles du déploiement. Il peut être défini dans un fichier de configuration de déploiement (JSON) ou via la console AWS IoT Greengrass lors de la création d'un nouveau déploiement.
Nous créons les deux composants Greengrass suivants, qui sont ensuite déployés sur le périphérique périphérique via le processus de déploiement :
- Modèle packagé (composant privé) – Ce composant contient le modèle entraîné et ML au format ONNX.
- Code d'inférence (composant privé) – Outre le modèle ML lui-même, nous devons implémenter une logique d'application pour gérer des tâches telles que la préparation des données, la communication avec le modèle pour l'inférence et le post-traitement des résultats d'inférence. Dans notre exemple, nous avons développé un composant privé basé sur Python pour gérer les tâches suivantes :
- Installez les composants d'exécution requis comme le package Python Ultralytics YOLOv8.
- Au lieu de prendre des images à partir d'un flux en direct d'une caméra, nous simulons cela en chargeant des images préparées à partir d'un répertoire spécifique et en préparant les données d'image en fonction des exigences d'entrée du modèle.
- Effectuez des appels d'inférence sur le modèle chargé avec les données d'image préparées.
- Vérifiez les prédictions et téléchargez les résultats d'inférence dans le cloud.
Si vous souhaitez approfondir le code d'inférence que nous avons construit, reportez-vous au GitHub repo.
Inférence
Le processus d'inférence de modèle sur le périphérique périphérique démarre automatiquement une fois le déploiement des composants susmentionnés terminé. Le composant d'inférence personnalisé exécute périodiquement le modèle ML avec des images provenant d'un répertoire local. Le résultat d'inférence par image renvoyé par le modèle est un tenseur avec le contenu suivant :
- Scores de confiance – Dans quelle mesure le modèle est-il confiant concernant les détections
- Coordonnées de l'objet – Les coordonnées de l'objet scratch (x, y, largeur, hauteur) détectées par le modèle dans l'image
Dans notre cas, le composant d'inférence se charge d'envoyer les résultats d'inférence à une rubrique MQTT spécifique sur AWS IoT où ils peuvent être lus pour un traitement ultérieur. Ces messages peuvent être consultés via le client de test MQTT sur la console AWS IoT pour le débogage. Dans un environnement de production, vous pouvez décider d'avertir automatiquement un autre système qui se charge de retirer les étiquettes métalliques défectueuses de la ligne de production.
Orchestration
Comme vu dans les sections précédentes, plusieurs étapes sont nécessaires pour préparer et déployer un modèle ML, le code d'inférence correspondant et le runtime ou l'agent requis sur un périphérique Edge. Step Functions est un service entièrement géré qui vous permet d'orchestrer ces étapes dédiées et de concevoir le workflow sous la forme d'une machine à états. La nature sans serveur de ce service et les fonctionnalités natives de Step Functions telles que les intégrations d'API de service AWS vous permettent de configurer rapidement ce flux de travail. Les fonctionnalités intégrées telles que les nouvelles tentatives ou la journalisation sont des points importants pour créer des orchestrations robustes. Pour plus de détails concernant la définition de la machine à états elle-même, reportez-vous au GitHub référentiel ou consultez le graphique de la machine d'état sur la console Step Functions après avoir déployé cet exemple dans votre compte.
Déploiement de l'infrastructure et intégration dans CI/CD
Le pipeline CI/CD pour intégrer et construire tous les composants d'infrastructure requis suit le même modèle illustré dans Partie 1 de cette série. Nous utilisons le Kit de développement AWS Cloud (AWS CDK) pour déployer les pipelines requis à partir de AWS CodePipeline.
Apprentissage
Il existe plusieurs façons de créer une architecture pour un système de déploiement périphérique de modèle ML automatisé, robuste et sécurisé, qui dépendent souvent du cas d'utilisation et d'autres exigences. Cependant, voici quelques enseignements que nous aimerions partager avec vous :
- Évaluez à l’avance si les Exigences en matière de ressources de calcul AWS IoT Greengrass s'adapte à votre cas, en particulier avec les appareils à bord contraint.
- Établissez un mécanisme de déploiement qui intègre une étape de vérification des artefacts déployés avant leur exécution sur le périphérique périphérique pour garantir qu'aucune falsification ne s'est produite pendant la transmission.
- Il est recommandé de conserver les composants de déploiement sur AWS IoT Greengrass aussi modulaires et autonomes que possible afin de pouvoir les déployer indépendamment. Par exemple, si vous disposez d'un module de code d'inférence relativement petit mais d'un modèle ML de grande taille, vous ne souhaitez pas toujours les déployer tous les deux si seul le code d'inférence a changé. Ceci est particulièrement important lorsque vous disposez d’une bande passante limitée ou d’une connectivité de périphérique périphérique coûteuse.
Conclusion
Ceci conclut notre série en trois parties sur la création d'un pipeline MLOps de bout en bout pour l'inspection visuelle de la qualité en périphérie. Nous avons examiné les défis supplémentaires liés au déploiement d'un modèle ML à la périphérie, comme le packaging de modèles ou l'orchestration de déploiement complexe. Nous avons mis en œuvre le pipeline de manière entièrement automatisée afin de pouvoir mettre nos modèles en production de manière robuste, sécurisée, reproductible et traçable. N'hésitez pas à utiliser l'architecture et l'implémentation développées dans cette série comme point de départ pour votre prochain projet compatible ML. Si vous avez des questions sur la façon d'architecturer et de construire un tel système pour votre environnement, veuillez nous contacter. Pour d'autres sujets et cas d'utilisation, reportez-vous à notre Machine Learning ainsi que le IdO blogs.
À propos des auteurs
Michael Roth est un architecte de solutions senior chez AWS qui aide les clients du secteur manufacturier en Allemagne à résoudre leurs défis commerciaux grâce à la technologie AWS. Outre son travail et sa famille, il s'intéresse aux voitures de sport et apprécie le café italien.
Jörg Wöhrle est architecte de solutions chez AWS, travaillant avec des clients fabricants en Allemagne. Passionné par l'automatisation, Joerg a travaillé en tant que développeur de logiciels, ingénieur DevOps et ingénieur en fiabilité de site avant AWS. Au-delà du cloud, c'est un coureur ambitieux qui aime passer du temps de qualité avec sa famille. Alors si vous avez un défi DevOps ou si vous souhaitez vous lancer : faites-le-lui savoir.
Johannes Langer est architecte de solutions senior chez AWS, travaillant avec des entreprises clientes en Allemagne. Johannes est passionné par l'application de l'apprentissage automatique pour résoudre de vrais problèmes commerciaux. Dans sa vie personnelle, Johannes aime travailler sur des projets de rénovation domiciliaire et passer du temps dehors avec sa famille.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :possède
- :est
- :où
- $UP
- 150
- 7
- a
- Capable
- A Propos
- Selon
- Compte
- précision
- présenter
- ajouter
- ajout
- Supplémentaire
- avancer
- Après
- à opposer à
- Agent
- Tous
- permettre
- permet
- déjà
- aussi
- toujours
- Amazon
- Amazon EC2
- Amazon Web Services
- ambitieux
- an
- ainsi que le
- Une autre
- tous
- api
- Application
- applications
- Appliquer
- Application
- architecture
- SONT
- AS
- de côté
- At
- automatiser
- Automatisation
- Automates
- automatiquement
- Automation
- et
- AWS
- AWS IoT Greengrass
- RETOUR
- Bande passante
- BE
- car
- devenez
- était
- before
- Début
- outre
- jusqu'à XNUMX fois
- Au-delà
- Big
- blogue
- tous les deux
- plus large
- courtier
- construire
- Développement
- construit
- intégré
- fourni
- la performance des entreprises
- mais
- by
- Appels
- appareil photo
- CAN
- capacités
- les soins
- voitures
- maisons
- cas
- challenge
- globaux
- modifié
- vérifier
- vérification
- client
- le cloud
- code
- Café
- comment
- Commun
- communiquer
- Communication
- par rapport
- complexe
- composant
- composants électriques
- calcul
- confiance
- configuration
- Connectivité
- consécutif
- Console
- contraintes
- contient
- contenu
- Core
- logiciel de base
- Correspondant
- Prix
- engendrent
- La création
- Customiser
- Clients
- données
- Préparation des données
- décider
- dévoué
- profond
- Vous permet de définir
- défini
- Définit
- définition
- livrer
- page de livraison.
- dépendant
- déployer
- déployé
- déployer
- déploiement
- déploiements
- Conception
- détail
- détails
- détecter
- détecté
- développé
- Développeur
- Développement
- dispositif
- Compatibles
- différent
- discuter
- discuté
- divisé
- do
- Ne pas
- down
- deux
- pendant
- chacun
- plus facilement
- même
- Edge
- efficace
- efficacement
- effort
- non plus
- enchâsser
- chiffrement
- end-to-end
- Moteur
- ingénieur
- assurer
- Entreprise
- Tout
- Environment
- notamment
- évalué
- Pourtant, la
- exemple
- famille
- loin
- Mode
- défectueux
- Fonctionnalités:
- ressentir
- few
- Déposez votre dernière attestation
- s'adapter
- Focus
- Abonnement
- suit
- Pour
- formulaire
- le format
- Gratuit
- De
- d’étiquettes électroniques entièrement
- fonctions
- plus
- générer
- Allemagne
- Go
- Bien
- GPU
- graphique
- manipuler
- arrivé
- Matériel
- Vous avez
- la taille
- aide
- ici
- Haute
- de haut niveau
- lui
- sa
- Accueil
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- if
- image
- satellite
- Mettre en oeuvre
- la mise en oeuvre
- mis en œuvre
- important
- amélioration
- in
- inclus
- inclut
- Y compris
- Nouveau
- Améliore
- indépendamment
- industriel
- Infrastructure
- contribution
- installer
- installer
- instance
- intégrer
- Intègre
- l'intégration
- intégrations
- interagir
- intéressé
- Internet
- Internet des objets
- développement
- IOT
- Dispositif IoT
- IT
- italien
- lui-même
- jpg
- json
- juste
- XNUMX éléments à
- ACTIVITES
- Savoir
- l'étiquetage
- Nouveautés
- apprentissage
- laisser
- VIE
- comme
- limité
- Gamme
- le travail
- charge
- chargement
- locales
- situé
- enregistrement
- logique
- Style
- regardé
- pas à perdre
- Lot
- click
- machine learning
- a prendre une
- Fabrication
- gérer
- gérés
- gestion
- fabrication
- mécanisme
- Mémoire
- messages
- Métal
- Michael
- ML
- MLOps
- modèle
- numériques jumeaux (digital twin models)
- application
- Module
- Modules
- PLUS
- (en fait, presque toutes)
- plusieurs
- indigène
- Nature
- Besoin
- Besoins
- Nouveauté
- next
- aucune
- objet
- of
- Offres Speciales
- souvent
- on
- open source
- optimisé
- or
- orchestration
- Autre
- nos
- ande
- l'extérieur
- global
- paquet
- l'emballage
- partie
- les pièces
- passion
- passionné
- Patron de Couture
- /
- personnel
- pipeline
- plateforme
- Plateformes
- Platon
- Intelligence des données Platon
- PlatonDonnées
- veuillez cliquer
- Point
- des notes bonus
- portabilité
- possible
- Post
- solide
- pratique
- prédiction
- Prédictions
- préparation
- Préparer
- préparé
- en train de préparer
- Privé
- d'ouvrabilité
- processus
- traitement
- produire
- Vidéo
- Projet
- projets
- à condition de
- fournit
- public
- des fins
- mettre
- Python
- Questions et réponses
- qualité
- fréquemment posées
- Rapide
- vite.
- Lire
- réal
- résumer
- recommander
- réduire
- réduit
- reportez-vous
- en ce qui concerne
- inscrit
- relativement
- fiabilité
- fiable
- supprimez
- enlever
- répétable
- remplacé
- exigent
- conditions
- Exigences
- ressource
- résultat
- Résultats
- robuste
- Courir
- coureur
- pour le running
- fonctionne
- sagemaker
- même
- évolutive
- gratter
- les sections
- sécurisé
- en toute sécurité
- sur le lien
- vu
- envoi
- supérieur
- Série
- serveur
- Sans serveur
- service
- Services
- set
- mise
- installation
- Partager
- devrait
- montrer
- montré
- Spectacles
- site
- Taille
- petit
- So
- Logiciels
- sur mesure
- Solutions
- RÉSOUDRE
- quelques
- groupe de neurones
- vitesse
- Dépenses
- Sports
- Commencez
- départs
- Région
- étapes
- Étapes
- simple
- courant
- ultérieur
- tel
- Appuyer
- combustion propre
- tacle
- prend
- prise
- Target
- tâches
- techniques
- Technologie
- conditions
- tester
- qui
- La
- L'État
- leur
- Les
- puis
- Ces
- des choses
- this
- ceux
- trois
- trois étapes
- Avec
- fiable
- à
- ensemble
- sujet
- Les sujets
- traçable
- qualifié
- Formation
- transférer
- deux
- typiquement
- expérience unique et authentique
- Téléchargement
- us
- utilisé
- cas d'utilisation
- d'utiliser
- en utilisant
- VALIDER
- Plus-value
- Vérification
- très
- via
- souhaitez
- Façon..
- façons
- we
- web
- services Web
- WELL
- quand
- qui
- la totalité
- largeur
- comprenant
- dans les
- sans
- activités principales
- travaillé
- workflow
- de travail
- pourra
- X
- encore
- Vous n'avez
- Votre
- zéphyrnet