

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

# Azioni sulle regole che utilizzano Amazon CloudWatch e AWS Lambda
<a name="debugger-cloudwatch-lambda"></a>

Amazon CloudWatch raccoglie i log dei lavori di formazione dei modelli Amazon SageMaker AI e i log dei lavori di elaborazione delle regole di Amazon SageMaker Debugger. Configura Debugger con Amazon CloudWatch Events e intraprendi azioni in base AWS Lambda allo stato di valutazione delle regole del Debugger. 

## Notebook di esempio
<a name="debugger-test-stop-training"></a>

Puoi eseguire i seguenti notebook di esempio, preparati per sperimentare l'interruzione di un processo di formazione utilizzando azioni sulle regole integrate di Debugger utilizzando Amazon e. CloudWatch AWS Lambda
+ [Amazon SageMaker Debugger: reagire agli eventi derivanti dalle regole CloudWatch ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/tf-mnist-stop-training-job.html)

  Questo notebook di esempio esegue un processo di addestramento che presenta un problema di gradiente di fuga. La regola [VanishingGradient](debugger-built-in-rules.md#vanishing-gradient) integrata del Debugger viene utilizzata durante la creazione dello stimatore AI. SageMaker TensorFlow Quando la regola di Debugger rileva il problema, il processo di addestramento viene interrotto.
+ [Rileva l'allenamento in stallo e richiama le azioni utilizzando la regola del debugger SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/detect_stalled_training_job_and_actions.html)

  Questo notebook di esempio esegue uno script di addestramento con una riga di codice che lo costringe a una sospensione di 10 minuti. La regola di Debugger integrata [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) richiama problemi e interrompe il processo di addestramento.

**Topics**
+ [Notebook di esempio](#debugger-test-stop-training)
+ [Accedi ai CloudWatch log per le regole del Debugger e i lavori di formazione](debugger-cloudwatch-metric.md)
+ [Configura Debugger per l'interruzione automatica del processo di formazione utilizzando e Lambda CloudWatch](debugger-stop-training.md)
+ [Disabilita la regola CloudWatch Events per interrompere l'utilizzo della terminazione automatica del processo di formazione](debugger-disable-cw.md)

# Accedi ai CloudWatch log per le regole del Debugger e i lavori di formazione
<a name="debugger-cloudwatch-metric"></a>

È possibile utilizzare le regole di formazione e Debugger job status nei CloudWatch log per intraprendere ulteriori azioni in caso di problemi di formazione. La procedura seguente mostra come accedere ai log correlati. CloudWatch Per ulteriori informazioni sul monitoraggio dei lavori di formazione utilizzando CloudWatch, consulta [Monitor Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-overview.html).

**Come trovare i log dei job di addestramento e i log dei processi di elaborazione delle regole di Debugger**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione sulla sinistra, nel nodo **Log**, scegli **Gruppi di log**.

1. Nell'elenco Gruppi di log, procedi come segue:
   + Scegli**/aws/sagemaker/TrainingJobs**per i registri dei lavori di formazione.
   + Scegli**/aws/sagemaker/ProcessingJobsper i log** dei lavori delle regole del Debugger.

# Configura Debugger per l'interruzione automatica del processo di formazione utilizzando e Lambda CloudWatch
<a name="debugger-stop-training"></a>

Le regole Debugger monitorano lo stato del processo di formazione e una regola CloudWatch Events controlla lo stato di valutazione del processo di formazione della regola Debugger. Le sezioni seguenti descrivono il processo necessario per automatizzare l'interruzione dei lavori di formazione utilizzando e CloudWatch Lambda.

**Topics**
+ [Fase 1: creare una funzione Lambda](#debugger-lambda-function-create)
+ [Fase 2: configurare la funzione Lambda](#debugger-lambda-function-configure)
+ [Passaggio 3: creare una regola CloudWatch degli eventi e collegarsi alla funzione Lambda per Debugger](#debugger-cloudwatch-events)

## Fase 1: creare una funzione Lambda
<a name="debugger-lambda-function-create"></a>

**Come creare una funzione Lambda**

1. Apri la console all'indirizzo. AWS Lambda [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Nel riquadro di navigazione a sinistra, scegli **Funzioni**, quindi scegli **Crea funzione**.

1. Nella pagina **Crea funzione**, scegli l’opzione **Crea da zero**.

1. Nella sezione **Informazioni di base**, inserisci **il nome di una funzione** (ad esempio, **debugger-rule-stop-training-job**).

1. In **Runtime**, scegliere **Python 3.7**.

1. Per **Autorizzazioni**, espandi l'opzione a discesa e scegli **Cambia il ruolo di esecuzione predefinito**.

1. Per il **ruolo di esecuzione**, scegli **Usa un ruolo esistente** e scegli il ruolo IAM da utilizzare per i lavori di formazione sull' SageMaker intelligenza artificiale.
**Nota**  
Assicurati di utilizzare il ruolo di esecuzione con `AmazonSageMakerFullAccess` e `AWSLambdaBasicExecutionRole` collegati. In caso contrario, la funzione Lambda non reagirà correttamente alle modifiche allo stato della regola di Debugger del processo di addestramento. Se non sei sicuro del ruolo di esecuzione utilizzato, esegui il codice seguente in una cella del notebook Jupyter per recuperare l'output del ruolo di esecuzione:  

   ```
   import sagemaker
   sagemaker.get_execution_role()
   ```

1. Nella parte inferiore della pagina, scegli **Crea funzione**.

La figura seguente mostra un esempio della pagina **Crea funzione** con i campi di input e le selezioni completati.

![\[Pagina Crea Funzione.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-lambda-create.png)


## Fase 2: configurare la funzione Lambda
<a name="debugger-lambda-function-configure"></a>

**Per configurare la funzione Lambda**

1. Nella sezione **Codice funzione** della pagina di configurazione, incolla il seguente script Python nel riquadro dell'editor di codice Lambda. La `lambda_handler` funzione monitora lo stato di valutazione delle regole del Debugger raccolto da CloudWatch e attiva l'operazione dell'API. `StopTrainingJob` The AWS SDK per Python (Boto3) `client` for SageMaker AI fornisce un metodo di alto livello che attiva il funzionamento dell'API. `stop_training_job` `StopTrainingJob`

   ```
   import json
   import boto3
   import logging
   
   logger = logging.getLogger()
   logger.setLevel(logging.INFO)
   
   def lambda_handler(event, context):
       training_job_name = event.get("detail").get("TrainingJobName")
       logging.info(f'Evaluating Debugger rules for training job: {training_job_name}')
       eval_statuses = event.get("detail").get("DebugRuleEvaluationStatuses", None)
   
       if eval_statuses is None or len(eval_statuses) == 0:
           logging.info("Couldn't find any debug rule statuses, skipping...")
           return {
               'statusCode': 200,
               'body': json.dumps('Nothing to do')
           }
   
       # should only attempt stopping jobs with InProgress status
       training_job_status = event.get("detail").get("TrainingJobStatus", None)
       if training_job_status != 'InProgress':
           logging.debug(f"Current Training job status({training_job_status}) is not 'InProgress'. Exiting")
           return {
               'statusCode': 200,
               'body': json.dumps('Nothing to do')
           }
   
       client = boto3.client('sagemaker')
   
       for status in eval_statuses:
           logging.info(status.get("RuleEvaluationStatus") + ', RuleEvaluationStatus=' + str(status))
           if status.get("RuleEvaluationStatus") == "IssuesFound":
               secondary_status = event.get("detail").get("SecondaryStatus", None)
               logging.info(
                   f'About to stop training job, since evaluation of rule configuration {status.get("RuleConfigurationName")} resulted in "IssuesFound". ' +
                   f'\ntraining job "{training_job_name}" status is "{training_job_status}", secondary status is "{secondary_status}"' +
                   f'\nAttempting to stop training job "{training_job_name}"'
               )
               try:
                   client.stop_training_job(
                       TrainingJobName=training_job_name
                   )
               except Exception as e:
                   logging.error(
                       "Encountered error while trying to "
                       "stop training job {}: {}".format(
                           training_job_name, str(e)
                       )
                   )
                   raise e
       return None
   ```

   Per ulteriori informazioni sull'interfaccia dell'editor di codice Lambda, consulta [Creazione di funzioni utilizzando l'editor della console AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html).

1. Salta tutte le altre impostazioni e scegli **Salva** nella parte superiore della pagina di configurazione.

## Passaggio 3: creare una regola CloudWatch degli eventi e collegarsi alla funzione Lambda per Debugger
<a name="debugger-cloudwatch-events"></a>

**Per creare una regola CloudWatch Events e collegarsi alla funzione Lambda per Debugger**

1. Apri la console all'indirizzo. CloudWatch [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Nel pannello di navigazione a sinistra, scegli **Regole** sotto al nodo **Eventi**.

1. Scegli **Crea regola**.

1. Nella sezione **Origine dell'evento** della pagina **Step 1: Create rule**, scegli **SageMaker AI** come **Service Name** e scegli **SageMaker AI Training Job State Change** for **Event Type**. L'anteprima del modello di evento deve apparire simile alle seguenti stringhe JSON di esempio: 

   ```
   {
       "source": [
           "aws.sagemaker"
       ],
       "detail-type": [
           "SageMaker Training Job State Change"
       ]
   }
   ```

1. Nella sezione **Target**, scegli **Aggiungi target\$1** e scegli la funzione **debugger-rule-stop-training-job** Lambda che hai creato. Questo passaggio collega la regola CloudWatch Events alla funzione Lambda.

1. Scegli **Configura dettagli** e vai alla pagina **Fase 2: configurare i dettagli della regola**.

1. Specificate il nome della definizione della CloudWatch regola. Ad esempio, **debugger-cw-event-rule**.

1. Per finire, scegli **Crea regola**.

1. Torna alla pagina di configurazione della funzione Lambda e aggiorna la pagina. Verifica che sia configurata correttamente nel pannello **Designer**. La regola CloudWatch Events deve essere registrata come trigger per la funzione Lambda. Il design della configurazione deve essere simile all'esempio seguente.  
<a name="lambda-designer-example"></a>![\[Pannello di progettazione per la CloudWatch configurazione.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-lambda-designer.png)

# Disabilita la regola CloudWatch Events per interrompere l'utilizzo della terminazione automatica del processo di formazione
<a name="debugger-disable-cw"></a>

Se desideri disabilitare l'interruzione automatica del processo di formazione, devi disabilitare la regola CloudWatch Eventi. Nel pannello Lambda **Designer**, scegli il blocco **EventBridge (CloudWatch Eventi)** collegato alla funzione Lambda. Questo mostra un **EventBridge**pannello sotto il pannello **Designer** (ad esempio, vedi la schermata precedente). Seleziona la casella di controllo accanto a **EventBridge (CloudWatch Eventi): debugger-cw-event-rule**, quindi scegli **Disabilita**. Se desideri utilizzare la funzionalità di terminazione automatica in un secondo momento, puoi abilitare nuovamente la regola CloudWatch Events.