Demo e visualizzazione avanzate di Debugger - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Demo e visualizzazione avanzate di Debugger

Le seguenti demo illustrano i casi d'uso avanzati e gli script di visualizzazione con Debugger.

Modelli di addestramento e potatura con Amazon SageMaker Experiments and Debugger

Dr. Nathalie Rauschmayr, scienziata applicata | Durata: 49 minuti 26 secondi AWS

Scopri come Amazon SageMaker Experiments and Debugger possono semplificare la gestione dei tuoi lavori di formazione. Amazon SageMaker Debugger offre una visibilità trasparente sui lavori di formazione e salva i parametri di formazione nel tuo bucket Amazon S3. SageMaker Experiments ti consente di chiamare le informazioni sulla formazione come prove tramite SageMaker Studio e supporta la visualizzazione del processo di formazione. Ciò consente di mantenere alta la qualità del modello riducendo i parametri meno importanti in base al grado di importanza.

Questo video illustra una tecnica di potatura dei modelli che rende i modelli pre-addestrati ResNet 50 e 50 più leggeri e convenienti, mantenendo al contempo elevati standard di precisione dei AlexNet modelli.

SageMaker Estimator addestra gli algoritmi forniti dallo zoo del PyTorch modello in un AWS Deep Learning Containers con PyTorch framework e Debugger estrae le metriche di addestramento dal processo di addestramento.

Il video mostra anche come configurare una regola personalizzata Debugger per controllare l'accuratezza di un modello eliminato, attivare un CloudWatch evento Amazon e una AWS Lambda funzione quando la precisione raggiunge una soglia e interrompere automaticamente il processo di pruning per evitare iterazioni ridondanti.

Gli obiettivi di apprendimento sono i seguenti:

  • Scopri come utilizzarlo per accelerare l'addestramento dei modelli ML e migliorare la qualità SageMaker dei modelli.

  • Scopri come gestire le iterazioni di formazione con SageMaker Experiments acquisendo automaticamente i parametri di input, le configurazioni e i risultati.

  • Scopri come Debugger rende trasparente il processo di addestramento acquisendo automaticamente i dati del tensore in tempo reale da parametri quali pesi, gradienti e output di attivazione delle reti neurali convoluzionali.

  • Da utilizzare CloudWatch per attivare Lambda quando Debugger rileva problemi.

  • Padroneggia il processo di SageMaker formazione utilizzando Experiments e Debugger. SageMaker

Puoi trovare i taccuini e gli script di formazione utilizzati in questo video tratto da Debugger Iterative Model Pruning. SageMaker PyTorch

L'immagine seguente mostra come il processo iterativo di potatura del modello riduca le dimensioni di eliminando i 100 filtri meno significativi in base al AlexNet grado di importanza valutato dagli output di attivazione e dai gradienti.

Il processo di eliminazione ha ridotto i 50 milioni di parametri iniziali a 18 milioni. Ha inoltre ridotto la dimensione stimata del modello da 201 MB a 73 MB.

Un' immagine contenente visualizzazioni di output dei risultati di eliminazione del modello

È inoltre necessario tenere traccia della precisione del modello e l'immagine seguente mostra come tracciare il processo di potatura del modello per visualizzare le modifiche nella precisione del modello in base al numero di parametri in Studio. SageMaker

Un'immagine della visualizzazione dei tensori utilizzando Debugger in Studio SageMaker

In SageMaker Studio, scegli la scheda Esperimenti, seleziona un elenco di tensori salvati da Debugger dal processo di potatura, quindi componi un pannello Trial Component List. Seleziona tutte e dieci le iterazioni e scegli Aggiungi grafico per creare un grafico componente di prova. Dopo aver deciso il modello da implementare, scegli il componente di prova e scegli un menu per eseguire un'azione oppure scegli Implementa modello.

Nota

Per distribuire un modello tramite SageMaker Studio utilizzando il seguente esempio di notebook, aggiungete una riga alla fine della funzione nello script. train train.py

# In the train.py script, look for the train function in line 58. def train(epochs, batch_size, learning_rate): ... print('acc:{:.4f}'.format(correct/total)) hook.save_scalar("accuracy", correct/total, sm_metric=True) # Add the following code to line 128 of the train.py script to save the pruned models # under the current SageMaker Studio model directory torch.save(model.state_dict(), os.environ['SM_MODEL_DIR'] + '/model.pt')

Utilizzo di SageMaker Debugger per monitorare l'addestramento di un modello di autoencoder convoluzionale

Questo notebook dimostra come SageMaker Debugger visualizza i tensori di un processo di apprendimento non supervisionato (o supervisionato autonomamente) su un set di dati di immagini di numeri scritti a mano. MNIST

Il modello di formazione di questo notebook è un autoencoder convoluzionale con il framework. MXNet L'autoencoder convoluzionale ha una rete neurale convoluzionale a forma di collo di bottiglia che consiste in una parte encoder e una parte di decoder.

