

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Acciones en relación con las normas de uso de Amazon CloudWatch y AWS Lambda
<a name="debugger-cloudwatch-lambda"></a>

Amazon CloudWatch recopila registros de trabajos de entrenamiento de modelos de Amazon SageMaker AI y registros de trabajos de procesamiento de reglas de Amazon SageMaker Debugger. Configure el depurador con Amazon CloudWatch Events y AWS Lambda tome medidas en función del estado de evaluación de las reglas del depurador. 

## Cuadernos de ejemplo
<a name="debugger-test-stop-training"></a>

Puede ejecutar los siguientes cuadernos de ejemplo, que están preparados para experimentar con la interrupción de un trabajo de formación mediante acciones de las reglas integradas de Debugger mediante Amazon y. CloudWatch AWS Lambda
+ [Amazon SageMaker Debugger: Cómo reaccionar ante los CloudWatch acontecimientos a partir de las reglas](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/tf-mnist-stop-training-job.html)

  En este ejemplo de cuaderno, se ejecuta un trabajo de entrenamiento que tiene un problema de desaparición de gradiente. La regla [VanishingGradient](debugger-built-in-rules.md#vanishing-gradient) integrada del depurador se utiliza al construir el estimador de SageMaker IA TensorFlow . Cuando la regla del depurador detecta el problema, finaliza el trabajo de entrenamiento.
+ [Detecta el entrenamiento estancado e invoca acciones mediante la regla del depurador SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/detect_stalled_training_job_and_actions.html)

  Este cuaderno de ejemplo ejecuta un script de entrenamiento con una línea de código que fuerza el modo suspensión durante diez minutos. La regla [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) integrada del depurador invoca los problemas y detiene el trabajo de entrenamiento.

**Topics**
+ [Cuadernos de ejemplo](#debugger-test-stop-training)
+ [Acceda a CloudWatch los registros para conocer las reglas del depurador y los trabajos de formación](debugger-cloudwatch-metric.md)
+ [Configure Debugger para la finalización automática de tareas de formación mediante CloudWatch Lambda](debugger-stop-training.md)
+ [Desactive la regla de CloudWatch eventos para dejar de utilizar la terminación automática de tareas de formación](debugger-disable-cw.md)

# Acceda a CloudWatch los registros para conocer las reglas del depurador y los trabajos de formación
<a name="debugger-cloudwatch-metric"></a>

Puede utilizar el estado de las tareas de la regla de formación y del depurador en los CloudWatch registros para tomar medidas adicionales cuando surjan problemas con la formación. El siguiente procedimiento muestra cómo acceder a los CloudWatch registros relacionados. Para obtener más información sobre la supervisión de los trabajos de formación mediante el uso CloudWatch, consulte [Supervisar Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-overview.html).

**Acceso a registros de trabajos de entrenamiento y registros de trabajos de reglas del depurador**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación de la izquierda, en el nodo **Registro**, seleccione **Grupos de registros**.

1. En la lista de grupos de registros, haga lo siguiente:
   + Seleccione**/aws/sagemaker/TrainingJobs**para los registros de trabajos de formación.
   + Elija**/aws/sagemaker/ProcessingJobs**para los registros de trabajos de la regla Debugger.

# Configure Debugger para la finalización automática de tareas de formación mediante CloudWatch Lambda
<a name="debugger-stop-training"></a>

Las reglas del Depurador controlan el estado de las tareas de formación, y la regla de CloudWatch Eventos supervisa el estado de evaluación de las tareas de formación con la regla del Depurador. En las siguientes secciones se describe el proceso necesario para automatizar la finalización de un trabajo de formación mediante CloudWatch Lambda.

**Topics**
+ [Paso 1: Crear una función de Lambda](#debugger-lambda-function-create)
+ [Paso 2: configurar la función de Lambda](#debugger-lambda-function-configure)
+ [Paso 3: Crear una regla de CloudWatch eventos y vincularla a la función Lambda para Debugger](#debugger-cloudwatch-events)

## Paso 1: Crear una función de Lambda
<a name="debugger-lambda-function-create"></a>

**Cómo crear una función de Lambda**

1. Abra la AWS Lambda consola en. [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. En el panel de navegación de la izquierda, seleccione **Funciones** y **Crear una función**.

1. En la página **Crear una función**, seleccione la opción **Crear desde cero**.

1. En la sección **Información básica**, introduzca un **nombre de función** (por ejemplo, **debugger-rule-stop-training-job**).

1. En **Runtime** (Tiempo de ejecución), elija **Python 3.7**.

1. En **Permisos**, expanda la opción desplegable y seleccione **Cambiar el rol de ejecución predeterminado**.

1. En **Función de ejecución**, selecciona **Usar una función existente** y elige la función de IAM que utilizarás para formar trabajos sobre SageMaker IA.
**nota**  
Debe utilizar el rol de ejecución con `AmazonSageMakerFullAccess` y `AWSLambdaBasicExecutionRole` asociados. De lo contrario, la función de Lambda no reaccionará correctamente a los cambios del estado de la regla del depurador en el trabajo de entrenamiento. Si no está seguro de qué función de ejecución se está utilizando, ejecute el siguiente código en un cuaderno de Jupyter para recuperar el resultado del rol de ejecución:  

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

1. En la parte inferior de la página, elija **Create function**.

En la siguiente imagen se ve un ejemplo de la página **Crear una función**, con los campos de entrada y las selecciones completadas.

![\[Página Crear una función.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-lambda-create.png)


## Paso 2: configurar la función de Lambda
<a name="debugger-lambda-function-configure"></a>

**Para configurar la función de Lambda**

1. En la sección **Código de la función** de la página de configuración, pegue el siguiente script de Python en el panel del editor de código Lambda. La `lambda_handler` función monitorea el estado de evaluación de las reglas del depurador recopilado por la `StopTrainingJob` API CloudWatch y activa la operación. La AWS SDK para Python (Boto3) `client` opción para SageMaker IA proporciona un método de alto nivel que activa la operación de la `StopTrainingJob` API. `stop_training_job`

   ```
   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
   ```

   Para obtener más información sobre la interfaz del editor de código Lambda, consulte [Creación de funciones mediante el editor de consola AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html).

1. Omita todos los demás ajustes y seleccione **Guardar**, en la parte superior de la página de configuración.

## Paso 3: Crear una regla de CloudWatch eventos y vincularla a la función Lambda para Debugger
<a name="debugger-cloudwatch-events"></a>

**Para crear una regla de CloudWatch eventos y vincularla a la función Lambda para Debugger**

1. Abra la CloudWatch consola en. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. En el panel de navegación de la izquierda, seleccione **Reglas** en el nodo **Eventos**.

1. Seleccione **Creación de regla**.

1. En la sección **Fuente del evento** de la página **Paso 1: Crear regla**, elija **SageMaker AI** para el **nombre del servicio** y elija **SageMaker AI Training Job State Change para el** **tipo de evento**. La vista previa del patrón de eventos tendrá un aspecto similar al de las siguientes cadenas JSON de ejemplo: 

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

1. En la sección **Objetivos**, elija **Agregar objetivo\$1** y elija la función **debugger-rule-stop-trainingLambda -job** que creó. Este paso vincula la regla de CloudWatch eventos con la función Lambda.

1. Seleccione **Configurar los detalles** y vaya a la página **Paso 2: configurar detalles de la regla**.

1. Especifique el nombre de la definición de la CloudWatch regla. Por ejemplo, **debugger-cw-event-rule**.

1. Para terminar, elija **Crear una regla**.

1. Vuelva a la página de configuración de la función de Lambda y actualice la página. Confirme que está configurada correctamente en el panel **Diseño**. La regla CloudWatch Events debe registrarse como activador de la función Lambda. El diseño de la configuración debe ser similar al siguiente ejemplo:  
<a name="lambda-designer-example"></a>![\[Panel de diseño para la CloudWatch configuración.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-lambda-designer.png)

# Desactive la regla de CloudWatch eventos para dejar de utilizar la terminación automática de tareas de formación
<a name="debugger-disable-cw"></a>

Si desea deshabilitar la finalización automática de los trabajos de formación, debe deshabilitar la regla de CloudWatch eventos. En el panel Lambda **Designer**, elija el bloque **EventBridge (CloudWatch Eventos)** vinculado a la función Lambda. Aquí se muestra un **EventBridge**panel debajo del panel **Diseñador** (por ejemplo, consulte la captura de pantalla anterior). Seleccione la casilla de verificación situada junto a **EventBridge (CloudWatch Eventos):** y debugger-cw-event-rule, a continuación, seleccione **Desactivar**. Si desea utilizar la funcionalidad de rescisión automática más adelante, puede volver a activar la regla de CloudWatch eventos.