Ottimizza la preparazione dei dati con le nuove funzionalità in AWS SageMaker Data Wrangler

Ottimizza la preparazione dei dati con AWS SageMaker Data Wrangler

La preparazione dei dati è una fase critica in qualsiasi progetto basato sui dati e disporre degli strumenti giusti può migliorare notevolmente l’efficienza operativa. Amazon SageMaker Data Wrangler riduce il tempo necessario per aggregare e preparare dati tabulari e immagini per il machine learning (ML) da settimane a minuti. Con SageMaker Data Wrangler, è possibile semplificare il processo di preparazione dei dati e l’ingegneria delle feature, completando ogni passaggio del flusso di lavoro di preparazione dei dati, inclusa la selezione dei dati, la pulizia, l’esplorazione e la visualizzazione, da un’interfaccia visuale unificata.

In questo post, esploreremo le ultime novità di SageMaker Data Wrangler progettate specificamente per migliorare l’esperienza operativa. Approfondiremo il supporto dei file di manifesto del servizio di archiviazione semplice (Amazon S3), gli artefatti di inferenza in un flusso di dati interattivo e l’integrazione senza soluzione di continuità con il formato JSON (JavaScript Object Notation) per l’inferenza, mettendo in evidenza come queste migliorie rendano la preparazione dei dati più facile ed efficiente.

Introduzione delle nuove funzionalità

In questa sezione, discuteremo delle nuove funzionalità di SageMaker Data Wrangler per una preparazione ottimale dei dati.

Supporto dei file di manifesto S3 con SageMaker Autopilot per l’inferenza di ML

SageMaker Data Wrangler consente un’esperienza unificata di preparazione dei dati e addestramento del modello con Amazon SageMaker Autopilot con pochi clic. È possibile utilizzare SageMaker Autopilot per addestrare, ottimizzare e distribuire automaticamente modelli sui dati che sono stati trasformati nel flusso di dati.

Questa esperienza è ora ulteriormente semplificata con il supporto dei file di manifesto S3. Un file di manifesto S3 è un file di testo che elenca gli oggetti (file) archiviati in un bucket S3. Se il dataset esportato in SageMaker Data Wrangler è piuttosto grande e diviso in file di dati multipli in Amazon S3, ora SageMaker Data Wrangler creerà automaticamente un file di manifesto in S3 che rappresenta tutti questi file di dati. Questo file di manifesto generato può ora essere utilizzato con l’interfaccia utente di SageMaker Autopilot in SageMaker Data Wrangler per raccogliere tutti i dati partizionati per l’addestramento.

Prima del lancio di questa funzionalità, quando si utilizzavano modelli di SageMaker Autopilot addestrati su dati preparati da SageMaker Data Wrangler, era possibile scegliere solo un file di dati, che potrebbe non rappresentare l’intero dataset, specialmente se il dataset è molto grande. Con questa nuova esperienza di file di manifesto, non sei limitato a un subset del tuo dataset. Puoi creare un modello di ML con SageMaker Autopilot che rappresenti tutti i tuoi dati utilizzando il file di manifesto e utilizzarlo per l’inferenza di ML e la distribuzione in produzione. Questa funzionalità migliora l’efficienza operativa semplificando l’addestramento di modelli di ML con SageMaker Autopilot e ottimizzando i flussi di elaborazione dei dati.

Supporto aggiunto per il flusso di inferenza negli artefatti generati

I clienti desiderano applicare le trasformazioni dei dati che hanno applicato ai dati di addestramento del modello, come l’encoding one-hot, la PCA e il completamento dei valori mancanti, all’inferenza in tempo reale o all’inferenza batch in produzione. Per fare ciò, è necessario disporre di un artefatto di inferenza di SageMaker Data Wrangler, che è consumato da un modello di SageMaker.

In precedenza, gli artefatti di inferenza potevano essere generati solo dall’interfaccia utente durante l’esportazione per l’addestramento con SageMaker Autopilot o l’esportazione di un notebook di pipeline di inferenza. Questo non forniva flessibilità se si desiderava utilizzare i flussi di SageMaker Data Wrangler al di fuori dell’ambiente di Amazon SageMaker Studio. Ora, è possibile generare un artefatto di inferenza per qualsiasi file di flusso compatibile tramite un processo di lavoro di SageMaker Data Wrangler. Questo consente MLOps end-to-end programmabili con i flussi di SageMaker Data Wrangler per le persone che preferiscono un approccio basato su codice, oltre a un percorso intuitivo senza codice per ottenere un artefatto di inferenza creando un processo di lavoro dall’interfaccia utente.

