In Partie 1 de cette série, nous avons rédigé une architecture pour un pipeline MLOps de bout en bout pour un cas d'utilisation d'inspection visuelle de la qualité en périphérie. Son architecture est conçue pour automatiser 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. L'accent mis sur les services gérés et sans serveur réduit le besoin d'exploiter l'infrastructure de votre pipeline et vous permet de démarrer rapidement.
Dans cet article, nous approfondissons la façon dont les parties d'étiquetage, de création de modèles et de formation du pipeline sont mises en œuvre. Si vous êtes particulièrement intéressé par l'aspect déploiement périphérique de l'architecture, vous pouvez passer directement à Partie 3. Nous proposons également un accompagnement GitHub repo si vous souhaitez déployer et essayer vous-même.
Vue d'ensemble de la solution
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, qui pourrait être déployée 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 de l'étiquetage des données
L'étiquetage des données est une tâche intrinsèquement laborieuse qui implique des humains (étiqueteurs) pour étiqueter les données. L'étiquetage pour notre cas d'utilisation signifie inspecter une image et dessiner des cadres de délimitation pour chaque défaut visible. Cela peut paraître simple, mais nous devons prendre en compte un certain nombre de choses afin d'automatiser cela :
- Fournir un outil permettant aux étiqueteurs de dessiner des cadres de délimitation
- Gérer une main d'œuvre d'étiqueteuses
- Garantir une bonne qualité d’étiquette
- Gérer et versionner nos données et étiquettes
- Orchestrer l’ensemble du processus
- Intégrez-le dans le système CI/CD
Nous pouvons faire tout cela avec les services AWS. Pour faciliter la labellisation et gérer notre main d'œuvre, nous utilisons Vérité au sol Amazon SageMaker, un service d'étiquetage des données qui vous permet de créer et de gérer vos propres flux de travail et votre propre personnel d'étiquetage des données. Vous pouvez gérer votre propre main-d'œuvre privée d'étiqueteuses ou utiliser la puissance d'étiqueteuses externes via Turc mécanique d'Amazon ou des fournisseurs tiers.
De plus, l'ensemble du processus peut être configuré et géré via le SDK AWS, que nous utilisons pour orchestrer notre flux de travail d'étiquetage dans le cadre de notre pipeline CI/CD.
Les tâches d'étiquetage sont utilisées pour gérer les flux de travail d'étiquetage. SageMaker Ground Truth fournit des modèles prêts à l'emploi pour de nombreux types de tâches d'étiquetage différents, y compris le dessin de cadres de délimitation. Pour plus de détails sur la configuration d'une tâche d'étiquetage pour les tâches de cadre de délimitation, consultez Rationalisation de l'étiquetage des données pour la détection d'objets YOLO dans Amazon SageMaker Ground Truth. Pour notre cas d'utilisation, nous adaptons le modèle de tâche pour les tâches de cadre englobant et utilisez des annotateurs humains fournis par Mechanical Turk pour étiqueter nos images par défaut. La capture d'écran suivante montre ce qu'un étiqueteur voit lorsqu'il travaille sur une image.
Parlons ensuite de la qualité des étiquettes. La qualité de nos étiquettes affectera la qualité de notre modèle ML. Lors de l'automatisation de l'étiquetage des images avec une main-d'œuvre externe comme Mechanical Turk, il est difficile de garantir une qualité d'étiquette bonne et cohérente en raison du manque d'expertise dans le domaine. Parfois, une main-d’œuvre privée composée d’experts du domaine est nécessaire. Cependant, dans notre exemple de solution, nous utilisons Mechanical Turk pour mettre en œuvre un étiquetage automatisé de nos images.
Il existe de nombreuses façons de garantir une bonne qualité d’étiquette. Pour plus d'informations sur les bonnes pratiques, reportez-vous à la présentation AWS re:Invent 2019, Créez des ensembles de données de formation précis avec Amazon SageMaker Ground Truth. Dans le cadre de cet exemple de solution, nous avons décidé de nous concentrer sur les éléments suivants :
Enfin, nous devons réfléchir à la manière de stocker nos étiquettes afin qu'elles puissent être réutilisées ultérieurement pour la formation et permettre la traçabilité des données de formation du modèle utilisées. Le sortie d'une tâche d'étiquetage SageMaker Ground Truth est un fichier au format JSON-lines contenant les étiquettes et les métadonnées supplémentaires. Nous avons décidé d'utiliser le magasin hors ligne of Magasin de fonctionnalités Amazon SageMaker pour stocker nos étiquettes. Par rapport au simple stockage des étiquettes Service de stockage simple Amazon (Amazon S3), il nous offre quelques avantages distincts :
- Il stocke un historique complet des valeurs des fonctionnalités, combiné à des requêtes ponctuelles. Cela nous permet de versionner facilement notre ensemble de données et d’assurer la traçabilité.
- En tant que magasin central de fonctionnalités, il favorise la réutilisabilité et la visibilité de nos données.
Pour une introduction à SageMaker Feature Store, reportez-vous à Premiers pas avec Amazon SageMaker Feature Store. SageMaker Feature Store prend en charge le stockage des fonctionnalités au format tabulaire. Dans notre exemple, nous stockons les caractéristiques suivantes pour chaque image étiquetée :
- L'emplacement où l'image est stockée sur Amazon S3
- Dimensions de l'image
- Les coordonnées du cadre de délimitation et les valeurs de classe
- Un indicateur d'état indiquant si l'étiquette a été approuvée pour une utilisation dans le cadre de la formation
- Le nom du travail d'étiquetage utilisé pour créer l'étiquette
La capture d'écran suivante montre à quoi pourrait ressembler une entrée typique dans le magasin de fonctionnalités.
Avec ce format, nous pouvons facilement interroger le magasin de fonctionnalités et travailler avec des outils familiers tels que Pandas pour construire un ensemble de données à utiliser ultérieurement pour la formation.
Orchestrer l’étiquetage des données
Enfin, il est temps d'automatiser et d'orchestrer chacune des étapes de notre pipeline d'étiquetage ! Pour cela nous utilisons Fonctions d'étape AWS, un service de flux de travail sans serveur qui nous fournit des intégrations d'API pour orchestrer et visualiser rapidement les étapes de notre flux de travail. Nous utilisons également un ensemble de AWS Lambda fonctionne pour certaines des étapes les plus complexes, en particulier les suivantes :
- Vérifiez s'il existe de nouvelles images nécessitant un étiquetage dans Amazon S3
- Préparez les données dans le format d'entrée requis et démarrez le travail d'étiquetage
- Préparez les données dans le format d'entrée requis et démarrez le travail de vérification des étiquettes
- Écrivez le jeu final d'étiquettes dans le magasin de fonctionnalités
La figure suivante montre à quoi ressemble la machine à états d'étiquetage complète de Step Functions.
Etiquetage : Déploiement d’infrastructure et intégration en CI/CD
La dernière étape consiste à intégrer le flux de travail Step Functions dans notre système CI/CD et à garantir que nous déployons l'infrastructure requise. Pour accomplir cette tâche, nous utilisons le Kit de développement AWS Cloud (AWS CDK) pour créer toute l'infrastructure requise, comme les fonctions Lambda et le workflow Step Functions. Avec Conduites CDK, un module d'AWS CDK, nous créons un pipeline dans AWS CodePipeline qui déploie les modifications de notre infrastructure et déclenche un pipeline supplémentaire pour démarrer le flux de travail Step Functions. Le Intégration des fonctions Step dans CodePipeline rend cette tâche très simple. Nous utilisons Amazon Event Bridge et les actions CodePipeline Source pour garantir que le pipeline est déclenché selon un calendrier ainsi que lorsque les modifications sont transmises à git.
Le diagramme suivant montre en détail à quoi ressemble l'architecture CI/CD pour l'étiquetage.
Récapitulatif de l'automatisation de l'étiquetage des données
Nous disposons désormais d'un pipeline fonctionnel pour créer automatiquement des étiquettes à partir d'images non étiquetées d'étiquettes métalliques à l'aide de SageMaker Ground Truth. Les images sont récupérées depuis Amazon S3 et introduites dans une tâche d'étiquetage SageMaker Ground Truth. Une fois les images étiquetées, nous effectuons un contrôle de qualité à l’aide d’un travail de vérification d’étiquette. Enfin, les étiquettes sont stockées dans un groupe de fonctionnalités dans SageMaker Feature Store. Si vous souhaitez essayer l'exemple fonctionnel vous-même, consultez le document ci-joint. GitHub référentiel. Voyons ensuite comment automatiser la création de modèles !
Automatisation de la création de modèles
Semblable à l’étiquetage, examinons en profondeur notre pipeline de création de modèles. Au minimum, nous devons orchestrer les étapes suivantes :
- Extrayez les dernières fonctionnalités du magasin de fonctionnalités
- Préparer les données pour la formation du modèle
- Former le modèle
- Évaluer les performances du modèle
- Versionner et stocker le modèle
- Approuver le modèle pour le déploiement si les performances sont acceptables
Le processus de création de modèle est généralement piloté par un data scientist et est le résultat d'un ensemble d'expériences réalisées à l'aide de notebooks ou de code Python. Nous pouvons suivre un processus simple en trois étapes pour convertir une expérience en un pipeline MLOps entièrement automatisé :
- Convertissez le code de prétraitement, de formation et d'évaluation existant en scripts de ligne de commande.
- Créez une définition de pipeline SageMaker pour orchestrer la création de modèles. Utilisez les scripts créés à la première étape dans le cadre des étapes de traitement et de formation.
- Intégrez le pipeline dans votre flux de travail CI/CD.
Ce processus en trois étapes est générique et peut être utilisé pour n'importe quelle architecture de modèle et framework ML de votre choix. Suivons-le et commençons par l'étape 1 pour créer les scripts suivants :
- préprocessus.py – Cela extrait les images étiquetées de SageMaker Feature Store, divise l'ensemble de données et le transforme dans le format requis pour entraîner notre modèle, dans notre cas, le format d'entrée pour YOLOv8.
- train.py – Cela forme un Modèle de détection d'objets Ultralytics YOLOv8 utiliser PyTorch pour détecter les rayures sur les images d'étiquettes métalliques
Orchestrer la création de modèles
À l'étape 2, nous regroupons ces scripts dans des tâches de formation et de traitement et définissons le pipeline SageMaker final, qui ressemble à la figure suivante.
Il comprend les étapes suivantes:
- Un ProcessingStep pour charger les dernières fonctionnalités de SageMaker Feature Store ; diviser l'ensemble de données en ensembles de formation, de validation et de test ; et stockez les ensembles de données sous forme d'archives tar pour la formation.
- Un TrainingStep pour entraîner le modèle à l’aide des ensembles de données de formation, de validation et de test et exporter la métrique de précision moyenne (mAP) du modèle.
- Un ConditionStep pour évaluer si la valeur de la métrique mAP du modèle entraîné est supérieure à un seuil configuré. Si tel est le cas, une étape RegisterModel est exécutée pour enregistrer le modèle entraîné dans le registre de modèles SageMaker.
Si vous êtes intéressé par le code détaillé du pipeline, consultez la définition du pipeline dans notre référentiel d'échantillons.
Formation : Déploiement d'infrastructure et intégration en CI/CD
Il est maintenant temps de passer à l'étape 3 : l'intégration dans le flux de travail CI/CD. Notre pipeline CI/CD suit le même modèle illustré dans la section d'étiquetage précédente. Nous utilisons AWS CDK pour déployer les pipelines requis à partir de CodePipeline. La seule différence est que nous utilisons Pipelines Amazon SageMaker au lieu de Step Functions. La définition du pipeline SageMaker est construite et déclenchée dans le cadre d'une action CodeBuild dans CodePipeline.
Conclusion
Nous disposons désormais d'un flux de travail d'étiquetage et de formation de modèles entièrement automatisé à l'aide de SageMaker. Nous avons commencé par créer des scripts de ligne de commande à partir du code expérimental. Ensuite, nous avons utilisé SageMaker Pipelines pour orchestrer chacune des étapes du flux de travail de formation des modèles. Les scripts de ligne de commande ont été intégrés dans le cadre des étapes de formation et de traitement. À la fin du pipeline, le modèle formé est versionné et enregistré dans le registre des modèles SageMaker.
Vérifier Partie 3 de cette série, où nous examinerons de plus près la dernière étape de notre flux de travail MLOps. Nous allons créer le pipeline qui compile et déploie le modèle sur un appareil périphérique à l'aide de AWS IoT Greengrass!
À 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-2/
- :possède
- :est
- :où
- $UP
- 1
- 150
- 2019
- 7
- a
- A Propos
- au dessus de
- accomplir
- Avec cette connaissance vient le pouvoir de prendre
- Action
- actes
- adapter
- Supplémentaire
- avantages
- affecter
- Après
- devant
- Tous
- permettre
- permet
- aussi
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- ambitieux
- an
- et de
- tous
- api
- Application
- ,
- architecture
- SONT
- AS
- d'aspect
- At
- automatiser
- Automatisation
- automatiquement
- automatiser
- Automation
- moyen
- AWS
- AWS re: Invent
- BE
- était
- before
- Début
- outre
- LES MEILLEURS
- les meilleures pratiques
- Au-delà
- Box
- boîtes
- construire
- Développement
- Pack de blanchiment
- la performance des entreprises
- mais
- by
- CAN
- les soins
- voitures
- maisons
- central
- challenge
- globaux
- difficile
- Modifications
- vérifier
- vérification
- le choix
- classe
- plus
- le cloud
- code
- Café
- combiné
- par rapport
- complet
- complexe
- configurée
- cohérent
- consiste
- construire
- convertir
- pourriez
- engendrent
- créée
- La création
- Clients
- données
- Data Scientist
- ensembles de données
- décidé
- profond
- Réglage par défaut
- Vous permet de définir
- défini
- définition
- delve
- déployer
- déployé
- déploiement
- déploie
- détail
- détaillé
- détails
- détecter
- Détection
- Développeur
- Développement
- dispositif
- différence
- différent
- distinct
- do
- domaine
- fait
- rédigé
- dessiner
- dessin
- entraîné
- deux
- chacun
- même
- Easy
- Edge
- permettre
- fin
- end-to-end
- ingénieur
- assurer
- Entreprise
- Tout
- entrée
- évaluer
- évaluation
- exemple
- existant
- expérience
- expériences
- nous a permis de concevoir
- de santé
- Exporter
- externe
- faciliter
- familier
- famille
- Fonctionnalité
- Fonctionnalités:
- Fed
- few
- Figure
- Déposez votre dernière attestation
- finale
- finalement
- Focus
- suivre
- Abonnement
- suit
- Pour
- le format
- Framework
- De
- plein
- d’étiquettes électroniques entièrement
- fonctions
- Allemagne
- obtenez
- Git
- Go
- Bien
- Sol
- Réservation de groupe
- Vous avez
- de haut niveau
- lui
- sa
- Histoire
- Accueil
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- humain
- Les êtres humains
- if
- image
- satellite
- Mettre en oeuvre
- mis en œuvre
- amélioration
- in
- en profondeur
- Y compris
- d'information
- Infrastructure
- intrinsèquement
- contribution
- plutôt ;
- intégrer
- des services
- l'intégration
- intégrations
- intéressé
- développement
- Introduction
- IOT
- IT
- italien
- Emploi
- Emplois
- jpg
- Savoir
- Libellé
- l'étiquetage
- Etiquettes
- Peindre
- plus tard
- Nouveautés
- apprentissage
- laisser
- VIE
- comme
- Gamme
- charge
- emplacement
- Style
- ressembler
- LOOKS
- click
- machine learning
- a prendre une
- FAIT DU
- gérer
- gérés
- fabrication
- de nombreuses
- Localisation
- Mai..
- signifier
- veux dire
- mécanique
- Métadonnées
- Métal
- métrique
- Michael
- pourrait
- minimum
- ML
- MLOps
- modèle
- Module
- PLUS
- prénom
- Besoin
- Nouveauté
- next
- maintenant
- nombre
- objet
- Détection d'objet
- of
- on
- ONE
- uniquement
- fonctionner
- or
- de commander
- nos
- ande
- Résultat
- l'extérieur
- propre
- pandas
- partie
- particulièrement
- les pièces
- passion
- passionné
- Patron de Couture
- performant
- personnel
- choisi
- pipeline
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Post
- power
- pratiques
- La précision
- Privé
- d'ouvrabilité
- processus
- traitement
- projets
- favorise
- fournir
- à condition de
- fournisseurs
- fournit
- RÉSERVES
- Poussé
- Python
- pytorch
- qualité
- requêtes
- vite.
- RE
- Lire
- réal
- recommander
- réduit
- reportez-vous
- inscrit
- registres
- enregistrement
- fiabilité
- dépôt
- exigent
- conditions
- Courir
- coureur
- sagemaker
- Pipelines SageMaker
- même
- calendrier
- Scientifique
- scripts
- Sdk
- Section
- voit
- supérieur
- Série
- Sans serveur
- service
- Services
- set
- Sets
- Spectacles
- étapes
- simplement
- site
- So
- Logiciels
- sur mesure
- Solutions
- RÉSOUDRE
- quelques
- Son
- Identifier
- spécifiquement
- Dépenses
- scission
- splits
- Sports
- Commencer
- j'ai commencé
- Région
- Statut
- étapes
- Étapes
- storage
- Boutique
- stockée
- STORES
- stockage
- simple
- Appuyer
- Les soutiens
- sûr
- combustion propre
- Prenez
- discutons-en
- Tâche
- tâches
- Technologie
- modèle
- modèles
- tester
- qui
- La
- leur
- puis
- Là.
- Ces
- l'ont
- des choses
- penser
- des tiers.
- this
- trois étapes
- порог
- Avec
- fiable
- à
- outil
- les outils
- top
- Traçabilité
- Train
- qualifié
- Formation
- les trains
- se transforme
- déclenché
- Vérité
- Essai
- types
- débutante
- ui
- us
- utilisé
- cas d'utilisation
- d'utiliser
- en utilisant
- d'habitude
- validation
- Plus-value
- Valeurs
- Vérification
- version
- très
- via
- définition
- visible
- visualiser
- souhaitez
- façons
- we
- web
- services Web
- WELL
- ont été
- Quoi
- quand
- que
- qui
- la totalité
- sera
- comprenant
- activités principales
- travaillé
- workflow
- workflows
- Nos inspecteurs
- de travail
- encore
- Yolo
- Vous n'avez
- Votre
- vous-même
- Youtube
- zéphyrnet