Aceasta este partea 3 a seriei noastre în care proiectăm și implementăm o conductă MLOps pentru inspecția vizuală a calității la margine. În această postare, ne concentrăm asupra modului de automatizare a implementării marginii a conductei MLOps end-to-end. Vă arătăm cum să utilizați AWS IoT Greengrass pentru a gestiona inferența modelului la margine și modul de automatizare a procesului folosind Funcții pas AWS și alte servicii AWS.
Prezentare generală a soluțiilor
In Partea 1 din această serie, am stabilit o arhitectură pentru conducta noastră MLOps end-to-end care automatizează întregul proces de învățare automată (ML), de la etichetarea datelor până la formarea modelului și implementarea la margine. În Partea 2, am arătat cum să automatizăm părțile de etichetare și formare model ale conductei.
Exemplul de caz de utilizare utilizat pentru această serie este o soluție vizuală de inspecție a calității care poate detecta defecte pe etichetele metalice, pe care le puteți implementa ca parte a unui proces de fabricație. Următoarea diagramă arată arhitectura de nivel înalt a conductei MLOps pe care am definit-o la începutul acestei serii. Dacă nu l-ați citit încă, vă recomandăm să verificați Partea 1.
Automatizarea implementării edge a unui model ML
După ce un model ML a fost instruit și evaluat, acesta trebuie să fie implementat într-un sistem de producție pentru a genera valoare de afaceri făcând predicții asupra datelor primite. Acest proces poate deveni rapid complex într-un cadru de vârf în care modelele trebuie să fie implementate și rulate pe dispozitive care sunt adesea situate departe de mediul cloud în care modelele au fost antrenate. Următoarele sunt câteva dintre provocările unice ale învățării automate la margine:
- Modelele ML trebuie adesea optimizate din cauza constrângerilor de resurse pe dispozitivele de vârf
- Dispozitivele Edge nu pot fi redistribuite sau chiar înlocuite ca un server în cloud, așa că aveți nevoie de un proces robust de implementare a modelului și de gestionare a dispozitivelor
- Comunicarea dintre dispozitive și cloud trebuie să fie eficientă și sigură, deoarece traversează adesea rețele de neîncredere cu lățime de bandă redusă
Să vedem cum putem face față acestor provocări cu serviciile AWS, pe lângă exportul modelului în format ONNX, ceea ce ne permite, de exemplu, să aplicăm optimizări precum cuantizarea pentru a reduce dimensiunea modelului pentru dispozitivele de constrângere. ONNX oferă, de asemenea, timpi de execuție optimizați pentru cele mai comune platforme hardware de vârf.
Defalcând procesul de implementare edge, avem nevoie de două componente:
- Un mecanism de implementare pentru livrarea modelului, care include modelul în sine și o anumită logică de afaceri pentru a gestiona și a interacționa cu modelul
- Un motor de flux de lucru care poate orchestra întregul proces pentru a face acest lucru robust și repetabil
În acest exemplu, folosim diferite servicii AWS pentru a construi mecanismul nostru automat de implementare edge, care integrează toate componentele necesare despre care am discutat.
În primul rând, simulăm un dispozitiv de margine. Pentru a vă facilita trecerea prin fluxul de lucru de la capăt la capăt, folosim un Cloud Elastic de calcul Amazon (Amazon EC2) pentru a simula un dispozitiv de vârf prin instalarea software-ului AWS IoT Greengrass Core pe instanță. De asemenea, puteți utiliza instanțe EC2 pentru a valida diferitele componente dintr-un proces de asigurare a calității înainte de implementarea pe un dispozitiv de producție edge real. AWS IoT Greengrass este un serviciu de execuție și cloud open-source pentru Internet of Things (IoT) care vă ajută să construiți, să implementați și să gestionați software-ul pentru dispozitive de vârf. AWS IoT Greengrass reduce efortul de a construi, implementa și gestiona software-ul dispozitivelor de vârf într-un mod sigur și scalabil. După ce instalați software-ul AWS IoT Greengrass Core pe dispozitivul dvs., puteți adăuga sau elimina funcții și componente și puteți gestiona aplicațiile dispozitivului dvs. IoT utilizând AWS IoT Greengrass. Oferă o mulțime de componente încorporate pentru a vă ușura viața, cum ar fi componentele StreamManager și MQTT broker, pe care le puteți utiliza pentru a comunica în siguranță cu cloud-ul, compatibil cu criptarea end-to-end. Puteți folosi aceste funcții pentru a încărca eficient rezultate de inferență și imagini.
Într-un mediu de producție, ați avea de obicei o cameră industrială care oferă imagini pentru care modelul ML ar trebui să producă predicții. Pentru configurarea noastră, simulăm această intrare de imagine prin încărcarea unei presetări de imagini într-un director specific de pe dispozitivul de margine. Apoi folosim aceste imagini ca intrare de inferență pentru model.
Am împărțit procesul general de implementare și inferență în trei pași consecutivi pentru a implementa un model ML antrenat în cloud într-un mediu de vârf și pentru a-l folosi pentru predicții:
- Pregăti – Pachetați modelul instruit pentru implementarea marginii.
- Lansa – Transferul componentelor modelului și de inferență din cloud pe dispozitivul de margine.
- deducție – Încărcați modelul și rulați codul de inferență pentru predicții de imagine.
Următoarea diagramă de arhitectură arată detaliile acestui proces în trei pași și modul în care l-am implementat cu serviciile AWS.
În secțiunile următoare, discutăm detaliile pentru fiecare pas și arătăm cum să încorporam acest proces într-o orchestrare automată și repetabilă și într-un flux de lucru CI/CD atât pentru modelele ML, cât și pentru codul de inferență corespunzător.
Pregăti
Dispozitivele Edge vin adesea cu calcul și memorie limitate în comparație cu un mediu cloud în care procesoarele și GPU-urile puternice pot rula cu ușurință modele ML. Diferite tehnici de optimizare a modelului vă permit să adaptați un model pentru o anumită platformă software sau hardware pentru a crește viteza de predicție fără a pierde acuratețea.
În acest exemplu, am exportat modelul antrenat în conducta de antrenament în formatul ONNX pentru portabilitate, posibile optimizări, precum și timpi de execuție edge optimizați și am înregistrat modelul în Registrul de modele Amazon SageMaker. În acest pas, creăm o nouă componentă de model Greengrass, inclusiv cel mai recent model înregistrat pentru implementarea ulterioară.
Lansa
Un mecanism de implementare sigur și fiabil este esențial atunci când implementați un model din cloud pe un dispozitiv edge. Deoarece AWS IoT Greengrass încorporează deja un sistem de implementare de vârf robust și sigur, îl folosim în scopurile noastre de implementare. Înainte de a analiza procesul nostru de implementare în detaliu, să facem o recapitulare rapidă a modului în care funcționează implementările AWS IoT Greengrass. În centrul sistemului de implementare AWS IoT Greengrass se află componente, care definesc modulele software implementate pe un dispozitiv de vârf care rulează AWS IoT Greengrass Core. Acestea pot fi fie componente private pe care le construiți, fie componente publice care sunt furnizate fie de către AWS sau mai larg Comunitatea Greengrass. Mai multe componente pot fi grupate ca parte a unei implementări. O configurație de implementare definește componentele incluse într-o implementare și dispozitivele țintă ale implementării. Poate fi definit fie într-un fișier de configurare a implementării (JSON), fie prin consola AWS IoT Greengrass atunci când se creează o nouă implementare.
Creăm următoarele două componente Greengrass, care sunt apoi implementate pe dispozitivul de margine prin procesul de implementare:
- Model ambalat (componentă privată) – Această componentă conține modelul antrenat și ML în format ONNX.
- Cod de inferență (componentă privată) – Pe lângă modelul ML în sine, trebuie să implementăm o anumită logică a aplicației pentru a gestiona sarcini precum pregătirea datelor, comunicarea cu modelul pentru inferență și postprocesarea rezultatelor inferenței. În exemplul nostru, am dezvoltat o componentă privată bazată pe Python pentru a gestiona următoarele sarcini:
- Instalați componentele de rulare necesare, cum ar fi pachetul Ultralytics YOLOv8 Python.
- În loc să luăm imagini dintr-un flux live al camerei, simulăm acest lucru prin încărcarea imaginilor pregătite dintr-un director specific și pregătirea datelor imaginii conform cerințelor de intrare ale modelului.
- Efectuați apeluri de inferență față de modelul încărcat cu datele de imagine pregătite.
- Verificați predicțiile și încărcați rezultatele inferenței înapoi în cloud.
Dacă doriți să aruncați o privire mai profundă asupra codului de inferență pe care l-am construit, consultați GitHub repo.
deducție
Procesul de inferență a modelului pe dispozitivul de margine începe automat după terminarea implementării componentelor menționate mai sus. Componenta de inferență personalizată rulează periodic modelul ML cu imagini dintr-un director local. Rezultatul inferenței pe imagine returnată din model este un tensor cu următorul conținut:
- Scoruri de încredere – Cât de sigur este modelul în ceea ce privește detecțiile
- Coordonatele obiectului – Coordonatele obiectului zgâriat (x, y, lățime, înălțime) detectate de modelul din imagine
În cazul nostru, componenta de inferență se ocupă de trimiterea rezultatelor de inferență la un anumit subiect MQTT pe AWS IoT, unde poate fi citit pentru procesare ulterioară. Aceste mesaje pot fi vizualizate prin intermediul clientului de testare MQTT pe consola AWS IoT pentru depanare. Într-un cadru de producție, puteți decide să notificați automat un alt sistem care se ocupă de îndepărtarea etichetelor metalice defecte de pe linia de producție.
Orchestrarea
După cum s-a văzut în secțiunile precedente, sunt necesari mai mulți pași pentru a pregăti și implementa un model ML, codul de inferență corespunzător și timpul de execuție sau agentul necesar pe un dispozitiv de vârf. Step Functions este un serviciu complet gestionat care vă permite să orchestrați acești pași dedicați și să proiectați fluxul de lucru sub forma unei mașini de stări. Natura fără server a acestui serviciu și capabilitățile native Step Functions, cum ar fi integrările API de servicii AWS, vă permit să configurați rapid acest flux de lucru. Capacitățile încorporate, cum ar fi reîncercări sau înregistrare, sunt puncte importante pentru a construi orchestrații solide. Pentru mai multe detalii despre definiția mașinii de stări în sine, consultați GitHub depozit sau verificați graficul mașinii de stări pe consola Step Functions după ce implementați acest exemplu în contul dvs.
Implementarea infrastructurii și integrarea în CI/CD
Conducta CI/CD pentru a integra și a construi toate componentele de infrastructură necesare urmează același model ilustrat în Partea 1 din această serie. Noi folosim Kit AWS Cloud Development (AWS CDK) pentru a implementa conductele necesare de la AWS CodePipeline.
Învățături
Există mai multe moduri de a construi o arhitectură pentru un sistem automatizat, robust și securizat de implementare a modelului ML, care depind adesea foarte mult de cazul de utilizare și de alte cerințe. Cu toate acestea, iată câteva învățăminte pe care am dori să vă împărtășim:
- Evaluați în prealabil dacă suplimentar Cerințe de resurse de calcul AWS IoT Greengrass se potrivește cu carcasa dvs., în special cu dispozitivele cu margini limitate.
- Stabiliți un mecanism de implementare care să integreze o etapă de verificare a artefactelor desfășurate înainte de a rula pe dispozitivul de margine pentru a vă asigura că nu a avut loc nicio modificare în timpul transmisiei.
- Este o practică bună să păstrați componentele de implementare pe AWS IoT Greengrass cât mai modulare și autonome posibil pentru a le putea implementa independent. De exemplu, dacă aveți un modul de cod de inferență relativ mic, dar un model ML mare în ceea ce privește dimensiunea, nu doriți întotdeauna să le implementați pe amândouă dacă doar codul de inferență s-a schimbat. Acest lucru este deosebit de important atunci când aveți o lățime de bandă limitată sau o conexiune a dispozitivelor cu costuri mari.
Concluzie
Aceasta încheie seria noastră de trei părți despre construirea unei conducte MLOps end-to-end pentru inspecția vizuală a calității la margine. Am analizat provocările suplimentare care vin odată cu implementarea unui model ML la margine, cum ar fi ambalarea modelului sau orchestrarea complexă a implementării. Am implementat conducta într-un mod complet automatizat, astfel încât să putem pune modelele noastre în producție într-un mod robust, sigur, repetabil și urmăribil. Simțiți-vă liber să utilizați arhitectura și implementarea dezvoltate în această serie ca punct de plecare pentru următorul dvs. proiect activat ML. Dacă aveți întrebări despre cum să proiectați și să construiți un astfel de sistem pentru mediul dumneavoastră, vă rugăm ajungeți în afară. Pentru alte subiecte și cazuri de utilizare, consultați Invatare mecanica și IoT bloguri.
Despre autori
Michael Roth este arhitect senior de soluții la AWS, care sprijină clienții de producție din Germania pentru a-și rezolva provocările de afaceri prin tehnologia AWS. Pe lângă muncă și familie, el este interesat de mașinile sport și îi place cafeaua italiană.
Jörg Wöhrle este un arhitect de soluții la AWS, care lucrează cu clienți de producție din Germania. Cu o pasiune pentru automatizare, Joerg a lucrat ca dezvoltator de software, inginer DevOps și inginer pentru fiabilitatea site-ului în viața sa anterioară AWS. Dincolo de nor, este un alergător ambițios și se bucură de timp de calitate cu familia sa. Deci, dacă aveți o provocare DevOps sau doriți să alergați: anunțați-l.
Johannes Langer este arhitect senior de soluții la AWS, lucrând cu clienții întreprinderi din Germania. Johannes este pasionat de aplicarea învățării automate pentru a rezolva probleme reale de afaceri. În viața personală, lui Johannes îi place să lucreze la proiecte de îmbunătățire a locuinței și să petreacă timp în aer liber cu familia sa.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :are
- :este
- :Unde
- $UP
- 150
- 7
- a
- Capabil
- Despre Noi
- Conform
- Cont
- precizie
- curent
- adăuga
- plus
- Suplimentar
- avansa
- După
- împotriva
- Agent
- TOATE
- permite
- permite
- deja
- de asemenea
- mereu
- Amazon
- Amazon EC2
- Amazon Web Services
- ambițios
- an
- și
- O alta
- Orice
- api
- aplicație
- aplicatii
- Aplică
- Aplicarea
- arhitectură
- SUNT
- AS
- deoparte
- At
- automatizarea
- Automata
- automate
- în mod automat
- Automatizare
- departe
- AWS
- AWS IoT Greengrass
- înapoi
- Lățime de bandă
- BE
- deoarece
- deveni
- fost
- înainte
- Început
- in afara de asta
- între
- Dincolo de
- Mare
- bloguri
- atât
- mai larg
- agent
- construi
- Clădire
- construit
- construit-in
- pachet
- afaceri
- dar
- by
- apeluri
- aparat foto
- CAN
- capacități
- pasă
- masini
- caz
- cazuri
- contesta
- provocări
- si-a schimbat hainele;
- verifica
- control
- client
- Cloud
- cod
- Cafea
- cum
- Comun
- comunica
- Comunicare
- comparație
- complex
- component
- componente
- Calcula
- încrezător
- Configuraţie
- Suport conectare
- consecutiv
- Consoleze
- constrângeri
- conține
- conţinut
- Nucleu
- software de bază
- Corespunzător
- A costat
- crea
- Crearea
- personalizat
- clienţii care
- de date
- Pregătirea datelor
- decide
- dedicat
- Mai adânc
- defini
- definit
- defineste
- definiție
- livrarea
- livrare
- Dependent/ă
- implementa
- dislocate
- Implementarea
- desfășurarea
- implementări
- Amenajări
- detaliu
- detalii
- detecta
- detectat
- dezvoltat
- Dezvoltator
- Dezvoltare
- dispozitiv
- Dispozitive
- diferit
- discuta
- discutat
- împărțit
- do
- Dont
- jos
- două
- în timpul
- fiecare
- mai ușor
- cu ușurință
- Margine
- eficient
- eficient
- efort
- oricare
- încastra
- criptare
- un capăt la altul
- Motor
- inginer
- asigura
- Afacere
- Întreg
- Mediu inconjurator
- mai ales
- evaluat
- Chiar
- exemplu
- familie
- departe
- Modă
- defect
- DESCRIERE
- simţi
- puțini
- Fișier
- potrivi
- Concentra
- următor
- urmează
- Pentru
- formă
- format
- Gratuit
- din
- complet
- funcții
- mai mult
- genera
- Germania
- Go
- bine
- unități de procesare grafică
- grafic
- manipula
- sa întâmplat
- Piese metalice
- Avea
- înălțime
- ajută
- aici
- Înalt
- la nivel înalt
- -l
- lui
- Acasă
- Cum
- Cum Pentru a
- Totuși
- HTML
- http
- HTTPS
- if
- imagine
- imagini
- punerea în aplicare a
- implementarea
- implementat
- important
- îmbunătățire
- in
- inclus
- include
- Inclusiv
- Intrare
- Crește
- independent
- industrial
- Infrastructură
- intrare
- instala
- Instalarea
- instanță
- integra
- integreaza
- integrare
- integrările
- interacţiona
- interesat
- Internet
- internetul Lucrurilor
- în
- IoT
- Dispozitiv IoT
- IT
- Italiană
- în sine
- jpg
- JSON
- doar
- A pastra
- Cheie
- Cunoaște
- etichetarea
- Ultimele
- învăţare
- lăsa
- Viaţă
- ca
- Limitat
- Linie
- trăi
- încărca
- încărcare
- local
- situat
- logare
- logică
- Uite
- uitat
- care pierde
- Lot
- maşină
- masina de învățare
- face
- Efectuarea
- administra
- gestionate
- administrare
- de fabricaţie
- mecanism
- Memorie
- mesaje
- metal
- Michael
- ML
- MLOps
- model
- Modele
- modular
- Module
- Module
- mai mult
- cele mai multe
- multiplu
- nativ
- Natură
- Nevoie
- nevoilor
- Nou
- următor
- Nu.
- obiect
- of
- promoții
- de multe ori
- on
- open-source
- optimizate
- or
- orchestrație
- Altele
- al nostru
- afară
- în aer liber
- global
- pachet
- ambalaje
- parte
- piese
- pasiune
- pasionat
- Model
- pentru
- personal
- conducte
- platformă
- Platforme
- Plato
- Informații despre date Platon
- PlatoData
- "vă rog"
- Punct
- puncte
- portabilitate
- posibil
- Post
- puternic
- practică
- prezicere
- Predictii
- pregătire
- Pregăti
- pregătit
- pregătirea
- privat
- probleme
- proces
- prelucrare
- produce
- producere
- proiect
- Proiecte
- prevăzut
- furnizează
- public
- scopuri
- pune
- Piton
- Q & A
- calitate
- Întrebări
- Rapid
- repede
- Citeste
- real
- recapitula
- recomanda
- reduce
- reduce
- trimite
- cu privire la
- înregistrată
- relativ
- încredere
- de încredere
- scoate
- eliminarea
- repetabil
- înlocuiește
- necesita
- necesar
- Cerinţe
- resursă
- rezultat
- REZULTATE
- robust
- Alerga
- alergător
- funcţionare
- ruleaza
- sagemaker
- acelaşi
- scalabil
- zgâria
- secțiuni
- sigur
- în siguranță,
- vedea
- văzut
- trimitere
- senior
- serie
- serverul
- serverless
- serviciu
- Servicii
- set
- instalare
- configurarea
- Distribuie
- să
- Arăta
- a arătat
- Emisiuni
- teren
- Mărimea
- mic
- So
- Software
- soluţie
- soluţii
- REZOLVAREA
- unele
- specific
- viteză
- Cheltuire
- Sportul
- Pornire
- începe
- Stat
- Pas
- paşi
- simplu
- curent
- ulterior
- astfel de
- De sprijin
- sistem
- aborda
- ia
- luare
- Ţintă
- sarcini
- tehnici de
- Tehnologia
- termeni
- test
- acea
- Statul
- lor
- Lor
- apoi
- Acestea
- lucruri
- acest
- aceste
- trei
- în trei pași
- Prin
- timp
- la
- împreună
- subiect
- subiecte
- trasabile
- dresat
- Pregătire
- transfer
- Două
- tipic
- unic
- Se încarcă
- us
- utilizare
- carcasa de utilizare
- utilizat
- folosind
- VALIDA
- valoare
- Verificare
- foarte
- de
- vrea
- Cale..
- modalități de
- we
- web
- servicii web
- BINE
- cand
- care
- întreg
- lățime
- cu
- în
- fără
- Apartamente
- a lucrat
- flux de lucru
- de lucru
- ar
- X
- încă
- Tu
- Ta
- zephyrnet