

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à.

# Tutorial di Debugger
<a name="debugger-tutorial"></a>

I seguenti argomenti illustrano i tutorial dalle nozioni di base ai casi d'uso avanzati di monitoraggio, profilazione e debug dei processi di addestramento SageMaker utilizzando Debugger. Esplora le funzionalità di Debugger e scopri come eseguire il debug e migliorare i tuoi modelli di machine learning in modo efficiente utilizzando Debugger.

**Topics**
+ [Video tutorial su Debugger](debugger-videos.md)
+ [Notebook di esempio di Debugger](debugger-notebooks.md)
+ [Demo e visualizzazione avanzate di Debugger](debugger-visualization.md)

# Video tutorial su Debugger
<a name="debugger-videos"></a>

I seguenti video forniscono un tour delle funzionalità di Amazon SageMaker Debugger utilizzando istanze di notebook SageMaker Studio e SageMaker AI. 

**Topics**
+ [Modelli di debug con Amazon SageMaker Debugger in Studio Classic](#debugger-video-get-started)
+ [Approfondimento su Amazon SageMaker Debugger e SageMaker sul monitor del modello AI](#debugger-video-dive-deep)

## Modelli di debug con Amazon SageMaker Debugger in Studio Classic
<a name="debugger-video-get-started"></a>

*Julien Simon, AWS Technical Evangelist \$1 Durata: 14 minuti 17 secondi*

Questo video tutorial mostra come usare Amazon SageMaker Debugger per acquisire e controllare le informazioni di debug da un modello di formazione. Il modello di addestramento di esempio utilizzato in questo video è una semplice rete neurale convoluzionale (CNN) basata su Keras con backend. TensorFlow SageMaker L'intelligenza artificiale in un TensorFlow framework e Debugger consentono di creare uno stimatore direttamente utilizzando lo script di addestramento ed eseguire il debug del processo di formazione.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/MqPdTj0Znwg/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/MqPdTj0Znwg)


Puoi trovare il notebook di esempio usato nel video in [questo repository Studio Demo](https://gitlab.com/juliensimon/amazon-studio-demos/-/tree/master) fornito dall'autore. È necessario clonare il file del `debugger.ipynb` notebook e lo script di `mnist_keras_tf.py` formazione su SageMaker Studio o su un'istanza del notebook. SageMaker Dopo aver clonato i due file, specifica il percorso `keras_script_path` verso il file `mnist_keras_tf.py` all'interno del notebook `debugger.ipynb`. Ad esempio, se hai clonato i due file nella stessa directory, impostala come `keras_script_path = "mnist_keras_tf.py"`.

## Approfondimento su Amazon SageMaker Debugger e SageMaker sul monitor del modello AI
<a name="debugger-video-dive-deep"></a>

*Julien Simon, AWS Technical Evangelist \$1 Durata: 44 minuti 34 secondi*

Questa sessione video esplora le funzionalità avanzate di Debugger e SageMaker Model Monitor che aiutano a incrementare la produttività e la qualità dei modelli. Innanzitutto, questo video mostra come rilevare e risolvere i problemi di addestramento, visualizzare i tensori e migliorare i modelli con Debugger. Successivamente, alle 22:41, il video mostra come monitorare i modelli in produzione e identificare problemi di previsione come le funzionalità mancanti o la deriva dei dati utilizzando AI Model Monitor. SageMaker Infine, puoi trovare dei suggerimenti per l'ottimizzazione dei costi che consentono di sfruttare al massimo il tuo budget relativo al machine learning.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/0zqoeZxakOI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/0zqoeZxakOI)


Puoi trovare il notebook di esempio mostrato nel video in [ questo repository AWS Dev Days 2020](https://gitlab.com/juliensimon/awsdevdays2020/-/tree/master/mls1) offerto dall'autore.

# Notebook di esempio di Debugger
<a name="debugger-notebooks"></a>

SageMaker [I [notebook di esempio del debugger sono forniti nel repository aws/](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/). amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) I notebbok di esempio di Debugger illustrano i casi d'uso di base e avanzati dei processi di addestramento per il debug e la profilazione. 

Ti consigliamo di eseguire i notebook di esempio su SageMaker Studio o un'istanza SageMaker Notebook perché la maggior parte degli esempi è progettata per lavori di formazione nell'ecosistema di SageMaker intelligenza artificiale, tra cui Amazon EC2, Amazon S3 e Amazon Python SDK. SageMaker 

Per clonare il repository di esempio su SageMaker Studio, segui le istruzioni su [Amazon SageMaker Studio Tour](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-end-to-end.html).

**Importante**  
Per utilizzare le nuove funzionalità di Debugger, è necessario aggiornare l'SDK SageMaker Python e la libreria client. `SMDebug` Nel kernel IPython, Jupyter Notebook JupyterLab o nell'ambiente, esegui il codice seguente per installare le versioni più recenti delle librerie e riavviare il kernel.  

```
import sys
import IPython
!{sys.executable} -m pip install -U sagemaker smdebug
IPython.Application.instance().kernel.do_shutdown(True)
```

## Notebook di esempio di Debugger per la profilazione dei job di addestramento
<a name="debugger-notebooks-profiling"></a>

L'elenco seguente mostra alcuni notebook di esempio di Debugger che presentano l'adattabilità di Debugger per monitorare e profilare i processi di addestramento per vari modelli, set di dati e framework di machine learning.


| Titolo del notebook | Framework | Modello | Set di dati | Description | 
| --- | --- | --- | --- | --- | 
|  [Analisi dei dati di profilazione di Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/debugger_interactive_analysis_profiling/interactive_analysis_profiling_data.html)  |  TensorFlow  |   ResNetKeras 50  | Cifar-10 |  Questo notebook fornisce un'introduzione all'analisi interattiva dei dati profilati acquisiti da SageMaker Debugger. Esplora tutte le funzionalità degli strumenti di analisi interattivi `SMDebug`.  | 
|  [Profilare la formazione sull'apprendimento automatico con Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_nlp_sentiment_analysis/sentiment-analysis-tf-distributed-training-bringyourownscript.html)  |  TensorFlow  |  Rete neurale convoluzionale 1D  |  Set di dati IMDB  |  Profilate una CNN TensorFlow 1-D per l'analisi del sentiment dei dati IMDB, costituita da recensioni di film etichettate come positive o negative. Esplora gli approfondimenti di Studio Debugger e il report sulla profilazione di Debugger.  | 
|  [Profilazione del modello di allenamento con varie impostazioni di allenamento TensorFlow ResNet distribuite](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_profiling)  |  TensorFlow  | ResNet50 | Cifar-10 |  Esegui lavori di TensorFlow formazione con varie impostazioni di formazione distribuite, monitora l'utilizzo delle risorse di sistema e le prestazioni del modello di profilo utilizzando Debugger.  | 
|  [Profilazione del PyTorch ResNet modello di allenamento con varie impostazioni di allenamento distribuite](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_profiling)   | PyTorch |  ResNet50  | Cifar-10 |  Esegui lavori di PyTorch formazione con varie impostazioni di formazione distribuite, monitora l'utilizzo delle risorse di sistema e le prestazioni del modello di profilo utilizzando Debugger.  | 

## Notebook di esempio di Debugger per l’analisi dei parametri del modello
<a name="debugger-notebooks-debugging"></a>

L'elenco seguente mostra alcuni notebook di esempio di Debugger che presentano l'adattabilità di Debugger per eseguire il debug dei processi di addestramento per vari modelli, set di dati e framework di machine learning.


| Titolo del notebook | Framework | Modello | Set di dati | Description | 
| --- | --- | --- | --- | --- | 
|  [Amazon SageMaker Debugger: usa una regola integrata](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_builtin_rule)  |  TensorFlow  |  Rete neurale convoluzionale  | MNIST |  Utilizza le regole integrate di Amazon SageMaker Debugger per il debug di un modello. TensorFlow  | 
|  [Amazon SageMaker Debugger - Tensorflow 2.1](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow2)  |  TensorFlow  |  ResNet50  | Cifar-10 |  Utilizza la configurazione hook di Amazon SageMaker Debugger e le regole integrate per il debug di un modello con il framework Tensorflow 2.1.  | 
|  [Visualizzazione dei tensori di debug dell'addestramento MXNet](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mnist_tensor_plot)  |  MXNet  |  Rete neurale convoluzionale Gluon  | Fashion MNIST |  Esegui un processo di formazione e configura SageMaker Debugger per memorizzare tutti i tensori di questo lavoro, quindi visualizza quei tensori su un notebook.  | 
|  [Abilita la formazione Spot con Amazon SageMaker Debugger](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mxnet_spot_training)   | MXNet |  Rete neurale convoluzionale Gluon  | Fashion MNIST |  Scopri come Debugger raccoglie i dati tensoriali da un processo di addestramento su un'istanza spot e come utilizzare le regole integrate di Debugger con l'addestramento spot gestito.  | 
| [Spiega un XGBoost modello che prevede il reddito di una persona con Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/xgboost_census_explanations/xgboost-census-debugger-rules.html) | XGBoost |  XGBoost Regressione  |  [Set di dati del censimento per adulti](https://archive.ics.uci.edu/ml/datasets/adult)  | Scopri come utilizzare l'hook Debugger e le regole integrate per raccogliere e visualizzare i dati tensoriali da un modello di XGBoost regressione, come valori di perdita, funzionalità e valori SHAP. | 

Per trovare visualizzazioni avanzate dei parametri del modello e dei casi d'uso, consulta l'argomento successivo in [Demo e visualizzazione avanzate di Debugger](debugger-visualization.md).

# Demo e visualizzazione avanzate di Debugger
<a name="debugger-visualization"></a>

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

**Topics**
+ [Modelli di addestramento e potatura con Amazon SageMaker Experiments and Debugger](#debugger-visualization-video-model-pruning)
+ [[Utilizzo di SageMaker Debugger per monitorare l'addestramento di un modello di autoencoder convoluzionale](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/autoencoder_mnist/autoencoder_mnist.html)](#debugger-visualization-autoencoder_mnist)
+ [[Utilizzo di SageMaker Debugger per monitorare le attenzioni nell'addestramento del modello BERT](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/bert_attention_head_view/bert_attention_head_view.html)](#debugger-visualization-bert_attention_head_view)
+ [[Utilizzo di SageMaker Debugger per visualizzare le mappe di attivazione delle classi nelle reti neurali convoluzionali () CNNs](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/cnn_class_activation_maps/cnn_class_activation_maps.html)](#debugger-visualization-cnn_class_activation_maps)

## Modelli di addestramento e potatura con Amazon SageMaker Experiments and Debugger
<a name="debugger-visualization-video-model-pruning"></a>

*Dr. Nathalie Rauschmayr, scienziata applicata \$1 Durata: 49 minuti 26 secondi AWS *

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Tnv6HsT1r4I/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Tnv6HsT1r4I)


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 *versioni di prova* 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 AI 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 allenamento 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 utilizzare l' SageMaker intelligenza artificiale per accelerare l'addestramento dei modelli di machine learning e migliorare la qualità 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 ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_iterative_model_pruning)

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\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-model-pruning-results-alexnet.gif)


È 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\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-model-pruning-studio.png)


**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](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/autoencoder_mnist/autoencoder_mnist.html)
<a name="debugger-visualization-autoencoder_mnist"></a>

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 MNIST di numeri scritti a mano.

Il modello di formazione di questo notebook è un MXNet autoencoder convoluzionale con il framework. 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 algoritmi di clustering con dimensioni ridotte dei dati di input, oltre a 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 anche 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 come il modello BERT e l'algoritmo T-sne organizzano le variabili latenti nei cluster.

![\[Un' immagine concettuale di autoencoder convoluzionale\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-cnn-autoencoder-plot.gif)


## [Utilizzo di SageMaker Debugger per monitorare le attenzioni nell'addestramento del modello BERT](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/bert_attention_head_view/bert_attention_head_view.html)
<a name="debugger-visualization-bert_attention_head_view"></a>

Le rappresentazioni di codifica bidirezionale da Transformers (BERT) è un modello di rappresentazione linguistica. Come indica il nome del modello, il modello BERT si basa sull'*apprendimento del trasferimento* e sul *modello Transformer* per Natural Language Processing (PNL).

Il modello BERT è pre-addestrato su compiti non supervisionati, come la previsione di parole mancanti in una frase o la previsione della frase successiva che naturalmente segue 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 esempio semplice, il modello BERT può prestare molta *attenzione* ai token verbi appropriati o ai token pronome da un token soggetto.

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

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

Questo notebook dimostra come utilizzare il [modello BERT pre-addestrato dallo zoo del modello GluonNLP](https://gluon-nlp.mxnet.io/model_zoo/bert/index.html) sul set di dati Stanford Question and Answering e come configurare Debugger per monitorare il processo di formazione. SageMaker 

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 AI Debugger, puoi recuperare i tensori e tracciare in tempo reale la visualizzazione della testa di attenzione 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\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-attention_scores.gif)


## [Utilizzo di SageMaker Debugger per visualizzare le mappe di attivazione delle classi nelle reti neurali convoluzionali () CNNs](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/cnn_class_activation_maps/cnn_class_activation_maps.html)
<a name="debugger-visualization-cnn_class_activation_maps"></a>

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 Nell'apprendimento profondo, una rete neurale *convoluzionale (CNN o 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](http://benchmark.ini.rub.de/), 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 della classe CNN\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-cnn-class-activation-maps.gif)


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%.