Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Preparazione dei dati unificata, training del modello e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2

A seconda della qualità e della complessità dei dati, i data scientist trascorrono tra il 45 e l'80% del loro tempo in attività di preparazione dei dati. Ciò implica che la preparazione e la pulizia dei dati sottraggono tempo prezioso al vero lavoro di scienza dei dati. Dopo che un modello di machine learning (ML) è stato addestrato con dati preparati e pronto per la distribuzione, i data scientist devono spesso riscrivere le trasformazioni dei dati utilizzate per preparare i dati per l'inferenza ML. Ciò potrebbe allungare il tempo necessario per distribuire un modello utile in grado di dedurre e valutare i dati dalla sua forma e forma grezza.

Nella parte 1 di questa serie, abbiamo dimostrato come Data Wrangler consente a preparazione unificata dei dati e training del modello esperienza con Pilota automatico Amazon SageMaker in pochi click. In questa seconda e ultima parte di questa serie, ci concentriamo su una funzionalità che include e riutilizza Gestore di dati di Amazon SageMaker trasformazioni, come imputatori di valori mancanti, codificatori ordinali o one-hot e altro, insieme ai modelli Autopilot per l'inferenza ML. Questa funzione consente la preelaborazione automatica dei dati grezzi con il riutilizzo delle trasformazioni di Data Wrangler al momento dell'inferenza, riducendo ulteriormente il tempo necessario per distribuire un modello addestrato alla produzione.

Panoramica della soluzione

Data Wrangler riduce il tempo di aggregazione e preparazione dei dati per il ML da settimane a minuti e Autopilot crea, addestra e ottimizza automaticamente i migliori modelli di ML in base ai tuoi dati. Con Autopilot, mantieni comunque il pieno controllo e la visibilità dei tuoi dati e del tuo modello. Entrambi i servizi sono progettati appositamente per rendere i professionisti del ML più produttivi e accelerare il time to value.

Il diagramma seguente illustra l'architettura della nostra soluzione.

Prerequisiti

Poiché questo post è il secondo di una serie in due parti, assicurati di averlo letto e implementato con successo Parte 1 prima di continuare

Esporta e addestra il modello

Nella parte 1, dopo la preparazione dei dati per ML, abbiamo discusso di come utilizzare l'esperienza integrata in Data Wrangler per analizzare i set di dati e creare facilmente modelli ML di alta qualità in Autopilot.

Questa volta, utilizziamo ancora una volta l'integrazione Autopilot per addestrare un modello rispetto allo stesso set di dati di addestramento, ma invece di eseguire l'inferenza di massa, eseguiamo l'inferenza in tempo reale rispetto a un Amazon Sage Maker endpoint di inferenza che viene creato automaticamente per noi.

Oltre alla comodità fornita dall'implementazione automatica degli endpoint, dimostriamo come è anche possibile eseguire l'implementazione con tutte le trasformazioni delle funzionalità di Data Wrangler come pipeline di inferenza seriale SageMaker. Ciò consente la preelaborazione automatica dei dati grezzi con il riutilizzo delle trasformazioni delle funzionalità di Data Wrangler al momento dell'inferenza.

Tieni presente che questa funzionalità è attualmente supportata solo per i flussi di Data Wrangler che non usano unisci, raggruppa per, concatena e trasforma le serie temporali.

