Negozio di funzionalità Amazon SageMaker fornisce una soluzione end-to-end per automatizzare l'ingegneria delle funzionalità per l'apprendimento automatico (ML). Per molti casi d'uso del machine learning, i dati grezzi come file di registro, letture di sensori o record di transazioni devono essere trasformati in funzionalità significative ottimizzate per l'addestramento del modello.
La qualità delle funzionalità è fondamentale per garantire un modello ML estremamente accurato. La trasformazione dei dati grezzi in funzionalità mediante aggregazione, codifica, normalizzazione e altre operazioni è spesso necessaria e può richiedere uno sforzo significativo. Gli ingegneri devono scrivere manualmente la logica personalizzata di preelaborazione e aggregazione dei dati in Python o Spark per ogni caso d'uso.
Questo lavoro pesante indifferenziato è ingombrante, ripetitivo e soggetto a errori. IL Processore di funzionalità del negozio di funzionalità SageMaker riduce questo onere trasformando automaticamente i dati grezzi in funzionalità aggregate adatte per l'addestramento in batch di modelli ML. Consente agli ingegneri di fornire semplici funzioni di trasformazione dei dati, quindi di gestirle su larga scala su Spark e di gestire l'infrastruttura sottostante. Ciò consente ai data scientist e agli ingegneri dei dati di concentrarsi sulla logica di progettazione delle funzionalità piuttosto che sui dettagli di implementazione.
In questo post, dimostriamo come un'azienda di vendita di automobili può utilizzare il Feature Processor per trasformare i dati grezzi delle transazioni di vendita in funzionalità in tre passaggi:
- Esecuzioni locali di trasformazioni di dati.
- Esecuzioni remote su larga scala utilizzando Spark.
- Operazionalizzazione tramite pipeline.
Mostriamo come SageMaker Feature Store acquisisce i dati grezzi, esegue trasformazioni di funzionalità in remoto utilizzando Spark e carica le funzionalità aggregate risultanti in un file gruppo di funzionalità. Queste funzionalità progettate possono quindi essere utilizzate per addestrare modelli ML.
Per questo caso d'uso, vediamo come SageMaker Feature Store aiuta a convertire i dati grezzi sulle vendite di auto in funzionalità strutturate. Queste funzionalità vengono successivamente utilizzate per ottenere approfondimenti come:
- Prezzo medio e massimo delle decappottabili rosse dal 2010
- Modelli con il miglior chilometraggio rispetto al prezzo
- Andamento delle vendite di auto nuove e usate nel corso degli anni
- Differenze nel prezzo consigliato medio tra le località
Vediamo anche come le pipeline di SageMaker Feature Store mantengono aggiornate le funzionalità man mano che arrivano nuovi dati, consentendo all'azienda di acquisire continuamente informazioni dettagliate nel tempo.
Panoramica della soluzione
Lavoriamo con il set di dati car_data.csv
, che contiene specifiche quali modello, anno, stato, chilometraggio, prezzo e prezzo consigliato per le auto nuove e usate vendute dall'azienda. Lo screenshot seguente mostra un esempio del set di dati.
Il quaderno delle soluzioni feature_processor.ipynb
contiene i seguenti passaggi principali, che spieghiamo in questo post:
- Crea due gruppi di funzionalità: uno chiamato
car-data
per i record grezzi di vendite di auto e un altro chiamatocar-data-aggregated
per i record aggregati delle vendite di automobili. - Usa il
@feature_processor
decoratore da cui caricare i dati nel gruppo di funzionalità car-data Servizio di archiviazione semplice Amazon (Amazon S3). - Corri il
@feature_processor code
in remoto come applicazione Spark per aggregare i dati. - Rendere operativo il processore di funzionalità tramite Pipeline SageMaker e le corse programmate.
- Esplora le pipeline di elaborazione delle funzionalità e lignaggio in Amazon Sage Maker Studio.
- Utilizza funzionalità aggregate per addestrare un modello ML.
Prerequisiti
Per seguire questo tutorial, è necessario quanto segue:
Per questo post facciamo riferimento a quanto segue taccuino, che illustra come iniziare a utilizzare Feature Processor utilizzando SageMaker Python SDK.
Crea gruppi di funzionalità
Per creare i gruppi di funzionalità, completare i seguenti passaggi:
- Creare una definizione di gruppo di funzionalità per
car-data
come segue:
Le caratteristiche corrispondono a ciascuna colonna del car_data.csv
set di dati (Model
, Year
, Status
, Mileage
, Price
e MSRP
).
- Aggiungi l'identificatore del record
id
e l'orario dell'eventoingest_time
al gruppo di funzionalità:
- Creare una definizione di gruppo di funzionalità per
car-data-aggregated
come segue:
Per il gruppo di funzionalità aggregate, le funzionalità sono stato dell'anno del modello, chilometraggio medio, chilometraggio massimo, prezzo medio, prezzo massimo, prezzo consigliato medio, prezzo consigliato massimo e tempo di acquisizione. Aggiungiamo l'identificatore del record model_year_status
e l'orario dell'evento ingest_time
a questo gruppo di funzionalità.
- Ora crea il file
car-data
gruppo di funzioni:
- creare il
car-data-aggregated
gruppo di funzioni:
Puoi accedere all'opzione SageMaker Feature Store sotto Dati su SageMaker Studio Casa menu per visualizzare i gruppi di funzionalità.
Utilizza il decoratore @feature_processor per caricare i dati
In questa sezione trasformiamo localmente i dati grezzi di input (car_data.csv
) da Amazon S3 nel file car-data
gruppo di funzionalità utilizzando il processore di funzionalità dell'archivio funzionalità. Questa esecuzione locale iniziale ci consente di sviluppare ed eseguire l'iterazione prima dell'esecuzione in remoto e, se lo si desidera, potrebbe essere eseguita su un campione di dati per un'iterazione più rapida.
Grazie alla @feature_processor
decoratore, la funzione di trasformazione viene eseguita in un ambiente runtime Spark in cui gli argomenti di input forniti alla funzione e il relativo valore restituito sono Spark DataFrames.
- installare il Funzionalità SDK del processore dal SDK Python di SageMaker e i suoi extra utilizzando il seguente comando:
Il numero di parametri di input nella funzione di trasformazione deve corrispondere al numero di input configurati in @feature_processor
decoratore. In questo caso, il @feature_processor
il decoratore ha car-data.csv
come input e il car-data
gruppo di funzionalità come output, indicando che si tratta di un'operazione batch con il file target_store
as OfflineStore
:
- Definire il
transform()
funzione per trasformare i dati. Questa funzione esegue le seguenti azioni:- Converti i nomi delle colonne in minuscolo.
- Aggiungi l'ora dell'evento al file
ingest_time
colonna. - Rimuovi la punteggiatura e sostituisci i valori mancanti con NA.
- Chiama il
transform()
funzione per memorizzare i dati nel filecar-data
gruppo di funzioni:
L'output mostra che i dati sono stati inseriti correttamente nel gruppo di funzionalità car-data.
L'output di transform_df.show()
la funzione è la seguente:
Abbiamo trasformato con successo i dati di input e li abbiamo inseriti nel file car-data
gruppo di funzionalità.
Esegui il codice @feature_processor da remoto
In questa sezione viene illustrata l'esecuzione del codice di elaborazione delle funzionalità in remoto come applicazione Spark utilizzando il file @remote
decoratore descritto in precedenza. Eseguiamo l'elaborazione delle funzionalità in remoto utilizzando Spark per scalare set di dati di grandi dimensioni. Spark fornisce l'elaborazione distribuita su cluster per gestire dati troppo grandi per una singola macchina. IL @remote
decorator esegue il codice Python locale come un lavoro di training SageMaker a nodo singolo o multi-nodo.
- Usa il
@remote
decoratore insieme al@feature_processor
decoratore come segue:
Il spark_config
Il parametro indica che questo viene eseguito come a Spark application
. L'istanza SparkConfig configura la configurazione e le dipendenze di Spark.
- Definire il
aggregate()
funzione per aggregare i dati utilizzando PySpark SQL e funzioni definite dall'utente (UDF). Questa funzione esegue le seguenti azioni:- Concatenare
model
,year
estatus
crearemodel_year_status
. - Prendi la media di
price
creareavg_price
. - Prendi il valore massimo di
price
crearemax_price
. - Prendi la media di
mileage
creareavg_mileage
. - Prendi il valore massimo di
mileage
crearemax_mileage
. - Prendi la media di
msrp
creareavg_msrp
. - Prendi il valore massimo di
msrp
crearemax_msrp
. - Raggruppa per
model_year_status
.
- Concatenare
- Corri il
aggregate()
funzione, che crea un processo di formazione SageMaker per eseguire l'applicazione Spark:
Di conseguenza, SageMaker crea un processo di training per l'applicazione Spark definita in precedenza. Creerà un ambiente runtime Spark utilizzando il file sagemaker-spark-processing image
.
Utilizziamo i lavori di formazione SageMaker qui per eseguire la nostra applicazione di elaborazione delle funzionalità Spark. Con SageMaker Training, puoi ridurre i tempi di avvio a 1 minuto o meno utilizzando il warm pooling, che non è disponibile in SageMaker Processing. Ciò rende la formazione SageMaker più ottimizzata per lavori batch brevi come l'elaborazione di funzionalità in cui il tempo di avvio è importante.
- Per visualizzare i dettagli, sulla console SageMaker, scegli Lavori di formazione per Training nel riquadro di navigazione, quindi scegli il lavoro con il nome
aggregate-<timestamp>
.
L'output di aggregato() la funzione genera il codice di telemetria. All'interno dell'output, vedrai i dati aggregati come segue:
Una volta completato il lavoro di formazione, dovresti vedere il seguente output:
Rendi operativo il processore di funzionalità tramite pipeline SageMaker
In questa sezione, dimostriamo come rendere operativo il processore di funzionalità promuovendolo a una pipeline SageMaker e pianificando le esecuzioni.
- Per prima cosa carica il file trasformazione_codice.py file contenente la logica di elaborazione delle funzionalità su Amazon S3:
- Creare quindi una pipeline Processore di funzionalità car_data_pipeline usando il .to_pipeline() funzione:
- Per eseguire la pipeline, utilizzare il codice seguente:
- Allo stesso modo, puoi creare una pipeline per funzionalità aggregate chiamate
car_data_aggregated_pipeline
e iniziare una corsa. - Pianifica il file
car_data_aggregated_pipeline
da eseguire ogni 24 ore:
Nella sezione di output, vedrai l'ARN della pipeline e il ruolo di esecuzione della pipeline, nonché i dettagli della pianificazione:
- Per ottenere tutte le pipeline del processore di funzionalità in questo account, utilizzare il file
list_pipelines()
funzione sul Processore Feature:
L'output sarà il seguente:
Abbiamo creato con successo le pipeline del processore di funzionalità SageMaker.
Esplora le pipeline di elaborazione delle funzionalità e la derivazione ML
In SageMaker Studio, completare i seguenti passaggi:
- Sulla console SageMaker Studio, nel file Casa menù, scegliere Condotte.
Dovresti vedere due pipeline create: car-data-ingestion-pipeline
ed car-data-aggregated-ingestion-pipeline
.
- Scegliere il
car-data-ingestion-pipeline
.
Mostra i dettagli della corsa sul file esecuzioni scheda.
- Per visualizzare il gruppo di funzionalità popolato dalla pipeline, scegliere Negozio di funzionalità per Dati e scegli
car-data
.
Vedrai i due gruppi di funzionalità che abbiamo creato nei passaggi precedenti.
- Scegliere il
car-data
gruppo di funzionalità.
Vedrai i dettagli delle funzionalità su Caratteristiche scheda.
Visualizza le esecuzioni della pipeline
Per visualizzare le esecuzioni della pipeline, completare i seguenti passaggi:
- Sulla Esecuzione della pipelinescheda s, selezionare
car-data-ingestion-pipeline
.
Questo mostrerà tutte le corse.
- Scegli uno dei link per vedere i dettagli della corsa.
- Per visualizzare la discendenza, scegli Discendenza.
L'intero lignaggio per car-data
mostra l'origine dati di input car_data.csv
e gli enti a monte. Il lignaggio per car-data-aggregated
mostra l'ingresso car-data
gruppo di funzionalità.
- Scegli Carica funzionalità e quindi scegliere Interroga la discendenza a monte on
car-data
edcar-data-ingestion-pipeline
per vedere tutte le entità a monte.
L'intero lignaggio per car-data
il gruppo di funzionalità dovrebbe assomigliare allo screenshot seguente.
Allo stesso modo, il lignaggio per il car-aggregated-data
il gruppo di funzionalità dovrebbe assomigliare allo screenshot seguente.
SageMaker Studio fornisce un unico ambiente per tenere traccia delle pipeline pianificate, visualizzare le esecuzioni, esplorare la derivazione e visualizzare il codice di elaborazione delle funzionalità.
Le funzionalità aggregate come prezzo medio, prezzo massimo, chilometraggio medio e altro nel car-data-aggregated
gruppo di funzionalità forniscono informazioni sulla natura dei dati. Puoi anche utilizzare queste funzionalità come set di dati per addestrare un modello per prevedere i prezzi delle auto o per altre operazioni. Tuttavia, l'addestramento del modello non rientra nell'ambito di questo post, che si concentra sulla dimostrazione delle funzionalità di SageMaker Feature Store per l'ingegneria delle funzionalità.
ripulire
Non dimenticare di ripulire le risorse create come parte di questo post per evitare di incorrere in spese correnti.
- Disabilitare la pipeline pianificata tramite
fp.schedule()
metodo con il parametro di stato asDisabled
:
- Elimina entrambi i gruppi di funzionalità:
I dati che risiedono nel bucket S3 e nell'archivio funzionalità offline possono comportare costi, pertanto dovresti eliminarli per evitare eventuali addebiti.
- Elimina gli oggetti S3.
- Elimina i record dal negozio di funzionalità.
Conclusione
In questo post, abbiamo dimostrato come un'azienda di vendita di automobili ha utilizzato il processore di funzionalità SageMaker Feature Store per ottenere informazioni preziose dai dati grezzi di vendita:
- Inserimento e trasformazione di dati batch su larga scala utilizzando Spark
- Operazionalizzazione dei flussi di lavoro di ingegneria delle funzionalità tramite pipeline SageMaker
- Fornire il monitoraggio della derivazione e un unico ambiente per monitorare le pipeline ed esplorare le funzionalità
- Preparazione di funzionalità aggregate ottimizzate per l'addestramento di modelli ML
Seguendo questi passaggi, l’azienda è stata in grado di trasformare dati precedentemente inutilizzabili in funzionalità strutturate che potevano poi essere utilizzate per addestrare un modello per prevedere i prezzi delle auto. SageMaker Feature Store ha consentito loro di concentrarsi sulla progettazione delle funzionalità piuttosto che sull'infrastruttura sottostante.
Ci auguriamo che questo post ti aiuti a sbloccare preziose informazioni ML dai tuoi dati utilizzando il processore di funzionalità SageMaker Feature Store!
Per ulteriori informazioni su questo, fare riferimento a Elaborazione delle caratteristiche e l'esempio SageMaker su Negozio di funzionalità Amazon SageMaker: introduzione al processore di funzionalità.
Informazioni sugli autori
Dhaval Shah è un Senior Solutions Architect presso AWS, specializzato in Machine Learning. Con una forte attenzione alle attività native digitali, consente ai clienti di sfruttare AWS e promuovere la crescita del proprio business. In quanto appassionato di ML, Dhaval è guidato dalla sua passione per la creazione di soluzioni di grande impatto che apportano cambiamenti positivi. Nel tempo libero si abbandona al suo amore per i viaggi e apprezza i momenti di qualità con la sua famiglia.
Ninad Joshi è un Senior Solutions Architect presso AWS e aiuta i clienti AWS globali a progettare soluzioni sicure, scalabili ed economicamente vantaggiose nel cloud per risolvere le complesse sfide aziendali del mondo reale. Il suo lavoro nel campo del Machine Learning (ML) copre un'ampia gamma di casi d'uso AI/ML, con un focus principale sul ML end-to-end, sull'elaborazione del linguaggio naturale e sulla visione artificiale. Prima di unirsi ad AWS, Ninad ha lavorato come sviluppatore di software per oltre 12 anni. Al di fuori dei suoi impegni professionali, Ninad ama giocare a scacchi ed esplorare diversi stratagemmi.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15%
- 16
- 20
- 24
- 26%
- 40
- 7
- 8
- 9
- a
- capace
- Il mio account
- preciso
- operanti in
- azioni
- aggiungere
- aggregato
- aggregazione
- AI / ML
- Tutti
- consente
- lungo
- anche
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ed
- Un altro
- in qualsiasi
- Applicazioni
- SONO
- argomenti
- AS
- At
- automatizzare
- automaticamente
- disponibile
- media
- evitare
- AWS
- basic
- BE
- prima
- MIGLIORE
- Meglio
- Big
- entrambi
- portare
- onere
- affari
- aziende
- by
- detto
- Materiale
- funzionalità
- auto
- auto
- Custodie
- casi
- sfide
- il cambiamento
- oneri
- Scacchi
- Scegli
- Cloud
- codice
- Colonna
- colonne
- viene
- azienda
- completamento di una
- complesso
- computer
- Visione computerizzata
- Configurazione
- configurato
- consolle
- contiene
- continuamente
- convertire
- Costo
- Costi
- potuto
- Copertine
- creare
- creato
- crea
- Creazione
- critico
- ingombrante
- costume
- Clienti
- dati
- dataset
- definito
- definizione
- dimostrare
- dimostrato
- dimostra
- dimostrando
- dipendenze
- descritta
- descrizione
- Design
- desiderato
- dettagli
- sviluppare
- Costruttori
- diverso
- digitale
- disabile
- visualizzazione
- distribuito
- fatto
- guidare
- spinto
- ogni
- In precedenza
- Efficace
- sforzo
- Potenzia
- abilitato
- Abilita
- consentendo
- da un capo all'altro
- sforzi
- Ingegneria
- Ingegneri
- garantire
- appassionato
- entità
- Ambiente
- Evento
- Ogni
- esempio
- eseguire
- esecuzione
- Uscita
- Spiegare
- esplora
- Esplorare
- famiglia
- più veloce
- caratteristica
- Caratteristiche
- Compila il
- File
- Focus
- si concentra
- seguire
- i seguenti
- segue
- Nel
- frazionario
- da
- pieno
- function
- funzioni
- Guadagno
- genera
- ottenere
- globali
- Gruppo
- Gruppo
- Crescita
- maniglia
- Maniglie
- Avere
- he
- intestazioni
- pesante
- sollevamento pesante
- aiutare
- aiuta
- qui
- mettendo in evidenza
- vivamente
- il suo
- Casa
- speranza
- ORE
- Come
- Tutorial
- Tuttavia
- HTML
- HTTPS
- ID
- identificatore
- if
- Immagine
- di forte impatto
- implementazione
- importare
- importante
- in
- Compreso
- indica
- info
- informazioni
- Infrastruttura
- inizialmente
- ingresso
- Ingressi
- interno
- intuizione
- intuizioni
- install
- esempio
- ai miglioramenti
- IT
- iterazione
- SUO
- Lavoro
- Offerte di lavoro
- accoppiamento
- jpg
- mantenere
- Lingua
- grandi
- apprendimento
- meno
- Consente di
- Leva
- di sollevamento
- piace
- lignaggio
- Collegamento
- Lista
- caricare
- carichi
- locale
- a livello locale
- ceppo
- logica
- Guarda
- una
- amore
- macchina
- machine learning
- Principale
- FA
- gestione
- manualmente
- molti
- partita
- max
- massimo
- mdx
- significativo
- Menu
- metodo
- minuto
- mancante
- ML
- modello
- modelli
- Moments
- Monitorare
- Scopri di più
- devono obbligatoriamente:
- Nome
- nomi
- nativo
- Naturale
- Elaborazione del linguaggio naturale
- Natura
- Navigare
- Navigazione
- Bisogno
- di applicazione
- New
- nodo
- taccuino
- numero
- of
- offline
- di frequente
- on
- ONE
- in corso
- esclusivamente
- operazione
- Operazioni
- ottimizzati
- Opzione
- or
- Altro
- nostro
- su
- produzione
- al di fuori
- ancora
- proprio
- vetro
- parametro
- parametri
- parte
- passione
- Eseguire
- esegue
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- gioco
- popolata
- positivo
- Post
- pr
- predire
- precedente
- in precedenza
- prezzo
- Prezzi
- primario
- Precedente
- lavorazione
- Processore
- professionale
- promuovere
- fornire
- purché
- fornisce
- Python
- qualità
- gamma
- piuttosto
- Crudo
- mondo reale
- record
- record
- Rosso
- ridurre
- riduce
- riferimento
- rimuovere
- ripetitivo
- sostituire
- richiedere
- Risorse
- colpevole
- risultante
- ritorno
- Ruolo
- Correre
- running
- corre
- s
- sagemaker
- vendita
- vendite
- scalabile
- Scala
- programma
- in programma
- programmazione
- scienziati
- portata
- sdk
- SDN
- secondo
- Sezione
- sicuro
- vedere
- anziano
- Servizi
- Corti
- dovrebbero
- mostrare attraverso le sue creazioni
- Spettacoli
- significativa
- Un'espansione
- singolo
- unico ambiente
- So
- Software
- venduto
- soluzione
- Soluzioni
- RISOLVERE
- Fonte
- Scintilla
- specializzata
- Specifiche tecniche
- specificato
- Gli Sport
- inizia a
- iniziato
- startup
- Regione / Stato
- Stato dei servizi
- Passi
- conservazione
- Tornare al suo account
- Memorizza i dati
- Corda
- forte
- strutturato
- studio
- inviare
- Successivamente
- di successo
- Con successo
- tale
- adatto
- tavolo
- di
- che
- Il
- Lo Stato
- loro
- Li
- poi
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- tre
- tempo
- volte
- a
- pure
- top
- pista
- Tracking
- Treni
- Training
- delle transazioni
- Trasformare
- Trasformazione
- trasformazioni
- trasformato
- trasformazione
- viaggiare
- tendenze
- lezione
- seconda
- Digitare
- Tipi di
- ui
- per
- sottostante
- sbloccare
- aggiornato
- us
- uso
- caso d'uso
- utilizzato
- utilizzando
- Prezioso
- APPREZZIAMO
- Valori
- vario
- Veicoli
- via
- Visualizza
- visione
- vs
- caldo
- Prima
- we
- sito web
- servizi web
- quale
- largo
- Vasta gamma
- volere
- con
- Lavora
- lavorato
- flussi di lavoro
- scrivere
- anno
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro