In Parte 1 di questa serie, abbiamo redatto un'architettura per una pipeline MLOps end-to-end per un caso d'uso di ispezione della qualità visiva all'edge. È progettato per automatizzare l'intero processo di machine learning (ML), dall'etichettatura dei dati all'addestramento dei modelli e all'implementazione all'edge. L'attenzione ai servizi gestiti e serverless riduce la necessità di gestire l'infrastruttura per la tua pipeline e ti consente di iniziare rapidamente.
In questo post, approfondiamo il modo in cui vengono implementate le parti della pipeline relative all'etichettatura, alla creazione di modelli e alla formazione. Se sei particolarmente interessato all'aspetto della distribuzione edge dell'architettura, puoi passare direttamente a Parte 3. Forniamo anche un accompagnamento Repository GitHub se vuoi distribuirlo e provalo tu stesso.
Panoramica della soluzione
Il caso d'uso di esempio utilizzato per questa serie è una soluzione di ispezione visiva della qualità in grado di rilevare difetti sulle etichette metalliche, che potrebbe essere implementata come parte di un processo di produzione. Il diagramma seguente mostra l'architettura di alto livello della pipeline MLOps definita all'inizio di questa serie. Se non l'hai ancora letto ti consigliamo di dargli un'occhiata Parte 1.
Automatizzazione dell'etichettatura dei dati
L'etichettatura dei dati è un compito intrinsecamente ad alta intensità di manodopera che coinvolge gli esseri umani (etichettatori) per etichettare i dati. Etichettare nel nostro caso d'uso significa ispezionare un'immagine e disegnare riquadri di delimitazione per ogni difetto visibile. Può sembrare semplice, ma dobbiamo occuparci di una serie di cose per automatizzarlo:
- Fornire uno strumento per gli etichettatori per disegnare riquadri di delimitazione
- Gestire una forza lavoro di etichettatori
- Garantire una buona qualità dell'etichetta
- Gestisci e versionizza i nostri dati ed etichette
- Orchestra l'intero processo
- Integratelo nel sistema CI/CD
Possiamo fare tutto questo con i servizi AWS. Per facilitare l'etichettatura e gestire la nostra forza lavoro, utilizziamo Amazon SageMaker verità fondamentale, un servizio di etichettatura dei dati che ti consente di creare e gestire flussi di lavoro e forza lavoro personalizzati per l'etichettatura dei dati. Puoi gestire la tua forza lavoro privata di etichettatori o utilizzare la potenza degli etichettatori esterni tramite Amazon Mechanical Turk o fornitori di terze parti.
Oltre a ciò, l'intero processo può essere configurato e gestito tramite l'SDK AWS, che è ciò che utilizziamo per orchestrare il nostro flusso di lavoro di etichettatura come parte della nostra pipeline CI/CD.
I processi di etichettatura vengono utilizzati per gestire i flussi di lavoro di etichettatura. SageMaker Ground Truth fornisce modelli pronti all'uso per diversi tipi di attività di etichettatura, incluso il disegno di riquadri di delimitazione. Per ulteriori dettagli su come impostare un lavoro di etichettatura per le attività del riquadro di delimitazione, consulta Semplificazione dell'etichettatura dei dati per il rilevamento di oggetti YOLO in Amazon SageMaker Ground Truth. Per il nostro caso d'uso, adattiamo il file modello di attività per le attività del riquadro di delimitazione e utilizzare annotatori umani forniti da Mechanical Turk per etichettare le nostre immagini per impostazione predefinita. Lo screenshot seguente mostra ciò che vede un etichettatore quando lavora su un'immagine.
Parliamo ora della qualità dell'etichetta. La qualità delle nostre etichette influenzerà la qualità del nostro modello ML. Quando si automatizza l'etichettatura delle immagini con una forza lavoro umana esterna come Mechanical Turk, è difficile garantire una qualità dell'etichetta buona e coerente a causa della mancanza di competenze nel settore. A volte è necessaria una forza lavoro privata di esperti del settore. Nella nostra soluzione di esempio, tuttavia, utilizziamo Mechanical Turk per implementare l'etichettatura automatizzata delle nostre immagini.
Esistono molti modi per garantire una buona qualità delle etichette. Per ulteriori informazioni sulle best practice, fare riferimento alla conferenza AWS re:Invent 2019, Crea set di dati di addestramento accurati con Amazon SageMaker Ground Truth. Nell'ambito di questa soluzione di esempio, abbiamo deciso di concentrarci su quanto segue:
Infine, dobbiamo pensare a come archiviare le nostre etichette in modo che possano essere riutilizzate per l'addestramento in un secondo momento e consentire la tracciabilità dei dati di addestramento del modello utilizzato. IL output di un lavoro di etichettatura SageMaker Ground Truth è un file in formato JSON-linee contenente le etichette e i metadati aggiuntivi. Abbiamo deciso di utilizzare il negozio offline of Negozio di funzionalità Amazon SageMaker per conservare le nostre etichette. Rispetto alla semplice conservazione delle etichette Servizio di archiviazione semplice Amazon (Amazon S3), ci offre alcuni vantaggi distinti:
- Memorizza una cronologia completa dei valori delle funzionalità, combinata con query point-in-time. Ciò ci consente di controllare facilmente la versione del nostro set di dati e garantire la tracciabilità.
- In quanto archivio di funzionalità centrale, promuove la riusabilità e la visibilità dei nostri dati.
Per un'introduzione a SageMaker Feature Store, fare riferimento a Iniziare con Amazon SageMaker Feature Store. SageMaker Feature Store supporta la memorizzazione di funzionalità in formato tabellare. Nel nostro esempio, memorizziamo le seguenti funzionalità per ciascuna immagine etichettata:
- La posizione in cui è archiviata l'immagine su Amazon S3
- Dimensioni dell'immagine
- Le coordinate del riquadro di delimitazione e i valori della classe
- Un flag di stato che indica se l'etichetta è stata approvata per l'uso nella formazione
- Il nome del lavoro di etichettatura utilizzato per creare l'etichetta
Lo screenshot seguente mostra come potrebbe apparire una voce tipica nell'archivio funzionalità.
Con questo formato, possiamo facilmente eseguire query sull'archivio di funzionalità e lavorare con strumenti familiari come Panda per costruire un set di dati da utilizzare successivamente per l'addestramento.
Orchestrare l'etichettatura dei dati
Infine, è il momento di automatizzare e orchestrare ciascuna fase della nostra pipeline di etichettatura! Per questo usiamo Funzioni AWS Step, un servizio di flusso di lavoro serverless che ci fornisce integrazioni API per orchestrare e visualizzare rapidamente i passaggi del nostro flusso di lavoro. Usiamo anche un set di AWS Lambda funzioni per alcuni dei passaggi più complessi, in particolare i seguenti:
- Controlla se sono presenti nuove immagini che richiedono l'etichettatura in Amazon S3
- Preparare i dati nel formato di input richiesto e avviare il lavoro di etichettatura
- Preparare i dati nel formato di input richiesto e avviare il lavoro di verifica dell'etichetta
- Scrivere il set finale di etichette nell'archivio funzionalità
La figura seguente mostra l'aspetto della macchina a stati completa di etichettatura Step Functions.
Etichettatura: distribuzione dell'infrastruttura e integrazione in CI/CD
Il passaggio finale consiste nell'integrare il flusso di lavoro Step Functions nel nostro sistema CI/CD e garantire l'implementazione dell'infrastruttura richiesta. Per eseguire questo compito, utilizziamo il file Kit di sviluppo cloud AWS (AWS CDK) per creare tutta l'infrastruttura richiesta, come le funzioni Lambda e il flusso di lavoro Step Functions. Con Pipeline CDK, un modulo di AWS CDK in cui creiamo una pipeline AWS Code Pipeline che implementa le modifiche alla nostra infrastruttura e attiva una pipeline aggiuntiva per avviare il flusso di lavoro Step Functions. IL Integrazione delle funzioni passo in CodePipeline rende questo compito molto semplice. Noi usiamo Amazon EventBridge e le azioni CodePipeline Source per garantire che la pipeline venga attivata in base a una pianificazione e quando le modifiche vengono inviate a git.
Il diagramma seguente mostra in dettaglio l'aspetto dell'architettura CI/CD per l'etichettatura.
Riepilogo sull'automazione dell'etichettatura dei dati
Ora disponiamo di una pipeline funzionante per creare automaticamente etichette da immagini senza etichetta di etichette metalliche utilizzando SageMaker Ground Truth. Le immagini vengono prelevate da Amazon S3 e inserite in un lavoro di etichettatura di SageMaker Ground Truth. Dopo che le immagini sono state etichettate, eseguiamo un controllo di qualità utilizzando un lavoro di verifica dell'etichetta. Infine, le etichette vengono archiviate in un gruppo di funzionalità in SageMaker Feature Store. Se vuoi provare tu stesso l'esempio funzionante, controlla l'allegato Repository GitHub. Di seguito vedremo come automatizzare la creazione di modelli!
Automatizzazione della costruzione di modelli
Analogamente all'etichettatura, diamo uno sguardo approfondito alla nostra pipeline di creazione di modelli. Come minimo, dobbiamo orchestrare i seguenti passaggi:
- Estrai le funzionalità più recenti dal feature store
- Preparare i dati per l'addestramento del modello
- Allena il modello
- Valuta le prestazioni del modello
- Versione e archiviare il modello
- Approvare il modello per la distribuzione se le prestazioni sono accettabili
Il processo di creazione del modello è solitamente guidato da un data scientist ed è il risultato di una serie di esperimenti eseguiti utilizzando notebook o codice Python. Possiamo seguire un semplice processo in tre fasi per convertire un esperimento in una pipeline MLOps completamente automatizzata:
- Converti il codice esistente di preelaborazione, training e valutazione in script da riga di comando.
- Crea una definizione di pipeline SageMaker per orchestrare la creazione del modello. Utilizzare gli script creati nel passaggio uno come parte delle fasi di elaborazione e formazione.
- Integra la pipeline nel tuo flusso di lavoro CI/CD.
Questo processo in tre passaggi è generico e può essere utilizzato per qualsiasi architettura di modello e framework ML di tua scelta. Seguiamolo e iniziamo con il passaggio 1 per creare i seguenti script:
- preprocess.py – Questo estrae immagini etichettate da SageMaker Feature Store, divide il set di dati e lo trasforma nel formato richiesto per l'addestramento del nostro modello, nel nostro caso il formato di input per YOLOv8
- treno.py – Questo allena un Modello di rilevamento oggetti Ultralytics YOLOv8 utilizzando PyTorch per rilevare graffi sulle immagini di etichette metalliche
Orchestrazione della costruzione di modelli
Nel passaggio 2 raggruppiamo questi script in processi di training ed elaborazione e definiamo la pipeline SageMaker finale, simile alla figura seguente.
Consiste nei seguenti passaggi:
- Un passaggio di elaborazione per caricare le funzionalità più recenti da SageMaker Feature Store; suddividere il set di dati in set di training, validazione e test; e archiviare i set di dati come tarball per l'addestramento.
- Un TrainingStep per addestrare il modello utilizzando i set di dati di training, convalida e test ed esportare la metrica media Precisione media (mAP) per il modello.
- Un ConditionStep per valutare se il valore della metrica mAP del modello addestrato è superiore a una soglia configurata. In tal caso, viene eseguito un passaggio RegisterModel che registra il modello addestrato nel registro dei modelli SageMaker.
Se sei interessato al codice dettagliato della pipeline, dai un'occhiata la definizione della pipeline nel nostro repository di esempio.
Formazione: implementazione dell'infrastruttura e integrazione in CI/CD
Ora è il momento della fase 3: integrazione nel flusso di lavoro CI/CD. La nostra pipeline CI/CD segue lo stesso modello illustrato nella sezione di etichettatura precedente. Utilizziamo AWS CDK per distribuire le pipeline richieste da CodePipeline. L'unica differenza è che usiamo Pipeline di Amazon SageMaker invece di Step Functions. La definizione della pipeline SageMaker viene costruita e attivata come parte di un'azione CodeBuild in CodePipeline.
Conclusione
Ora disponiamo di un flusso di lavoro di etichettatura e formazione dei modelli completamente automatizzato utilizzando SageMaker. Abbiamo iniziato creando script da riga di comando dal codice dell'esperimento. Quindi abbiamo utilizzato SageMaker Pipelines per orchestrare ciascuno dei passaggi del flusso di lavoro di training del modello. Gli script della riga di comando sono stati integrati come parte delle fasi di training ed elaborazione. Alla fine della pipeline, il modello addestrato viene sottoposto a versione e registrato nel registro dei modelli SageMaker.
Check out Parte 3 di questa serie, in cui daremo uno sguardo più da vicino alla fase finale del nostro flusso di lavoro MLOps. Creeremo la pipeline che compila e distribuisce il modello su un dispositivo edge utilizzando AWS IoT Greengrass!
Circa gli autori
Michael Roth è un Senior Solutions Architect presso AWS che supporta i clienti del settore manifatturiero in Germania per risolvere le loro sfide aziendali attraverso la tecnologia AWS. Oltre al lavoro e alla famiglia, è interessato alle auto sportive e gli piace il caffè italiano.
Jörg Wöhrle è un Solutions Architect presso AWS e lavora con clienti manifatturieri in Germania. Con una passione per l'automazione, Joerg ha lavorato come sviluppatore di software, ingegnere DevOps e Site Reliability Engineer nella sua vita pre-AWS. Al di là delle nuvole, è un corridore ambizioso e ama trascorrere del tempo di qualità con la sua famiglia. Quindi, se hai una sfida DevOps o vuoi fare una corsa: faglielo sapere.
Giovanni Langer è Senior Solutions Architect presso AWS e lavora con clienti aziendali in Germania. Johannes è appassionato di applicazione dell'apprendimento automatico per risolvere problemi aziendali reali. Nella sua vita personale, Johannes ama lavorare su progetti di miglioramento della casa e trascorrere del tempo all'aperto con la sua famiglia.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-2/
- :ha
- :È
- :Dove
- $ SU
- 1
- 150
- 2019
- 7
- a
- WRI
- sopra
- realizzare
- preciso
- Action
- azioni
- adattare
- aggiuntivo
- vantaggi
- influenzare
- Dopo shavasana, sedersi in silenzio; saluti;
- avanti
- Tutti
- consentire
- consente
- anche
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- ambizioso
- an
- ed
- in qualsiasi
- api
- AMMISSIONE
- approvato
- architettura
- SONO
- AS
- aspetto
- At
- automatizzare
- Automatizzata
- automaticamente
- Automatizzare
- Automazione
- media
- AWS
- AWS re: Invent
- BE
- stato
- prima
- Inizio
- oltre a
- MIGLIORE
- best practice
- Al di là di
- Scatola
- scatole
- costruire
- Costruzione
- impacchettare
- affari
- ma
- by
- Materiale
- che
- auto
- Custodie
- centrale
- Challenge
- sfide
- impegnativo
- Modifiche
- dai un'occhiata
- verifica
- scegliere
- classe
- più vicino
- Cloud
- codice
- Caffè
- combinato
- rispetto
- completamento di una
- complesso
- configurato
- coerente
- consiste
- costruire
- convertire
- potuto
- creare
- creato
- Creazione
- Clienti
- dati
- scienziato di dati
- dataset
- deciso
- deep
- Predefinito
- definire
- definito
- definizione
- scavare
- schierare
- schierato
- deployment
- Distribuisce
- dettaglio
- dettagliati
- dettagli
- individuare
- rivelazione
- Costruttori
- Mercato
- dispositivo
- differenza
- diverso
- distinto
- do
- dominio
- fatto
- redatto
- disegnare
- disegno
- spinto
- dovuto
- ogni
- facilmente
- facile
- bordo
- enable
- fine
- da un capo all'altro
- ingegnere
- garantire
- Impresa
- Intero
- iscrizione
- valutare
- valutazione
- esempio
- esistente
- esperimento
- esperimenti
- competenza
- esperti
- export
- esterno
- facilitare
- familiare
- famiglia
- caratteristica
- Caratteristiche
- Federale
- pochi
- figura
- Compila il
- finale
- Infine
- Focus
- seguire
- i seguenti
- segue
- Nel
- formato
- Contesto
- da
- pieno
- completamente
- funzioni
- Germania
- ottenere
- Idiota
- Go
- buono
- Terra
- Gruppo
- Avere
- alto livello
- lui
- il suo
- storia
- Casa
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- umano
- Gli esseri umani
- if
- Immagine
- immagini
- realizzare
- implementato
- miglioramento
- in
- Uno sguardo approfondito sui miglioramenti dei pneumatici da corsa di Bridgestone.
- Compreso
- informazioni
- Infrastruttura
- intrinsecamente
- ingresso
- invece
- integrare
- integrato
- integrazione
- integrazioni
- interessato
- ai miglioramenti
- Introduzione
- IoT
- IT
- italiano
- Lavoro
- Offerte di lavoro
- jpg
- Sapere
- Discografica
- etichettatura
- per il tuo brand
- Dipingere
- dopo
- con i più recenti
- apprendimento
- lasciare
- Vita
- piace
- linea
- caricare
- località
- Guarda
- una
- SEMBRA
- macchina
- machine learning
- make
- FA
- gestire
- gestito
- consigliato per la
- molti
- carta geografica
- Maggio..
- significare
- si intende
- meccanico
- Metadati
- metallo
- metrico
- Michael
- forza
- ordine
- ML
- MLOp
- modello
- Moduli
- Scopri di più
- Nome
- Bisogno
- New
- GENERAZIONE
- adesso
- numero
- oggetto
- Rilevazione dell'oggetto
- of
- on
- ONE
- esclusivamente
- operare
- or
- minimo
- nostro
- su
- Risultato
- all'aperto
- proprio
- panda
- parte
- particolarmente
- Ricambi
- passione
- appassionato
- Cartamodello
- performance
- cronologia
- raccolto
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- Post
- energia
- pratiche
- Precisione
- un bagno
- problemi
- processi
- lavorazione
- progetti
- promuove
- fornire
- purché
- fornitori
- fornisce
- Maglioni
- spinto
- Python
- pytorch
- qualità
- query
- rapidamente
- RE
- Leggi
- di rose
- raccomandare
- riduce
- riferimento
- registrato
- registri
- registro
- problemi di
- deposito
- richiedere
- necessario
- Correre
- corridore
- sagemaker
- Pipeline SageMaker
- stesso
- programma
- Scienziato
- script
- sdk
- Sezione
- vede
- anziano
- Serie
- serverless
- servizio
- Servizi
- set
- Set
- Spettacoli
- Un'espansione
- semplicemente
- site
- So
- Software
- soluzione
- Soluzioni
- RISOLVERE
- alcuni
- Suono
- Fonte
- in particolare
- Spendere
- dividere
- Si divide
- Sports
- inizia a
- iniziato
- Regione / Stato
- Stato dei servizi
- step
- Passi
- conservazione
- Tornare al suo account
- memorizzati
- negozi
- memorizzare
- lineare
- Supporto
- supporti
- sicuro
- sistema
- Fai
- Parlare
- Task
- task
- Tecnologia
- modello
- modelli
- test
- che
- Il
- loro
- poi
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- cose
- think
- di parti terze standard
- questo
- tre fasi
- soglia
- Attraverso
- tempo
- a
- strumenti
- top
- Tracciabilità
- Treni
- allenato
- Training
- forma
- trasforma
- innescato
- Verità
- prova
- Tipi di
- tipico
- ui
- us
- uso
- caso d'uso
- utilizzato
- utilizzando
- generalmente
- convalida
- APPREZZIAMO
- Valori
- Convalida
- versione
- molto
- via
- visibilità
- visibile
- visualizzare
- volere
- modi
- we
- sito web
- servizi web
- WELL
- sono stati
- Che
- quando
- se
- quale
- tutto
- volere
- con
- Lavora
- lavorato
- flusso di lavoro
- flussi di lavoro
- Forza lavoro
- lavoro
- ancora
- Yolo
- Tu
- Trasferimento da aeroporto a Sharm
- te stesso
- youtube
- zefiro