Du kan använda AWS Snowball Edge enheter på platser som kryssningsfartyg, oljeriggar och fabriksgolv med begränsad eller ingen nätverksanslutning för ett brett utbud av maskininlärningsapplikationer (ML) som övervakning, ansiktsigenkänning och industriell inspektion. Men med tanke på dessa enheters avlägsna och frånkopplade karaktär är det ofta svårt att distribuera och hantera ML-modeller vid kanten. Med AWS IoT Greengrass och Amazon SageMaker Edge Manager, kan du utföra ML-inferens på lokalt genererad data på Snowball Edge-enheter med hjälp av molntränade ML-modeller. Du drar inte bara nytta av den låga latensen och kostnadsbesparingarna med att köra lokal slutledning, utan minskar också tiden och ansträngningen som krävs för att få ML-modeller i produktion. Du kan göra allt detta samtidigt som du kontinuerligt övervakar och förbättrar modellkvaliteten i din Snowball Edge-enhetsflotta.
I det här inlägget pratar vi om hur du kan använda AWS IoT Greengrass version 2.0 eller högre och Edge Manager för att optimera, säkra, övervaka och underhålla en enkel TensorFlow-klassificeringsmodell för att klassificera fraktcontainrar (connex) och människor.
Komma igång
För att komma igång, beställ en Snowball Edge-enhet (för mer information, se Skapa ett AWS Snowball Edge Job). Du kan beställa en Snowball Edge-enhet med en AWS IoT Greengrass-validerad AMI på.
När du har tagit emot enheten kan du använda AWS OpsHub för Snow Family eller Snowball Edge klient för att låsa upp enheten. Du kan starta en Amazon Elastic Compute Cloud (Amazon EC2)-instans med den senaste AWS IoT Greengrass installerad eller använd kommandona på AWS OpsHub för Snow Family.
Starta och installera en AMI med följande krav, eller tillhandahåll en AMI-referens på Snowball-konsolen innan du beställer och den kommer att levereras med alla bibliotek och data i AMI:
- ML-ramverket som du väljer, såsom TensorFlow, PyTorch eller MXNet
- Docker (om du tänker använda den)
- AWS IoT Greengrass
- Eventuella andra bibliotek du kan behöva
Förbered AMI när du beställer Snowball Edge-enheten på AWS Snow Family-konsolen. För instruktioner, se Använder Amazon EC2 Compute Instances. Du har också möjlighet att uppdatera AMI efter att Snowball har distribuerats till din kantplats.
Installera den senaste AWS IoT Greengrass på Snowball Edge
För att installera AWS IoT Greengrass på din enhet, utför följande steg:
- Installera den senaste AWS IoT Greengrass på din Snowball Edge-enhet. Se till
dev_tools=True
är inställd på att haggv2 cli
Se följande kod:
Vi hänvisar till --thing-name
du valde här när vi satte upp Edge Manager.
- Kör följande kommando för att testa din installation:
- På AWS IoT-konsolen, validera den framgångsrikt registrerade Snowball Edge-enheten med ditt AWS IoT Greengrass-konto.
Optimera ML-modeller med Edge Manager
Vi använder Edge Manger för att distribuera och hantera modellen på Snowball Edge.
- Installera Edge Manager-agenten på Snowball Edge med den senaste AWS IoT Greengrass.
- Träna och förvara din ML-modell.
Du kan träna din ML-modell med valfritt ramverk och spara den i en Amazon enkel lagringstjänst (Amazon S3) hink. I följande skärmdump använder vi TensorFlow för att träna en multi-label-modell för att klassificera anslutningar och personer i en bild. Modellen som används här sparas i en S3-bucket genom att först skapa en .tar-fil.
Efter att modellen har sparats (TensorFlow Lite i det här fallet), kan du starta en Amazon SageMaker Neo kompileringsjobb av modellen och optimera ML-modellen för Snowball Edge Compute (SBE_C
).
- På SageMaker-konsolen, under Slutledning välj i navigeringsfönstret Sammanställningsjobb.
- Välja Skapa kompileringsjobb.
- Ge ditt jobb ett namn och skapa eller använd en befintlig roll.
Om du skapar en ny AWS identitets- och åtkomsthantering (IAM) roll, se till att SageMaker har tillgång till hinken där modellen är sparad.
- I Ingångskonfiguration avsnitt, för Placering av modellartefakter, ange sökvägen till
model.tar.gz
där du sparade filen (i det här fallet,s3://feidemo/tfconnexmodel/connexmodel.tar.gz
). - För Datainmatningskonfiguration, ange ML-modellens indatalager (dess namn och dess form). I det här fallet kallas det
keras_layer_input
och dess form är [1,224,224,3], så vi går in{“keras_layer_input”:[1,224,224,3]}
.
- För Ramverk för maskininlärningväljer TFLite.
- För Målenhetväljer sbe_c.
- Lämna Kompilatoralternativ
- För S3 Utgångsplats, ange samma plats som där din modell är sparad med prefixet (mapp)
output
. Till exempel går vi ins3://feidemo/tfconnexmodel/output
.
- Välja Skicka för att starta sammanställningsjobbet.
Nu skapar du ett modelldistributionspaket som ska användas av Edge Manager.
- På SageMaker-konsolen, under Edge Managerväljer Kantförpackningsjobb.
- Välja Skapa Edge-paketeringsjobb.
- I Arbetsegenskaper sektionen, ange jobbdetaljerna.
- I Modellkälla avsnitt, för Namn på kompileringsjobb, ange namnet du angav för Neo-kompileringsjobbet.
- Välja Nästa.
- I Konfiguration av utdata avsnitt, för S3 hink URI, ange var du vill lagra paketet i Amazon S3.
- För Komponentnamn, ange ett namn för din AWS IoT Greengrass-komponent.
Detta steg skapar en AWS IoT Greengrass-modellkomponent där modellen laddas ner från Amazon S3 och okomprimeras till lokal lagring på Snowball Edge.
- Skapa en enhetsflotta för att hantera en grupp enheter, i det här fallet bara en (SBE).
- För IAM-roll¸ ange rollen som genererades av AWS IoT Greengrass tidigare (–tes-role-name).
Se till att den har de nödvändiga behörigheterna genom att gå till IAM-konsolen, söka efter rollen och lägga till de nödvändiga policyerna till den.
- Registrera Snowball Edge-enheten till flottan du skapade.
- I Enhetskälla sektionen anger du enhetens namn. IoT-namnet måste matcha namnet du använde tidigare – i det här fallet – saknamn MyGreengrassCore.
Du kan registrera ytterligare Snowball-enheter på SageMaker-konsolen för att lägga till dem i enhetsflottan, vilket gör att du kan gruppera och hantera dessa enheter tillsammans.
Distribuera ML-modeller till Snowball Edge med AWS IoT Greengrass
I de föregående avsnitten låste du upp och konfigurerade din Snowball Edge-enhet. ML-modellen är nu sammanställd och optimerad för prestanda på Snowball Edge. Ett Edge Manager-paket skapas med den kompilerade modellen och Snowball-enheten registreras i en flotta. I det här avsnittet tittar du på stegen som är involverade i att distribuera ML-modellen för slutledning till Snowball Edge med den senaste AWS IoT Greengrass.
Komponenter
AWS IoT Greengrass låter dig distribuera till kantenheter som en kombination av komponenter och tillhörande artefakter. Komponenter är JSON-dokument som innehåller metadata, livscykeln, vad som ska distribueras när och vad som ska installeras. Komponenter definierar också vilket operativsystem som ska användas och vilka artefakter som ska användas när de körs på olika OS-alternativ.
Artefakter
Artefakter kan vara kodfiler, modeller eller behållarbilder. Till exempel kan en komponent definieras för att installera ett pandas Python-bibliotek och köra en kodfil som kommer att transformera data, eller för att installera ett TensorFlow-bibliotek och köra modellen för slutledning. Följande är exempel på artefakter som behövs för implementering av en slutledningsprogram:
- gRPC proto och Python stubbar (detta kan vara olika beroende på din modell och ramverk)
- Python-kod för att ladda modellen och utföra slutledning
Dessa två föremål laddas upp till en S3-hink.
Distribuera komponenterna
Implementeringen behöver följande komponenter:
- Edge Manager-agent (tillgänglig i offentliga komponenter på GA)
- Modell
- Ansökan
Utför följande steg för att distribuera komponenterna:
- På AWS IoT-konsolen, under Grönt gräsväljer Komponenteroch skapa programkomponenten.
- Hitta Edge Manager-agentkomponenten i den offentliga komponentlistan och distribuera den.
- Distribuera en modellkomponent skapad av Edge Manager, som används som ett beroende i applikationskomponenten.
- Distribuera applikationskomponenten till edge-enheten genom att gå till listan över AWS IoT Greengrass-distributioner och skapa en ny implementering.
Om du har en befintlig distribution kan du revidera den för att lägga till programkomponenten.
Nu kan du testa din komponent.
- I din förutsägelse- eller slutledningskod som distribueras med applikationskomponenten, koda i logiken för att komma åt filer lokalt på Snowball Edge-enheten (till exempel i den inkommande mappen) och få förutsägelserna eller bearbetade filerna att flyttas till en bearbetad mapp.
- Logga in på enheten för att se om förutsägelserna har gjorts.
- Ställ in koden så att den körs i en loop, kontrollera den inkommande mappen för nya filer, bearbeta filerna och flytta dem till den bearbetade mappen.
Följande skärmdump är ett exempel på en uppsättning av filer före distribution i Snowball Edge.
Efter distributionen har alla testbilder intresseklasser och flyttas därför till den bearbetade mappen.
Städa upp
För att rensa upp allt eller implementera den här lösningen från början, stoppa alla EC2-instanser genom att anropa TerminateInstance
API mot EC2-kompatibla slutpunkter som körs på din Snowball Edge-enhet. För att returnera din Snowball Edge-enhet, se Stänger av snöbollskanten och Återlämna Snowball Edge-enheten.
Slutsats
Det här inlägget gick igenom hur du beställer en Snowball Edge-enhet med en AMI som du väljer. Du kompilerar sedan en modell för kanten med SageMaker, paketerar den modellen med Edge Manager och skapar och kör komponenter med artefakter för att utföra ML-inferens på Snowball Edge med den senaste AWS IoT Greengrass. Med Edge Manager kan du distribuera och uppdatera dina ML-modeller på en flotta av Snowball Edge-enheter och övervaka prestanda vid kanten med sparad indata och förutsägelsedata på Amazon S3. Du kan också köra dessa komponenter som långvariga AWS Lambda funktioner som kan snurra upp en modell och vänta på att data ska göra slutsatser.
Du kombinerar flera funktioner i AWS IoT Greengrass för att skapa en MQTT-klient och använder en pub/undermodell för att anropa andra tjänster eller mikrotjänster. Möjligheterna är oändliga.
Genom att köra ML-inferens på Snowball Edge med Edge Manager och AWS IoT Greengrass kan du optimera, säkra, övervaka och underhålla ML-modeller på flottor av Snowball Edge-enheter. Tack för att du läser och tveka inte att lämna frågor eller kommentarer i kommentarsfältet.
För att lära dig mer om AWS Snow Family, AWS IoT Greengrass och Edge Manager, kolla in följande:
Om författarna
Raj Kadiyala är en AI/ML Tech Business Development Manager i AWS WWPS Partner Organization. Raj har över 12 års erfarenhet av maskininlärning och gillar att tillbringa sin fritid med att utforska maskininlärning för praktiska vardagslösningar och att hålla sig aktiv i Colorado utomhus.
Nida Beig är Sr. Product Manager – Tech på Amazon Web Services där hon arbetar på AWS Snow Family-teamet. Hon brinner för att förstå kundernas behov och att använda teknik som en ledare för transformativt tänkande för att leverera konsumentprodukter. Förutom jobbet tycker hon om att resa, vandra och springa.
- 100
- 9
- tillgång
- Konto
- aktiv
- Annat
- Alla
- amason
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- api
- Ansökan
- tillämpningar
- AWS
- företag
- kontroll
- klassificering
- koda
- Colorado
- kommentarer
- komponent
- Compute
- dirigent
- Anslutningar
- Konsumenten
- Konsumentprodukter
- Behållare
- Behållare
- Skapa
- kryssning
- datum
- dag
- Utveckling
- enheter
- dokument
- kant
- erfarenhet
- ansiktsigenkänning
- fabrik
- familj
- Funktioner
- Förnamn
- FLOTTA
- golv
- Ramverk
- Fri
- stor
- Bra utomhus
- Grupp
- här.
- vandring
- Hur ser din drömresa ut
- How To
- HTTPS
- IAM
- Identitet
- bild
- industriell
- informationen
- intresse
- involverade
- iot
- IT
- java
- Jobb
- senaste
- LÄRA SIG
- inlärning
- Bibliotek
- Begränsad
- Lista
- läsa in
- lokal
- lokalt
- läge
- maskininlärning
- Match
- ML
- modell
- övervakning
- Navigering
- NEO
- nät
- Olja
- drift
- operativsystem
- Alternativet
- Tillbehör
- beställa
- Övriga
- utomhus
- förpackning
- partnern
- Personer
- prestanda
- Strategier
- förutsägelse
- Förutsägelser
- Produkt
- Produktion
- Produkter
- allmän
- Python
- pytorch
- kvalitet
- område
- Läsning
- minska
- Krav
- Körning
- rinnande
- sagemaker
- Tjänster
- in
- Frakt & Leverans
- fartyg
- Enkelt
- snö
- So
- Lösningar
- spendera
- Snurra
- starta
- igång
- förvaring
- lagra
- övervakning
- system
- tech
- Teknologi
- tensorflow
- testa
- Tänkande
- tid
- Uppdatering
- vänta
- webb
- webbservice
- Arbete
- fungerar
- år