Possiamo utilizzare la nuova integrazione di Data Wrangler con Autopilot per addestrare direttamente un modello dall'interfaccia utente del flusso di dati di Data Wrangler.

  1. Scegli il segno più accanto a Valori di scala nodo e scegliere Modello di treno.
  2. Nel Posizione Amazon S3, specificare la Servizio di archiviazione semplice Amazon (Amazon S3) posizione in cui SageMaker esporta i tuoi dati.
    Se viene presentato un percorso del bucket radice per impostazione predefinita, Data Wrangler crea una sottodirectory di esportazione univoca al di sotto di essa: non è necessario modificare questo percorso radice predefinito a meno che non lo si desideri.Autopilot utilizza questa posizione per addestrare automaticamente un modello, risparmiandoti tempo necessario per definire la posizione di output del flusso di Data Wrangler e quindi definire la posizione di input dei dati di addestramento dell'autopilota. Questo rende l'esperienza più fluida.
  3. Scegli Esporta e forma per esportare i dati trasformati in Amazon S3.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
    Quando l'esportazione ha esito positivo, verrai reindirizzato a Crea un esperimento di pilota automatico pagina, con il Dati in ingresso Posizione S3 già compilata per te (è stata popolata dai risultati della pagina precedente).
  4. Nel Nome dell'esperimento, inserisci un nome (o mantieni il nome predefinito).
  5. Nel Targetscegli Risultato come la colonna che vuoi prevedere.
  6. Scegli Avanti: Metodo di allenamento.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Come dettagliato nel post Amazon SageMaker Autopilot è fino a otto volte più veloce con la nuova modalità di formazione ensemble basata su AutoGluon, puoi lasciare che Autopilot selezioni automaticamente la modalità di addestramento in base alle dimensioni del set di dati o selezionare manualmente la modalità di addestramento per l'insieme o l'ottimizzazione degli iperparametri (HPO).

I dettagli di ciascuna opzione sono i seguenti:

  • Automatico – Autopilot sceglie automaticamente la modalità Enembling o HPO in base alle dimensioni del set di dati. Se il set di dati è maggiore di 100 MB, Autopilot sceglie HPO; altrimenti sceglie l'ensemble.
  • assemblaggio – Il pilota automatico utilizza il AutoGluone tecnica di insieme per addestrare diversi modelli di base e combinare le loro previsioni utilizzando lo stacking del modello in un modello predittivo ottimale.
  • Ottimizzazione dell'iperparametro – Autopilot trova la versione migliore di un modello ottimizzando gli iperparametri utilizzando la tecnica di ottimizzazione bayesiana ed eseguendo processi di addestramento sul set di dati. HPO seleziona gli algoritmi più rilevanti per il tuo set di dati e seleziona la migliore gamma di iperparametri per ottimizzare i modelli. Per il nostro esempio, lasciamo la selezione predefinita di Automatico.
  1. Scegli Avanti: distribuzione e impostazioni avanzate per continuare.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  2. Sulla Distribuzione e impostazioni avanzate pagina, selezionare un'opzione di distribuzione.
    È importante comprendere le opzioni di distribuzione in modo più dettagliato; ciò che scegliamo influenzerà se le trasformazioni che abbiamo effettuato in precedenza in Data Wrangler saranno incluse nella pipeline di inferenza:
    • Distribuisci automaticamente il miglior modello con le trasformazioni di Data Wrangler – Con questa opzione di distribuzione, quando si preparano i dati in Data Wrangler e si addestra un modello richiamando Autopilot, il modello addestrato viene distribuito insieme a tutte le trasformazioni della funzionalità di Data Wrangler come un Pipeline di inferenza seriale di SageMaker. Ciò consente la preelaborazione automatica dei dati grezzi con il riutilizzo delle trasformazioni delle funzionalità di Data Wrangler al momento dell'inferenza. Tieni presente che l'endpoint di inferenza prevede che il formato dei dati sia nello stesso formato di quando viene importato nel flusso di Data Wrangler.
    • Distribuisci automaticamente il miglior modello senza trasformazioni da Data Wrangler – Questa opzione distribuisce un endpoint in tempo reale che non usa le trasformazioni di Data Wrangler. In questo caso, è necessario applicare le trasformazioni definite nel flusso di Data Wrangler ai dati prima dell'inferenza.
    • Non distribuire automaticamente il miglior modello – È necessario utilizzare questa opzione quando non si desidera creare affatto un endpoint di inferenza. È utile se si desidera generare un modello migliore per un uso successivo, ad esempio l'inferenza di massa eseguita localmente. (Questa è l'opzione di distribuzione che abbiamo selezionato nella Parte 1 della serie.) Tieni presente che quando selezioni questa opzione, il modello creato (dal miglior candidato di Autopilot tramite SageMaker SDK) include la funzionalità Data Wrangler trasforma come pipeline di inferenza seriale di SageMaker.

    Per questo post, utilizziamo il Distribuisci automaticamente il miglior modello con le trasformazioni di Data Wrangler opzione.

  3. Nel Opzione di distribuzione, selezionare Distribuisci automaticamente il miglior modello con le trasformazioni di Data Wrangler.
  4. Lascia le altre impostazioni come predefinite.
  5. Scegli Successivo: Rivedi e crea per continuare.
    Sulla Rivedi e crea pagina, vediamo un riepilogo delle impostazioni scelte per il nostro esperimento Autopilot.
  6. Scegli Crea esperimento per iniziare il processo di creazione del modello.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Verrai reindirizzato alla pagina di descrizione del lavoro di Autopilot. I modelli mostrano sul Modelli scheda man mano che vengono generati. Per confermare che il processo è completo, vai su Profilo lavorativo scheda e cerca a Completed valore per il Stato dei servizi campo.

