Monitora e analizza i lavori di formazione utilizzando Amazon CloudWatch Metrics - 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à.

Monitora e analizza i lavori di formazione utilizzando Amazon CloudWatch Metrics

Un lavoro di SageMaker formazione su Amazon è un processo iterativo che insegna a un modello a fare previsioni presentando esempi tratti da un set di dati di formazione. In genere, un algoritmo di addestramento calcola diversi parametri, ad esempio errore di addestramento e accuratezza della previsione. Questi parametri consentono di stabilire la capacità di apprendimento e di generalizzazione del modello per fare previsioni su dati non visualizzati. L'algoritmo di addestramento scrive i valori di queste metriche nei log, che li SageMaker monitorano e li inviano ad Amazon CloudWatch in tempo reale. Per analizzare le prestazioni del tuo lavoro di formazione, puoi visualizzare i grafici di queste metriche in. CloudWatch Al termine di un processo di addestramento, puoi anche ottenere un elenco dei valori dei parametri che vengono calcolati nell'iterazione finale chiamando l'operazione DescribeTrainingJob.

Nota

Amazon CloudWatch supporta metriche personalizzate ad alta risoluzione e la sua risoluzione massima è di 1 secondo. Tuttavia, maggiore è la risoluzione, minore è la durata delle metriche. CloudWatch Per la risoluzione di frequenza di 1 secondo, le CloudWatch metriche sono disponibili per 3 ore. Per ulteriori informazioni sulla risoluzione e sulla durata delle CloudWatch metriche, consulta Amazon CloudWatch API GetMetricStatisticsReference.

Suggerimento

Se desideri profilare il tuo lavoro di formazione con una risoluzione più precisa con una granularità fino a 100 millisecondi (0,1 secondi) e archiviare i parametri di formazione a tempo indeterminato in Amazon S3 per analisi personalizzate in qualsiasi momento, prendi in considerazione l'utilizzo di Amazon Debugger. SageMaker SageMaker Debugger fornisce regole integrate per rilevare automaticamente i problemi di formazione più comuni; rileva i problemi di utilizzo delle risorse hardware (come i colli di bottiglia di CPU, GPU e I/O) e i problemi non convergenti dei modelli (come sovradimensionamento, sbiadimento dei gradienti e tensori esplosivi). SageMaker Debugger fornisce anche visualizzazioni tramite Studio Classic e il relativo rapporto di profilazione. Per esplorare le visualizzazioni del Debugger, consulta Debugger Insights Dashboard Walkthrough, SageMaker Debugger Profiling Report Walkthrough e Analyze Data Using the SMDebug Client Library.

Definizione dei parametri di addestramento

SageMaker analizza automaticamente i registri dei lavori di CloudWatch formazione e invia le metriche di formazione a. Per impostazione predefinita, SageMaker invia le metriche di utilizzo delle risorse di sistema elencate in SageMaker Jobs ed Endpoint Metrics. Se desideri SageMaker analizzare i log e inviare metriche personalizzate da un processo di formazione del tuo algoritmo CloudWatch, devi specificare le definizioni delle metriche passando il nome delle metriche e delle espressioni regolari quando configuri una richiesta di lavoro di formazione. SageMaker

Puoi specificare le metriche che desideri monitorare utilizzando la SageMaker console, l'SDK SageMaker Python o l'API di basso livello. SageMaker

Se utilizzi il tuo algoritmo, procedi come riportato di seguito:

  • Assicurati che l'algoritmo scriva i parametri che devono essere acquisiti nei log.

  • Definisci un'espressione regolare che cerchi accuratamente nei log per acquisire i valori delle metriche a cui desideri inviare. CloudWatch

Ad esempio, supponi che l'algoritmo emetta i seguenti parametri per errore di addestramento ed errore di convalida:

Train_error=0.138318; Valid_error=0.324557;

Se desideri monitorare entrambe queste metriche CloudWatch, il dizionario per le definizioni delle metriche dovrebbe essere simile al seguente esempio:

[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]

Nell'espressione regolare per il parametro train:error definita in precedenza, la prima parte dell'espressione regolare trova il testo esatto "Train_error= " e l'espressione (.*?); acquisisce qualsiasi carattere fino al primo carattere punto e virgola. In questa espressione, la parentesi indicano alla regex di acquisire il loro contenuto, . significa qualsiasi carattere, * significa zero o più caratteri e ? significa acquisire solo fino alla prima istanza del carattere ;.

Definizione delle metriche utilizzando l'SDK SageMaker Python

Definisci le metriche a cui desideri inviare CloudWatch specificando un elenco di nomi di metriche ed espressioni regolari come metric_definitions argomento quando inizializzi un oggetto. Estimator Ad esempio, se desideri monitorare sia le validation:error metriche che in CloudWatch, l'train:errorEstimatorinizializzazione sarà simile al seguente esempio:

import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )

Per ulteriori informazioni sulla formazione utilizzando gli estimatori di Amazon SageMaker Python SDK, consulta Sagemaker Python SDK on. GitHub

Definisci le metriche utilizzando la console SageMaker

Se scegli l'opzione Il tuo contenitore di algoritmi in ECR come origine dell'algoritmo nella SageMaker console quando crei un processo di formazione, aggiungi le definizioni delle metriche nella sezione Metriche. La schermata seguente mostra come dovrebbe funzionare dopo aver aggiunto i nomi dei parametri di esempio e le espressioni regolari corrispondenti.

