

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Ações sobre regras usando Amazon CloudWatch e AWS Lambda
<a name="debugger-cloudwatch-lambda"></a>

A Amazon CloudWatch coleta registros de trabalhos de treinamento do modelo Amazon SageMaker AI e registros de trabalhos de processamento de regras do Amazon SageMaker Debugger. Configure o Debugger com o Amazon CloudWatch Events e tome medidas com base no AWS Lambda status de avaliação da regra do Debugger. 

## Cadernos de exemplo
<a name="debugger-test-stop-training"></a>

Você pode executar os seguintes exemplos de cadernos, que estão preparados para experimentar a interrupção de um trabalho de treinamento usando ações nas regras integradas do Debugger usando Amazon e. CloudWatch AWS Lambda
+ [Amazon SageMaker Debugger - Reagindo a eventos a partir de regras CloudWatch ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/tf-mnist-stop-training-job.html)

  Este caderno de exemplo executa um trabalho de treinamento que apresenta um problema de gradiente de desaparecimento. A regra [VanishingGradient](debugger-built-in-rules.md#vanishing-gradient) integrada do Debugger é usada durante a construção do estimador de IA. SageMaker TensorFlow Quando a regra do Debugger detecta o problema, o trabalho de treinamento é encerrado.
+ [Detecte o treinamento paralisado e invoque ações usando SageMaker a regra do depurador](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/detect_stalled_training_job_and_actions.html)

  Este exemplo de caderno executa um script de treinamento com uma linha de código que o força a dormir por 10 minutos. A regra [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) integrada do Debugger invoca problemas e interrompe o trabalho de treinamento.

**Topics**
+ [Cadernos de exemplo](#debugger-test-stop-training)
+ [CloudWatch Registros de acesso para regras do Debugger e trabalhos de treinamento](debugger-cloudwatch-metric.md)
+ [Configure o Debugger para o término automatizado do trabalho de treinamento usando o Lambda CloudWatch](debugger-stop-training.md)
+ [Desative a regra de CloudWatch Eventos para parar de usar o encerramento automático do trabalho de treinamento](debugger-disable-cw.md)

# CloudWatch Registros de acesso para regras do Debugger e trabalhos de treinamento
<a name="debugger-cloudwatch-metric"></a>

Você pode usar o status do trabalho da regra de treinamento e do Debugger nos CloudWatch registros para realizar outras ações quando houver problemas de treinamento. O procedimento a seguir mostra como acessar os CloudWatch registros relacionados. Para obter mais informações sobre como monitorar trabalhos de treinamento usando CloudWatch, consulte [Monitore a Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-overview.html).

**Para encontrar logs de trabalho de treinamento e logs de trabalho da regra do Debugger**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação à esquerda, sob o nó **Log**, escolha **Grupos de logs**.

1. Na lista de grupos de logs, faça o seguinte:
   + Escolha**/aws/sagemaker/TrainingJobs**para registros de tarefas de treinamento.
   + Escolha**/aws/sagemaker/ProcessingJobs**para os registros de tarefas da regra do Debugger.

# Configure o Debugger para o término automatizado do trabalho de treinamento usando o Lambda CloudWatch
<a name="debugger-stop-training"></a>

As regras do Debugger monitoram o status do trabalho de treinamento, e uma regra de CloudWatch Eventos observa o status da avaliação do trabalho de treinamento da regra do Debugger. As seções a seguir descrevem o processo necessário para automatizar o término do trabalho de treinamento usando o uso e o CloudWatch Lambda.

**Topics**
+ [Etapa 1: criar uma função do Lambda](#debugger-lambda-function-create)
+ [Etapa 2: configurar a função do Lambda](#debugger-lambda-function-configure)
+ [Etapa 3: criar uma regra de CloudWatch eventos e vincular à função Lambda para o Debugger](#debugger-cloudwatch-events)

## Etapa 1: criar uma função do Lambda
<a name="debugger-lambda-function-create"></a>

**Criar uma função do Lambda**

1. Abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. No painel de navegação à esquerda, selecione **Funções** e selecione **Criar função**.

1. Na página **Criar função**, escolha a opção **Criar do zero**.

1. Na seção **Informações básicas**, insira um **nome de função** (por exemplo, **debugger-rule-stop-training-job**).

1. Em **Runtime**, selecione **Python 3.7**.

1. Em **Permissões**, expanda a opção suspensa e escolha **Alterar função de execução padrão**.

1. Em **Função de execução**, escolha **Usar uma função existente** e escolha a função do IAM que você usa para treinar trabalhos em SageMaker IA.
**nota**  
Certifique-se de usar a função de execução com `AmazonSageMakerFullAccess` e `AWSLambdaBasicExecutionRole` anexados. Caso contrário, a função do Lambda não reagirá adequadamente às mudanças de status da regra do Debugger do trabalho de treinamento. Se você não tiver certeza de qual função de execução está sendo usada, execute o código a seguir em uma célula do Caderno Jupyter para recuperar a saída da função de execução:  

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

1. Na parte inferior da página, selecione **Create function**.

A figura a seguir mostra um exemplo da página **Criar função** com os campos de entrada e as seleções concluídos.

![\[Página Criar função.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/debugger/debugger-lambda-create.png)


## Etapa 2: configurar a função do Lambda
<a name="debugger-lambda-function-configure"></a>

**Para configurar a função do Lambda**

1. Na seção **Código da função** da página de configuração, cole o seguinte script Python no painel do editor de código Lambda: A `lambda_handler` função monitora o status de avaliação da regra do Debugger coletado CloudWatch e aciona a operação da API. `StopTrainingJob` O AWS SDK para Python (Boto3) `client` for SageMaker AI fornece um método de alto nível,`stop_training_job`, que aciona a operação da `StopTrainingJob` API.

   ```
   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 obter mais informações sobre a interface do editor de código Lambda, consulte [Criação de funções usando o editor do console AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html).

1. Ignore todas as outras configurações e escolha **Salvar** na parte superior da página de configuração.

## Etapa 3: criar uma regra de CloudWatch eventos e vincular à função Lambda para o Debugger
<a name="debugger-cloudwatch-events"></a>

**Para criar uma regra de CloudWatch eventos e vincular à função Lambda para o Debugger**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação à esquerda, selecione **Regras** sob o nó **Eventos**.

1. Escolha **Criar regra**.

1. Na seção **Origem do evento** da página **Etapa 1: Criar regra**, escolha **SageMaker AI** para **Nome do serviço** e escolha **SageMaker AI Training Job State Change** para **Tipo de evento**. A visualização do padrão de evento deve ser semelhante aos seguintes exemplos de strings JSON: 

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

1. Na seção **Targets**, escolha **Add target\$1** e escolha a função **debugger-rule-stop-training-job Lambda** que você criou. Essa etapa vincula a regra de CloudWatch Eventos à função Lambda.

1. Escolha **Configurar detalhes** e vá para a página **Etapa 2: configurar detalhes da regra**.

1. Especifique o nome da definição da CloudWatch regra. Por exemplo, .**debugger-cw-event-rule**

1. Escolha **Criar regra** para concluir.

1. Volte para a página de configuração da função do Lambda e atualize a página. Confirme se está configurado corretamente no painel **Designer**. A regra de CloudWatch eventos deve ser registrada como um gatilho para a função Lambda. O design da configuração deve ser semelhante ao seguinte exemplo:  
<a name="lambda-designer-example"></a>![\[Painel de design para a CloudWatch configuração.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/debugger/debugger-lambda-designer.png)

# Desative a regra de CloudWatch Eventos para parar de usar o encerramento automático do trabalho de treinamento
<a name="debugger-disable-cw"></a>

Se você quiser desativar o encerramento automático do trabalho de treinamento, precisará desativar a regra de CloudWatch Eventos. No painel Lambda **Designer**, escolha o bloco **EventBridge (CloudWatch Eventos)** vinculado à função Lambda. Isso mostra um **EventBridge**painel abaixo do painel **Designer** (por exemplo, veja a captura de tela anterior). Marque a caixa de seleção ao lado de **EventBridge (CloudWatch Eventos): debugger-cw-event-rule** e escolha **Desativar**. Se quiser usar a funcionalidade de encerramento automático posteriormente, você pode ativar a regra de CloudWatch Eventos novamente.