Puoi tornare a questa pagina di descrizione del lavoro di Autopilot in qualsiasi momento da Amazon Sage Maker Studio:

  1. Scegli Esperimenti e prove sul canale Risorse di SageMaker menu a discesa.
  2. Seleziona il nome del lavoro Autopilot che hai creato.
  3. Scegli (fai clic con il pulsante destro del mouse) l'esperimento e scegli Descrivi il lavoro AutoML.

Visualizza la formazione e la distribuzione

Quando Autopilot completa l'esperimento, possiamo visualizzare i risultati dell'addestramento ed esplorare il modello migliore dalla pagina di descrizione del lavoro di Autopilot.

Scegli (fai clic con il pulsante destro del mouse) il modello etichettato Miglior modelloe scegli Apri nei dettagli del modello.

Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il Prestazione la scheda mostra diversi test di misurazione del modello, tra cui una matrice di confusione, l'area sotto la curva di precisione/richiamo (AUCPR) e l'area sotto la curva caratteristica di funzionamento del ricevitore (ROC). Questi illustrano le prestazioni complessive di convalida del modello, ma non ci dicono se il modello si generalizzerà bene. Abbiamo ancora bisogno di eseguire valutazioni su dati di test invisibili per vedere con quanta precisione il modello fa previsioni (per questo esempio, prevediamo se un individuo avrà il diabete).

Eseguire l'inferenza rispetto all'endpoint in tempo reale

Crea un nuovo notebook SageMaker per eseguire l'inferenza in tempo reale per valutare le prestazioni del modello. Immettere il codice seguente in un notebook per eseguire l'inferenza in tempo reale per la convalida:

import boto3

### Define required boto3 clients

sm_client = boto3.client(service_name="sagemaker")
runtime_sm_client = boto3.client(service_name="sagemaker-runtime")

### Define endpoint name

endpoint_name = ""

### Define input data

payload_str = '5,166.0,72.0,19.0,175.0,25.8,0.587,51'
payload = payload_str.encode()
response = runtime_sm_client.invoke_endpoint(
    EndpointName=endpoint_name,
    ContentType="text/csv",
    Body=payload,
)

response["Body"].read()

Dopo aver impostato il codice per l'esecuzione nel notebook, è necessario configurare due variabili:

  • endpoint_name
  • payload_str

Configura nome_endpoint

endpoint_name rappresenta il nome dell'endpoint di inferenza in tempo reale creato automaticamente dalla distribuzione. Prima di impostarlo, dobbiamo trovarne il nome.

  1. Scegli endpoint sul canale Risorse di SageMaker menu a discesa.
  2. Individua il nome dell'endpoint che ha il nome del lavoro Autopilot creato con una stringa casuale aggiunta ad esso.
  3. Scegli (fai clic con il pulsante destro del mouse) l'esperimento e scegli Descrivi l'endpoint.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
    Il Dettagli dell'endpoint viene visualizzata la pagina.
  4. Evidenziare il nome completo dell'endpoint e premere Ctrl + C per copiarlo negli appunti.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  5. Immettere questo valore (assicurarsi che sia citato) per endpoint_name nel taccuino di inferenza.
    Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Configura payload_str

Il notebook viene fornito con una stringa di carico utile predefinita payload_str che puoi utilizzare per testare il tuo endpoint, ma sentiti libero di sperimentare valori diversi, come quelli del tuo set di dati di test.

