

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

# JSON (AWS CLI)
<a name="debugger-built-in-rules-api.CLI"></a>

As regras integradas do Amazon SageMaker Debugger podem ser configuradas para um trabalho de treinamento usando os [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)objetos [DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html),, [DebugRuleConfiguration[ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html), e por meio da operação da SageMaker API de IA [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Você precisa especificar o URI correto da imagem no `RuleEvaluatorImage` parâmetro, e os exemplos a seguir explicam como configurar as cadeias de caracteres JSON a serem solicitadas. [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)

O código a seguir mostra um modelo JSON completo para executar uma tarefa de treinamento com as configurações exigidas e as configurações do Debugger. Salve o modelo como um arquivo JSON em seu diretório de trabalho e execute o trabalho de treinamento usando a AWS CLI. Por exemplo, salve o código a seguir como `debugger-training-job-cli.json`.

**nota**  
Certifique-se de usar as imagens de contêiner do Docker corretas. Para encontrar imagens de contêineres de aprendizado AWS profundo, consulte Imagens de [contêineres de aprendizado profundo disponíveis](https://github.com/aws/deep-learning-containers/blob/master/available_images.md). Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte [Imagens do Docker para regras do Depurador](debugger-reference.md#debugger-docker-images-rules).

```
{
   "TrainingJobName": "{{debugger-aws-cli-test}}",
   "RoleArn": "{{arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-YYYYMMDDT123456}}",
   "AlgorithmSpecification": {
      // Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage.
      "TrainingImage": "{{763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.4.1-gpu-py37-cu110-ubuntu18.04}}",
      "TrainingInputMode": "{{File}}",
      "EnableSageMakerMetricsTimeSeries": false
   },
   "HyperParameters": {
      "sagemaker_program": "{{entry_point/tf-hvd-train.py}}",
      "sagemaker_submit_directory": "{{s3://sagemaker-us-west-2-111122223333/debugger-boto3-profiling-test/source.tar.gz}}"
   },
   "OutputDataConfig": { 
      "S3OutputPath": "s3://{{sagemaker-us-west-2-111122223333/debugger-aws-cli-test}}/output"
   },
   "DebugHookConfig": { 
      "S3OutputPath": "s3://{{sagemaker-us-west-2-111122223333/debugger-aws-cli-test}}/debug-output",
      "CollectionConfigurations": [
         {
            "CollectionName": "{{losses}}",
            "CollectionParameters" : {
                "train.save_interval": "{{50}}"
            }
         }
      ]
   },
   "DebugRuleConfigurations": [ 
      { 
         "RuleConfigurationName": "{{LossNotDecreasing}}",
         "RuleEvaluatorImage": "{{895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest}}",
         "RuleParameters": {"rule_to_invoke": "{{LossNotDecreasing}}"}
      }
   ],
   "ProfilerConfig": { 
      "S3OutputPath": "s3://{{sagemaker-us-west-2-111122223333/debugger-aws-cli-test}}/profiler-output",
      "ProfilingIntervalInMilliseconds": {{500}},
      "ProfilingParameters": {
          "DataloaderProfilingConfig": "{\"StartStep\": {{5}}, \"NumSteps\": {{3}}, \"MetricsRegex\": \".*\", }",
          "DetailedProfilingConfig": "{\"StartStep\": {{5}}, \"NumSteps\": {{3}}, }",
          "PythonProfilingConfig": "{\"StartStep\": {{5}}, \"NumSteps\": {{3}}, \"ProfilerName\": \"{{cprofile}}\", \"cProfileTimer\": \"{{total_time}}\"}",
          "LocalPath": "/opt/ml/output/profiler/" 
      }
   },
   "ProfilerRuleConfigurations": [ 
      { 
         "RuleConfigurationName": "ProfilerReport",
         "RuleEvaluatorImage": "{{895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest}}",
         "RuleParameters": {"rule_to_invoke": "ProfilerReport"}
      }
   ],
   "ResourceConfig": { 
      "InstanceType": "{{ml.p3.8xlarge}}",
      "InstanceCount": {{1}},
      "VolumeSizeInGB": 30
   },
   
   "StoppingCondition": { 
      "MaxRuntimeInSeconds": {{86400}}
   }
}
```

Depois de salvar o arquivo JSON, execute o seguinte comando em seu terminal: (Use `!` no início da linha se você usa o caderno Jupyter.)

```
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
```

## Para configurar uma regra do Debugger para depurar os parâmetros do modelo
<a name="debugger-built-in-rules-api-debug.CLI"></a>

Os exemplos de código a seguir mostram como configurar uma `VanishingGradient` regra integrada usando essa SageMaker API. 

**Para habilitar o Debugger para coletar tensores de saída**

Especifique a configuração do hook do Debugger da seguinte forma:

```
"DebugHookConfig": {
    "S3OutputPath": "{{s3://<default-bucket>/<training-job-name>/debug-output}}",
    "CollectionConfigurations": [
        {
            "CollectionName": "{{gradients}}",
            "CollectionParameters" : {
                "save_interval": "{{500}}"
            }
        }
    ]
}
```

Isso fará com que a tarefa de treinamento salve a coleção de tensores, `gradients`, a cada `save_interval` de 500 etapas. Para encontrar `CollectionName` os valores disponíveis, consulte [Debugger Built-in Collections na documentação](https://github.com/awslabs/sagemaker-debugger/blob/master/docs/api.md#built-in-collections) da biblioteca *SMDebug cliente*. Para encontrar as chaves e valores de `CollectionParameters` parâmetros disponíveis, consulte a [https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig)classe na documentação do *SDK do SageMaker Python*.

**Para habilitar as regras do Debugger para depurar os tensores de saída**

O exemplo de API `DebugRuleConfigurations` a seguir mostra como executar a regra integrada do`VanishingGradient` na coleção `gradients` salva.

```
"DebugRuleConfigurations": [
    {
        "RuleConfigurationName": "{{VanishingGradient}}",
        "RuleEvaluatorImage": "{{503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest}}",
        "RuleParameters": {
            "rule_to_invoke": "{{VanishingGradient}}",
            "threshold": "{{20.0}}"
        }
    }
]
```

Com uma configuração como a desse exemplo, o Debugger inicia uma tarefa de avaliação de regra para a tarefa de treinamento usando a regra `VanishingGradient` na coleção do tensor de `gradients`. Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte [Imagens do Docker para regras do Depurador](debugger-reference.md#debugger-docker-images-rules). Para encontrar os pares de valores-chave para `RuleParameters`, consulte [Lista de regras integradas do Depurador](debugger-built-in-rules.md).

## Para configurar a regra integrada do Debugger para criar perfis do sistema e métricas do framework
<a name="debugger-built-in-rules-api-profile.CLI"></a>

O código de exemplo a seguir mostra como especificar a operação da ProfilerConfig API para permitir a coleta de métricas do sistema e da estrutura.

**Para habilitar a criação de perfil do Debugger para coletar métricas do sistema e da estrutura**

------
#### [ Target Step ]

```
"ProfilerConfig": { 
    // Optional. Path to an S3 bucket to save profiling outputs
    "S3OutputPath": "{{s3://<default-bucket>/<training-job-name>/profiler-output}}", 
    // Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    "ProfilingIntervalInMilliseconds": {{500}}, 
    "ProfilingParameters": {
        "DataloaderProfilingConfig": "{ \"StartStep\": {{5}}, \"NumSteps\": {{3}}, \"MetricsRegex\": \".*\" }",
        "DetailedProfilingConfig": "{ \"StartStep\": {{5}}, \"NumSteps\": {{3}} }",
        // For PythonProfilingConfig,
        // available ProfilerName options: cProfile, Pyinstrument
        // available cProfileTimer options only when using cProfile: cpu, off_cpu, total_time
        "PythonProfilingConfig": "{ \"StartStep\": {{5}}, \"NumSteps\": {{3}}, \"ProfilerName\": \"{{cProfile}}\", \"cProfileTimer\": \"{{total_time}}\" }",
        // Optional. Local path for profiling outputs
        "LocalPath": "/opt/ml/output/profiler/" 
    }
}
```

------
#### [ Target Time Duration ]

```
"ProfilerConfig": { 
    // Optional. Path to an S3 bucket to save profiling outputs
    "S3OutputPath": "{{s3://<default-bucket>/<training-job-name>/profiler-output}}", 
    // Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    "ProfilingIntervalInMilliseconds": {{500}},
    "ProfilingParameters": {
        "DataloaderProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": {{12345567789}}, \"DurationInSeconds\": {{10}}, \"MetricsRegex\": \".*\" }",
        "DetailedProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": {{12345567789}}, \"DurationInSeconds\": {{10}} }",
        // For PythonProfilingConfig,
        // available ProfilerName options: cProfile, Pyinstrument
        // available cProfileTimer options only when using cProfile: cpu, off_cpu, total_time
        "PythonProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": {{12345567789}}, \"DurationInSeconds\": {{10}}, \"ProfilerName\": \"{{cProfile}}\", \"cProfileTimer\": \"{{total_time}}\" }",
        // Optional. Local path for profiling outputs
        "LocalPath": "/opt/ml/output/profiler/"  
    }
}
```

------

**Para habilitar as regras do Debugger para criar perfil das métricas**

O código de exemplo a seguir mostra como configurar a regra `ProfilerReport`.

```
"ProfilerRuleConfigurations": [ 
    {
        "RuleConfigurationName": "ProfilerReport",
        "RuleEvaluatorImage": "{{895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest}}",
        "RuleParameters": {
            "rule_to_invoke": "ProfilerReport",
            "CPUBottleneck_cpu_threshold": "{{90}}",
            "IOBottleneck_threshold": "{{90}}"
        }
    }
]
```

Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte [Imagens do Docker para regras do Depurador](debugger-reference.md#debugger-docker-images-rules). Para encontrar os pares de valores-chave para `RuleParameters`, consulte [Lista de regras integradas do Depurador](debugger-built-in-rules.md).

## Atualização da configuração de perfil do Depurador com API `UpdateTrainingJob`
<a name="debugger-updatetrainingjob-api.CLI"></a>

A configuração do perfil do depurador pode ser atualizada enquanto seu trabalho de treinamento está em execução usando a operação da API. [UpdateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html) Configure novos [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)objetos [ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)e especifique o nome do trabalho de treinamento para o `TrainingJobName` parâmetro.

```
{
    "ProfilerConfig": { 
        "DisableProfiler": {{boolean}},
        "ProfilingIntervalInMilliseconds": {{number}},
        "ProfilingParameters": { 
            "{{string}}" : "{{string}}" 
        }
    },
    "ProfilerRuleConfigurations": [ 
        { 
            "RuleConfigurationName": "{{string}}",
            "RuleEvaluatorImage": "{{string}}",
            "RuleParameters": { 
                "string" : "{{string}}" 
            }
        }
    ],
    "TrainingJobName": "{{your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS}}"
}
```

## Adicione a configuração de regra personalizada do Depurador à API `CreateTrainingJob`
<a name="debugger-custom-rules-api.CLI"></a>

Uma regra personalizada pode ser configurada para um trabalho de treinamento usando os [ DebugRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)objetos [ DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)e na operação da [ CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API. O exemplo de código a seguir mostra como configurar uma `ImproperActivation` regra personalizada escrita com a biblioteca *smdebug* usando essa operação de SageMaker API. Este exemplo pressupõe que você tenha escrito a regra personalizada no arquivo *custom\_rules.py* e o tenha carregado em um bucket do Amazon S3. O exemplo fornece imagens pré-criadas do Docker que podem ser usadas para executar as regras personalizadas. Elas estão listadas em [Imagem do Amazon SageMaker Debugger URIs para avaliadores de regras personalizadas](debugger-reference.md#debuger-custom-rule-registry-ids). Você especifica o endereço de registro de URL para a imagem pré-criada do Docker no parâmetro `RuleEvaluatorImage`.

```
"DebugHookConfig": {
    "S3OutputPath": "{{s3://<default-bucket>/<training-job-name>/debug-output}}",
    "CollectionConfigurations": [
        {
            "CollectionName": "{{relu_activations}}",
            "CollectionParameters": {
                "include_regex": "{{relu}}",
                "save_interval": "{{500}}",
                "end_step": "{{5000}}"
            }
        }
    ]
},
"DebugRulesConfigurations": [
    {
        "RuleConfigurationName": "{{improper_activation_job}}",
        "RuleEvaluatorImage": "{{552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest}}",
        "InstanceType": "{{ml.c4.xlarge}}",
        "VolumeSizeInGB": {{400}},
        "RuleParameters": {
           "source_s3_uri": "{{s3://bucket/custom_rules.py}}",
           "rule_to_invoke": "{{ImproperActivation}}",
           "collection_names": "{{relu_activations}}"
        }
    }
]
```

Para encontrar uma lista completa das imagens do Docker disponíveis para usar as regras do Debugger, consulte [Imagens do Docker para regras do Depurador](debugger-reference.md#debugger-docker-images-rules). Para encontrar os pares de valores-chave para `RuleParameters`, consulte [Lista de regras integradas do Depurador](debugger-built-in-rules.md).