Questa è la parte 3 della nostra serie in cui progettiamo e implementiamo una pipeline MLOps per l'ispezione visiva della qualità ai margini. In questo post, ci concentreremo su come automatizzare la parte di distribuzione edge della pipeline MLOps end-to-end. Ti mostriamo come usarlo AWS IoT Greengrass per gestire l'inferenza del modello all'edge e come automatizzare il processo utilizzando Funzioni AWS Step e altri servizi AWS.
Panoramica della soluzione
In Parte 1 di questa serie, abbiamo definito un'architettura per la nostra pipeline MLOps end-to-end che automatizza l'intero processo di machine learning (ML), dall'etichettatura dei dati all'addestramento del modello e alla distribuzione all'edge. In Parte 2, abbiamo mostrato come automatizzare le parti di etichettatura e addestramento del modello della pipeline.
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 è possibile implementare 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 della distribuzione edge di un modello ML
Dopo che un modello ML è stato addestrato e valutato, deve essere distribuito in un sistema di produzione per generare valore aziendale facendo previsioni sui dati in ingresso. Questo processo può diventare rapidamente complesso in un ambiente edge in cui i modelli devono essere distribuiti ed eseguiti su dispositivi che spesso si trovano lontano dall'ambiente cloud in cui i modelli sono stati addestrati. Di seguito sono elencate alcune delle sfide specifiche del machine learning all'edge:
- I modelli ML spesso devono essere ottimizzati a causa dei vincoli di risorse sui dispositivi edge
- I dispositivi edge non possono essere ridistribuiti o addirittura sostituiti come un server nel cloud, quindi è necessario un solido processo di distribuzione del modello e di gestione dei dispositivi
- La comunicazione tra i dispositivi e il cloud deve essere efficiente e sicura perché spesso attraversa reti non affidabili a bassa larghezza di banda
Vediamo come possiamo affrontare queste sfide con i servizi AWS oltre a esportare il modello nel formato ONNX, che ci consente, ad esempio, di applicare ottimizzazioni come la quantizzazione per ridurre le dimensioni del modello per i dispositivi vincolanti. ONNX fornisce inoltre runtime ottimizzati per le piattaforme hardware edge più comuni.
Analizzando il processo di distribuzione perimetrale, sono necessari due componenti:
- Un meccanismo di distribuzione per la consegna del modello, che include il modello stesso e alcune logiche aziendali per gestire e interagire con il modello
- Un motore del flusso di lavoro in grado di orchestrare l'intero processo per renderlo robusto e ripetibile
In questo esempio, utilizziamo diversi servizi AWS per creare il nostro meccanismo di distribuzione edge automatizzato, che integra tutti i componenti richiesti di cui abbiamo discusso.
Innanzitutto, simuliamo un dispositivo edge. Per semplificare l'esecuzione del flusso di lavoro end-to-end, utilizziamo un file Cloud di calcolo elastico di Amazon (Amazon EC2) per simulare un dispositivo edge installando il software AWS IoT Greengrass Core sull'istanza. Puoi anche utilizzare le istanze EC2 per convalidare i diversi componenti in un processo di QA prima della distribuzione su un dispositivo di produzione edge effettivo. AWS IoT Greengrass è un servizio cloud e runtime edge open source Internet delle cose (IoT) che ti aiuta a creare, distribuire e gestire software per dispositivi edge. AWS IoT Greengrass riduce lo sforzo di creare, distribuire e gestire il software dei dispositivi edge in modo sicuro e scalabile. Dopo aver installato il software AWS IoT Greengrass Core sul tuo dispositivo, puoi aggiungere o rimuovere funzionalità e componenti e gestire le applicazioni del tuo dispositivo IoT utilizzando AWS IoT Greengrass. Offre molti componenti integrati per semplificarti la vita, come i componenti StreamManager e MQTT broker, che puoi utilizzare per comunicare in modo sicuro con il cloud, supportando la crittografia end-to-end. Puoi utilizzare queste funzionalità per caricare risultati e immagini dell'inferenza in modo efficiente.
In un ambiente di produzione, in genere si ha una telecamera industriale che fornisce immagini per le quali il modello ML dovrebbe produrre previsioni. Per la nostra configurazione, simuliamo questo input di immagine caricando una preimpostazione di immagini in una directory specifica sul dispositivo periferico. Utilizziamo quindi queste immagini come input di inferenza per il modello.
Abbiamo suddiviso il processo complessivo di distribuzione e inferenza in tre passaggi consecutivi per distribuire un modello ML addestrato sul cloud in un ambiente edge e utilizzarlo per le previsioni:
- Preparare – Creare il pacchetto del modello addestrato per la distribuzione edge.
- Schierare – Trasferimento di componenti di modello e inferenza dal cloud al dispositivo edge.
- Inferenza – Caricare il modello ed eseguire il codice di inferenza per le previsioni delle immagini.
Il seguente diagramma dell'architettura mostra i dettagli di questo processo in tre fasi e come lo abbiamo implementato con i servizi AWS.
Nelle sezioni seguenti, discutiamo i dettagli di ogni passaggio e mostriamo come incorporare questo processo in un'orchestrazione automatizzata e ripetibile e in un flusso di lavoro CI/CD sia per i modelli ML che per il corrispondente codice di inferenza.
Preparare
I dispositivi edge spesso sono dotati di elaborazione e memoria limitate rispetto a un ambiente cloud in cui CPU e GPU potenti possono eseguire facilmente modelli ML. Diverse tecniche di ottimizzazione del modello consentono di personalizzare un modello per una specifica piattaforma software o hardware per aumentare la velocità di previsione senza perdere la precisione.
In questo esempio, abbiamo esportato il modello addestrato nella pipeline di addestramento nel formato ONNX per portabilità, possibili ottimizzazioni, nonché tempi di esecuzione edge ottimizzati e registrato il modello all'interno Registro dei modelli di Amazon SageMaker. In questo passaggio creiamo un nuovo componente del modello Greengrass che include l'ultimo modello registrato per la successiva distribuzione.
Schierare
Un meccanismo di distribuzione sicuro e affidabile è fondamentale quando si distribuisce un modello dal cloud a un dispositivo periferico. Poiché AWS IoT Greengrass incorpora già un sistema di distribuzione edge robusto e sicuro, lo utilizziamo per i nostri scopi di distribuzione. Prima di esaminare in dettaglio il nostro processo di distribuzione, facciamo un breve riepilogo su come funzionano le distribuzioni AWS IoT Greengrass. Al centro del sistema di distribuzione AWS IoT Greengrass ci sono componenti, che definiscono i moduli software distribuiti su un dispositivo edge che esegue AWS IoT Greengrass Core. Possono essere componenti privati creati dall'utente o componenti pubblici forniti da AWS o il più ampio Comunità Greengrass. È possibile raggruppare più componenti come parte di una distribuzione. Una configurazione di distribuzione definisce i componenti inclusi in una distribuzione e i dispositivi di destinazione della distribuzione. Può essere definito in un file di configurazione della distribuzione (JSON) o tramite la console AWS IoT Greengrass durante la creazione di una nuova distribuzione.
Creiamo i seguenti due componenti Greengrass, che vengono poi distribuiti sul dispositivo periferico tramite il processo di distribuzione:
- Modello in pacchetto (componente privato) – Questo componente contiene il modello addestrato e ML in formato ONNX.
- Codice di inferenza (componente privato) – A parte il modello ML stesso, dobbiamo implementare una logica applicativa per gestire attività come la preparazione dei dati, la comunicazione con il modello per l'inferenza e la postelaborazione dei risultati dell'inferenza. Nel nostro esempio, abbiamo sviluppato un componente privato basato su Python per gestire le seguenti attività:
- Installa i componenti runtime richiesti come il pacchetto Ultralytics YOLOv8 Python.
- Invece di acquisire immagini dal flusso live di una telecamera, lo simuliamo caricando le immagini preparate da una directory specifica e preparando i dati dell'immagine in base ai requisiti di input del modello.
- Effettua chiamate di inferenza sul modello caricato con i dati dell'immagine preparati.
- Controlla le previsioni e carica i risultati dell'inferenza nel cloud.
Se vuoi dare uno sguardo più approfondito al codice di inferenza che abbiamo creato, fai riferimento a Repository GitHub.
Inferenza
Il processo di inferenza del modello sul dispositivo periferico si avvia automaticamente al termine della distribuzione dei componenti sopra menzionati. Il componente di inferenza personalizzata esegue periodicamente il modello ML con immagini da una directory locale. Il risultato dell'inferenza per immagine restituita dal modello è un tensore con il seguente contenuto:
- Punteggi di fiducia – Quanto è sicuro il modello riguardo ai rilevamenti
- Coordinate dell'oggetto – Le coordinate dell'oggetto scratch (x, y, larghezza, altezza) rilevate dal modello nell'immagine
Nel nostro caso, il componente di inferenza si occupa di inviare i risultati dell'inferenza a uno specifico argomento MQTT su AWS IoT dove possono essere letti per un'ulteriore elaborazione. Questi messaggi possono essere visualizzati tramite il client di test MQTT sulla console AWS IoT per il debug. In ambito produttivo, puoi decidere di avvisare automaticamente un altro sistema che si occupa di rimuovere le etichette metalliche difettose dalla linea di produzione.
Orchestrazione
Come visto nelle sezioni precedenti, sono necessari più passaggi per preparare e distribuire un modello ML, il codice di inferenza corrispondente e il runtime o l'agente richiesto su un dispositivo edge. Step Functions è un servizio completamente gestito che ti consente di orchestrare questi passaggi dedicati e progettare il flusso di lavoro sotto forma di macchina a stati. La natura serverless di questo servizio e le funzionalità native di Step Functions come le integrazioni API del servizio AWS ti consentono di impostare rapidamente questo flusso di lavoro. Funzionalità integrate come nuovi tentativi o registrazione sono punti importanti per creare orchestrazioni solide. Per maggiori dettagli riguardanti la definizione stessa della macchina a stati, fare riferimento a Repository GitHub oppure controlla il grafico della macchina a stati nella console Step Functions dopo aver distribuito questo esempio nel tuo account.
Distribuzione dell'infrastruttura e integrazione in CI/CD
La pipeline CI/CD per integrare e costruire tutti i componenti infrastrutturali richiesti segue lo stesso schema illustrato in Parte 1 di questa serie. Noi usiamo il Kit di sviluppo cloud AWS (AWS CDK) da cui distribuire le pipeline richieste AWS Code Pipeline.
Apprendimenti
Esistono diversi modi per creare un'architettura per un sistema di distribuzione edge del modello ML automatizzato, robusto e sicuro, che spesso dipendono molto dal caso d'uso e da altri requisiti. Tuttavia, ecco alcuni insegnamenti che vorremmo condividere con voi:
- Valutare in anticipo se ulteriori Requisiti delle risorse di calcolo AWS IoT Greengrass si adatta al tuo case, soprattutto con dispositivi con bordi vincolati.
- Stabilire un meccanismo di distribuzione che integri una fase di verifica degli artefatti distribuiti prima dell'esecuzione sul dispositivo periferico per garantire che non si sia verificata alcuna manomissione durante la trasmissione.
- È buona norma mantenere i componenti di distribuzione su AWS IoT Greengrass quanto più modulari e autonomi possibile per poterli distribuire in modo indipendente. Ad esempio, se disponi di un modulo di codice di inferenza relativamente piccolo ma di un modello ML di grandi dimensioni in termini di dimensioni, non sempre vorrai distribuirli entrambi se è cambiato solo il codice di inferenza. Ciò è particolarmente importante quando si dispone di una larghezza di banda limitata o di una connettività per dispositivi edge ad alto costo.
Conclusione
Con questo si conclude la nostra serie in tre parti sulla creazione di una pipeline MLOps end-to-end per l'ispezione visiva della qualità all'edge. Abbiamo esaminato le ulteriori sfide legate alla distribuzione di un modello ML all'edge, come il packaging del modello o la complessa orchestrazione della distribuzione. Abbiamo implementato la pipeline in modo completamente automatizzato in modo da poter mettere in produzione i nostri modelli in modo robusto, sicuro, ripetibile e tracciabile. Sentiti libero di utilizzare l'architettura e l'implementazione sviluppate in questa serie come punto di partenza per il tuo prossimo progetto abilitato al machine learning. Se hai domande su come progettare e costruire un sistema di questo tipo per il tuo ambiente, per favore contattarci. Per altri argomenti e casi d'uso, fare riferimento al ns machine Learning ed IoT blog.
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-3/
- :ha
- :È
- :Dove
- $ SU
- 150
- 7
- a
- capace
- WRI
- Secondo
- Il mio account
- precisione
- presenti
- aggiungere
- aggiunta
- aggiuntivo
- avanzare
- Dopo shavasana, sedersi in silenzio; saluti;
- contro
- Agente
- Tutti
- consentire
- consente
- già
- anche
- sempre
- Amazon
- Amazon EC2
- Amazon Web Services
- ambizioso
- an
- ed
- Un altro
- in qualsiasi
- api
- Applicazioni
- applicazioni
- APPLICA
- AMMISSIONE
- architettura
- SONO
- AS
- a parte
- At
- automatizzare
- Automatizzata
- automatizza
- automaticamente
- Automazione
- lontano
- AWS
- AWS IoT Greengrass
- precedente
- Larghezza di banda
- BE
- perché
- diventare
- stato
- prima
- Inizio
- oltre a
- fra
- Al di là di
- Big
- blog
- entrambi
- più ampia
- broker
- costruire
- Costruzione
- costruito
- incassato
- in bundle
- affari
- ma
- by
- Bandi
- stanza
- Materiale
- funzionalità
- che
- auto
- Custodie
- casi
- Challenge
- sfide
- cambiato
- dai un'occhiata
- verifica
- cliente
- Cloud
- codice
- Caffè
- Venire
- Uncommon
- comunicare
- Comunicazione
- rispetto
- complesso
- componente
- componenti
- Calcolare
- fiducioso
- Configurazione
- Connettività
- consecutivo
- consolle
- vincoli
- contiene
- contenuto
- Nucleo
- software di base
- Corrispondente
- Costo
- creare
- Creazione
- costume
- Clienti
- dati
- Preparazione dei dati
- decide
- dedicato
- più profondo
- definire
- definito
- definisce
- definizione
- consegna
- consegna
- dipendente
- schierare
- schierato
- distribuzione
- deployment
- implementazioni
- Design
- dettaglio
- dettagli
- individuare
- rilevato
- sviluppato
- Costruttori
- Mercato
- dispositivo
- dispositivi
- diverso
- discutere
- discusso
- Diviso
- do
- Dont
- giù
- dovuto
- durante
- ogni
- più facile
- facilmente
- bordo
- efficiente
- in modo efficiente
- sforzo
- o
- incastrare
- crittografia
- da un capo all'altro
- motore
- ingegnere
- garantire
- Impresa
- Intero
- Ambiente
- particolarmente
- valutato
- Anche
- esempio
- famiglia
- lontano
- Moda
- difettoso
- Caratteristiche
- sentire
- pochi
- Compila il
- in forma
- Focus
- i seguenti
- segue
- Nel
- modulo
- formato
- Gratis
- da
- completamente
- funzioni
- ulteriormente
- generare
- Germania
- Go
- buono
- GPU
- grafico
- maniglia
- successo
- Hardware
- Avere
- altezza
- aiuta
- qui
- Alta
- alto livello
- lui
- il suo
- Casa
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- if
- Immagine
- immagini
- realizzare
- implementazione
- implementato
- importante
- miglioramento
- in
- incluso
- inclusi
- Compreso
- In arrivo
- Aumento
- indipendentemente
- industriale
- Infrastruttura
- ingresso
- install
- installazione
- esempio
- integrare
- Integra
- integrazione
- integrazioni
- interagire
- interessato
- Internet
- Internet delle cose
- ai miglioramenti
- IoT
- Dispositivo IoT
- IT
- italiano
- stessa
- jpg
- json
- ad appena
- mantenere
- Le
- Sapere
- etichettatura
- con i più recenti
- apprendimento
- lasciare
- Vita
- piace
- Limitato
- linea
- vivere
- caricare
- Caricamento in corso
- locale
- collocato
- registrazione
- logica
- Guarda
- guardò
- a
- lotto
- macchina
- machine learning
- make
- Fare
- gestire
- gestito
- gestione
- consigliato per la
- meccanismo
- Memorie
- messaggi
- metallo
- Michael
- ML
- MLOp
- modello
- modelli
- componibile
- Moduli
- moduli
- Scopri di più
- maggior parte
- multiplo
- nativo
- Natura
- Bisogno
- esigenze
- New
- GENERAZIONE
- no
- oggetto
- of
- Offerte
- di frequente
- on
- open source
- ottimizzati
- or
- orchestrazione
- Altro
- nostro
- su
- all'aperto
- complessivo
- pacchetto
- imballaggio
- parte
- Ricambi
- passione
- appassionato
- Cartamodello
- per
- cronologia
- conduttura
- piattaforma
- Piattaforme
- Platone
- Platone Data Intelligence
- PlatoneDati
- per favore
- punto
- punti
- portabilità
- possibile
- Post
- potente
- pratica
- predizione
- Previsioni
- preparazione
- Preparare
- preparato
- preparazione
- un bagno
- problemi
- processi
- lavorazione
- produrre
- Produzione
- progetto
- progetti
- purché
- fornisce
- la percezione
- fini
- metti
- Python
- Domande e risposte
- qualità
- Domande
- Presto
- rapidamente
- Leggi
- di rose
- ricapitolare
- raccomandare
- ridurre
- riduce
- riferimento
- per quanto riguarda
- registrato
- relativamente
- problemi di
- affidabile
- rimuovere
- rimozione
- ripetibile
- sostituito
- richiedere
- necessario
- Requisiti
- risorsa
- colpevole
- Risultati
- robusto
- Correre
- corridore
- running
- corre
- sagemaker
- stesso
- scalabile
- graffiare
- sezioni
- sicuro
- in modo sicuro
- vedere
- visto
- invio
- anziano
- Serie
- server
- serverless
- servizio
- Servizi
- set
- regolazione
- flessibile.
- Condividi
- dovrebbero
- mostrare attraverso le sue creazioni
- ha mostrato
- Spettacoli
- site
- Taglia
- piccole
- So
- Software
- soluzione
- Soluzioni
- RISOLVERE
- alcuni
- specifico
- velocità
- Spendere
- Sports
- Di partenza
- inizio
- Regione / Stato
- step
- Passi
- lineare
- ruscello
- successivo
- tale
- Supporto
- sistema
- attrezzatura
- prende
- presa
- Target
- task
- tecniche
- Tecnologia
- condizioni
- test
- che
- Il
- Lo Stato
- loro
- Li
- poi
- Strumenti Bowman per analizzare le seguenti finiture:
- cose
- questo
- quelli
- tre
- tre fasi
- Attraverso
- tempo
- a
- insieme
- argomento
- Argomenti
- tracciabile
- allenato
- Training
- trasferimento
- seconda
- tipicamente
- unico
- Caricamento
- us
- uso
- caso d'uso
- utilizzato
- utilizzando
- CONVALIDARE
- APPREZZIAMO
- Convalida
- molto
- via
- volere
- Modo..
- modi
- we
- sito web
- servizi web
- WELL
- quando
- quale
- tutto
- larghezza
- con
- entro
- senza
- Lavora
- lavorato
- flusso di lavoro
- lavoro
- sarebbe
- X
- ancora
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro