Esperimenti, Formazione del Modello e Valutazione Esplorazione di 6 Domande Chiave su MLOps utilizzando AWS SageMaker

Esperimenti, Modellazione e Valutazione Un'Esplorazione di 6 Domande Chiave su MLOps tramite AWS SageMaker

Questo articolo fa parte della serie AWS SageMaker per l’esplorazione di ’31 domande che plasmano la strategia di Machine Learning delle Fortune 500′.

Cosa?

I precedenti post del blog, “Acquisizione ed esplorazione dei dati” e “Trasformazione dei dati e ingegneria delle caratteristiche”, hanno esplorato come le capacità di AWS SageMaker possano aiutare i data scientist a collaborare e accelerare l’esplorazione, la comprensione, la trasformazione e l’ingegneria delle caratteristiche dei dati.

Questo post del blog si concentrerà sulle domande chiave legate agli esperimenti, all’allenamento del modello e alla valutazione e su come AWS SageMaker possa aiutare a affrontarle.

▢ [Automazione] Come possono i data scientist partizionare automaticamente i dati per scopi di allenamento, convalida e test?▢ [Automazione] La piattaforma esistente aiuta ad accelerare la valutazione di più algoritmi standard e a regolare il valore degli iperparametri▢ [Collaborazione] Come può un data scientist condividere l’esperimento, le configurazioni e i modelli addestrati?▢ [Riproducibilità] Come puoi garantire la riproducibilità degli output dell’esperimento?▢ [Riproducibilità] Come fai a tracciare e gestire diverse versioni di modelli addestrati?▢ [Governance e conformità] Come tracci i confini del modello che ti permettono di spiegare le decisioni del modello e rilevare i bias?

Caso d’uso e dataset

Riusaremos il caso d’uso del rilevamento delle frodi, il generatore di dataset e il dataset generato di clienti e transazioni.

Partizionamento del dataset con SageMaker Wrangler

[✓] [Automazione] Come possono i data scientist partizionare automaticamente i dati per scopi di allenamento, convalida e test?

In articoli precedenti, abbiamo esplorato come SageMaker possa accelerare i processi di comprensione dei dati, trasformazione e creazione delle caratteristiche nello sviluppo del modello.

La qualità e la copertura dei dati svolgono un ruolo chiave nei risultati del modello. Mentre vogliamo che il modello abbia accesso a un dataset più ampio, dobbiamo assicurarci che il modello non venga addestrato sull’intero dataset.

Perché?

  • Evitare l’overfitting: Il modello dovrebbe comprendere i pattern, non memorizzarli solo.
  • Valutazione imparziale: I dati in tempo reale sono sempre sconosciuti.
  • Tuning: Automatizzare la selezione del valore ottimale degli iperparametri.

Cosa?

Pertanto, per garantire che il tuo modello generalizzi bene su dati non visti, è essenziale avere dataset distinti:

  • Dati di allenamento: Allena i parametri del modello.
  • Dati di convalida: Ottimizza il valore degli iperparametri.
  • Dati di test: Valuta le prestazioni finali del modello.

Quando?

Per evitare la “fuga di dati” dal dataset di test o di convalida al dataset di allenamento, è fondamentale che qualsiasi trasformazione che guardi l’intero dataset, come l’oversampling, avvenga dopo la suddivisione e separatamente.

Come?

SageMaker Wrangler offre trasformazioni integrate per creare divisioni dei dati: casuali, ordinate, per chiave o stratificate. Consulta “Trasformazione dei dati e ingegneria delle caratteristiche” per ulteriori dettagli sull’aggiunta di trasformazioni.

⚠️ ㅤLa versione gratuita di Data Wrangler fornisce solo 25 ore di istanze ml.m5.4xlarge al mese per 2 mesi. Inoltre, ci sono costi associati alla lettura e scrittura su S3.

Source: Image by the author.

Sperimenta con SageMaker AutoPilot

[✓] [Automazione] La piattaforma esistente aiuta ad accelerare la valutazione di più algoritmi standard e regolare il valore degli iperparametri

Ottimo! Finora, abbiamo visto come SageMaker possa facilmente affrontare le nostre preoccupazioni riguardanti la pulizia dei dati, la trasformazione e l’estrazione delle caratteristiche. Ha anche semplificato il processo di divisione dei dati in set di addestramento, convalida e test. Ora, il passo successivo cruciale per uno scienziato dei dati è quello di utilizzare questi dati preparati per iniziare a costruire un modello. Esploriamo come SageMaker può accelerare questo processo.

In questa sezione, ci concentreremo su SageMaker AutoPilot, un servizio AWS che automatizza l’addestramento e la valutazione dei modelli.

💡 AutoPilot è uno strumento ricco di funzionalità che può gestire automaticamente varie trasformazioni dei dati come la gestione dei dati mancanti, che prima dovevamo gestire manualmente in altri articoli. Inoltre, AutoPilot può suddividere nativamente i dati nei gruppi di addestramento e convalida.

Esporta dati di test e convalida:

Prima di iniziare, esportiamo il nostro dataset di test (e, facoltativamente, il dataset di convalida) per una futura valutazione del modello. Per fare ciò, aggiungi l’azione “Esporta su S3” al dataset di test e di convalida e poi esegui il lavoro di wrangler. (Perché non dati di addestramento?)

⚠️ ㅤPotrebbe essere necessario richiedere un aumento della quota per l’istanza “ml.m5.4xlarge” per il processo.

Fonte: Immagine dell'autore.
Fonte: Immagine dell'autore.

Esporta i dati di addestramento:

Un lettore appassionato potrebbe chiedersi perché non abbiamo esportato in precedenza il dataset di addestramento. Ebbene, puoi farlo! Tuttavia, abbiamo saltato questo passaggio perché l’output dell’addestramento viene esportato automaticamente quando scegliamo l’opzione “Addestra” in SageMaker Studio.

Fonte: Immagine dell'autore.

Dopo aver completato i due passaggi precedenti, dovresti ora avere tre cartelle in S3: una per il test, una per la convalida e una per l’addestramento. Ogni cartella conterrà il dataset suddiviso in più parti, indicizzato dal file manifesto.

Fonte: Immagine dell'autore.

Configura l’esperimento di AutoPilot

Ora che i dati sono stati esportati, possiamo iniziare ad addestrare il modello. Cliccando su “Esporta ed Addestra” verrai reindirizzato alla guida di AutoPilot. La guida offre varie sezioni e opzioni per perfezionare il processo.

1. Dettagli sull’esperimento e sui dati: Qui puoi specificare i dataset di addestramento e convalida, così come la posizione di output in cui saranno memorizzati gli output dell’esperimento, come modelli e report. Per questo esempio, ho impostato l’addestramento e la convalida sul file manifesto e sulle parti esportate.

Fonte: Immagine dell'autore.

2. Obiettivo e Caratteristiche: Seleziona l’obiettivo e le caratteristiche che influenzano l’obiettivo.

Fonte: Immagine dell'autore.

3. Metodo di Addestramento e Algoritmo: Seleziona Auto per SageMaker AutoPilot per valutare automaticamente più algoritmi e selezionare il miglior modello.

4. Implementazione e Impostazioni Avanzate: Implementa il miglior modello per il servizio. Opzionalmente, regola le impostazioni sperimentali, inclusa la restrizione del tempo di prova o del tempo complessivo di lavoro, per controllare i costi.

Fonte: Immagine dell'autore.

Addestramento con AutoPilot

Dopo aver esaminato la configurazione, puoi creare un esperimento. Ciò attiverà più prove, che possono essere trovate in AutoML > Il tuo Esperimento. Una volta che l’esperimento è terminato, verrà visualizzato il miglior modello.

L’output del lavoro include anche notebook per l’esplorazione dei dati e la generazione dei candidati modello per un ulteriore affinamento manuale.

Fonte: Immagine dell'autore.

Testare il miglior modello

Ora che abbiamo il miglior modello, mettiamolo alla prova usando i dati di test esportati in precedenza.

Se durante il flusso dell’assistente AutoML non hai selezionato “Deploy Automatico”, puoi implementare manualmente il modello dall’interfaccia utente dell’esperimento. Discuteremo l’implementazione in modo più dettagliato nel prossimo articolo su “Implementazione e Servizio” [LINK].

Fonte: Immagine dell'autore.

⚠️ ㅤ Per la modalità batch, potrebbe essere necessario richiedere un aumento della quota per l’uso del lavoro di trasformazione.

Per ora, implementiamolo in modalità tempo reale e inviamo un paio di dati di richiesta per osservare la risposta. Puoi utilizzare sia l’interfaccia utente che la CLI per interrogare il punto di ingresso.

Fonte: Immagine dell'autore.

Per utilizzare la CLI, apri Cloud Shell ed esegui il seguente comando:

# Inviamo dati non validi per capire il payload di richiesta previsto aws sagemaker-runtime invoke-endpoint --body `echo 'esempio' | base64` --endpoint-name automl-fraud-detection --content-type text/csv /dev/stdout > Eccezione: Formato dati non valido. I dati di input sono 1 mentre il modello si aspetta 6 > ['customer_id_0', 'stato', 'importo', 'orario_transazione', 'stato_transazione', 'ora_del_giorno'] <class 'list'># Inviamo un importo maggiore (947.98)aws sagemaker-runtime invoke-endpoint --body `echo 2,TX,947.08,1695574580,TX,16 | base64` --endpoint-name automl-fraud-detection --content-type text/csv /dev/stdout> 1.0 // Frode# Inviamo un importo minore (947.98)aws sagemaker-runtime invoke-endpoint --body `echo 2,TX,94.08,1695574580,TX,16 | base64` --endpoint-name automl-fraud-detection --content-type text/csv /dev/stdout> 0.0 // Non Frode

Troubleshoot con SageMaker Debugger

[Bonus] Come puoi capire e monitorare l’avanzamento dei tuoi lavori di addestramento a lungo termine?

In questo esempio, ho utilizzato un piccolo set di dati, quindi l’addestramento di solito finisce entro un’ora o qualche ora. Tuttavia, in scenari aziendali con grandi set di dati, l’addestramento può richiedere giorni o settimane. È importante monitorare e capire cosa sta accadendo durante questo periodo per evitare costi inutili.

SageMaker Debugger è uno strumento utile a tal fine. Interferisce nel processo di addestramento, catturando continuamente metriche e tensori, memorizzandoli in un bucket di destinazione e applicando varie regole per valutare e visualizzare l’avanzamento dell’addestramento. Sebbene non tratterò qui le specifiche di queste regole o architettura, coloro interessati possono leggerne su questo link e questo link, rispettivamente.

Fonte: https://aws.amazon.com/sagemaker/debugger/

Spiega con SageMaker Clarify

[✓] [Governance & Conformità] Come tracci i confini del modello consentendoti di spiegare le decisioni del modello e rilevare eventuali bias?

SageMaker è nativamente integrato con SageMaker Clarify, che consente di spiegare la correlazione delle caratteristiche nell’output dell’addestramento. Questo, a sua volta, ti permette di capire meglio le decisioni del modello.

Approfondiremo SageMaker Clarify nell’articolo “Monitoraggio e Miglioramento Continuo” LINK.

Fonte: Immagine dell'autore.

Organizza con SageMaker Experiments

[✓] [Collaborazione] Come può uno scienziato dei dati condividere l’esperimento, le configurazioni e i modelli addestrati?

Come discusso nell’articolo su Acquisizione Dati & Esplorazione, SageMaker Studio consente a tutti gli utenti del dominio di accedere alle stesse informazioni, incluso gli esperimenti.

Inoltre, è possibile condividere facilmente questi esperimenti con gli utenti di Canvas o esportare visualizzazioni e artefatti di modelli addestrati per esecuzioni locali, cloud o su edge.

Fonte: Immagine dell'autore.

