Amazon SageMaker Feature Store tillhandahåller en end-to-end-lösning för att automatisera funktionsteknik för maskininlärning (ML). För många ML-användningsfall måste rådata som loggfiler, sensoravläsningar eller transaktionsposter omvandlas till meningsfulla funktioner som är optimerade för modellträning.
Funktionskvalitet är avgörande för att säkerställa en mycket exakt ML-modell. Att omvandla rådata till funktioner med aggregering, kodning, normalisering och andra operationer behövs ofta och kan kräva betydande ansträngningar. Ingenjörer måste manuellt skriva anpassad dataförbearbetnings- och aggregeringslogik i Python eller Spark för varje användningsfall.
Dessa odifferentierade tunga lyft är besvärliga, repetitiva och felbenägna. De SageMaker Feature Store Feature Processor minskar denna börda genom att automatiskt omvandla rådata till aggregerade funktioner som är lämpliga för batchträning av ML-modeller. Det låter ingenjörer tillhandahålla enkla datatransformationsfunktioner, hanterar sedan att köra dem i stor skala på Spark och hantera den underliggande infrastrukturen. Detta gör det möjligt för datavetare och dataingenjörer att fokusera på funktionsteknisk logik snarare än på implementeringsdetaljer.
I det här inlägget visar vi hur ett bilförsäljningsföretag kan använda funktionsprocessorn för att omvandla rå försäljningstransaktionsdata till funktioner i tre steg:
- Lokala körningar av datatransformationer.
- Fjärrstyrning körs i skala med Spark.
- Operationalisering via pipelines.
Vi visar hur SageMaker Feature Store matar in rådata, kör funktionstransformationer på distans med hjälp av Spark och laddar de resulterande aggregerade funktionerna i en funktionsgrupp. Dessa konstruerade funktioner kan sedan användas för att träna ML-modeller.
För detta användningsfall ser vi hur SageMaker Feature Store hjälper till att konvertera råa bilförsäljningsdata till strukturerade funktioner. Dessa funktioner används sedan för att få insikter som:
- Genomsnitts- och maxpris på röda cabriolet från 2010
- Modeller med bästa körsträcka kontra pris
- Försäljningstrender av nya kontra begagnade bilar genom åren
- Skillnader i genomsnittlig MSRP mellan platser
Vi ser också hur SageMaker Feature Store-pipelines håller funktionerna uppdaterade när ny data kommer in, vilket gör det möjligt för företaget att kontinuerligt få insikter över tid.
Lösningsöversikt
Vi arbetar med datamängden car_data.csv
, som innehåller specifikationer som modell, år, status, körsträcka, pris och MSRP för begagnade och nya bilar som säljs av företaget. Följande skärmdump visar ett exempel på datasetet.
Lösningen anteckningsbok feature_processor.ipynb
innehåller följande huvudsteg, som vi förklarar i det här inlägget:
- Skapa två funktionsgrupper: en anropad
car-data
för råa bilförsäljningsrekord och en annan ringdecar-data-aggregated
för aggregerade bilförsäljningsrekord. - Använd
@feature_processor
dekorator för att ladda data till bildatafunktionsgruppen från Amazon enkel lagringstjänst (Amazon S3). - Kör
@feature_processor code
på distans som en Spark-applikation för att aggregera data. - Operationalisera funktionsprocessorn via SageMaker pipelines och schemat körs.
- Utforska funktionsbehandlingspipelines och härstamning in Amazon SageMaker Studio.
- Använd aggregerade funktioner för att träna en ML-modell.
Förutsättningar
För att följa denna handledning behöver du följande:
För detta inlägg hänvisar vi till följande anteckningsbok, som visar hur du kommer igång med Feature Processor med SageMaker Python SDK.
Skapa funktionsgrupper
Utför följande steg för att skapa funktionsgrupperna:
- Skapa en funktionsgruppdefinition för
car-data
enligt följande:
Funktionerna motsvarar varje kolumn i car_data.csv
dataset (Model
, Year
, Status
, Mileage
, Price
och MSRP
).
- Lägg till postens identifierare
id
och evenemangstidingest_time
till funktionsgruppen:
- Skapa en funktionsgruppdefinition för
car-data-aggregated
enligt följande:
För den aggregerade funktionsgruppen är funktionerna modellårsstatus, genomsnittlig körsträcka, max körsträcka, snittpris, maxpris, genomsnittlig MSRP, max MSRP och intagstid. Vi lägger till postidentifieraren model_year_status
och evenemangstid ingest_time
till denna funktionsgrupp.
- Skapa nu
car-data
funktionsgrupp:
- Skapa
car-data-aggregated
funktionsgrupp:
Du kan navigera till alternativet SageMaker Feature Store under Data på SageMaker Studio Hem menyn för att se funktionsgrupperna.
Använd @feature_processor decorator för att ladda data
I det här avsnittet transformerar vi lokalt rådata (car_data.csv
) från Amazon S3 till car-data
funktionsgrupp med hjälp av Feature Store Feature Processor. Denna första lokala körning tillåter oss att utveckla och iterera innan vi kör på distans, och kan göras på ett urval av data om så önskas för snabbare iteration.
Med @feature_processor
decorator, din transformationsfunktion körs i en Spark-runtimemiljö där inmatningsargumenten som tillhandahålls till din funktion och dess returvärde är Spark DataFrames.
- installera Funktionsprocessor SDK från SageMaker Python SDK och dess extrafunktioner med följande kommando:
Antalet ingångsparametrar i din transformationsfunktion måste matcha antalet ingångar som konfigurerats i @feature_processor
dekoratör. I det här fallet @feature_processor
dekoratör har car-data.csv
som input och car-data
funktionsgrupp som utdata, vilket indikerar att detta är en batchoperation med target_store
as OfflineStore
:
- Definiera
transform()
funktion för att omvandla data. Denna funktion utför följande åtgärder:- Konvertera kolumnnamn till gemener.
- Lägg till händelsetiden i
ingest_time
kolonn. - Ta bort skiljetecken och ersätt saknade värden med NA.
- Ring
transform()
funktion för att lagra data icar-data
funktionsgrupp:
Utdata visar att data har intagits framgångsrikt i bildatafunktionsgruppen.
Resultatet av transform_df.show()
funktionen är som följer:
Vi har framgångsrikt transformerat indata och tagit in den i car-data
funktionsgrupp.
Kör @feature_processor-koden på distans
I det här avsnittet demonstrerar vi att köra funktionsbehandlingskoden på distans som en Spark-applikation med hjälp av @remote
dekoratör som beskrivits tidigare. Vi kör funktionsbearbetningen på distans med hjälp av Spark för att skala till stora datamängder. Spark tillhandahåller distribuerad bearbetning på kluster för att hantera data som är för stor för en enda maskin. De @remote
decorator kör den lokala Python-koden som ett SageMaker-utbildningsjobb med en eller flera noder.
- Använd
@remote
dekoratör tillsammans med@feature_processor
dekoratör enligt följande:
Smakämnen spark_config
parameter indikerar att detta körs som en Spark application
. SparkConfig-instansen konfigurerar Spark-konfigurationen och beroenden.
- Definiera
aggregate()
funktion för att aggregera data med PySpark SQL och användardefinierade funktioner (UDF). Denna funktion utför följande åtgärder:- HOPLÄNKA
model
,year
ochstatus
att skapamodel_year_status
. - Ta genomsnittet av
price
att skapaavg_price
. - Ta maxvärdet på
price
att skapamax_price
. - Ta genomsnittet av
mileage
att skapaavg_mileage
. - Ta maxvärdet på
mileage
att skapamax_mileage
. - Ta genomsnittet av
msrp
att skapaavg_msrp
. - Ta maxvärdet på
msrp
att skapamax_msrp
. - Grupp av
model_year_status
.
- HOPLÄNKA
- Kör
aggregate()
funktion, som skapar ett SageMaker-utbildningsjobb för att köra Spark-applikationen:
Som ett resultat skapar SageMaker ett träningsjobb till Spark-applikationen som definierats tidigare. Det kommer att skapa en Spark-runtime-miljö med hjälp av sagemaker-spark-processing image
.
Vi använder SageMaker Training-jobb här för att köra vår Spark-funktionsbehandlingsapplikation. Med SageMaker Training kan du minska starttiderna till 1 minut eller mindre genom att använda varmpoolning, vilket inte är tillgängligt i SageMaker Processing. Detta gör SageMaker Training bättre optimerad för korta batchjobb som funktionsbearbetning där starttiden är viktig.
- För att se detaljerna, välj på SageMaker-konsolen Träningsjobb under Utbildning i navigeringsfönstret och välj sedan jobbet med namnet
aggregate-<timestamp>
.
Resultatet av samla() funktionen genererar telemetrikod. Inuti utgången kommer du att se den aggregerade informationen enligt följande:
När träningsjobbet är klart bör du se följande utdata:
Operationalisera funktionsprocessorn via SageMaker pipelines
I det här avsnittet visar vi hur man operationaliserar funktionsprocessorn genom att marknadsföra den till en SageMaker-pipeline och schemalägga körningar.
- Ladda först upp transformation_code.py fil som innehåller funktionsbehandlingslogiken till Amazon S3:
- Skapa sedan en funktionsprocessorpipeline car_data_pipeline med .to_pipeline() fungera:
- För att köra pipeline, använd följande kod:
- På samma sätt kan du skapa en pipeline för aggregerade funktioner som kallas
car_data_aggregated_pipeline
och börja löpa. - Schemalägg
car_data_aggregated_pipeline
att köra var 24:e timme:
I utgångssektionen kommer du att se ARN för pipeline och pipelineexekveringsrollen, och schemadetaljerna:
- För att få alla funktionsprocessorpipelines i det här kontot, använd
list_pipelines()
funktion på funktionsprocessorn:
Utgången kommer att vara följande:
Vi har framgångsrikt skapat SageMaker Feature Processor pipelines.
Utforska pipelines för funktionsbearbetning och ML-linje
I SageMaker Studio, slutför följande steg:
- På SageMaker Studio-konsolen, på Hem meny, välj Rörledningar.
Du bör se två pipelines skapade: car-data-ingestion-pipeline
och car-data-aggregated-ingestion-pipeline
.
- Välj
car-data-ingestion-pipeline
.
Den visar löpdetaljerna på avrättningar fliken.
- För att se funktionsgruppen som fylls av pipeline, välj Feature Store under Data Och välj
car-data
.
Du kommer att se de två funktionsgrupperna vi skapade i de föregående stegen.
- Välj
car-data
funktionsgrupp.
Du kommer att se funktionerna detaljer på Funktioner fliken.
Visa pipelinekörningar
Utför följande steg för att se pipelinekörningarna:
- På Rörledningsutförandes flik, välj
car-data-ingestion-pipeline
.
Detta kommer att visa alla körningar.
- Välj en av länkarna för att se detaljer om löpningen.
- För att se härstamning, välj Linje.
Hela härstamningen för car-data
visar indatakällan car_data.csv
och uppströmsenheter. Släktet för car-data-aggregated
visar ingången car-data
funktionsgrupp.
- Välja Ladda funktioner och välj sedan Fråga uppströms härstamning on
car-data
ochcar-data-ingestion-pipeline
för att se alla uppströmsenheter.
Hela härstamningen för car-data
funktionsgruppen ska se ut som följande skärmdump.
Likaså härstamningen för car-aggregated-data
funktionsgruppen ska se ut som följande skärmdump.
SageMaker Studio tillhandahåller en enda miljö för att spåra schemalagda pipelines, visa körningar, utforska härkomst och se funktionsbehandlingskoden.
De aggregerade funktionerna som genomsnittspris, maxpris, genomsnittlig körsträcka och mer i car-data-aggregated
funktionsgrupp ger insikt i uppgifternas natur. Du kan också använda dessa funktioner som en datauppsättning för att träna en modell för att förutsäga bilpriser eller för andra operationer. Att träna modellen är dock utanför räckvidden för detta inlägg, som fokuserar på att demonstrera SageMaker Feature Store-funktionerna för funktionsteknik.
Städa upp
Glöm inte att rensa upp resurserna som skapats som en del av det här inlägget för att undvika pågående avgifter.
- Inaktivera den schemalagda pipelinen via
fp.schedule()
metod med tillståndsparametern somDisabled
:
- Ta bort båda funktionsgrupperna:
Data som finns i S3-hinken och offlinefunktionsbutiken kan medföra kostnader, så du bör radera dem för att undvika avgifter.
- Ta bort S3-objekten.
- Ta bort posterna från featurebutiken.
Slutsats
I det här inlägget visade vi hur ett bilförsäljningsföretag använde SageMaker Feature Store Feature Processor för att få värdefulla insikter från sina råa försäljningsdata genom att:
- Inta och transformera batchdata i skala med hjälp av Spark
- Operationalisering av funktionstekniska arbetsflöden via SageMaker pipelines
- Tillhandahåller linjespårning och en enda miljö för att övervaka pipelines och utforska funktioner
- Förbereder aggregerade funktioner optimerade för träning av ML-modeller
Genom att följa dessa steg kunde företaget omvandla tidigare oanvändbar data till strukturerade funktioner som sedan kunde användas för att träna en modell för att förutsäga bilpriser. SageMaker Feature Store gjorde det möjligt för dem att fokusera på funktionsteknik snarare än den underliggande infrastrukturen.
Vi hoppas att det här inlägget hjälper dig att låsa upp värdefulla ML-insikter från din egen data med hjälp av SageMaker Feature Store Feature Processor!
För mer information om detta, se Funktionsbearbetning och SageMaker-exemplet på Amazon SageMaker Feature Store: Feature Processor Introduktion.
Om författarna
Dhaval Shah är senior lösningsarkitekt på AWS, specialiserad på maskininlärning. Med ett starkt fokus på digitala infödda företag ger han kunderna möjlighet att dra nytta av AWS och driva deras affärstillväxt. Som en ML-entusiast drivs Dhaval av sin passion för att skapa effektfulla lösningar som ger positiv förändring. På sin fritid ägnar han sig åt sin kärlek till resor och värnar om kvalitetsstunder med sin familj.
Ninad Joshi är Senior Solutions Architect på AWS och hjälper globala AWS-kunder att designa säkra, skalbara och kostnadseffektiva lösningar i moln för att lösa deras komplexa verkliga affärsutmaningar. Hans arbete inom maskininlärning (ML) täcker ett brett spektrum av AI/ML-användningsfall, med ett primärt fokus på End-to-End ML, Natural Language Processing och Computer Vision. Innan han började på AWS arbetade Ninad som mjukvaruutvecklare i 12+ år. Utanför sina professionella ansträngningar tycker Ninad om att spela schack och utforska olika gambits.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15%
- 16
- 20
- 24
- 26%
- 40
- 7
- 8
- 9
- a
- Able
- Konto
- exakt
- tvärs
- åtgärder
- lägga till
- aggregat
- aggregation
- AI / ML
- Alla
- tillåter
- längs
- också
- amason
- Amazon SageMaker
- Amazon Web Services
- an
- och
- Annan
- vilken som helst
- Ansökan
- ÄR
- argument
- AS
- At
- automatisera
- automatiskt
- tillgänglig
- genomsnitt
- undvika
- AWS
- grundläggande
- BE
- innan
- BÄST
- Bättre
- Stor
- båda
- föra
- belastning
- företag
- företag
- by
- kallas
- KAN
- kapacitet
- bil
- bilar
- Vid
- fall
- utmaningar
- byta
- avgifter
- schack
- Välja
- cloud
- koda
- Kolumn
- Kolonner
- kommer
- företag
- fullborda
- komplex
- dator
- Datorsyn
- konfiguration
- konfigurerad
- Konsol
- innehåller
- kontinuerligt
- konvertera
- Pris
- Kostar
- kunde
- Täcker
- skapa
- skapas
- skapar
- Skapa
- kritisk
- besvärlig
- beställnings
- Kunder
- datum
- datauppsättningar
- definierade
- definition
- demonstrera
- demonstreras
- demonstrerar
- demonstrera
- beroenden
- beskriven
- beskrivning
- Designa
- önskas
- detaljer
- utveckla
- Utvecklare
- olika
- digital
- inaktiverad
- visning
- distribueras
- gjort
- driv
- driven
- varje
- Tidigare
- Effektiv
- ansträngning
- bemyndigar
- aktiverad
- möjliggör
- möjliggör
- början till slut
- strävanden
- Teknik
- Ingenjörer
- säkerställa
- entusiast
- enheter
- Miljö
- händelse
- Varje
- exempel
- exekvera
- utförande
- avsluta
- Förklara
- utforska
- Utforska
- familj
- snabbare
- Leverans
- Funktioner
- Fil
- Filer
- Fokus
- fokuserar
- följer
- efter
- följer
- För
- fraktionerad
- från
- full
- fungera
- funktioner
- Få
- genererar
- skaffa sig
- Välgörenhet
- Grupp
- Gruppens
- Tillväxt
- hantera
- Handtag
- Har
- he
- headers
- tung
- tunga lyft
- hjälpa
- hjälper
- här.
- belysa
- höggradigt
- hans
- Hem
- hoppas
- ÖPPETTIDER
- Hur ser din drömresa ut
- How To
- Men
- html
- HTTPS
- ID
- identifierare
- if
- bild
- effektfull
- genomförande
- importera
- med Esport
- in
- Inklusive
- pekar på
- info
- informationen
- Infrastruktur
- inledande
- ingång
- ingångar
- inuti
- insikt
- insikter
- installera
- exempel
- in
- IT
- iteration
- DESS
- Jobb
- Lediga jobb
- sammanfogning
- jpg
- Ha kvar
- språk
- Large
- inlärning
- mindre
- Lets
- Hävstång
- lyft
- tycka om
- härstamning
- länkar
- Lista
- läsa in
- laster
- lokal
- lokalt
- log
- Logiken
- se
- ser ut som
- älskar
- Maskinen
- maskininlärning
- Huvudsida
- GÖR
- hantera
- manuellt
- många
- Match
- max
- maximal
- mdx
- meningsfull
- Meny
- metod
- minut
- saknas
- ML
- modell
- modeller
- Ögonblick
- Övervaka
- mer
- måste
- namn
- namn
- nativ
- Natural
- Naturlig språkbehandling
- Natur
- Navigera
- Navigering
- Behöver
- behövs
- Nya
- nod
- anteckningsbok
- antal
- of
- offline
- Ofta
- on
- ONE
- pågående
- endast
- drift
- Verksamhet
- optimerad
- Alternativet
- or
- Övriga
- vår
- ut
- produktion
- utanför
- över
- egen
- panelen
- parameter
- parametrar
- del
- brinner
- Utföra
- utför
- rörledning
- plato
- Platon Data Intelligence
- PlatonData
- i
- befolkad
- positiv
- Inlägg
- pr
- förutse
- föregående
- tidigare
- pris
- Priser
- primär
- Innan
- bearbetning
- Processorn
- professionell
- främja
- ge
- förutsatt
- ger
- Python
- kvalitet
- område
- snarare
- Raw
- verkliga världen
- post
- register
- Red
- minska
- minskar
- hänvisa
- ta bort
- repetitiva
- ersätta
- kräver
- Resurser
- resultera
- resulterande
- avkastning
- Roll
- Körning
- rinnande
- kör
- s
- sagemaker
- Till Salu
- försäljning
- skalbar
- Skala
- tidtabellen
- planerad
- schemaläggning
- vetenskapsmän
- omfattning
- sDK
- sdn
- sekunder
- §
- säkra
- se
- senior
- Tjänster
- Kort
- skall
- show
- Visar
- signifikant
- Enkelt
- enda
- enda miljö
- So
- Mjukvara
- säljs
- lösning
- Lösningar
- LÖSA
- Källa
- Gnista
- specialiserat
- specifikationer
- specificerade
- Sporter
- starta
- igång
- start
- Ange
- status
- Steg
- förvaring
- lagra
- Lagra data
- Sträng
- stark
- strukturerade
- studio
- skicka
- Senare
- framgångsrik
- Framgångsrikt
- sådana
- lämplig
- bord
- än
- den där
- Smakämnen
- Staten
- deras
- Dem
- sedan
- Dessa
- detta
- tre
- tid
- gånger
- till
- alltför
- topp
- spår
- Spårning
- Tåg
- Utbildning
- transaktion
- Förvandla
- Transformation
- transformationer
- transformerad
- omvandla
- färdas
- Trender
- handledning
- två
- Typ
- typer
- ui
- under
- underliggande
- låsa
- uppdaterad
- us
- användning
- användningsfall
- Begagnade
- med hjälp av
- Värdefulla
- värde
- Värden
- olika
- fordon
- via
- utsikt
- syn
- vs
- varm
- var
- we
- webb
- webbservice
- som
- bred
- Brett utbud
- kommer
- med
- Arbete
- arbetade
- arbetsflöden
- skriva
- år
- år
- Om er
- Din
- zephyrnet