L'encoder in questo esempio ha due livelli di convoluzione per produrre una rappresentazione compressa (variabili latenti) delle immagini di input. In questo caso, l'encoder produce una variabile latente di dimensione (1, 20) da un'immagine di input originale di dimensioni (28, 28) e riduce significativamente la dimensione dei dati per l'addestramento di 40 volte.

Il decoder ha due livelli deconvoluzionali e assicura che le variabili latenti conservino le informazioni chiave ricostruendo le immagini di output.

L'encoder convoluzionale alimenta gli algoritmi di clustering con dati di input di dimensioni inferiori e le prestazioni di algoritmi di clustering come k-means, k-nn e T-distributed Stochastic Neighbor Embedding (t-). SNE

In questo esempio di notebook viene illustrato come visualizzare le variabili latenti utilizzando Debugger, come illustrato nell'animazione seguente. Dimostra inoltre come l'algoritmo t- SNE classifica le variabili latenti in dieci cluster e le proietta in uno spazio bidimensionale. Lo schema di colori del grafico a dispersione sul lato destro dell'immagine riflette i valori reali per mostrare quanto bene il BERT modello e l'SNEalgoritmo t- organizzano le variabili latenti nei cluster.

Un' immagine concettuale di autoencoder convoluzionale

Utilizzo di SageMaker Debugger per monitorare le attenzioni nell'addestramento dei modelli BERT

Bidirectional Encode Representations from Transformers () è un modello di rappresentazione linguistica. BERT Come suggerisce il nome del modello, il modello si basa sul transfer learning e sul BERT modello Transformer per l'elaborazione del linguaggio naturale (). NLP

Il BERT modello è preaddestrato su attività non supervisionate come prevedere le parole mancanti in una frase o prevedere la frase successiva che segue naturalmente una frase precedente. I dati di addestramento contengono 3,3 miliardi di parole (token) di testo inglese da origini come Wikipedia e libri elettronici. Per un semplice esempio, il BERT modello può prestare molta attenzione ai token verbali appropriati o ai token pronomici di un token soggetto.

Il BERT modello pre-addestrato può essere ottimizzato con un livello di output aggiuntivo per addestrare il state-of-the-art modello in NLP attività come le risposte automatiche alle domande, la classificazione del testo e molte altre.

Debugger raccoglie i tensori dal processo di ottimizzazione. Nel contesto diNLP, si richiama l'attenzione sul peso dei neuroni.

Questo taccuino dimostra come utilizzare il BERTmodello pre-addestrato dello zoo dei modelli Gluon sul NLP set di dati Stanford Question and Answering e come configurare SageMaker Debugger per monitorare il processo di formazione.

La tracciatura dei punteggi di attenzione e dei singoli neuroni nella query e nei vettori chiave può aiutare a identificare le cause delle previsioni errate del modello. Con SageMaker Debugger, puoi recuperare i tensori e tracciare la visualizzazione della testa di attenzione in tempo reale man mano che l'allenamento procede e capire cosa sta imparando il modello.

L'animazione seguente mostra i punteggi di attenzione dei primi 20 token di input per dieci iterazioni nel processo di addestramento fornito nell'esempio del notebook.

Un' animazione dei punteggi di attenzione

Utilizzo di SageMaker Debugger per visualizzare le mappe di attivazione delle classi nelle reti neurali convoluzionali () CNNs

Questo notebook dimostra come utilizzare SageMaker Debugger per tracciare mappe di attivazione delle classi per il rilevamento e la classificazione delle immagini nelle reti neurali convoluzionali (). CNNs Nel deep learning, una rete neurale convoluzionale (CNNo ConvNet) è una classe di reti neurali profonde, più comunemente applicata all'analisi di immagini visive. Una delle applicazioni che adotta le mappe di attivazione della classe è a guida autonoma e richiede il rilevamento istantaneo e la classificazione di immagini come segnali stradali, strade e ostacoli.

In questo taccuino, il PyTorch ResNet modello viene addestrato sul German Traffic Sign Dataset, che contiene più di 40 classi di oggetti relativi al traffico e più di 50.000 immagini in totale.

Un'animazione delle mappe di attivazione delle classi CNN

Durante il processo di addestramento, SageMaker Debugger raccoglie tensori per tracciare le mappe di attivazione della classe in tempo reale. Come mostrato nell'immagine animata, la mappa di attivazione della classe (detta anche mappa di salienza) evidenzia le Regioni con attivazione elevata in colore rosso.

Utilizzando i tensori catturati da Debugger, è possibile visualizzare l'evoluzione della mappa di attivazione durante l'addestramento del modello. Il modello inizia rilevando il bordo nell'angolo inferiore sinistro all'inizio del processo di addestramento. Man mano che l'addestramento progredisce, la messa a fuoco si sposta verso il centro e rileva il limite di velocità, e il modello predice con successo l'immagine di ingresso come Classe 3, che è una classe di limiti di velocità di 60 km/h, con un livello di attendibilità del 97%.