Ottimizzazione della preparazione dei dati

JSON è diventato un formato ampiamente utilizzato per lo scambio di dati negli ecosistemi moderni dei dati. L’integrazione di SageMaker Data Wrangler con il formato JSON consente di gestire senza problemi i dati JSON per la trasformazione e la pulizia. Offrendo supporto nativo per JSON, SageMaker Data Wrangler semplifica il processo di lavoro con dati strutturati e semi-strutturati, consentendo di estrarre informazioni preziose e preparare i dati in modo efficiente. SageMaker Data Wrangler supporta ora il formato JSON sia per l’inferenza batch che per il rilascio del punto di accesso di inferenza in tempo reale.

Panoramica della soluzione

Per il nostro caso d’uso, utilizziamo il set di dati di recensioni dei clienti di Amazon per mostrare come SageMaker Data Wrangler possa semplificare lo sforzo operativo per creare un nuovo modello di ML utilizzando SageMaker Autopilot. Il set di dati di recensioni dei clienti di Amazon contiene recensioni dei prodotti e metadati da Amazon, inclusi 142,8 milioni di recensioni che coprono il periodo da maggio 1996 a luglio 2014.

A livello generale, utilizziamo SageMaker Data Wrangler per gestire questo ampio set di dati e svolgere le seguenti azioni:

  1. Sviluppare un modello di ML in SageMaker Autopilot utilizzando l’intero dataset, non solo un campione.
  2. Costruire un flusso di elaborazione delle inferenze in tempo reale con l’artefatto di inferenza generato da SageMaker Data Wrangler e utilizzare il formato JSON per input e output.

Supporto ai file manifesto S3 con SageMaker Autopilot

Quando si crea un esperimento di SageMaker Autopilot utilizzando SageMaker Data Wrangler, in precedenza si poteva specificare solo un singolo file CSV o Parquet. Ora è possibile utilizzare anche un file manifesto S3, consentendo di utilizzare grandi quantità di dati per gli esperimenti di SageMaker Autopilot. SageMaker Data Wrangler suddividerà automaticamente i file di dati di input in diversi file più piccoli e genererà un manifesto che può essere utilizzato in un esperimento di SageMaker Autopilot per recuperare tutti i dati dalla sessione interattiva, non solo un piccolo campione.

Completa i seguenti passaggi:

  1. Importa i dati delle recensioni dei clienti Amazon da un file CSV in SageMaker Data Wrangler. Assicurati di disabilitare il campionamento durante l’importazione dei dati.
  2. Specifica le trasformazioni che normalizzano i dati. Per questo esempio, rimuovi i simboli e trasforma tutto in minuscolo utilizzando le trasformazioni integrate di SageMaker Data Wrangler.
  3. Scegli Train model per avviare l’addestramento.

Per addestrare un modello con SageMaker Autopilot, SageMaker esporterà automaticamente i dati in un bucket S3. Per dataset di grandi dimensioni come questo, suddividerà automaticamente il file in file più piccoli e genererà un manifesto che includerà la posizione dei file più piccoli.

  1. Innanzitutto, seleziona i tuoi dati di input.

In precedenza, SageMaker Data Wrangler non aveva l’opzione di generare un file manifesto da utilizzare con SageMaker Autopilot. Oggi, con il supporto ai file manifesto, SageMaker Data Wrangler esporterà automaticamente un file manifesto su Amazon S3, precompilando la posizione S3 dell’addestramento di SageMaker Autopilot con la posizione del file manifesto S3 e attivando l’opzione del file manifesto su . Non è necessario svolgere alcun lavoro per generare o utilizzare il file manifesto.

  1. Configura il tuo esperimento selezionando l’obiettivo per il modello da predire.
  2. Successivamente, seleziona un metodo di addestramento. In questo caso, selezioniamo Auto e lasciamo che SageMaker Autopilot decida il miglior metodo di addestramento in base alla dimensione del dataset.

  1. Specifica le impostazioni di distribuzione.
  2. Infine, rivedi la configurazione del lavoro e invia l’esperimento di SageMaker Autopilot per l’addestramento. Quando SageMaker Autopilot completa l’esperimento, è possibile visualizzare i risultati dell’addestramento ed esplorare il miglior modello.