Per estrarre i valori dal set di dati di test, seguire le istruzioni in Parte 1 per esportare il set di dati di prova in Amazon S3. Quindi sulla console Amazon S3, puoi scaricarlo e selezionare le righe per utilizzare il file da Amazon S3.

Ogni riga nel set di dati di test ha nove colonne, con l'ultima colonna che è il outcome valore. Per questo codice notebook, assicurati di utilizzare solo una singola riga di dati (mai un'intestazione CSV) per payload_str. Assicurati inoltre di inviare solo a payload_str con otto colonne, dove hai rimosso il valore del risultato.

Ad esempio, se i file del set di dati di test hanno l'aspetto del codice seguente e si desidera eseguire un'inferenza in tempo reale della prima riga:

Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome 
10,115,0,0,0,35.3,0.134,29,0 
10,168,74,0,0,38.0,0.537,34,1 
1,103,30,38,83,43.3,0.183,33,0

Prepariamo payload_str a 10,115,0,0,0,35.3,0.134,29. Nota come abbiamo omesso il outcome valore di 0 alla fine.

Se per caso il valore target del tuo set di dati non è il primo o l'ultimo valore, rimuovi semplicemente il valore con la struttura della virgola intatta. Ad esempio, supponiamo che stiamo prevedendo la barra e che il nostro set di dati assomigli al codice seguente:

foo,bar,foobar
85,17,20

In questo caso, impostiamo payload_str a 85,,20.

Quando il notebook viene eseguito con il file configurato correttamente payload_str ed endpoint_name valori, ottieni una risposta CSV nel formato di outcome (0 o 1), confidence (0-1).

Pulire

Per assicurarti di non incorrere in addebiti relativi al tutorial dopo aver completato questo tutorial, assicurati di spegnere l'app Data Wrangler (https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-shut-down.html), nonché tutte le istanze notebook utilizzate per eseguire attività di inferenza. Gli endpoint di inferenza creati tramite l'implementazione di Auto Pilot devono essere eliminati per evitare anche costi aggiuntivi.

Conclusione

In questo post, abbiamo dimostrato come integrare l'elaborazione dei dati, includendo l'ingegneria e la creazione di modelli utilizzando Data Wrangler e Autopilot. Basandosi sulla Parte 1 della serie, abbiamo evidenziato come puoi facilmente addestrare, ottimizzare e distribuire un modello su un endpoint di inferenza in tempo reale con Autopilot direttamente dall'interfaccia utente di Data Wrangler. Oltre alla comodità fornita dall'implementazione automatica degli endpoint, abbiamo dimostrato come è anche possibile eseguire l'implementazione con tutte le trasformazioni delle funzionalità di Data Wrangler come pipeline di inferenza seriale SageMaker, fornendo la preelaborazione automatica dei dati grezzi, con il riutilizzo delle trasformazioni delle funzionalità di Data Wrangler in il tempo dell'inferenza.

Le soluzioni low-code e AutoML come Data Wrangler e Autopilot eliminano la necessità di avere una conoscenza approfondita della codifica per creare modelli ML robusti. Inizia a usare Data Wrangler oggi per provare quanto sia facile creare modelli ML utilizzando Autopilot.


Circa gli autori

Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Geremia Cohen è un Solutions Architect con AWS, dove aiuta i clienti a creare soluzioni all'avanguardia basate su cloud. Nel tempo libero, ama fare brevi passeggiate sulla spiaggia, esplorare la baia con la sua famiglia, aggiustare le cose in casa, rompere le cose intorno alla casa e fare barbecue.

Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Pradeep Reddy è un Senior Product Manager nel team SageMaker Low/No Code ML, che include SageMaker Autopilot, SageMaker Automatic Model Tuner. Al di fuori del lavoro, Pradeep ama leggere, correre e divertirsi con computer palmari come Raspberry Pi e altre tecnologie di automazione domestica.

Preparazione unificata dei dati, addestramento dei modelli e distribuzione con Amazon SageMaker Data Wrangler e Amazon SageMaker Autopilot – Parte 2 PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Il dottor John He è un ingegnere di sviluppo software senior presso Amazon AI, dove si occupa di machine learning e calcolo distribuito. Ha conseguito un dottorato di ricerca presso CMU.

Timestamp:

Di più da Apprendimento automatico di AWS