Dit is deel 3 van onze serie waarin we een MLOps-pijplijn ontwerpen en implementeren voor visuele kwaliteitsinspectie aan de rand. In dit bericht concentreren we ons op het automatiseren van het edge-implementatiegedeelte van de end-to-end MLOps-pijplijn. Wij laten u zien hoe u het kunt gebruiken AWS IoT Greengrass om modelinferentie aan de rand te beheren en hoe u het proces kunt automatiseren met behulp van AWS Stap Functies en andere AWS-services.
Overzicht oplossingen
In Deel 1 van deze serie hebben we een architectuur ontworpen voor onze end-to-end MLOps-pijplijn die het volledige machine learning-proces (ML) automatiseert, van het labelen van gegevens tot modeltraining en implementatie aan de edge. In Deel 2, hebben we laten zien hoe u de label- en modeltrainingsonderdelen van de pijplijn kunt automatiseren.
De voorbeeldtoepassing die voor deze serie wordt gebruikt, is een oplossing voor visuele kwaliteitsinspectie die defecten op metalen tags kan detecteren, die u kunt inzetten als onderdeel van een productieproces. Het volgende diagram toont de architectuur op hoog niveau van de MLOps-pijplijn die we aan het begin van deze serie hebben gedefinieerd. Als je het nog niet hebt gelezen, raden we je aan om het eens te bekijken Deel 1.
Automatisering van de edge-implementatie van een ML-model
Nadat een ML-model is getraind en geëvalueerd, moet het worden geïmplementeerd in een productiesysteem om bedrijfswaarde te genereren door voorspellingen te doen over binnenkomende gegevens. Dit proces kan snel complex worden in een edge-omgeving waar modellen moeten worden geïmplementeerd en uitgevoerd op apparaten die zich vaak ver weg bevinden van de cloudomgeving waarin de modellen zijn getraind. Hier volgen enkele van de uitdagingen die uniek zijn voor machine learning aan de edge:
- ML-modellen moeten vaak worden geoptimaliseerd vanwege resourcebeperkingen op edge-apparaten
- Edge-apparaten kunnen niet opnieuw worden ingezet of zelfs maar worden vervangen zoals een server in de cloud, dus u hebt een robuust modelimplementatie- en apparaatbeheerproces nodig
- De communicatie tussen apparaten en de cloud moet efficiënt en veilig zijn, omdat deze vaak via onbetrouwbare netwerken met een lage bandbreedte loopt
Laten we eens kijken hoe we deze uitdagingen kunnen aanpakken met AWS-services, naast het exporteren van het model in het ONNX-formaat, waardoor we bijvoorbeeld optimalisaties zoals kwantisering kunnen toepassen om de modelgrootte voor beperkingsapparaten te verkleinen. ONNX biedt ook geoptimaliseerde runtimes voor de meest voorkomende edge-hardwareplatforms.
Om het edge-implementatieproces op te splitsen, hebben we twee componenten nodig:
- Een implementatiemechanisme voor de levering van het model, dat het model zelf omvat en een aantal bedrijfslogica voor het beheren van en communiceren met het model
- Een workflow-engine die het hele proces kan orkestreren om dit robuust en herhaalbaar te maken
In dit voorbeeld gebruiken we verschillende AWS-services om ons geautomatiseerde edge-implementatiemechanisme te bouwen, dat alle vereiste componenten integreert die we hebben besproken.
Ten eerste simuleren we een edge-apparaat. Om het voor u eenvoudig te maken om de end-to-end workflow te doorlopen, gebruiken we een Amazon Elastic Compute-cloud (Amazon EC2)-instantie om een edge-apparaat te simuleren door de AWS IoT Greengrass Core-software op de instantie te installeren. U kunt EC2-instanties ook gebruiken om de verschillende componenten in een QA-proces te valideren voordat u deze implementeert op een daadwerkelijk edge-productieapparaat. AWS IoT Greengrass is een Internet of Things (IoT) open-source edge runtime- en cloudservice waarmee u edge-apparaatsoftware kunt bouwen, implementeren en beheren. AWS IoT Greengrass vermindert de moeite om edge-apparaatsoftware op een veilige en schaalbare manier te bouwen, implementeren en beheren. Nadat u de AWS IoT Greengrass Core-software op uw apparaat hebt geïnstalleerd, kunt u functies en componenten toevoegen of verwijderen en uw IoT-apparaattoepassingen beheren met AWS IoT Greengrass. Het biedt veel ingebouwde componenten om uw leven gemakkelijker te maken, zoals de StreamManager- en MQTT-brokercomponenten, waarmee u veilig met de cloud kunt communiceren en end-to-end-codering ondersteunt. U kunt deze functies gebruiken om gevolgtrekkingsresultaten en afbeeldingen efficiënt te uploaden.
In een productieomgeving heb je doorgaans een industriële camera die beelden levert waarvoor het ML-model voorspellingen moet doen. Voor onze installatie simuleren we deze afbeeldingsinvoer door een voorinstelling van afbeeldingen te uploaden naar een specifieke map op het edge-apparaat. Vervolgens gebruiken we deze afbeeldingen als gevolgtrekkinginvoer voor het model.
We hebben het algehele implementatie- en gevolgtrekkingsproces opgedeeld in drie opeenvolgende stappen om een in de cloud getraind ML-model in een edge-omgeving te implementeren en te gebruiken voor voorspellingen:
- Voorbereiden – Verpak het getrainde model voor edge-implementatie.
- Implementeren – Overdracht van model- en gevolgtrekkingscomponenten van de cloud naar het edge-apparaat.
- Gevolgtrekking – Laad het model en voer gevolgtrekkingscode uit voor beeldvoorspellingen.
Het volgende architectuurdiagram toont de details van dit driestapsproces en hoe we het hebben geïmplementeerd met AWS-services.
In de volgende secties bespreken we de details voor elke stap en laten we zien hoe dit proces kan worden ingebed in een geautomatiseerde en herhaalbare orkestratie en CI/CD-workflow voor zowel de ML-modellen als de bijbehorende inferentiecode.
Voorbereiden
Edge-apparaten worden vaak geleverd met beperkte rekenkracht en geheugen in vergelijking met een cloudomgeving waar krachtige CPU's en GPU's gemakkelijk ML-modellen kunnen uitvoeren. Met verschillende modeloptimalisatietechnieken kunt u een model afstemmen op een specifiek software- of hardwareplatform om de voorspellingssnelheid te verhogen zonder de nauwkeurigheid te verliezen.
In dit voorbeeld hebben we het getrainde model in de trainingspijplijn geëxporteerd naar het ONNX-formaat voor draagbaarheid, mogelijke optimalisaties en geoptimaliseerde edge-runtimes, en het model geregistreerd binnen Amazon SageMaker-modelregister. In deze stap creëren we een nieuwe Greengrass-modelcomponent inclusief het laatst geregistreerde model voor latere implementatie.
Implementeren
Een veilig en betrouwbaar implementatiemechanisme is van cruciaal belang bij de implementatie van een model vanuit de cloud naar een edge-apparaat. Omdat AWS IoT Greengrass al een robuust en veilig edge-implementatiesysteem bevat, gebruiken we dit voor onze implementatiedoeleinden. Voordat we ons implementatieproces in detail bekijken, laten we een korte samenvatting geven van hoe AWS IoT Greengrass-implementaties werken. De kern van het AWS IoT Greengrass-implementatiesysteem zijn componenten, die de softwaremodules definiëren die zijn geïmplementeerd op een edge-apparaat met AWS IoT Greengrass Core. Dit kunnen particuliere componenten zijn die u bouwt, of openbare componenten die door u worden geleverd AWS of de bredere Greengrass-gemeenschap. Meerdere componenten kunnen worden gebundeld als onderdeel van een implementatie. Een implementatieconfiguratie definieert de componenten die deel uitmaken van een implementatie en de doelapparaten van de implementatie. Het kan worden gedefinieerd in een implementatieconfiguratiebestand (JSON) of via de AWS IoT Greengrass-console bij het maken van een nieuwe implementatie.
We creëren de volgende twee Greengrass-componenten, die vervolgens via het implementatieproces op het edge-apparaat worden geïmplementeerd:
- Verpakt model (privécomponent) – Deze component bevat het getrainde en ML-model in ONNX-formaat.
- Inferentiecode (privécomponent) – Naast het ML-model zelf moeten we een aantal applicatielogica implementeren om taken uit te voeren zoals gegevensvoorbereiding, communicatie met het model voor inferentie en naverwerking van inferentieresultaten. In ons voorbeeld hebben we een op Python gebaseerde privécomponent ontwikkeld om de volgende taken uit te voeren:
- Installeer de vereiste runtime-componenten zoals het Ultralytics YOLOv8 Python-pakket.
- In plaats van beelden uit een livestream van een camera te nemen, simuleren we dit door voorbereide beelden uit een specifieke map te laden en de beeldgegevens voor te bereiden volgens de invoervereisten van het model.
- Maak gevolgtrekkingsaanroepen tegen het geladen model met de voorbereide afbeeldingsgegevens.
- Controleer de voorspellingen en upload de gevolgtrekkingsresultaten terug naar de cloud.
Als je dieper wilt kijken naar de gevolgtrekkingscode die we hebben gemaakt, raadpleeg dan de GitHub repo.
Gevolgtrekking
Het modelinferentieproces op het edge-apparaat start automatisch nadat de implementatie van de bovengenoemde componenten is voltooid. De aangepaste inferentiecomponent voert periodiek het ML-model uit met afbeeldingen uit een lokale map. Het gevolgtrekkingsresultaat per afbeelding dat uit het model wordt geretourneerd, is een tensor met de volgende inhoud:
- Vertrouwen scoort – Hoe zeker het model is over de detecties
- Objectcoördinaten – De coördinaten van het krasobject (x, y, breedte, hoogte) gedetecteerd door het model in de afbeelding
In ons geval zorgt de inferentiecomponent voor het verzenden van inferentieresultaten naar een specifiek MQTT-onderwerp op AWS IoT, waar het kan worden gelezen voor verdere verwerking. Deze berichten kunnen worden bekeken via de MQTT-testclient op de AWS IoT-console voor foutopsporing. In een productieomgeving kunt u ervoor kiezen om automatisch een ander systeem op de hoogte te stellen dat ervoor zorgt dat defecte metalen tags uit de productielijn worden verwijderd.
orkestratie
Zoals u in de voorgaande secties hebt gezien, zijn er meerdere stappen vereist om een ML-model, de bijbehorende gevolgtrekkingscode en de vereiste runtime of agent op een edge-apparaat voor te bereiden en te implementeren. Step Functions is een volledig beheerde service waarmee u deze specifieke stappen kunt orkestreren en de workflow kunt ontwerpen in de vorm van een statusmachine. Dankzij het serverloze karakter van deze service en de native Step Functions-mogelijkheden, zoals API-integraties van de AWS-service, kunt u deze workflow snel instellen. Ingebouwde mogelijkheden zoals nieuwe pogingen of logboekregistratie zijn belangrijke punten bij het bouwen van robuuste orkestraties. Voor meer details over de statusmachinedefinitie zelf raadpleegt u de GitHub-repository of bekijk de statusmachinegrafiek op de Step Functions-console nadat u dit voorbeeld in uw account heeft geïmplementeerd.
Infrastructuurimplementatie en integratie in CI/CD
De CI/CD-pijplijn voor het integreren en bouwen van alle vereiste infrastructuurcomponenten volgt hetzelfde patroon als geïllustreerd in Deel 1 van deze serie. Wij gebruiken de AWS Cloud-ontwikkelingskit (AWS CDK) om de vereiste pijpleidingen van te implementeren AWS CodePipeline.
Leren
Er zijn meerdere manieren om een architectuur te bouwen voor een geautomatiseerd, robuust en veilig edge-implementatiesysteem voor ML-modellen, die vaak erg afhankelijk zijn van de use case en andere vereisten. Toch willen we hier een aantal lessen met u delen:
- Evalueer vooraf of de extra AWS IoT Greengrass-rekenresourcevereisten passen bij uw situatie, vooral bij apparaten met beperkte rand.
- Breng een implementatiemechanisme tot stand dat een verificatiestap van de geïmplementeerde artefacten integreert voordat deze op het edge-apparaat wordt uitgevoerd om ervoor te zorgen dat er tijdens de verzending niet is geknoeid.
- Het is een goede gewoonte om de implementatiecomponenten op AWS IoT Greengrass zo modulair en op zichzelf staand mogelijk te houden, zodat ze onafhankelijk kunnen worden ingezet. Als u bijvoorbeeld een relatief kleine inferentiecodemodule heeft, maar een groot ML-model qua omvang, wilt u ze niet altijd allebei implementeren als alleen de inferentiecode is gewijzigd. Dit is vooral belangrijk als u beperkte bandbreedte of dure randapparaatconnectiviteit heeft.
Conclusie
Dit is de afsluiting van onze driedelige serie over het bouwen van een end-to-end MLOps-pijplijn voor visuele kwaliteitsinspectie aan de rand. We hebben gekeken naar de extra uitdagingen die gepaard gaan met de implementatie van een ML-model aan de edge, zoals modelverpakking of complexe implementatieorkestratie. We hebben de pijplijn volledig geautomatiseerd geïmplementeerd, zodat we onze modellen op een robuuste, veilige, herhaalbare en traceerbare manier in productie kunnen nemen. Voel je vrij om de architectuur en implementatie die in deze serie zijn ontwikkeld te gebruiken als uitgangspunt voor je volgende ML-project. Als u vragen heeft over hoe u een dergelijk systeem voor uw omgeving kunt ontwerpen en bouwen, neem dan contact met ons op uitreiken. Voor andere onderwerpen en gebruiksscenario's raadpleegt u onze Machine leren en IoT blogs.
Over de auteurs
Michael Roth is een Senior Solutions Architect bij AWS die productieklanten in Duitsland ondersteunt bij het oplossen van hun zakelijke uitdagingen via AWS-technologie. Naast werk en gezin is hij geïnteresseerd in sportwagens en houdt hij van Italiaanse koffie.
Jörg Wöhrle is een Solutions Architect bij AWS en werkt met productieklanten in Duitsland. Met een passie voor automatisering heeft Joerg in zijn pre-AWS-leven gewerkt als softwareontwikkelaar, DevOps-ingenieur en Site Reliability Engineer. Naast de cloud is hij een ambitieuze hardloper en geniet hij van quality time met zijn gezin. Dus heb je een DevOps uitdaging of wil je gaan hardlopen: laat het hem weten.
Johannes Langer is een Senior Solutions Architect bij AWS en werkt met zakelijke klanten in Duitsland. Johannes heeft een passie voor het toepassen van machine learning om echte bedrijfsproblemen op te lossen. In zijn persoonlijke leven werkt Johannes graag aan projecten voor woningverbetering en brengt hij graag tijd buitenshuis door met zijn gezin.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- : heeft
- :is
- :waar
- $UP
- 150
- 7
- a
- in staat
- Over
- Volgens
- Account
- nauwkeurigheid
- daadwerkelijk
- toevoegen
- toevoeging
- Extra
- bevorderen
- Na
- tegen
- Agent
- Alles
- toelaten
- toestaat
- al
- ook
- altijd
- Amazone
- Amazon EC2
- Amazon Web Services
- ambitieus
- an
- en
- Nog een
- elke
- api
- Aanvraag
- toepassingen
- Solliciteer
- Het toepassen van
- architectuur
- ZIJN
- AS
- terzijde
- At
- automatiseren
- geautomatiseerde
- automaten
- webmaster.
- Automatisering
- weg
- AWS
- AWS IoT Greengrass
- terug
- bandbreedte
- BE
- omdat
- worden
- geweest
- vaardigheden
- Begin
- behalve
- tussen
- Verder
- Groot
- blogs
- zowel
- bredere
- makelaar
- bouw
- Gebouw
- bebouwd
- ingebouwd
- gebundeld
- bedrijfsdeskundigen
- maar
- by
- oproepen
- camera
- CAN
- mogelijkheden
- verzorging
- auto's
- geval
- gevallen
- uitdagen
- uitdagingen
- veranderd
- controle
- controleren
- klant
- Cloud
- code
- Koffie
- hoe
- Gemeen
- communiceren
- Communicatie
- vergeleken
- complex
- bestanddeel
- componenten
- Berekenen
- zeker
- Configuratie
- Connectiviteit
- opeenvolgend
- troosten
- beperkingen
- bevat
- content
- Kern
- kernsoftware
- Overeenkomend
- Kosten
- en je merk te creëren
- Wij creëren
- gewoonte
- Klanten
- gegevens
- Data voorbereiding
- beslissen
- toegewijd aan
- diepere
- bepalen
- gedefinieerd
- definieert
- definitie
- het leveren van
- levering
- afhankelijk
- implementeren
- ingezet
- het inzetten
- inzet
- implementaties
- Design
- detail
- gegevens
- opsporen
- gedetecteerd
- ontwikkelde
- Ontwikkelaar
- Ontwikkeling
- apparaat
- systemen
- anders
- bespreken
- besproken
- Verdeeld
- do
- Dont
- beneden
- twee
- gedurende
- elk
- gemakkelijker
- gemakkelijk
- rand
- doeltreffend
- efficiënt
- inspanning
- beide
- insluiten
- encryptie
- eind tot eind
- Motor
- ingenieur
- verzekeren
- Enterprise
- Geheel
- Milieu
- vooral
- geëvalueerd
- Zelfs
- voorbeeld
- familie
- ver
- Mode
- defect
- Voordelen
- voelen
- weinig
- Dien in
- geschikt
- Focus
- volgend
- volgt
- Voor
- formulier
- formaat
- Gratis
- oppompen van
- geheel
- functies
- verder
- voortbrengen
- Duitsland
- Go
- goed
- GPU's
- diagram
- handvat
- gebeurd
- Hardware
- Hebben
- Hoogte
- helpt
- hier
- Hoge
- high-level
- hem
- zijn
- Home
- Hoe
- How To
- Echter
- HTML
- http
- HTTPS
- if
- beeld
- afbeeldingen
- uitvoeren
- uitvoering
- geïmplementeerd
- belangrijk
- verbetering
- in
- inclusief
- omvat
- Inclusief
- Inkomend
- Laat uw omzet
- onafhankelijk
- industrieel
- Infrastructuur
- invoer
- installeren
- installeren
- instantie
- integreren
- integreert
- integratie
- integraties
- interactie
- geïnteresseerd
- Internet
- internet van dingen
- in
- iot
- IoT-apparaat
- IT
- Italiaans
- zelf
- jpg
- json
- voor slechts
- Houden
- sleutel
- blijven
- etikettering
- laatste
- leren
- laten
- Life
- als
- Beperkt
- Lijn
- leven
- laden
- het laden
- lokaal
- gelegen
- logging
- logica
- Kijk
- keek
- kwijt te raken
- lot
- machine
- machine learning
- maken
- maken
- beheer
- beheerd
- management
- productie
- mechanisme
- Geheugen
- berichten
- metaal
- Michael
- ML
- MLops
- model
- modellen
- modulaire
- Module
- Modules
- meer
- meest
- meervoudig
- inheemse
- NATUUR
- Noodzaak
- behoeften
- New
- volgende
- geen
- object
- of
- Aanbod
- vaak
- on
- open source
- geoptimaliseerde
- or
- orkestratie
- Overige
- onze
- uit
- buiten
- totaal
- pakket
- verpakking
- deel
- onderdelen
- passie
- hartstochtelijk
- Patronen
- voor
- persoonlijk
- pijpleiding
- platform
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- dan
- punt
- punten
- draagbaarheid
- mogelijk
- Post
- krachtige
- praktijk
- voorspelling
- Voorspellingen
- voorbereiding
- Voorbereiden
- bereid
- voorbereiding
- privaat
- problemen
- verwerking
- produceren
- productie
- project
- projecten
- mits
- biedt
- publiek
- doeleinden
- zetten
- Python
- Q & A
- kwaliteit
- Contact
- Quick
- snel
- Lees
- vast
- samenvatting
- adviseren
- verminderen
- vermindert
- verwijzen
- met betrekking tot
- geregistreerd
- relatief
- betrouwbaarheid
- betrouwbaar
- verwijderen
- het verwijderen van
- herhaalbare
- vervangen
- vereisen
- nodig
- Voorwaarden
- hulpbron
- resultaat
- Resultaten
- robuust
- lopen
- loper
- lopend
- loopt
- sagemaker
- dezelfde
- schaalbare
- krassen
- secties
- beveiligen
- vast
- zien
- gezien
- verzending
- senior
- -Series
- server
- Serverless
- service
- Diensten
- reeks
- het instellen van
- setup
- Delen
- moet
- tonen
- vertoonde
- Shows
- website
- Maat
- Klein
- So
- Software
- oplossing
- Oplossingen
- OPLOSSEN
- sommige
- specifiek
- snelheid
- Uitgaven
- Sport
- Start
- starts
- Land
- Stap voor
- Stappen
- eenvoudig
- stream
- volgend
- dergelijk
- Ondersteuning
- system
- aanpakken
- neemt
- het nemen
- doelwit
- taken
- technieken
- Technologie
- termen
- proef
- dat
- De
- De Staat
- hun
- Ze
- harte
- Deze
- spullen
- dit
- die
- drie
- driestaps
- Door
- niet de tijd of
- naar
- samen
- onderwerp
- onderwerpen
- traceerbaar
- getraind
- Trainingen
- overdracht
- twee
- typisch
- unieke
- Uploaden
- us
- .
- use case
- gebruikt
- gebruik
- BEVESTIG
- waarde
- Verificatie
- zeer
- via
- willen
- Manier..
- manieren
- we
- web
- webservices
- GOED
- wanneer
- welke
- geheel
- Breedte
- Met
- binnen
- zonder
- Mijn werk
- werkte
- workflow
- werkzaam
- zou
- X
- nog
- You
- Your
- zephyrnet