Grazie al supporto per i file manifesto, è possibile utilizzare l’intero dataset per l’esperimento di SageMaker Autopilot, non solo un sottoinsieme dei dati.

Per ulteriori informazioni sull’utilizzo di SageMaker Autopilot con SageMaker Data Wrangler, consulta la preparazione dei dati unificata e l’addestramento del modello con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot.

Generare artefatti di inferenza dai lavori di elaborazione di SageMaker

Ora vediamo come possiamo generare artefatti di inferenza sia attraverso l’interfaccia utente di SageMaker Data Wrangler che attraverso i notebook di SageMaker Data Wrangler.

Interfaccia utente di SageMaker Data Wrangler

Per il nostro caso d’uso, vogliamo elaborare i nostri dati tramite l’interfaccia utente e quindi utilizzare i dati risultanti per addestrare e distribuire un modello attraverso la console di SageMaker. Segui i seguenti passaggi:

  1. Apri il flusso di dati creato nella sezione precedente.
  2. Scegli il segno più accanto all’ultima trasformazione, scegli Aggiungi destinazione e scegli Amazon S3. Qui verranno memorizzati i dati elaborati.
  3. Scegli Crea lavoro.
  4. Seleziona Genera artefatti di inferenza nella sezione Parametri di inferenza per generare un artefatto di inferenza.
  5. Per il nome dell’artefatto di inferenza, inserisci il nome del tuo artefatto di inferenza (con .tar.gz come estensione del file).
  6. Per il nodo di output di inferenza, inserisci il nodo di destinazione corrispondente alle trasformazioni applicate ai tuoi dati di addestramento.
  7. Scegli Configura lavoro.
  8. Nella sezione Configurazione lavoro, inserisci un percorso per Posizione file di flusso S3. Verrà creata una cartella chiamata data_wrangler_flows in questa posizione e l’artefatto di inferenza verrà caricato in questa cartella. Per modificare la posizione di caricamento, imposta una diversa posizione S3.
  9. Lascia i valori predefiniti per tutte le altre opzioni e scegli Crea per creare il lavoro di elaborazione. Il lavoro di elaborazione creerà una tarball (.tar.gz) contenente un file di flusso dati modificato con una sezione di inferenza appena aggiunta che ti consente di usarlo per l’inferenza. Avrai bisogno dell’identificatore di risorsa uniforme S3 (URI) dell’artefatto di inferenza per fornire l’artefatto a un modello SageMaker durante la distribuzione della soluzione di inferenza. L’URI sarà nella forma {Posizione file di flusso S3}/data_wrangler_flows/{nome artefatto di inferenza}.tar.gz.
  10. Se non hai preso nota di questi valori in precedenza, puoi scegliere il collegamento al lavoro di elaborazione per trovare i dettagli pertinenti. Nel nostro esempio, l’URI è s3://sagemaker-us-east-1-43257985977/data_wrangler_flows/example-2023-05-30T12-20-18.tar.gz.
  11. Copia il valore di Immagine di elaborazione; avremo bisogno di questo URI anche quando creiamo il nostro modello.
  12. Puoi ora utilizzare questo URI per creare un modello SageMaker sulla console di SageMaker, che potremo successivamente distribuire su un endpoint o su un lavoro di trasformazione batch.
  13. Nella sezione Impostazioni del modello, inserisci un nome per il modello e specifica il tuo ruolo IAM.
  14. Per Opzioni di input del contenitore, seleziona Fornisci artefatti del modello e posizione immagine di inferenza.
  15. Per Posizione del codice di inferenza, inserisci l’URI dell’immagine di elaborazione.
  16. Per Posizione degli artefatti del modello, inserisci l’URI dell’artefatto di inferenza.
  17. Inoltre, se i tuoi dati hanno una colonna target che verrà prevista da un modello ML addestrato, specifica il nome di quella colonna sotto Variabili di ambiente, con INFERENCE_TARGET_COLUMN_NAME come Chiave e il nome della colonna come Valore.
  18. Termina la creazione del tuo modello scegliendo Crea modello.

Ora abbiamo un modello che possiamo distribuire su un endpoint o un lavoro di trasformazione batch.

Notebook di SageMaker Data Wrangler

Per un approccio basato sul codice per generare l’artefatto di inferenza da un lavoro di elaborazione, possiamo trovare il codice di esempio scegliendo Esporta in nel menu del nodo e scegliendo tra Amazon S3, SageMaker Pipelines o SageMaker Inference Pipeline. In questo esempio scegliamo SageMaker Inference Pipeline.

