Amazon SageMaker Feature Store gir en ende-til-ende-løsning for å automatisere funksjonsteknikk for maskinlæring (ML). For mange ML-brukstilfeller må rådata som loggfiler, sensoravlesninger eller transaksjonsposter transformeres til meningsfulle funksjoner som er optimalisert for modelltrening.
Funksjonskvalitet er avgjørende for å sikre en svært nøyaktig ML-modell. Å transformere rådata til funksjoner ved å bruke aggregering, koding, normalisering og andre operasjoner er ofte nødvendig og kan kreve betydelig innsats. Ingeniører må manuelt skrive tilpasset dataforbehandling og aggregeringslogikk i Python eller Spark for hvert brukstilfelle.
Disse udifferensierte tunge løftene er tungvinte, repeterende og utsatt for feil. De SageMaker Feature Store Feature Processor reduserer denne byrden ved automatisk å transformere rådata til aggregerte funksjoner som er egnet for batchtrening ML-modeller. Den lar ingeniører tilby enkle datatransformasjonsfunksjoner, og håndterer deretter å kjøre dem i stor skala på Spark og administrere den underliggende infrastrukturen. Dette gjør det mulig for dataforskere og dataingeniører å fokusere på funksjonsingeniørlogikken i stedet for implementeringsdetaljer.
I dette innlegget viser vi hvordan et bilsalgsselskap kan bruke funksjonsprosessoren til å transformere rå salgstransaksjonsdata til funksjoner i tre trinn:
- Lokale serier av datatransformasjoner.
- Fjernkjøring i skala med Spark.
- Operasjonalisering via rørledninger.
Vi viser hvordan SageMaker Feature Store tar inn rådata, kjører funksjonstransformasjoner eksternt ved hjelp av Spark og laster de resulterende aggregerte funksjonene inn i en funksjonsgruppe. Disse konstruerte funksjonene kan deretter brukes til å trene ML-modeller.
For denne brukssaken ser vi hvordan SageMaker Feature Store hjelper til med å konvertere rå bilsalgsdata til strukturerte funksjoner. Disse funksjonene blir deretter brukt for å få innsikt som:
- Gjennomsnittlig og maksimal pris på røde cabriolet fra 2010
- Modeller med best kjørelengde vs. pris
- Salgetrender av nye kontra brukte biler gjennom årene
- Forskjeller i gjennomsnittlig MSRP på tvers av lokasjoner
Vi ser også hvordan SageMaker Feature Store-pipelines holder funksjonene oppdatert etter hvert som nye data kommer inn, slik at selskapet kontinuerlig kan få innsikt over tid.
Løsningsoversikt
Vi jobber med datasettet car_data.csv
, som inneholder spesifikasjoner som modell, år, status, kjørelengde, pris og MSRP for brukte og nye biler som selges av selskapet. Følgende skjermbilde viser et eksempel på datasettet.
Løsningens notatbok feature_processor.ipynb
inneholder følgende hovedtrinn, som vi forklarer i dette innlegget:
- Opprett to funksjonsgrupper: en kalt
car-data
for råbilsalgsrekorder og en annen ringtecar-data-aggregated
for aggregerte bilsalgsrekorder. - Bruke
@feature_processor
dekorator for å laste data inn i bildata-funksjonsgruppen fra Amazon enkel lagringstjeneste (Amazon S3). - Kjør
@feature_processor code
eksternt som en Spark-applikasjon for å samle dataene. - Operasjonaliser funksjonsprosessoren via SageMaker rørledninger og tidsplanen kjører.
- Utforsk funksjonsbehandlingspipelines og avstamning in Amazon SageMaker Studio.
- Bruk aggregerte funksjoner for å trene en ML-modell.
Forutsetninger
For å følge denne opplæringen trenger du følgende:
For dette innlegget viser vi til følgende bærbare, som viser hvordan du kommer i gang med Feature Processor ved å bruke SageMaker Python SDK.
Opprett funksjonsgrupper
For å opprette funksjonsgruppene, fullfør følgende trinn:
- Lag en funksjonsgruppedefinisjon for
car-data
som følger:
Funksjonene tilsvarer hver kolonne i car_data.csv
datasett (Model
, Year
, Status
, Mileage
, Price
og MSRP
).
- Legg til postidentifikatoren
id
og arrangementstidingest_time
til funksjonsgruppen:
- Lag en funksjonsgruppedefinisjon for
car-data-aggregated
som følger:
For den aggregerte funksjonsgruppen er funksjonene modellårsstatus, gjennomsnittlig kjørelengde, maks kjørelengde, gjennomsnittlig pris, makspris, gjennomsnittlig MSRP, maks MSRP og inntakstid. Vi legger til postidentifikatoren model_year_status
og arrangementstid ingest_time
til denne funksjonsgruppen.
- Lag nå
car-data
funksjonsgruppe:
- Opprett
car-data-aggregated
funksjonsgruppe:
Du kan navigere til SageMaker Feature Store-alternativet under Data på SageMaker Studio Hjemprodukt menyen for å se funksjonsgruppene.
Bruk @feature_processor-dekoratoren for å laste inn data
I denne delen transformerer vi de rå inndataene lokalt (car_data.csv
) fra Amazon S3 til car-data
funksjonsgruppe ved hjelp av Feature Store Feature Processor. Denne innledende lokale kjøringen lar oss utvikle og iterere før vi kjører eksternt, og kan gjøres på et utvalg av dataene hvis ønskelig for raskere iterasjon.
Med @feature_processor
decorator, kjører transformasjonsfunksjonen din i et Spark-runtime-miljø der input-argumentene til funksjonen din og dens returverdi er Spark DataFrames.
- Installer Funksjonsprosessor SDK fra SageMaker Python SDK og tilleggene ved hjelp av følgende kommando:
Antallet inngangsparametere i transformasjonsfunksjonen må samsvare med antall innganger som er konfigurert i @feature_processor
dekoratør. I dette tilfellet @feature_processor
dekoratør har car-data.csv
som input og car-data
funksjonsgruppe som utgang, noe som indikerer at dette er en batchoperasjon med target_store
as OfflineStore
:
- Definer
transform()
funksjon for å transformere dataene. Denne funksjonen utfører følgende handlinger:- Konverter kolonnenavn til små bokstaver.
- Legg til hendelsestidspunktet til
ingest_time
kolonne. - Fjern tegnsetting og erstatt manglende verdier med NA.
- Ring
transform()
funksjon for å lagre dataene icar-data
funksjonsgruppe:
Utdataene viser at dataene er vellykket innlemmet i bildatafunksjonsgruppen.
Resultatet av transform_df.show()
funksjonen er som følger:
Vi har transformert inndataene og tatt dem inn i car-data
funksjonsgruppe.
Kjør @feature_processor-koden eksternt
I denne delen demonstrerer vi å kjøre funksjonsbehandlingskoden eksternt som en Spark-applikasjon ved hjelp av @remote
dekoratør beskrevet tidligere. Vi kjører funksjonsbehandlingen eksternt ved å bruke Spark for å skalere til store datasett. Spark tilbyr distribuert behandling på klynger for å håndtere data som er for store for en enkelt maskin. De @remote
decorator kjører den lokale Python-koden som en SageMaker-treningsjobb med én eller flere noder.
- Bruke
@remote
dekoratør sammen med@feature_processor
dekoratør som følger:
De spark_config
parameter indikerer at dette kjøres som en Spark application
. SparkConfig-forekomsten konfigurerer Spark-konfigurasjonen og avhengighetene.
- Definer
aggregate()
funksjon for å samle dataene ved hjelp av PySpark SQL og brukerdefinerte funksjoner (UDF). Denne funksjonen utfører følgende handlinger:- Concatenate
model
,year
ogstatus
å skapemodel_year_status
. - Ta gjennomsnittet av
price
å skapeavg_price
. - Ta maksverdien av
price
å skapemax_price
. - Ta gjennomsnittet av
mileage
å skapeavg_mileage
. - Ta maksverdien av
mileage
å skapemax_mileage
. - Ta gjennomsnittet av
msrp
å skapeavg_msrp
. - Ta maksverdien av
msrp
å skapemax_msrp
. - Gruppe av
model_year_status
.
- Concatenate
- Kjør
aggregate()
funksjon, som oppretter en SageMaker-treningsjobb for å kjøre Spark-applikasjonen:
Som et resultat oppretter SageMaker en treningsjobb til Spark-applikasjonen definert tidligere. Det vil skape et Spark-løpemiljø ved å bruke sagemaker-spark-processing image
.
Vi bruker SageMaker Training-jobber her for å kjøre vår Spark-funksjonsbehandlingsapplikasjon. Med SageMaker Training kan du redusere oppstartstiden til 1 minutt eller mindre ved å bruke varm pooling, som ikke er tilgjengelig i SageMaker Processing. Dette gjør SageMaker Training bedre optimalisert for korte batchjobber som funksjonsbehandling der oppstartstid er viktig.
- For å se detaljene, velg på SageMaker-konsollen Treningsjobber etter Kurs i navigasjonsruten, og velg deretter jobben med navnet
aggregate-<timestamp>
.
Resultatet av samle() funksjonen genererer telemetrikode. Inne i utdataene vil du se de aggregerte dataene som følger:
Når treningsjobben er fullført, bør du se følgende utdata:
Operasjonaliser funksjonsprosessoren via SageMaker-pipelines
I denne delen viser vi hvordan du operasjonaliserer funksjonsprosessoren ved å promotere den til en SageMaker-pipeline og planlegge kjøringer.
- Først laster du opp transformation_code.py fil som inneholder funksjonsbehandlingslogikken til Amazon S3:
- Deretter oppretter du en funksjonsprosessor-pipeline car_data_pipeline bruker .to_pipeline() funksjon:
- For å kjøre rørledningen, bruk følgende kode:
- På samme måte kan du opprette en pipeline for aggregerte funksjoner kalt
car_data_aggregated_pipeline
og starte en løpetur. - Planlegg
car_data_aggregated_pipeline
å kjøre hver 24. time:
I utdatadelen vil du se ARN for pipeline og pipeline-utførelsesrollen, og tidsplandetaljene:
- For å få alle funksjonsprosessor-pipelines i denne kontoen, bruk
list_pipelines()
funksjon på funksjonsprosessoren:
Resultatet blir som følger:
Vi har opprettet SageMaker Feature Processor-rørledninger.
Utforsk rørledninger for funksjonsbehandling og ML-linje
I SageMaker Studio, fullfør følgende trinn:
- På SageMaker Studio-konsollen, på Hjemprodukt meny, velg Rørledninger.
Du bør se to rørledninger opprettet: car-data-ingestion-pipeline
og car-data-aggregated-ingestion-pipeline
.
- Velg
car-data-ingestion-pipeline
.
Den viser løpsdetaljene på henrettelser fanen.
- For å se funksjonsgruppen som fylles ut av rørledningen, velg Feature Store etter Data Og velg
car-data
.
Du vil se de to funksjonsgruppene vi opprettet i de forrige trinnene.
- Velg
car-data
funksjonsgruppe.
Du vil se funksjonsdetaljene på Egenskaper fanen.
Se rørledningsløp
For å se rørledningene, fullfør følgende trinn:
- På Rørledningsutførelses fane, velg
car-data-ingestion-pipeline
.
Dette vil vise alle kjøringene.
- Velg en av lenkene for å se detaljene om løpeturen.
- For å se avstamning, velg Avstamning.
Hele slekten for car-data
viser inndatakilden car_data.csv
og oppstrøms enheter. Slekten for car-data-aggregated
viser inngangen car-data
funksjonsgruppe.
- Velg Last inn funksjoner og velg deretter Spørr oppstrøms avstamning on
car-data
ogcar-data-ingestion-pipeline
for å se alle oppstrømsenhetene.
Hele slekten for car-data
funksjonsgruppen skal se ut som følgende skjermbilde.
Tilsvarende er avstamningen for car-aggregated-data
funksjonsgruppen skal se ut som følgende skjermbilde.
SageMaker Studio tilbyr et enkelt miljø for å spore planlagte rørledninger, se kjøringer, utforske avstamning og se funksjonsbehandlingskoden.
De aggregerte funksjonene som gjennomsnittspris, makspris, gjennomsnittlig kjørelengde og mer i car-data-aggregated
funksjonsgruppe gir innsikt i dataenes natur. Du kan også bruke disse funksjonene som et datasett for å trene en modell til å forutsi bilpriser, eller for andre operasjoner. Trening av modellen er imidlertid utenfor rammen for dette innlegget, som fokuserer på å demonstrere SageMaker Feature Store-funksjonene for funksjonsutvikling.
Rydd opp
Ikke glem å rydde opp i ressursene som er opprettet som en del av dette innlegget for å unngå påløpende kostnader.
- Deaktiver den planlagte rørledningen via
fp.schedule()
metode med tilstandsparameteren somDisabled
:
- Slett begge funksjonsgruppene:
Dataene som ligger i S3-bøtte- og offline-funksjonsbutikken kan pådra seg kostnader, så du bør slette dem for å unngå kostnader.
- Slett S3-objektene.
- Slett postene fra featurebutikken.
konklusjonen
I dette innlegget demonstrerte vi hvordan et bilsalgsselskap brukte SageMaker Feature Store Feature Processor for å få verdifull innsikt fra sine rå salgsdata ved å:
- Inntak og transformering av batchdata i stor skala ved hjelp av Spark
- Operasjonalisere funksjonsprosjekteringsarbeidsflyter via SageMaker-rørledninger
- Tilbyr avstamningssporing og ett enkelt miljø for å overvåke rørledninger og utforske funksjoner
- Forbereder aggregerte funksjoner optimalisert for trening av ML-modeller
Ved å følge disse trinnene var selskapet i stand til å transformere tidligere ubrukelige data til strukturerte funksjoner som deretter kunne brukes til å trene en modell til å forutsi bilpriser. SageMaker Feature Store gjorde det mulig for dem å fokusere på funksjonsteknikk i stedet for den underliggende infrastrukturen.
Vi håper dette innlegget hjelper deg å låse opp verdifull ML-innsikt fra dine egne data ved å bruke SageMaker Feature Store Feature Processor!
For mer informasjon om dette, se Funksjonsbehandling og SageMaker-eksemplet på Amazon SageMaker Feature Store: Feature Processor Introduksjon.
Om forfatterne
Dhaval Shah er en senior løsningsarkitekt hos AWS, med spesialisering i maskinlæring. Med et sterkt fokus på digitalt opprinnelige virksomheter gir han kundene muligheten til å utnytte AWS og drive virksomhetens vekst. Som en ML-entusiast er Dhaval drevet av sin lidenskap for å skape effektive løsninger som gir positiv endring. På fritiden hengir han seg til kjærligheten for reiser og setter pris på gode øyeblikk med familien.
Ninad Joshi er en Senior Solutions Architect hos AWS, og hjelper globale AWS-kunder med å designe sikre, skalerbare og kostnadseffektive løsninger i skyen for å løse deres komplekse virkelige forretningsutfordringer. Hans arbeid innen Machine Learning (ML) dekker et bredt spekter av AI/ML-brukstilfeller, med hovedfokus på End-to-End ML, Natural Language Processing og Computer Vision. Før han begynte i AWS, jobbet Ninad som programvareutvikler i 12+ år. Utenom sine profesjonelle bestrebelser liker Ninad å spille sjakk og utforske forskjellige gambiter.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15%
- 16
- 20
- 24
- 26%
- 40
- 7
- 8
- 9
- a
- I stand
- Logg inn
- nøyaktig
- tvers
- handlinger
- legge til
- aggregat
- aggregering
- AI / ML
- Alle
- tillater
- langs
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- og
- En annen
- noen
- Søknad
- ER
- argumenter
- AS
- At
- automatisere
- automatisk
- tilgjengelig
- gjennomsnittlig
- unngå
- AWS
- grunnleggende
- BE
- før du
- BEST
- Bedre
- Stor
- både
- bringe
- byrde
- virksomhet
- bedrifter
- by
- som heter
- CAN
- evner
- bil
- biler
- saken
- saker
- utfordringer
- endring
- avgifter
- Sjakk
- Velg
- Cloud
- kode
- Kolonne
- kolonner
- kommer
- Selskapet
- fullføre
- komplekse
- datamaskin
- Datamaskin syn
- Konfigurasjon
- konfigurert
- Konsoll
- inneholder
- kontinuerlig
- konvertere
- Kostnad
- Kostnader
- kunne
- Dekker
- skape
- opprettet
- skaper
- Opprette
- kritisk
- tungvint
- skikk
- Kunder
- dato
- datasett
- definert
- definisjon
- demonstrere
- demonstrert
- demonstrerer
- demonstrere
- avhengig
- beskrevet
- beskrivelse
- utforming
- ønsket
- detaljer
- utvikle
- Utvikler
- forskjellig
- digitalt
- deaktivert
- visning
- distribueres
- gjort
- stasjonen
- drevet
- hver enkelt
- Tidligere
- Effektiv
- innsats
- bemyndiger
- aktivert
- muliggjør
- muliggjør
- ende til ende
- bestrebelser
- Ingeniørarbeid
- Ingeniører
- sikre
- entusiast
- enheter
- Miljø
- Event
- Hver
- eksempel
- henrette
- gjennomføring
- avslutter
- Forklar
- utforske
- Utforske
- familie
- raskere
- Trekk
- Egenskaper
- filet
- Filer
- Fokus
- fokuserer
- følge
- etter
- følger
- Til
- brøk
- fra
- fullt
- funksjon
- funksjoner
- Gevinst
- genererer
- få
- Global
- Gruppe
- Gruppens
- Vekst
- håndtere
- Håndterer
- Ha
- he
- overskrifter
- tung
- tung løfting
- hjelpe
- hjelper
- her.
- utheving
- svært
- hans
- Hjemprodukt
- håp
- TIMER
- Hvordan
- Hvordan
- Men
- HTML
- HTTPS
- ID
- identifikator
- if
- bilde
- innflytelsesrik
- gjennomføring
- importere
- viktig
- in
- Inkludert
- indikerer
- info
- informasjon
- Infrastruktur
- innledende
- inngang
- innganger
- innsiden
- innsikt
- innsikt
- installere
- f.eks
- inn
- IT
- køyring
- DET ER
- Jobb
- Jobb
- sammenføyning
- jpg
- Hold
- Språk
- stor
- læring
- mindre
- Lar
- Leverage
- løfte
- i likhet med
- avstamning
- lenker
- Liste
- laste
- laster
- lokal
- lokalt
- logg
- logikk
- Se
- ser ut som
- elsker
- maskin
- maskinlæring
- Hoved
- GJØR AT
- administrerende
- manuelt
- mange
- Match
- max
- maksimal
- mdx
- meningsfylt
- Meny
- metode
- minutt
- mangler
- ML
- modell
- modeller
- Moments
- Overvåke
- mer
- må
- navn
- navn
- innfødt
- Naturlig
- Natural Language Processing
- Natur
- Naviger
- Navigasjon
- Trenger
- nødvendig
- Ny
- node
- bærbare
- Antall
- of
- offline
- ofte
- on
- ONE
- pågående
- bare
- drift
- Drift
- optimalisert
- Alternativ
- or
- Annen
- vår
- ut
- produksjon
- utenfor
- enn
- egen
- brød
- parameter
- parametere
- del
- lidenskap
- Utfør
- utfører
- rørledning
- plato
- Platon Data Intelligence
- PlatonData
- spiller
- befolket
- positiv
- Post
- pr
- forutsi
- forrige
- tidligere
- pris
- Prisene
- primære
- Før
- prosessering
- prosessor
- profesjonell
- fremme
- gi
- forutsatt
- gir
- Python
- kvalitet
- område
- heller
- Raw
- virkelige verden
- rekord
- poster
- Rød
- redusere
- reduserer
- referere
- fjerne
- repeterende
- erstatte
- krever
- Ressurser
- resultere
- resulterende
- retur
- Rolle
- Kjør
- rennende
- går
- s
- sagemaker
- salg
- salg
- skalerbar
- Skala
- planlegge
- planlagt
- planlegging
- forskere
- omfang
- SDK
- sdn
- sekunder
- Seksjon
- sikre
- se
- senior
- Tjenester
- Kort
- bør
- Vis
- Viser
- signifikant
- Enkelt
- enkelt
- enkelt miljø
- So
- Software
- solgt
- løsning
- Solutions
- LØSE
- kilde
- Spark
- spesialisert
- spesifikasjoner
- spesifisert
- Sport
- Begynn
- startet
- oppstart
- Tilstand
- status
- Steps
- lagring
- oppbevare
- Lagre dataene
- String
- sterk
- strukturert
- studio
- send
- I ettertid
- vellykket
- vellykket
- slik
- egnet
- bord
- enn
- Det
- De
- Staten
- deres
- Dem
- deretter
- Disse
- denne
- tre
- tid
- ganger
- til
- også
- topp
- spor
- Sporing
- Tog
- Kurs
- Transaksjonen
- Transform
- Transformation
- transformasjoner
- forvandlet
- transformere
- reiser
- Trender
- tutorial
- to
- typen
- typer
- ui
- etter
- underliggende
- låse opp
- oppdatert
- us
- bruke
- bruk sak
- brukt
- ved hjelp av
- Verdifull
- verdi
- Verdier
- ulike
- Kjøretøy
- av
- Se
- syn
- vs
- varm
- var
- we
- web
- webtjenester
- hvilken
- bred
- Bred rekkevidde
- vil
- med
- Arbeid
- arbeidet
- arbeidsflyt
- skrive
- år
- år
- Du
- Din
- zephyrnet