[✓] [Riproducibilità] Come puoi garantire la riproducibilità dei risultati dell’esperimento?

Quando si conducono prove con SageMaker, qui, AutoML, ogni esecuzione viene registrata e monitorata. SageMaker Experiments cattura automaticamente tutti i passaggi, i parametri, le impostazioni e gli artefatti di input e output correlati. Questo consente una facile riproducibilità dei modelli con impostazioni consistenti. Semplifica così la risoluzione dei problemi nei sistemi di produzione e l’audit dei modelli per la conformità.

Fonte: Immagine dell'autore.

Catalog con SageMaker Model Registry

[✓] [Riproducibilità] Come tracci e gestisci le diverse versioni dei modelli addestrati

In un tipico processo di modellazione, i data scientist sperimentano e ottimizzano continuamente i modelli per risolvere problemi specifici, dando origine alla creazione di diverse versioni di modelli. Tuttavia, a mano a mano che il repository dei modelli addestrati cresce, diventa una sfida gestirli. È importante che la piattaforma che utilizziamo permetta ai data scientist di:

  • Organizzare logicamente i modelli correlati in gruppi,
  • Gestire in modo fluido diverse versioni,
  • Eseguire rollback o rollforward delle versioni in caso di problemi in produzione.

Qui entra in gioco il Registro dei Modelli di SageMaker. Consente a un data scientist di registrare modelli addestrati in gruppi di modelli come versioni. Inoltre, permette di stabilire un processo di approvazione con stati come “In attesa”, “Approvato” e “Respinto”. Quando viene collegato a un flusso di lavoro CI/CD (discuterò questo in seguito nell’articolo “Monitoraggio e Miglioramento Continuo” [LINK]), può automatizzare il deployment di un endpoint di SageMaker quando un modello viene approvato.

Crea un Gruppo di ModelliCrea un gruppo per organizzare logicamente i modelli che risolvono un problema specifico.

Fonte: Immagine dell'autore.

Registra una Versione del ModelloPrima di tutto, raccogliamo i dettagli per la registrazione del modello. Durante il processo di catalogazione, assicurati di fornire il maggior numero possibile di informazioni. Questo include un input di esempio, spiegabilità, presenza di bias, rapporti di qualità, dettagli del pacchetto e dettagli di inferenza.

In SageMaker Pipelines, puoi utilizzare il comando RegisterModel o la nuova Model Step per registrare automaticamente il modello nel Registro dei Modelli durante il processo di addestramento. Ne parleremo nell’articolo “Monitoraggio e Miglioramento Continuo” [LINK].

Fonte: Immagine dell'autore.

Una volta che hai le informazioni necessarie, puoi registrare la versione nel gruppo di modelli creato in precedenza.

Fonte: Immagine dell'autore.
Fonte: Immagine dell'autore.

Approva le Versioni del ModelloHo creato due versioni aggiuntive nello stesso gruppo. Per ciascuna versione, dovresti essere in grado di visualizzare e rivedere i dettagli forniti. Inoltre, se carichi metriche di qualità, puoi confrontare le diverse versioni. E come detto in precedenza, puoi approvare o respingere il modello.

Fonte: Immagine dell'autore.

⚠️ Pulizia

Se hai seguito gli esercizi pratici, assicurati di pulire per evitare addebiti.

Fonte: Immagine dell'autore.

Elimina l’Endpoint di InferenzaPer evitare costi, assicurati di eliminare l’endpoint e qualsiasi altro lavoro di elaborazione.

Fonte: Immagine dell'autore.

Sommario

In sintesi, AWS SageMaker può accelerare il percorso di un data scientist nell’esperimento, nella valutazione e nella gestione dei modelli. Inoltre, strumenti come SageMaker Debugger e SageMaker Clarify possono aiutare a comprendere il processo di addestramento e il modello.

Nel prossimo articolo, esplorerò come AWS SageMaker possa aiutare a rendere il modello operativo, comprendendo l’apprendimento tramite dati di produzione o shadow learning.