In questo notebook, c’è una sezione intitolata Crea Processor (questa è identica nel notebook di SageMaker Pipelines, ma nel notebook di Amazon S3, il codice equivalente sarà nella sezione Configurazioni del lavoro). In fondo a questa sezione c’è una configurazione per il nostro artefatto di inferenza chiamato inference_params. Contiene le stesse informazioni che abbiamo visto nell’interfaccia utente, ovvero il nome dell’artefatto di inferenza e il nodo di output dell’inferenza. Questi valori saranno precompilati ma possono essere modificati. C’è inoltre un parametro chiamato use_inference_params, che deve essere impostato su True per utilizzare questa configurazione nel lavoro di elaborazione.

Più in basso c’è una sezione intitolata Definisci Pipeline Steps, in cui la configurazione inference_params viene aggiunta a una lista di argomenti di lavoro e passata alla definizione di un passaggio di elaborazione di SageMaker Data Wrangler. Nel notebook di Amazon S3, job_arguments è definito immediatamente dopo la sezione Configurazioni del lavoro.

Con queste semplici configurazioni, il lavoro di elaborazione creato da questo notebook genererà un artefatto di inferenza nella stessa posizione S3 del nostro file di flusso (definito in precedenza nel nostro notebook). Possiamo determinare in modo programmatico questa posizione S3 e utilizzare questo artefatto per creare un modello SageMaker utilizzando il SageMaker Python SDK, come dimostrato nel notebook di SageMaker Inference Pipeline.

Lo stesso approccio può essere applicato a qualsiasi codice Python che crea un lavoro di elaborazione di SageMaker Data Wrangler.

Supporto del formato file JSON per input e output durante l’inferenza

È abbastanza comune che siti web e applicazioni utilizzino JSON come richiesta/risposta per le API in modo che le informazioni siano facili da analizzare con diversi linguaggi di programmazione.

In precedenza, dopo aver addestrato un modello, si poteva interagire solo con esso tramite CSV come formato di input in un flusso di inferenza di SageMaker Data Wrangler. Oggi è possibile utilizzare JSON come formato di input e output, offrendo maggiore flessibilità nell’interazione con i contenitori di inferenza di SageMaker Data Wrangler.

Per iniziare a utilizzare JSON per input e output nel notebook del flusso di inferenza, seguire i seguenti passaggi:

  1. Definire un payload.

Per ogni payload, il modello si aspetta una chiave chiamata “instances”. Il valore è una lista di oggetti, ognuno dei quali rappresenta un singolo punto dati. Gli oggetti richiedono una chiave chiamata “features” e i valori dovrebbero essere le caratteristiche di un singolo punto dati che si intendono inviare al modello. È possibile inviare più punti dati in una singola richiesta, fino a una dimensione totale di 6 MB per richiesta.

Vedere il seguente codice:

sample_record_payload = json.dumps
(
    {
        "instances":[
            {"features":["Questo è il migliore", "Lo userei due volte al giorno tutti i giorni se potessi. È il migliore di sempre"]
            }
            ]
    }
)
  1. Specificare il ContentType come application/json.
  2. Fornire dati al modello e ricevere inferenza in formato JSON.

Vedi Formati di dati comuni per l’Inference per esempi di input e output JSON di esempio.

Pulizia

Quando hai finito di utilizzare SageMaker Data Wrangler, ti consigliamo di spegnere l’istanza su cui viene eseguito per evitare addebiti aggiuntivi. Per istruzioni su come spegnere l’app SageMaker Data Wrangler e l’istanza associata, consulta Spegnimento di Data Wrangler.

Conclusione

Le nuove funzionalità di SageMaker Data Wrangler, tra cui il supporto per i file di manifesto S3, le capacità di inferenza e l’integrazione del formato JSON, trasformano l’esperienza operativa della preparazione dei dati. Questi miglioramenti semplificano l’importazione dei dati, automatizzano le trasformazioni dei dati e semplificano il lavoro con i dati JSON. Con queste funzionalità, puoi migliorare l’efficienza operativa, ridurre gli sforzi manuali e estrarre facilmente informazioni preziose dai tuoi dati. Approfitta del potere delle nuove funzionalità di SageMaker Data Wrangler e sblocca tutto il potenziale dei tuoi flussi di preparazione dei dati.

Per iniziare con SageMaker Data Wrangler, consulta le ultime informazioni sulla pagina del prodotto SageMaker Data Wrangler.