Amazon SageMaker autopilot gör det möjligt för organisationer att snabbt bygga och distribuera en end-to-end maskininlärningsmodell (ML) och slutledningspipeline med bara några rader kod eller till och med utan någon kod alls med Amazon SageMaker Studio. Autopilot avlastar det tunga lyftet av att konfigurera infrastruktur och den tid det tar att bygga en hel pipeline, inklusive funktionsteknik, modellval och hyperparameterjustering.
I det här inlägget visar vi hur man går från rådata till en robust och fullt utplacerad slutledningspipeline med Autopilot.
Lösningsöversikt
Vi använder Lyfts offentliga dataset om cykeldelning för denna simulering att förutsäga om en användare deltar i eller inte Bike Share for All-programmet. Detta är ett enkelt binärt klassificeringsproblem.
Vi vill visa upp hur enkelt det är att bygga en automatiserad och realtidsinferenspipeline för att klassificera användare baserat på deras deltagande i Bike Share for All-programmet. För detta ändamål simulerar vi en end-to-end-dataintag och slutledningspipeline för ett imaginärt bikeshare-företag som är verksamt i San Francisco Bay Area.
Arkitekturen är uppdelad i två delar: intagspipeline och inferenspipeline.
Vi fokuserar i första hand på ML-pipeline i det första avsnittet av det här inlägget, och granskar dataintagspipeline i den andra delen.
Förutsättningar
För att följa detta exempel, fyll i följande förutsättningar:
- Skapa en ny SageMaker anteckningsbok-instans.
- Skapa ett Amazon Kinesis Data Firehose leveransström med en AWS Lambda omvandla funktion. För instruktioner, se Amazon Kinesis Firehose Data Transformation med AWS Lambda. Detta steg är valfritt och behövs endast för att simulera dataströmning.
Datautforskning
Låt oss ladda ner och visualisera datasetet, som är placerat i en offentlig Amazon enkel lagringstjänst (Amazon S3) hink och statisk webbplats:
Följande skärmdump visar en delmängd av data före transformation.
Den sista kolumnen av data innehåller målet vi vill förutsäga, vilket är en binär variabel som tar antingen ett Ja eller Nej-värde, vilket indikerar om användaren deltar i Bike Share for All-programmet.
Låt oss ta en titt på fördelningen av vår målvariabel för eventuell dataobalans.
Som visas i diagrammet ovan är uppgifterna obalanserade, med färre personer som deltar i programmet.
Vi måste balansera uppgifterna för att förhindra en överrepresentationsbias. Det här steget är valfritt eftersom Autopilot också erbjuder ett internt tillvägagångssätt för att hantera klassobalans automatiskt, vilket som standard är ett F1-poängvalideringsmått. Om du dessutom väljer att balansera data själv kan du använda mer avancerade tekniker för att hantera klassobalans, som t.ex. slog or GAN.
För det här inlägget nedsamplar vi majoritetsklassen (Nej) som en databalanseringsteknik:
Följande kod berikar data och undersamplar den överrepresenterade klassen:
Vi lämnade medvetet våra kategoriska funktioner inte kodade, inklusive vårt binära målvärde. Detta beror på att Autopilot tar hand om att koda och avkoda data åt oss som en del av den automatiska funktionsutvecklingen och pipeline-distributionen, som vi ser i nästa avsnitt.
Följande skärmdump visar ett exempel på vår data.
Data i följande grafer ser annars normala ut, med en bimodal fördelning som representerar de två topparna för morgontimmarna och eftermiddagsrusningen, som du kan förvänta dig. Vi observerar även låga aktiviteter på helger och nattetid.
I nästa avsnitt matar vi data till Autopilot så att den kan köra ett experiment åt oss.
Bygg en binär klassificeringsmodell
Autopilot kräver att vi anger ingångs- och utmatningsdestinationshinkarna. Den använder input-bucket för att ladda data och output-bucket för att spara artefakterna, såsom funktionsteknik och de genererade Jupyter-anteckningsböckerna. Vi behåller 5 % av datamängden för att utvärdera och validera modellens prestanda efter att utbildningen är klar och laddar upp 95 % av datasetet till S3-inmatningshinken. Se följande kod:
När vi laddat upp data till inmatningsdestinationen är det dags att starta autopiloten:
Allt vi behöver för att börja experimentera är att anropa metoden fit(). Autopiloten behöver in- och utdata S3-platsen och målattributkolumnen som nödvändiga parametrar. Efter funktionsbearbetning ringer autopiloten SageMaker automatisk modelljustering för att hitta den bästa versionen av en modell genom att köra många träningsjobb på din datauppsättning. Vi lade till den valfria parametern max_candidates för att begränsa antalet kandidater till 30, vilket är antalet utbildningsjobb som Autopilot lanserar med olika kombinationer av algoritmer och hyperparametrar för att hitta den bästa modellen. Om du inte anger den här parametern är den som standard 250.
Vi kan observera utvecklingen av autopilot med följande kod:
Utbildningen tar lite tid att genomföra. Medan den körs, låt oss titta på autopilotens arbetsflöde.
För att hitta den bästa kandidaten, använd följande kod:
Följande skärmdump visar vår produktion.
Vår modell uppnådde en valideringsnoggrannhet på 96 %, så vi kommer att distribuera den. Vi skulle kunna lägga till ett villkor så att vi bara använder modellen om noggrannheten är över en viss nivå.
Inferenspipeline
Innan vi implementerar vår modell, låt oss undersöka vår bästa kandidat och vad som händer i vår pipeline. Se följande kod:
Följande diagram visar vår produktion.
Autopiloten har byggt modellen och har paketerat den i tre olika behållare, var och en sekventiellt kör en specifik uppgift: transformera, förutsäga och omvänd transformation. Denna flerstegs slutledning är möjlig med en SageMaker inferenspipeline.
En slutledning i flera steg kan också kedja flera slutledningsmodeller. Till exempel kan en behållare utföra huvudkomponentanalys innan du skickar data till XGBoost-behållaren.
Distribuera slutledningsledningen till en slutpunkt
Implementeringsprocessen involverar bara några rader kod:
Låt oss konfigurera vår slutpunkt för förutsägelse med en prediktor:
Nu när vi har vår slutpunkt och prediktor redo, är det dags att använda testdata som vi lägger åt sidan och testa vår modells noggrannhet. Vi börjar med att definiera en hjälpfunktion som skickar data en rad i taget till vår slutpunkt för slutledning och får en förutsägelse i gengäld. Eftersom vi har en XGBoost modell, släpper vi målvariabeln innan vi skickar CSV-raden till slutpunkten. Dessutom tog vi bort rubriken från test-CSV-filen innan vi gick igenom filen, vilket också är ett annat krav för XGBoost på SageMaker. Se följande kod:
Följande skärmdump visar vår produktion.
Låt oss nu beräkna noggrannheten hos vår modell.
Se följande kod:
Vi får en noggrannhet på 92%. Detta är något lägre än de 96 % som erhölls under valideringssteget, men det är fortfarande tillräckligt högt. Vi förväntar oss inte att noggrannheten är exakt densamma eftersom testet utförs med en ny datamängd.
Upptagning av data
Vi laddade ner data direkt och konfigurerade den för träning. I verkligheten kan du behöva skicka data direkt från edge-enheten till datasjön och låta SageMaker ladda den direkt från datasjön till den bärbara datorn.
Kinesis Data Firehose är ett bra alternativ och det enklaste sättet att på ett tillförlitligt sätt ladda strömmande data till datasjöar, datalager och analysverktyg. Det kan fånga, omvandla och ladda strömmande data till Amazon S3 och andra AWS-databutiker.
För vårt användningsfall skapar vi en Kinesis Data Firehose-leveransström med en Lambda-transformationsfunktion för att göra lite lätt datarensning när den korsar strömmen. Se följande kod:
Denna Lambda-funktion utför ljustransformation av data som strömmas från enheterna till datasjön. Den förväntar sig en CSV-formaterad datafil.
För intagssteget laddar vi ner data och simulerar en dataström till Kinesis Data Firehose med en Lambda-transformeringsfunktion och in i vår S3-datasjö.
Låt oss simulera streaming några rader:
Städa upp
Det är viktigt att ta bort alla resurser som används i den här övningen för att minimera kostnaderna. Följande kod tar bort SageMaker slutpunkten som vi skapade samt tränings- och testdata som vi laddade upp:
Slutsats
ML-ingenjörer, datavetare och mjukvaruutvecklare kan använda Autopilot för att bygga och distribuera en inferenspipeline med liten eller ingen erfarenhet av ML-programmering. Autopilot sparar tid och resurser genom att använda datavetenskap och bästa metoder för ML. Stora organisationer kan nu flytta tekniska resurser bort från infrastrukturkonfiguration till att förbättra modeller och lösa affärsanvändningsfall. Nystartade företag och mindre organisationer kan komma igång med maskininlärning med liten eller ingen ML-expertis.
För att komma igång med SageMaker Autopilot, se Produktsida eller gå till SageMaker Autopilot i SageMaker Studio.
Vi rekommenderar också att du lär dig mer om andra viktiga funktioner SageMaker har att erbjuda, till exempel Amazon SageMaker Feature Store, som integreras med Amazon SageMaker-rörledningar för att skapa, lägga till funktionssökning och upptäckt och återanvända automatiserade ML-arbetsflöden. Du kan köra flera autopilotsimuleringar med olika funktions- eller målvarianter i din datauppsättning. Du kan också närma dig detta som ett dynamiskt fordonsallokeringsproblem där din modell försöker förutsäga fordonsefterfrågan baserat på tid (som tid på dygnet eller veckodag) eller plats, eller en kombination av båda.
Om författarna
Doug Mbaya är en senior lösningsarkitekt med fokus på data och analys. Doug arbetar nära med AWS-partners och hjälper dem att integrera data- och analyslösningar i molnet. Dougs tidigare erfarenhet inkluderar att stötta AWS-kunder inom segmentet åkdelning och matleverans.
Valerio Perrone är en Applied Science Manager som arbetar med Amazon SageMaker Automatic Model Tuning och Autopilot.
- Myntsmart. Europas bästa bitcoin- och kryptobörs.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. FRI TILLGÅNG.
- CryptoHawk. Altcoin radar. Gratis provperiod.
- Källa: https://aws.amazon.com/blogs/machine-learning/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- Om oss
- tillgång
- uppnås
- aktiviteter
- avancerat
- algoritmer
- Alla
- fördelning
- amason
- analytics
- Annan
- api
- tillvägagångssätt
- arkitektur
- OMRÅDE
- argument
- Automatiserad
- AWS
- bukt
- BÄST
- bästa praxis
- SLUTRESULTAT
- företag
- Ring
- Kan få
- vilken
- fall
- byta
- val
- klassificering
- Rengöring
- cloud
- koda
- Kolumn
- kombination
- kombinationer
- företag
- komponent
- tillstånd
- konfiguration
- Behållare
- Behållare
- innehåller
- kunde
- Kunder
- datum
- databehandling
- datavetenskap
- dag
- leverans
- Efterfrågan
- distribuera
- utplacering
- utvecklare
- anordning
- enheter
- olika
- Upptäckten
- Visa
- fördelning
- ner
- Drop
- dynamisk
- kant
- kryptering
- Slutpunkt
- Teknik
- Ingenjörer
- händelse
- exempel
- Utom
- Motionera
- förväntar
- erfarenhet
- experimentera
- expertis
- Leverans
- Funktioner
- Förnamn
- Fokus
- följer
- efter
- livsmedelsproduktion
- Francisco
- fungera
- få
- kommer
- god
- Arbetsmiljö
- här.
- Hög
- Hur ser din drömresa ut
- How To
- HTTPS
- med Esport
- Inklusive
- Infrastruktur
- integrera
- IT
- Jobb
- Lediga jobb
- Large
- lanserar
- inlärning
- Nivå
- Bibliotek
- ljus
- lättvikt
- linje
- liten
- läsa in
- lokalt
- läge
- Maskinen
- maskininlärning
- Majoritet
- Framställning
- chef
- ML
- modell
- modeller
- mest
- anteckningsbok
- erbjudanden
- Erbjudanden
- drift
- Alternativet
- beställa
- organisationer
- Övriga
- annat
- deltagande
- partner
- Personer
- prestanda
- möjlig
- förutsägelse
- Problem
- process
- Program
- Programmering
- ge
- allmän
- snabbt
- Raw
- realtid
- rekommenderar
- post
- register
- Obligatorisk
- Resurser
- återgår
- översyn
- regler
- Körning
- rinnande
- rusa
- San
- San Francisco
- sparande
- Vetenskap
- vetenskapsmän
- Sök
- vald
- Serier
- in
- Dela
- delas
- skifta
- Enkelt
- simulering
- Storlek
- sova
- So
- Mjukvara
- delas
- starta
- igång
- Startups
- förvaring
- lagrar
- ström
- strömmas
- streaming
- studio
- Målet
- tekniker
- testa
- Testning
- Genom
- tid
- i dag
- verktyg
- Utbildning
- Förvandla
- Transformation
- us
- användning
- användare
- verktyg
- värde
- vehikel
- Webbplats
- vecka
- om
- wikipedia
- inom
- arbetssätt
- fungerar