Dette er del 3 af vores serie, hvor vi designer og implementerer en MLOps pipeline til visuel kvalitetsinspektion ved kanten. I dette indlæg fokuserer vi på, hvordan man automatiserer edge-implementeringsdelen af end-to-end MLOps pipeline. Vi viser dig, hvordan du bruger AWS IoT Greengrass at styre modelslutning på kanten og hvordan man automatiserer processen vha AWS-trinfunktioner og andre AWS-tjenester.
Løsningsoversigt
In del 1 af denne serie har vi lagt en arkitektur for vores end-to-end MLOps-pipeline, der automatiserer hele maskinlæringsprocessen (ML), fra datamærkning til modeltræning og implementering på kanten. I del 2, viste vi, hvordan man automatiserer mærknings- og modeltræningsdelene af pipelinen.
Eksemplet til denne serie er en visuel kvalitetsinspektionsløsning, der kan detektere defekter på metalmærker, som du kan implementere som en del af en fremstillingsproces. Følgende diagram viser højniveauarkitekturen af MLOps-pipelinen, vi definerede i begyndelsen af denne serie. Hvis du ikke har læst den endnu, anbefaler vi at tjekke ud del 1.
Automatisering af edge-implementeringen af en ML-model
Efter at en ML-model er blevet trænet og evalueret, skal den implementeres i et produktionssystem for at generere forretningsværdi ved at lave forudsigelser om indgående data. Denne proces kan hurtigt blive kompleks i en kantindstilling, hvor modeller skal implementeres og køres på enheder, der ofte er placeret langt væk fra det cloudmiljø, som modellerne er blevet trænet i. Følgende er nogle af de unikke udfordringer for maskinlæring på kanten:
- ML-modeller skal ofte optimeres på grund af ressourcebegrænsninger på edge-enheder
- Edge-enheder kan ikke geninstalleres eller endda erstattes som en server i skyen, så du har brug for en robust modelimplementering og enhedsadministrationsproces
- Kommunikation mellem enheder og skyen skal være effektiv og sikker, fordi den ofte krydser upålidelige netværk med lav båndbredde
Lad os se, hvordan vi kan tackle disse udfordringer med AWS-tjenester ud over at eksportere modellen i ONNX-formatet, hvilket giver os mulighed for for eksempel at anvende optimeringer som kvantisering for at reducere modelstørrelsen for begrænsningsenheder. ONNX leverer også optimerede kørselstider for de mest almindelige edge hardware platforme.
For at nedbryde edge-implementeringsprocessen kræver vi to komponenter:
- En implementeringsmekanisme til modelleveringen, som inkluderer selve modellen og en vis forretningslogik til at styre og interagere med modellen
- En workflow-motor, der kan orkestrere hele processen for at gøre denne robust og gentagelig
I dette eksempel bruger vi forskellige AWS-tjenester til at bygge vores automatiserede edge-implementeringsmekanisme, som integrerer alle de nødvendige komponenter, vi diskuterede.
For det første simulerer vi en kantanordning. For at gøre det ligetil for dig at gennemgå end-to-end arbejdsgangen, bruger vi en Amazon Elastic Compute Cloud (Amazon EC2) forekomst for at simulere en edge-enhed ved at installere AWS IoT Greengrass Core-softwaren på forekomsten. Du kan også bruge EC2-instanser til at validere de forskellige komponenter i en QA-proces, før de implementeres til en egentlig kantproduktionsenhed. AWS IoT Greengrass er en Internet of Things (IoT) open source edge runtime og cloud-tjeneste, der hjælper dig med at bygge, implementere og administrere edge-enhedssoftware. AWS IoT Greengrass reducerer indsatsen for at bygge, implementere og administrere edge-enhedssoftware på en sikker og skalerbar måde. Når du har installeret AWS IoT Greengrass Core-softwaren på din enhed, kan du tilføje eller fjerne funktioner og komponenter og administrere dine IoT-enhedsapplikationer ved hjælp af AWS IoT Greengrass. Det tilbyder en masse indbyggede komponenter for at gøre dit liv lettere, såsom StreamManager- og MQTT-mæglerkomponenterne, som du kan bruge til at kommunikere sikkert med skyen, der understøtter end-to-end-kryptering. Du kan bruge disse funktioner til at uploade resultater og billeder effektivt.
I et produktionsmiljø vil du typisk have et industrielt kamera, der leverer billeder, som ML-modellen skal producere forudsigelser for. Til vores opsætning simulerer vi denne billedinput ved at uploade en forudindstilling af billeder til en specifik mappe på kant-enheden. Vi bruger derefter disse billeder som slutningsinput for modellen.
Vi opdelte den overordnede implementerings- og slutningsproces i tre på hinanden følgende trin for at implementere en cloud-trænet ML-model til et edge-miljø og bruge den til forudsigelser:
- Forbered – Pak den trænede model til kant-deployering.
- Implementer – Overførsel af model- og inferenskomponenter fra skyen til edge-enheden.
- Inferens – Indlæs modellen, og kør inferenskode for billedforudsigelser.
Det følgende arkitekturdiagram viser detaljerne i denne tretrinsproces, og hvordan vi implementerede den med AWS-tjenester.
I de følgende afsnit diskuterer vi detaljerne for hvert trin og viser, hvordan man integrerer denne proces i en automatiseret og repeterbar orkestrering og CI/CD-workflow for både ML-modellerne og den tilsvarende inferenskode.
Forbered
Edge-enheder kommer ofte med begrænset databehandling og hukommelse sammenlignet med et cloudmiljø, hvor kraftfulde CPU'er og GPU'er nemt kan køre ML-modeller. Forskellige modeloptimeringsteknikker giver dig mulighed for at skræddersy en model til en specifik software- eller hardwareplatform for at øge forudsigelseshastigheden uden at miste nøjagtigheden.
I dette eksempel eksporterede vi den trænede model i træningspipelinen til ONNX-formatet for portabilitet, mulige optimeringer samt optimerede edge runtimes og registrerede modellen indenfor Amazon SageMaker Model Registry. I dette trin opretter vi en ny Greengrass-modelkomponent inklusive den seneste registrerede model til efterfølgende implementering.
Implementer
En sikker og pålidelig implementeringsmekanisme er nøglen, når du implementerer en model fra skyen til en edge-enhed. Fordi AWS IoT Greengrass allerede inkorporerer et robust og sikkert edge-implementeringssystem, bruger vi dette til vores implementeringsformål. Før vi ser nærmere på vores implementeringsproces, lad os lave en hurtig opsummering af, hvordan AWS IoT Greengrass-implementeringer fungerer. Kernen i AWS IoT Greengrass-implementeringssystemet er komponenter, som definerer softwaremodulerne, der er implementeret til en edge-enhed, der kører AWS IoT Greengrass Core. Disse kan enten være private komponenter, som du bygger eller offentlige komponenter, som enten leveres af AWS eller det bredere Greengrass samfund. Flere komponenter kan samles som en del af en implementering. En implementeringskonfiguration definerer de komponenter, der er inkluderet i en implementering, og implementeringens målenheder. Det kan enten defineres i en implementeringskonfigurationsfil (JSON) eller via AWS IoT Greengrass-konsollen, når du opretter en ny implementering.
Vi opretter følgende to Greengrass-komponenter, som derefter implementeres til edge-enheden via implementeringsprocessen:
- Pakket model (privat komponent) – Denne komponent indeholder den trænede og ML-model i ONNX-format.
- Inferenskode (privat komponent) – Bortset fra selve ML-modellen er vi nødt til at implementere noget applikationslogik til at håndtere opgaver som dataforberedelse, kommunikation med modellen for inferens og efterbehandling af inferensresultater. I vores eksempel har vi udviklet en Python-baseret privat komponent til at håndtere følgende opgaver:
- Installer de nødvendige runtime-komponenter som Ultralytics YOLOv8 Python-pakken.
- I stedet for at tage billeder fra en kamera-livestream, simulerer vi dette ved at indlæse forberedte billeder fra en specifik mappe og forberede billeddataene i henhold til modellens inputkrav.
- Foretag slutningsopkald mod den indlæste model med de forberedte billeddata.
- Tjek forudsigelserne, og upload slutningsresultater tilbage til skyen.
Hvis du vil have et dybere kig på den inferenskode, vi har bygget, skal du se GitHub repo.
Inferens
Modelslutningsprocessen på edge-enheden starter automatisk efter implementeringen af de førnævnte komponenter er afsluttet. Den tilpassede inferenskomponent kører med jævne mellemrum ML-modellen med billeder fra en lokal mappe. Inferensresultatet pr. billede returneret fra modellen er en tensor med følgende indhold:
- Tillid scorer – Hvor sikker modellen er med hensyn til detektionerne
- Objektkoordinater – Ridseobjektets koordinater (x, y, bredde, højde) registreret af modellen på billedet
I vores tilfælde sørger inferenskomponenten for at sende inferensresultater til et specifikt MQTT-emne på AWS IoT, hvor det kan læses til videre behandling. Disse meddelelser kan ses via MQTT-testklienten på AWS IoT-konsollen til fejlretning. I en produktionsindstilling kan du beslutte dig for automatisk at underrette et andet system, der tager sig af at fjerne defekte metalmærker fra produktionslinjen.
Orchestration
Som det fremgår af de foregående afsnit, kræves der flere trin for at forberede og implementere en ML-model, den tilsvarende slutningskode og den nødvendige kørselstid eller agent til en edge-enhed. Step Functions er en fuldt administreret tjeneste, der giver dig mulighed for at orkestrere disse dedikerede trin og designe arbejdsgangen i form af en tilstandsmaskine. Denne services serverløse karakter og indbyggede Step Functions-funktioner som AWS service API-integrationer giver dig mulighed for hurtigt at konfigurere denne arbejdsgang. Indbyggede funktioner som genforsøg eller logning er vigtige punkter for at opbygge robuste orkestreringer. For flere detaljer om selve tilstandsmaskinens definition henvises til GitHub repository eller tjek tilstandsmaskinens graf på Trinfunktionskonsollen, efter du har implementeret dette eksempel på din konto.
Infrastrukturimplementering og integration i CI/CD
CI/CD-pipelinen til at integrere og bygge alle de nødvendige infrastrukturkomponenter følger det samme mønster, som er illustreret i del 1 af denne serie. Vi bruger AWS Cloud Development Kit (AWS CDK) til at implementere de nødvendige pipelines fra AWS CodePipeline.
Læring
Der er flere måder at opbygge en arkitektur for et automatiseret, robust og sikkert ML model edge-implementeringssystem, som ofte er meget afhængige af use case og andre krav. Men her er et par erfaringer, vi gerne vil dele med dig:
- Vurder på forhånd, hvis den yderligere Krav til AWS IoT Greengrass beregningsressourcer passer til dit etui, især med enheder med begrænset kant.
- Etabler en implementeringsmekanisme, der integrerer et verifikationstrin af de implementerede artefakter, før de kører på kantenheden for at sikre, at der ikke er manipuleret under transmissionen.
- Det er god praksis at holde implementeringskomponenterne på AWS IoT Greengrass så modulære og selvstændige som muligt for at kunne implementere dem uafhængigt. For eksempel, hvis du har et relativt lille inferenskodemodul, men en stor ML-model med hensyn til størrelse, ønsker du ikke altid at implementere dem begge, hvis bare inferenskoden er ændret. Dette er især vigtigt, når du har begrænset båndbredde eller højomkostnings-enhedsforbindelse.
Konklusion
Dette afslutter vores tredelte serie om at bygge en ende-til-ende MLOps-pipeline til visuel kvalitetsinspektion ved kanten. Vi så på de yderligere udfordringer, der følger med at implementere en ML-model på kanten som modelpakning eller kompleks implementeringsorkestrering. Vi implementerede pipelinen på en fuldautomatisk måde, så vi kan sætte vores modeller i produktion på en robust, sikker, gentagelig og sporbar måde. Du er velkommen til at bruge arkitekturen og implementeringen udviklet i denne serie som udgangspunkt for dit næste ML-aktiverede projekt. Hvis du har spørgsmål til, hvordan man arkitekter og bygger et sådant system til dit miljø, så tak række ud. For andre emner og use cases henvises til vores Maskinelæring , IoT blogs.
Om forfatterne
Michael Roth er en Senior Solutions Architect hos AWS, der støtter produktionskunder i Tyskland med at løse deres forretningsudfordringer gennem AWS-teknologi. Udover arbejde og familie er han interesseret i sportsvogne og nyder italiensk kaffe.
Jörg Wöhrle er Solutions Architect hos AWS, der arbejder med produktionskunder i Tyskland. Med en passion for automatisering har Joerg arbejdet som softwareudvikler, DevOps-ingeniør og Site Reliability Engineer i sit liv før AWS. Ud over skyen er han en ambitiøs løber og nyder kvalitetstid med sin familie. Så hvis du har en DevOps-udfordring eller ønsker at løbe: lad ham det vide.
Johannes Langer er Senior Solutions Architect hos AWS, der arbejder med virksomhedskunder i Tyskland. Johannes brænder for at anvende machine learning til at løse reelle forretningsproblemer. I sit personlige liv nyder Johannes at arbejde på boligforbedringsprojekter og tilbringe tid udendørs med sin familie.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :har
- :er
- :hvor
- $OP
- 150
- 7
- a
- I stand
- Om
- Ifølge
- Konto
- nøjagtighed
- faktiske
- tilføje
- Desuden
- Yderligere
- fremme
- Efter
- mod
- Agent
- Alle
- tillade
- tillader
- allerede
- også
- altid
- Amazon
- Amazon EC2
- Amazon Web Services
- ambitiøst
- an
- ,
- En anden
- enhver
- api
- Anvendelse
- applikationer
- Indløs
- Anvendelse
- arkitektur
- ER
- AS
- side
- At
- automatisere
- Automatiseret
- automater
- automatisk
- Automation
- væk
- AWS
- AWS IoT Greengrass
- tilbage
- båndbredde
- BE
- fordi
- bliver
- været
- før
- Begyndelse
- udover
- mellem
- Beyond
- Big
- blogs
- både
- bredere
- mægler
- bygge
- Bygning
- bygget
- indbygget
- bundtet
- virksomhed
- men
- by
- Opkald
- værelse
- CAN
- kapaciteter
- hvilken
- biler
- tilfælde
- tilfælde
- udfordre
- udfordringer
- ændret
- kontrollere
- kontrol
- kunde
- Cloud
- kode
- Kaffe
- Kom
- Fælles
- kommunikere
- Kommunikation
- sammenlignet
- komplekse
- komponent
- komponenter
- Compute
- sikker
- Konfiguration
- Connectivity
- træk
- Konsol
- begrænsninger
- indeholder
- indhold
- Core
- kernesoftware
- Tilsvarende
- Koste
- skabe
- Oprettelse af
- skik
- Kunder
- data
- Dataforberedelse
- beslutte
- dedikeret
- dybere
- definere
- definerede
- definerer
- definition
- leverer
- levering
- afhængig
- indsætte
- indsat
- implementering
- implementering
- implementeringer
- Design
- detail
- detaljer
- opdage
- opdaget
- udviklet
- Udvikler
- Udvikling
- enhed
- Enheder
- forskellige
- diskutere
- drøftet
- Divided
- do
- Dont
- ned
- grund
- i løbet af
- hver
- lettere
- nemt
- Edge
- effektiv
- effektivt
- indsats
- enten
- Integrer
- kryptering
- ende til ende
- Engine (Motor)
- ingeniør
- sikre
- Enterprise
- Hele
- Miljø
- især
- evalueret
- Endog
- eksempel
- familie
- langt
- Mode
- defekt
- Funktionalitet
- føler sig
- få
- File (Felt)
- passer
- Fokus
- efter
- følger
- Til
- formular
- format
- Gratis
- fra
- fuldt ud
- funktioner
- yderligere
- generere
- Tyskland
- Go
- godt
- GPU'er
- graf
- håndtere
- skete
- Hardware
- Have
- højde
- hjælper
- link.
- Høj
- højt niveau
- ham
- hans
- Home
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- if
- billede
- billeder
- gennemføre
- implementering
- implementeret
- vigtigt
- in
- medtaget
- omfatter
- Herunder
- Indgående
- Forøg
- uafhængigt
- industrielle
- Infrastruktur
- indgang
- installere
- installation
- instans
- integrere
- Integrerer
- integration
- integrationer
- interagere
- interesseret
- Internet
- tingenes internet
- ind
- tingenes internet
- IoT-enhed
- IT
- italiensk
- selv
- jpg
- json
- lige
- Holde
- Nøgle
- Kend
- mærkning
- seneste
- læring
- lad
- Livet
- ligesom
- Limited
- Line (linje)
- leve
- belastning
- lastning
- lokale
- placeret
- logning
- logik
- Se
- kiggede
- miste
- Lot
- maskine
- machine learning
- lave
- Making
- administrere
- lykkedes
- ledelse
- Produktion
- mekanisme
- Hukommelse
- beskeder
- metal
- Michael
- ML
- MLOps
- model
- modeller
- modulær
- Moduler
- Moduler
- mere
- mest
- flere
- indfødte
- Natur
- Behov
- behov
- Ny
- næste
- ingen
- objekt
- of
- Tilbud
- tit
- on
- open source
- optimeret
- or
- orkestrering
- Andet
- vores
- ud
- udendørs
- samlet
- pakke
- emballage
- del
- dele
- lidenskab
- lidenskabelige
- Mønster
- per
- personale
- pipeline
- perron
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- Vær venlig
- Punkt
- punkter
- bærbarhed
- mulig
- Indlæg
- vigtigste
- praksis
- forudsigelse
- Forudsigelser
- forberedelse
- Forbered
- forberedt
- forberede
- private
- problemer
- behandle
- forarbejdning
- producere
- produktion
- projekt
- projekter
- forudsat
- giver
- offentlige
- formål
- sætte
- Python
- Spørgsmål og svar
- kvalitet
- Spørgsmål
- Hurtig
- hurtigt
- Læs
- ægte
- resumé
- anbefaler
- reducere
- reducerer
- henvise
- om
- registreret
- relativt
- pålidelighed
- pålidelig
- Fjern
- fjernelse
- gentagelig
- udskiftes
- kræver
- påkrævet
- Krav
- ressource
- resultere
- Resultater
- robust
- Kør
- runner
- kører
- løber
- sagemaker
- samme
- skalerbar
- ridse
- sektioner
- sikker
- sikkert
- se
- set
- afsendelse
- senior
- Series
- server
- Serverless
- tjeneste
- Tjenester
- sæt
- indstilling
- setup
- Del
- bør
- Vis
- viste
- Shows
- websted
- Størrelse
- lille
- So
- Software
- løsninger
- Løsninger
- SOLVE
- nogle
- specifikke
- hastighed
- udgifterne
- Sport
- Starter
- starter
- Tilstand
- Trin
- Steps
- ligetil
- strøm
- efterfølgende
- sådan
- Støtte
- systemet
- tackle
- tager
- tager
- mål
- opgaver
- teknikker
- Teknologier
- vilkår
- prøve
- at
- Staten
- deres
- Them
- derefter
- Disse
- ting
- denne
- dem
- tre
- tre-trins
- Gennem
- tid
- til
- sammen
- emne
- Emner
- sporbar
- uddannet
- Kurser
- overførsel
- to
- typisk
- enestående
- Uploading
- us
- brug
- brug tilfælde
- anvendte
- ved brug af
- VALIDATE
- værdi
- Verifikation
- meget
- via
- ønsker
- Vej..
- måder
- we
- web
- webservices
- GODT
- hvornår
- som
- Hele
- bredde
- med
- inden for
- uden
- Arbejde
- arbejdede
- workflow
- arbejder
- ville
- X
- endnu
- Du
- Din
- zephyrnet