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)
As regras integradas do Amazon SageMaker Debugger podem ser configuradas para um trabalho de treinamento usando os ProfilerRuleConfigurationobjetos DebugHookConfig,, DebugRuleConfigurationProfilerConfig, e por meio da operação da SageMaker API de IA CreateTrainingJob. 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
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
{ "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
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çãoCollectionParameters
parâmetros disponíveis, consulte a sagemaker.debugger.CollectionConfig
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 doVanishingGradient
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. Para encontrar os pares de valores-chave para RuleParameters
, consulte Lista de regras integradas do Depurador.
Para configurar a regra integrada do Debugger para criar perfis do sistema e métricas do framework
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
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. Para encontrar os pares de valores-chave para RuleParameters
, consulte Lista de regras integradas do Depurador.
Atualização da configuração de perfil do Depurador com API UpdateTrainingJob
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 Configure novos ProfilerRuleConfigurationobjetos ProfilerConfige 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
Uma regra personalizada pode ser configurada para um trabalho de treinamento usando os DebugRuleConfigurationobjetos DebugHookConfige na operação da CreateTrainingJobAPI. 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. 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. Para encontrar os pares de valores-chave para RuleParameters
, consulte Lista de regras integradas do Depurador.