Amazon SageMaker Feature Store leverer en end-to-end-løsning til at automatisere feature engineering for machine learning (ML). I mange tilfælde af ML-brug skal rådata som logfiler, sensoraflæsninger eller transaktionsregistreringer transformeres til meningsfulde funktioner, der er optimeret til modeltræning.
Funktionskvalitet er afgørende for at sikre en meget nøjagtig ML-model. At transformere rådata til funktioner ved hjælp af aggregering, kodning, normalisering og andre operationer er ofte nødvendig og kan kræve en betydelig indsats. Ingeniører skal manuelt skrive tilpasset dataforbehandling og aggregeringslogik i Python eller Spark for hver brugssag.
Disse udifferentierede tunge løft er besværlige, gentagne og fejltilbøjelige. Det SageMaker Feature Store Feature Processor reducerer denne byrde ved automatisk at transformere rådata til aggregerede funktioner, der er egnede til batchtræning af ML-modeller. Det giver ingeniører mulighed for at levere enkle datatransformationsfunktioner og håndterer derefter at køre dem i skala på Spark og administrere den underliggende infrastruktur. Dette gør det muligt for dataforskere og dataingeniører at fokusere på funktionsingeniørlogikken frem for implementeringsdetaljer.
I dette indlæg demonstrerer vi, hvordan et bilsalgsfirma kan bruge funktionsprocessoren til at omdanne rå salgstransaktionsdata til funktioner i tre trin:
- Lokale kørsler af datatransformationer.
- Fjernbetjening kører i skala ved hjælp af Spark.
- Operationalisering via pipelines.
Vi viser, hvordan SageMaker Feature Store indtager de rå data, fjernkører funktionstransformationer ved hjælp af Spark og indlæser de resulterende aggregerede funktioner i en feature gruppe. Disse konstruerede funktioner kan derefter bruges til at træne ML-modeller.
Til denne brugssag ser vi, hvordan SageMaker Feature Store hjælper med at konvertere de rå bilsalgsdata til strukturerede funktioner. Disse funktioner bruges efterfølgende til at få indsigt som:
- Gennemsnits- og maksimumpris på røde cabriolet fra 2010
- Modeller med bedste kilometertal vs. pris
- Salgetstendenser for nye vs. brugte biler gennem årene
- Forskelle i gennemsnitlig MSRP på tværs af lokationer
Vi ser også, hvordan SageMaker Feature Store-pipelines holder funktionerne opdateret, efterhånden som nye data kommer ind, hvilket gør det muligt for virksomheden løbende at få indsigt over tid.
Løsningsoversigt
Vi arbejder med datasættet car_data.csv
, som indeholder specifikationer som model, årgang, status, kilometertal, pris og MSRP for brugte og nye biler solgt af virksomheden. Følgende skærmbillede viser et eksempel på datasættet.
Løsningen notesbog feature_processor.ipynb
indeholder følgende hovedtrin, som vi forklarer i dette indlæg:
- Opret to funktionsgrupper: en kaldet
car-data
for rå bilsalgsrekorder og en anden kaldetcar-data-aggregated
for aggregerede bilsalgsrekorder. - Brug
@feature_processor
dekorator til at indlæse data i bildata-funktionsgruppen fra Amazon Simple Storage Service (Amazon S3). - Kør
@feature_processor code
eksternt som en Spark-applikation til at aggregere dataene. - Operationaliser funktionsprocessoren via SageMaker rørledninger og tidsplan kører.
- Udforsk funktionsbehandlingspipelines og afstamning in Amazon SageMaker Studio.
- Brug aggregerede funktioner til at træne en ML-model.
Forudsætninger
For at følge denne vejledning skal du bruge følgende:
Til dette indlæg henviser vi til følgende notesbog, som demonstrerer, hvordan du kommer i gang med Feature Processor ved hjælp af SageMaker Python SDK.
Opret funktionsgrupper
For at oprette funktionsgrupperne skal du udføre følgende trin:
- Opret en funktionsgruppedefinition for
car-data
som følger:
Funktionerne svarer til hver kolonne i car_data.csv
datasæt (Model
, Year
, Status
, Mileage
, Price
og MSRP
).
- Tilføj registreringsidentifikator
id
og begivenhedstidingest_time
til featuregruppen:
- Opret en funktionsgruppedefinition for
car-data-aggregated
som følger:
For den aggregerede funktionsgruppe er funktionerne modelårsstatus, gennemsnitlig kilometertal, maks. kilometertal, gennemsnitspris, maks. pris, gennemsnitlig MSRP, maks. MSRP og indtagelsestid. Vi tilføjer registreringsidentifikatoren model_year_status
og begivenhedstid ingest_time
til denne funktionsgruppe.
- Opret nu
car-data
funktionsgruppe:
- Opret
car-data-aggregated
funktionsgruppe:
Du kan navigere til SageMaker Feature Store-indstillingen under data på SageMaker Studio Home menu for at se funktionsgrupperne.
Brug @feature_processor dekorator til at indlæse data
I dette afsnit transformerer vi de rå inputdata lokalt (car_data.csv
) fra Amazon S3 til car-data
funktionsgruppe ved hjælp af Feature Store Feature Processor. Denne indledende lokale kørsel giver os mulighed for at udvikle og iterere, før vi kører eksternt, og kunne udføres på en prøve af dataene, hvis det ønskes for hurtigere iteration.
Med @feature_processor
decorator, kører din transformationsfunktion i et Spark-runtime-miljø, hvor input-argumenterne til din funktion og dens returværdi er Spark DataFrames.
- Installer Feature Processor SDK fra SageMaker Python SDK og dets ekstramateriale ved hjælp af følgende kommando:
Antallet af inputparametre i din transformationsfunktion skal svare til antallet af input, der er konfigureret i @feature_processor
dekoratør. I dette tilfælde @feature_processor
dekoratør har car-data.csv
som input og car-data
funktionsgruppe som output, hvilket indikerer, at dette er en batch-operation med target_store
as OfflineStore
:
- Definer
transform()
funktion til at transformere dataene. Denne funktion udfører følgende handlinger:- Konverter kolonnenavne til små bogstaver.
- Tilføj begivenhedstidspunktet til
ingest_time
kolonne. - Fjern tegnsætning og erstat manglende værdier med NA.
- Ring til
transform()
funktion til at gemme dataene icar-data
funktionsgruppe:
Outputtet viser, at dataene er optaget med succes i bildata-funktionsgruppen.
Output fra transform_df.show()
funktion er som følger:
Vi har med succes transformeret inputdataene og indtaget dem i car-data
feature gruppe.
Kør @feature_processor-koden eksternt
I dette afsnit demonstrerer vi at køre funktionsbehandlingskoden eksternt som en Spark-applikation ved hjælp af @remote
dekoratør beskrevet tidligere. Vi kører funktionsbehandlingen eksternt ved hjælp af Spark til at skalere til store datasæt. Spark leverer distribueret behandling på klynger for at håndtere data, der er for store til en enkelt maskine. Det @remote
decorator kører den lokale Python-kode som et enkelt eller multi-node SageMaker træningsjob.
- Brug
@remote
dekoratør sammen med@feature_processor
dekoratør som følger:
spark_config
parameter angiver, at dette køres som en Spark application
. SparkConfig-instansen konfigurerer Spark-konfigurationen og afhængigheder.
- Definer
aggregate()
funktion til at aggregere dataene ved hjælp af PySpark SQL og brugerdefinerede funktioner (UDF'er). Denne funktion udfører følgende handlinger:- Sammenkæde
model
,year
ogstatus
at skabemodel_year_status
. - Tag gennemsnittet af
price
at skabeavg_price
. - Tag den maksimale værdi af
price
at skabemax_price
. - Tag gennemsnittet af
mileage
at skabeavg_mileage
. - Tag den maksimale værdi af
mileage
at skabemax_mileage
. - Tag gennemsnittet af
msrp
at skabeavg_msrp
. - Tag den maksimale værdi af
msrp
at skabemax_msrp
. - Gruppe af
model_year_status
.
- Sammenkæde
- Kør
aggregate()
funktion, som opretter et SageMaker træningsjob til at køre Spark-applikationen:
Som et resultat opretter SageMaker et træningsjob til den tidligere definerede Spark-applikation. Det vil skabe et Spark runtime-miljø ved hjælp af sagemaker-spark-processing image
.
Vi bruger SageMaker Training-job her til at køre vores Spark-funktionsbehandlingsapplikation. Med SageMaker Training kan du reducere opstartstiden til 1 minut eller mindre ved at bruge varm pooling, som ikke er tilgængelig i SageMaker Processing. Dette gør SageMaker Training bedre optimeret til korte batchjobs som funktionsbehandling, hvor opstartstid er vigtig.
- For at se detaljerne skal du vælge på SageMaker-konsollen Træningsjob under Kurser i navigationsruden, og vælg derefter jobbet med navnet
aggregate-<timestamp>
.
Output fra samlet() funktion genererer telemetrikode. Inde i outputtet vil du se de aggregerede data som følger:
Når træningsjobbet er afsluttet, bør du se følgende output:
Operationaliser funktionsprocessoren via SageMaker-pipelines
I dette afsnit demonstrerer vi, hvordan man operationaliserer funktionsprocessoren ved at promovere den til en SageMaker-pipeline og planlægge kørsler.
- Først skal du uploade transformation_code.py fil, der indeholder funktionsbehandlingslogikken til Amazon S3:
- Opret derefter en Feature Processor-pipeline car_data_pipeline ved hjælp af .to_pipeline() fungere:
- For at køre pipelinen skal du bruge følgende kode:
- På samme måde kan du oprette en pipeline for aggregerede funktioner kaldet
car_data_aggregated_pipeline
og start en løbetur. - Planlæg
car_data_aggregated_pipeline
at køre hver 24 timer:
I outputsektionen vil du se ARN for pipeline og pipeline-udførelsesrollen og tidsplandetaljerne:
- For at få alle Feature Processor-pipelines på denne konto skal du bruge
list_pipelines()
funktion på funktionsprocessoren:
Outputtet bliver som følger:
Vi har med succes skabt SageMaker Feature Processor pipelines.
Udforsk funktionsbehandlingspipelines og ML-afstamning
I SageMaker Studio skal du udføre følgende trin:
- På SageMaker Studio-konsollen, på Home menu, vælg Rørledninger.
Du bør se to pipelines oprettet: car-data-ingestion-pipeline
, car-data-aggregated-ingestion-pipeline
.
- Vælg den
car-data-ingestion-pipeline
.
Det viser løbsdetaljerne på henrettelser fane.
- For at se funktionsgruppen udfyldt af pipelinen skal du vælge Feature Store under data Og vælg
car-data
.
Du vil se de to funktionsgrupper, vi oprettede i de foregående trin.
- Vælg den
car-data
feature gruppe.
Du vil se funktionerne detaljer på Funktionalitet fane.
Se pipelinekørsler
Udfør følgende trin for at se pipeline-kørslerne:
- På Rørledningsudførelses fane, vælg
car-data-ingestion-pipeline
.
Dette vil vise alle kørslerne.
- Vælg et af linkene for at se detaljerne om løbeturen.
- For at se afstamning skal du vælge Afstamning.
Den fulde slægt for car-data
viser inputdatakilden car_data.csv
og upstream-enheder. Slægten for car-data-aggregated
viser inputtet car-data
feature gruppe.
- Vælg Indlæs funktioner og vælg derefter Forespørg opstrøms afstamning on
car-data
,car-data-ingestion-pipeline
for at se alle upstream-enheder.
Den fulde slægt for car-data
funktionsgruppen skal se ud som følgende skærmbillede.
Tilsvarende er slægten for car-aggregated-data
funktionsgruppen skal se ud som følgende skærmbillede.
SageMaker Studio giver et enkelt miljø til at spore planlagte pipelines, se kørsler, udforske afstamning og se funktionsbehandlingskoden.
De samlede funktioner såsom gennemsnitspris, maks. pris, gennemsnitlig kilometertal og mere i car-data-aggregated
feature group giver indsigt i dataenes karakter. Du kan også bruge disse funktioner som et datasæt til at træne en model til at forudsige bilpriser eller til andre operationer. Men træning af modellen er uden for dette indlæg, som fokuserer på at demonstrere SageMaker Feature Store-funktionerne til feature engineering.
Ryd op
Glem ikke at rydde op i de ressourcer, der er oprettet som en del af dette indlæg for at undgå at pådrage sig løbende gebyrer.
- Deaktiver den planlagte pipeline via
fp.schedule()
metode med tilstandsparameteren somDisabled
:
- Slet begge funktionsgrupper:
Dataene i S3-bøtten og offlinefunktionsbutikken kan pådrage sig omkostninger, så du bør slette dem for at undgå gebyrer.
- Slet S3-objekterne.
- Slet posterne fra featurebutikken.
Konklusion
I dette indlæg demonstrerede vi, hvordan et bilsalgsfirma brugte SageMaker Feature Store Feature Processor til at få værdifuld indsigt fra deres rå salgsdata ved at:
- Indtagelse og transformation af batchdata i skala ved hjælp af Spark
- Operationalisering af feature engineering workflows via SageMaker pipelines
- Leverer afstamningssporing og et enkelt miljø til at overvåge pipelines og udforske funktioner
- Forberedelse af aggregerede funktioner, der er optimeret til træning af ML-modeller
Ved at følge disse trin var virksomheden i stand til at transformere tidligere ubrugelige data til strukturerede funktioner, som derefter kunne bruges til at træne en model til at forudsige bilpriser. SageMaker Feature Store gjorde det muligt for dem at fokusere på feature engineering frem for den underliggende infrastruktur.
Vi håber, at dette indlæg hjælper dig med at låse op for værdifuld ML-indsigt fra dine egne data ved hjælp af SageMaker Feature Store Feature Processor!
For mere information om dette, se Funktionsbehandling og SageMaker-eksemplet på Amazon SageMaker Feature Store: Feature Processor Introduktion.
Om forfatterne
Dhaval Shah er Senior Solutions Architect hos AWS med speciale i Machine Learning. Med et stærkt fokus på digitale indfødte virksomheder giver han kunderne mulighed for at udnytte AWS og drive deres virksomhedsvækst. Som ML-entusiast er Dhaval drevet af sin passion for at skabe effektfulde løsninger, der bringer positiv forandring. I sin fritid hengiver han sig til sin kærlighed til rejser og værner om kvalitetsøjeblikke med sin familie.
Ninad Joshi er en Senior Solutions Architect hos AWS, der hjælper globale AWS-kunder med at designe sikre, skalerbare og omkostningseffektive løsninger i skyen for at løse deres komplekse forretningsmæssige udfordringer i den virkelige verden. Hans arbejde i Machine Learning (ML) dækker en bred vifte af AI/ML-brugssager med primært fokus på End-to-End ML, Natural Language Processing og Computer Vision. Før han kom til AWS, arbejdede Ninad som softwareudvikler i mere end 12 år. Uden for sine professionelle bestræbelser kan Ninad godt lide at spille skak og udforske forskellige gambits.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15 %
- 16
- 20
- 24
- 26 %
- 40
- 7
- 8
- 9
- a
- I stand
- Konto
- præcis
- tværs
- aktioner
- tilføje
- aggregat
- aggregering
- AI / ML
- Alle
- tillader
- sammen
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- ,
- En anden
- enhver
- Anvendelse
- ER
- argumenter
- AS
- At
- automatisere
- automatisk
- til rådighed
- gennemsnit
- undgå
- AWS
- grundlæggende
- BE
- før
- BEDSTE
- Bedre
- Big
- både
- bringe
- byrde
- virksomhed
- virksomheder
- by
- kaldet
- CAN
- kapaciteter
- bil
- biler
- tilfælde
- tilfælde
- udfordringer
- lave om
- afgifter
- skak
- Vælg
- Cloud
- kode
- Kolonne
- Kolonner
- kommer
- selskab
- fuldføre
- komplekse
- computer
- Computer Vision
- Konfiguration
- konfigureret
- Konsol
- indeholder
- løbende
- konvertere
- Koste
- Omkostninger
- kunne
- Dækker
- skabe
- oprettet
- skaber
- Oprettelse af
- kritisk
- besværlig
- skik
- Kunder
- data
- datasæt
- definerede
- definition
- demonstrere
- demonstreret
- demonstrerer
- demonstrerer
- afhængigheder
- beskrevet
- beskrivelse
- Design
- ønskes
- detaljer
- udvikle
- Udvikler
- forskellige
- digital
- deaktiveret
- visning
- distribueret
- færdig
- køre
- drevet
- hver
- tidligere
- Effektiv
- indsats
- bemyndiger
- aktiveret
- muliggør
- muliggør
- ende til ende
- bestræbelser
- Engineering
- Ingeniører
- sikre
- entusiast
- enheder
- Miljø
- begivenhed
- Hver
- eksempel
- udføre
- udførelse
- Afslutning
- Forklar
- udforske
- Udforskning
- familie
- hurtigere
- Feature
- Funktionalitet
- File (Felt)
- Filer
- Fokus
- fokuserer
- følger
- efter
- følger
- Til
- fraktioneret
- fra
- fuld
- funktion
- funktioner
- Gevinst
- genererer
- få
- Global
- gruppe
- Gruppens
- Vækst
- håndtere
- Håndterer
- Have
- he
- headers
- tunge
- tunge løft
- hjælpe
- hjælper
- link.
- fremhæve
- stærkt
- hans
- Home
- håber
- HOURS
- Hvordan
- How To
- Men
- HTML
- HTTPS
- ID
- identifikator
- if
- billede
- effektfuld
- implementering
- importere
- vigtigt
- in
- Herunder
- angiver
- info
- oplysninger
- Infrastruktur
- initial
- indgang
- indgange
- indvendig
- indsigt
- indsigt
- installere
- instans
- ind
- IT
- iteration
- ITS
- Job
- Karriere
- sammenføjning
- jpg
- Holde
- Sprog
- stor
- læring
- mindre
- Lets
- Leverage
- løft
- ligesom
- afstamning
- links
- Liste
- belastning
- belastninger
- lokale
- lokalt
- log
- logik
- Se
- ligner
- kærlighed
- maskine
- machine learning
- Main
- maerker
- styring
- manuelt
- mange
- Match
- max
- maksimal
- mdx
- meningsfuld
- Menu
- metode
- minut
- mangler
- ML
- model
- modeller
- Moments
- Overvåg
- mere
- skal
- navn
- navne
- indfødte
- Natural
- Natural Language Processing
- Natur
- Naviger
- Navigation
- Behov
- behov
- Ny
- node
- notesbog
- nummer
- of
- offline
- tit
- on
- ONE
- igangværende
- kun
- drift
- Produktion
- optimeret
- Option
- or
- Andet
- vores
- ud
- output
- uden for
- i løbet af
- egen
- brød
- parameter
- parametre
- del
- lidenskab
- Udfør
- udfører
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- befolkede
- positiv
- Indlæg
- pr
- forudsige
- tidligere
- tidligere
- pris
- Priser
- primære
- Forud
- forarbejdning
- Processor
- professionel
- Fremme
- give
- forudsat
- giver
- Python
- kvalitet
- rækkevidde
- hellere
- Raw
- virkelige verden
- optage
- optegnelser
- Rød
- reducere
- reducerer
- henvise
- Fjern
- repetitiv
- erstatte
- kræver
- Ressourcer
- resultere
- resulterer
- afkast
- roller
- Kør
- kører
- løber
- s
- sagemaker
- salg
- salg
- skalerbar
- Scale
- planlægge
- planlagt
- planlægning
- forskere
- rækkevidde
- SDK
- sdn
- sekunder
- Sektion
- sikker
- se
- senior
- Tjenester
- Kort
- bør
- Vis
- Shows
- signifikant
- Simpelt
- enkelt
- enkelt miljø
- So
- Software
- solgt
- løsninger
- Løsninger
- SOLVE
- Kilde
- Spark
- speciale
- specifikationer
- specificeret
- Sport
- starte
- påbegyndt
- opstart
- Tilstand
- Status
- Steps
- opbevaring
- butik
- Gem dataene
- String
- stærk
- struktureret
- Studio
- indsende
- Efterfølgende
- vellykket
- Succesfuld
- sådan
- egnede
- bord
- end
- at
- Staten
- deres
- Them
- derefter
- Disse
- denne
- tre
- tid
- gange
- til
- også
- top
- spor
- Sporing
- Tog
- Kurser
- transaktion
- Transform
- Transformation
- transformationer
- omdannet
- omdanne
- rejse
- Tendenser
- tutorial
- to
- typen
- typer
- ui
- under
- underliggende
- låse
- opdateret
- us
- brug
- brug tilfælde
- anvendte
- ved brug af
- Værdifuld
- værdi
- Værdier
- forskellige
- Køretøjer
- via
- Specifikation
- vision
- vs
- varm
- var
- we
- web
- webservices
- som
- bred
- Bred rækkevidde
- vilje
- med
- Arbejde
- arbejdede
- arbejdsgange
- skriver
- år
- år
- Du
- Din
- zephyrnet