Amazon SageMaker Autopilot gjør det mulig for organisasjoner å raskt bygge og distribuere en ende-til-ende maskinlæringsmodell (ML) og slutningspipeline med bare noen få linjer med kode eller til og med uten noen kode i det hele tatt med Amazon SageMaker Studio. Autopilot avlaster det tunge løftet med å konfigurere infrastruktur og tiden det tar å bygge en hel pipeline, inkludert funksjonsteknikk, modellvalg og hyperparameterinnstilling.
I dette innlegget viser vi hvordan du går fra rådata til en robust og fullt utrullet inferenspipeline med autopilot.
Løsningsoversikt
Vi bruker Lyfts offentlige datasett om sykkeldeling for denne simuleringen for å forutsi hvorvidt en bruker deltar i Bike Share for All-programmet. Dette er et enkelt binært klassifiseringsproblem.
Vi ønsker å vise frem hvor enkelt det er å bygge en automatisert og sanntids slutningspipeline for å klassifisere brukere basert på deres deltakelse i Bike Share for All-programmet. For dette formål simulerer vi en ende-til-ende datainntak og slutningspipeline for et tenkt sykkelselskap som opererer i San Francisco Bay Area.
Arkitekturen er delt ned i to deler: inntaksrørledningen og inferensrørledningen.
Vi fokuserer først og fremst på ML-pipelinen i den første delen av dette innlegget, og gjennomgår datainntakspipelinen i den andre delen.
Forutsetninger
For å følge dette eksemplet, fullfør følgende forutsetninger:
- Opprett en ny SageMaker notatbokforekomst.
- Lag en Amazon Kinesis Data Firehose leveringsstrøm med en AWS Lambda transformere funksjon. For instruksjoner, se Amazon Kinesis Firehose Data Transformation med AWS Lambda. Dette trinnet er valgfritt og bare nødvendig for å simulere datastrømming.
Data leting
La oss laste ned og visualisere datasettet, som er plassert i en offentlig Amazon enkel lagringstjeneste (Amazon S3) bøtte og statisk nettsted:
Følgende skjermbilde viser en delmengde av dataene før transformasjon.
Den siste kolonnen av dataene inneholder målet vi ønsker å forutsi, som er en binær variabel som tar enten en Ja eller Nei verdi, som indikerer om brukeren deltar i Bike Share for All-programmet.
La oss ta en titt på fordelingen av målvariabelen vår for enhver dataubalanse.
Som vist i grafen ovenfor, er dataene ubalanserte, med færre personer som deltar i programmet.
Vi må balansere dataene for å forhindre en overrepresentasjonsskjevhet. Dette trinnet er valgfritt fordi autopilot også tilbyr en intern tilnærming for å håndtere klasseubalanse automatisk, som standard er en F1-scorevalideringsberegning. I tillegg, hvis du velger å balansere dataene selv, kan du bruke mer avanserte teknikker for å håndtere klasseubalanse, som f.eks. SMOTE or GAN.
For dette innlegget nedsampler vi majoritetsklassen (Nei) som en databalanseringsteknikk:
Følgende kode beriker dataene og undersampler den overrepresenterte klassen:
Vi forlot bevisst våre kategoriske funksjoner ikke kodet, inkludert vår binære målverdi. Dette er fordi Autopilot tar seg av koding og dekoding av dataene for oss som en del av den automatiske funksjonsutviklingen og pipeline-distribusjonen, som vi ser i neste avsnitt.
Følgende skjermbilde viser et eksempel på dataene våre.
Dataene i de følgende grafene ser ellers normale ut, med en bimodal fordeling som representerer de to toppene for morgentimene og ettermiddagsrushet, som du forventer. Vi observerer også lave aktiviteter i helgene og om natten.
I neste avsnitt mater vi dataene til autopiloten slik at den kan kjøre et eksperiment for oss.
Bygg en binær klassifiseringsmodell
Autopilot krever at vi spesifiserer inngangs- og utgangsdestinasjonsbøttene. Den bruker inndatabøtten til å laste inn dataene og utdatabøtten for å lagre artefaktene, for eksempel funksjonsteknikk og de genererte Jupyter-notatbøkene. Vi beholder 5 % av datasettet for å evaluere og validere modellens ytelse etter at opplæringen er fullført og laster opp 95 % av datasettet til S3-inndatabøtten. Se følgende kode:
Etter at vi har lastet opp dataene til inndatadestinasjonen, er det på tide å starte autopiloten:
Alt vi trenger for å begynne å eksperimentere er å kalle fit()-metoden. Autopiloten trenger inn- og utdata S3-plasseringen og målattributtkolonnen som de nødvendige parameterne. Etter funksjonsbehandling ringer autopiloten SageMaker automatisk modellinnstilling for å finne den beste versjonen av en modell ved å kjøre mange opplæringsjobber på datasettet ditt. Vi la til den valgfrie max_candidates-parameteren for å begrense antall kandidater til 30, som er antallet treningsjobber som Autopilot lanserer med ulike kombinasjoner av algoritmer og hyperparametre for å finne den beste modellen. Hvis du ikke spesifiserer denne parameteren, er den standard til 250.
Vi kan observere fremdriften til autopilot med følgende kode:
Opplæringen tar litt tid å gjennomføre. Mens den kjører, la oss se på autopilotens arbeidsflyt.
For å finne den beste kandidaten, bruk følgende kode:
Følgende skjermbilde viser produksjonen vår.
Modellen vår oppnådde en valideringsnøyaktighet på 96 %, så vi kommer til å distribuere den. Vi kan legge til en betingelse slik at vi bare bruker modellen hvis nøyaktigheten er over et visst nivå.
Inferensrørledning
Før vi implementerer modellen vår, la oss undersøke vår beste kandidat og hva som skjer i vår pipeline. Se følgende kode:
Følgende diagram viser produksjonen vår.
Autopilot har bygget modellen og har pakket den i tre forskjellige beholdere, som hver kjører en spesifikk oppgave sekvensielt: transformere, forutsi og omvendt transformasjon. Denne flertrinnsslutningen er mulig med en SageMaker inferensrørledning.
En flertrinns slutning kan også kjede flere slutningsmodeller. For eksempel kan en beholder utføre hovedkomponentanalyse før du sender dataene til XGBoost-beholderen.
Distribuer inferensrørledningen til et endepunkt
Implementeringsprosessen involverer bare noen få linjer med kode:
La oss konfigurere endepunktet vårt for prediksjon med en prediktor:
Nå som vi har endepunktet og prediktoren klar, er det på tide å bruke testdataene vi har satt til side og teste nøyaktigheten til modellen vår. Vi starter med å definere en verktøyfunksjon som sender dataene en linje om gangen til vårt inferensendepunkt og får en prediksjon i retur. Fordi vi har en Xgboost modell, dropper vi målvariabelen før vi sender CSV-linjen til endepunktet. I tillegg fjernet vi overskriften fra test-CSV-en før vi gikk gjennom filen, som også er et annet krav for XGBoost på SageMaker. Se følgende kode:
Følgende skjermbilde viser produksjonen vår.
La oss nå beregne nøyaktigheten til modellen vår.
Se følgende kode:
Vi får en nøyaktighet på 92 %. Dette er litt lavere enn de 96 % som ble oppnådd under valideringstrinnet, men det er fortsatt høyt nok. Vi forventer ikke at nøyaktigheten skal være nøyaktig den samme fordi testen utføres med et nytt datasett.
Inntak av data
Vi lastet ned dataene direkte og konfigurerte dem for trening. I det virkelige liv må du kanskje sende dataene direkte fra edge-enheten inn i datasjøen og la SageMaker laste den direkte fra datasjøen inn i den bærbare datamaskinen.
Kinesis Data Firehose er et godt alternativ og den enkleste måten å laste strømmedata pålitelig inn i datainnsjøer, datalagre og analyseverktøy. Den kan fange opp, transformere og laste strømmedata til Amazon S3 og andre AWS-datalagre.
For vårt bruk oppretter vi en Kinesis Data Firehose-leveringsstrøm med en Lambda-transformasjonsfunksjon for å gjøre noe lett datarensing når den krysser strømmen. Se følgende kode:
Denne Lambda-funksjonen utfører lystransformasjon av data som strømmes fra enhetene til datasjøen. Den forventer en CSV-formatert datafil.
For inntakstrinnet laster vi ned dataene og simulerer en datastrøm til Kinesis Data Firehose med en Lambda-transformasjonsfunksjon og inn i vår S3-datainnsjø.
La oss simulere strømming av noen få linjer:
Rydd opp
Det er viktig å slette alle ressursene som brukes i denne øvelsen for å minimere kostnadene. Følgende kode sletter SageMaker-inferensendepunktet vi opprettet, samt trenings- og testdataene vi lastet opp:
konklusjonen
ML-ingeniører, dataforskere og programvareutviklere kan bruke Autopilot til å bygge og distribuere en inferenspipeline med liten eller ingen erfaring med ML-programmering. Autopilot sparer tid og ressurser ved å bruke datavitenskap og beste praksis for ML. Store organisasjoner kan nå flytte ingeniørressurser bort fra infrastrukturkonfigurasjon til å forbedre modeller og løse forretningsbruk. Startups og mindre organisasjoner kan komme i gang med maskinlæring med liten eller ingen ML-ekspertise.
For å komme i gang med SageMaker Autopilot, se produktside eller få tilgang til SageMaker Autopilot i SageMaker Studio.
Vi anbefaler også å lære mer om andre viktige funksjoner SageMaker har å tilby, for eksempel Amazon SageMaker Feature Store, som integreres med Amazon SageMaker-rørledninger å opprette, legge til funksjonssøk og oppdagelse og gjenbruke automatiserte ML-arbeidsflyter. Du kan kjøre flere autopilotsimuleringer med forskjellige funksjoner eller målvarianter i datasettet ditt. Du kan også nærme deg dette som et dynamisk kjøretøyallokeringsproblem der modellen din prøver å forutsi kjøretøyets etterspørsel basert på tid (som tid på dagen eller ukedagen) eller plassering, eller en kombinasjon av begge.
Om forfatterne
Doug Mbaya er en senior løsningsarkitekt med fokus på data og analyse. Doug jobber tett med AWS-partnere, og hjelper dem med å integrere data- og analyseløsninger i skyen. Dougs tidligere erfaring inkluderer å støtte AWS-kunder innen kjøredeling og matleveringssegmentet.
Valerio Perrone er en Applied Science Manager som jobber med Amazon SageMaker Automatic Model Tuning og Autopilot.
- Myntsmart. Europas beste Bitcoin og Crypto Exchange.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. FRI TILGANG.
- CryptoHawk. Altcoin Radar. Gratis prøveperiode.
- Kilde: https://aws.amazon.com/blogs/machine-learning/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- Om oss
- adgang
- oppnådd
- Aktiviteter
- avansert
- algoritmer
- Alle
- allokering
- Amazon
- analytics
- En annen
- api
- tilnærming
- arkitektur
- AREA
- argumenter
- Automatisert
- AWS
- bukt
- BEST
- beste praksis
- bygge
- virksomhet
- ring
- Kan få
- hvilken
- saker
- endring
- valg
- klassifisering
- Rengjøring
- Cloud
- kode
- Kolonne
- kombinasjon
- kombinasjoner
- Selskapet
- komponent
- tilstand
- Konfigurasjon
- Container
- Containere
- inneholder
- kunne
- Kunder
- dato
- databehandling
- datavitenskap
- dag
- levering
- Etterspørsel
- utplassere
- distribusjon
- utviklere
- enhet
- Enheter
- forskjellig
- Funnet
- Vise
- distribusjon
- ned
- Drop
- dynamisk
- Edge
- kryptering
- Endpoint
- Ingeniørarbeid
- Ingeniører
- Event
- eksempel
- Unntatt
- Øvelse
- forventer
- erfaring
- eksperiment
- ekspertise
- Trekk
- Egenskaper
- Først
- Fokus
- følge
- etter
- mat
- Francisco
- funksjon
- få
- skal
- god
- Håndtering
- her.
- Høy
- Hvordan
- Hvordan
- HTTPS
- viktig
- Inkludert
- Infrastruktur
- integrere
- IT
- Jobb
- Jobb
- stor
- lanseringer
- læring
- Nivå
- Bibliotek
- lett
- lettvekt
- linje
- lite
- laste
- lokalt
- plassering
- maskin
- maskinlæring
- Flertall
- Making
- leder
- ML
- modell
- modeller
- mest
- bærbare
- tilby
- Tilbud
- drift
- Alternativ
- rekkefølge
- organisasjoner
- Annen
- ellers
- deltakelse
- partnere
- Ansatte
- ytelse
- mulig
- prediksjon
- Problem
- prosess
- program
- Programmering
- gi
- offentlig
- raskt
- Raw
- sanntids
- anbefaler
- rekord
- poster
- påkrevd
- Ressurser
- avkastning
- anmeldelse
- regler
- Kjør
- rennende
- jag
- San
- San Fransisco
- besparende
- Vitenskap
- forskere
- Søk
- valgt
- Serien
- sett
- Del
- delt
- skift
- Enkelt
- simulering
- Størrelse
- sove
- So
- Software
- splittet
- Begynn
- startet
- startups
- lagring
- butikker
- stream
- streames
- streaming
- studio
- Target
- teknikker
- test
- Testing
- Gjennom
- tid
- i dag
- verktøy
- Kurs
- Transform
- Transformation
- us
- bruke
- Brukere
- verktøyet
- verdi
- kjøretøy
- Nettsted
- uke
- om
- Wikipedia
- innenfor
- arbeid
- virker