Definisci le metriche utilizzando l'API di basso livello SageMaker

Definisci le metriche a cui desideri inviare CloudWatch specificando un elenco di nomi di metriche ed espressioni regolari nel MetricDefinitions campo del parametro di AlgorithmSpecificationinput che passi all'operazione. CreateTrainingJob Ad esempio, se desideri monitorare sia le train:error validation:error metriche che in CloudWatch, AlgorithmSpecification avresti un aspetto simile al seguente:

"AlgorithmSpecification": { "TrainingImage": your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }

Per ulteriori informazioni sulla definizione e l'esecuzione di un processo di formazione utilizzando l' SageMaker API di basso livello, consulta. CreateTrainingJob

Monitoraggio delle metriche relative ai lavori di formazione (CloudWatch console)

Puoi monitorare le metriche emesse da un processo di formazione in tempo reale nella console. CloudWatch

Per monitorare le metriche relative ai lavori di formazione (console) CloudWatch
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch.

  2. Scegli Metriche, quindi scegli /aws/sagemaker/ TrainingJobs.

  3. Scegli. TrainingJobName

  4. Nella scheda Tutti i parametri, scegli i nomi dei parametri di addestramento da monitorare.

  5. Nella scheda Parametri definiti, configura le opzioni del grafico. Per ulteriori informazioni sull'uso dei CloudWatch grafici, consulta Graph Metrics nella Amazon CloudWatch User Guide.

Monitoraggio dei parametri del processo di training (console SageMaker)

Puoi monitorare le metriche emesse da un processo di formazione in tempo reale utilizzando la console. SageMaker

Per monitorare le metriche relative ai lavori di formazione (console) SageMaker
  1. Apri la SageMaker console all'indirizzo https://console.aws.amazon.com/sagemaker.

  2. Scegli Processi di addestramento, quindi selezionare il processo di addestramento di cui visualizzare i parametri.

  3. Scegli TrainingJobName.

  4. Nella sezione Monitoraggio, puoi rivedere i grafici dei parametri relativi ad algoritmo e utilizzo dell'istanza.

Esempio: visualizzazione di una curva di addestramento e di convalida

In genere, i dati utilizzati per l’addestramento del modello vengono suddivisi in set di dati di addestramento e di convalida. Utilizza il set di addestramento per l’addestramento dei parametri del modello che vengono utilizzati per fare previsioni sul set di dati di addestramento. Quindi verifica la bontà delle previsioni effettuate dal modello calcolando le previsioni per il set di convalida. Per analizzare le prestazioni di un processo di addestramento, viene comunemente tracciata una curva di addestramento rispetto a una curva di convalida.

La visualizzazione di un grafico che mostra la precisione dei set di addestramento e di convalida nel tempo consente di migliorare le prestazioni del modello. Ad esempio, se la precisione dell’addestramento continua ad aumentare nel tempo, ma a un certo punto, la precisione di convalida inizia a diminuire, è probabile che si stia verificando l'overfitting del modello. Per risolvere questo problema, puoi apportare regolazioni al modello, ad esempio incrementando la regolarizzazione.

Per questo esempio, puoi usare l'mage-classification-full-trainingesempio I nella sezione Notebooks di esempio dell'istanza del tuo SageMaker notebook. Se non disponi di un'istanza di SageMaker notebook, creane una seguendo le istruzioni riportate all'indirizzo. Fase 1: creare un'istanza Amazon SageMaker Notebook Se preferisci, puoi seguire l'esempio di classificazione end-to-end delle immagini multiclasse riportato nell'esempio notebook on. GitHub Ti serve inoltre un bucket Amazon S3 per archiviare i dati di addestramento e per l'output del modello.

Per visualizzare curve di errore di addestramento e di convalida
  1. Apri la console all'indirizzo https://console.aws.amazon.com/sagemaker SageMaker .

  2. Scegli Notebook, quindi seleziona Istanze del notebook.

  3. Scegli l'istanza del notebook da utilizzare e quindi seleziona Apri.

  4. Nella dashboard dell'istanza del notebook, scegli SageMakerEsempi.

  5. Espandi la sezione Introduzione ad Amazon Algorithms, quindi scegli Usa accanto a I mage-classification-fulltraining .ipynb.

  6. Scegli Crea copia. SageMaker crea una copia modificabile del notebook I mage-classification-fulltraining .ipynb nell'istanza del notebook.

  7. Esegui tutte le celle nel notebook fino alla sezione Inferenza. Non è necessario distribuire un endpoint o ottenere inferenza per questo esempio.

  8. Dopo l'inizio del processo di formazione, apri la console all' CloudWatch indirizzo https://console.aws.amazon.com/cloudwatch.

  9. Scegli Metriche, quindi scegli /aws/sagemaker/ TrainingJobs.

  10. Scegli. TrainingJobName

  11. Nella scheda Tutti i parametri, scegli i parametri train:accuracy e validation:accuracy per il processo di addestramento creato nel notebook.

  12. Nel grafico, scegli un'area dei valori del parametro da ingrandire. L'output visualizzato sarà simile al seguente esempio.