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.
JSON (AWS CLI)
Las reglas integradas de Amazon SageMaker Debugger se pueden configurar para un trabajo de entrenamiento utilizando los ProfilerRuleConfigurationobjetos DebugHookConfigDebugRuleConfiguration, ProfilerConfig, y mediante la CreateTrainingJobAPIoperación de SageMaker IA. Debe especificar la imagen correcta URI en el RuleEvaluatorImage
parámetro y, en los siguientes ejemplos, se explica cómo configurar las JSON cadenas que se van a solicitar CreateTrainingJob.
El siguiente código muestra una JSON plantilla completa para ejecutar un trabajo de formación con los ajustes necesarios y las configuraciones del depurador. Guarde la plantilla como un JSON archivo en su directorio de trabajo y ejecute el trabajo de formación utilizando AWS CLI. Por ejemplo, guarde el siguiente código como debugger-training-job-cli.json
.
nota
Asegúrese de utilizar las imágenes del contenedor de Docker correctas. Para encontrar imágenes de AWS Deep Learning Container, consulte Imágenes de Deep Learning Containers disponibles
{ "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
} }
Tras guardar el JSON archivo, ejecute el siguiente comando en su terminal. (Utilice !
al principio de la línea si usa un cuaderno de Jupyter).
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
Configurar una regla del depurador para depurar los parámetros del modelo
En los siguientes ejemplos de código, se muestra cómo configurar una VanishingGradient
regla integrada utilizando esto SageMaker API.
Permitir que el depurador recopile los tensores de salida
Especifique la configuración del enlace del depurador de la siguiente manera:
"DebugHookConfig": { "S3OutputPath": "
s3://<default-bucket>/<training-job-name>/debug-output
", "CollectionConfigurations": [ { "CollectionName": "gradients
", "CollectionParameters" : { "save_interval": "500
" } } ] }
Esto hará que el trabajo de entrenamiento guarde la colección de tensores, gradients
, cada save_interval
de 500 pasos. Para encontrar CollectionName
los valores disponibles, consulte las colecciones integradas de DebuggerCollectionParameters
parámetros disponibles, consulta la sagemaker.debugger.CollectionConfig
Activar las reglas del depurador para depurar los tensores de salida
El siguiente DebugRuleConfigurations
API ejemplo muestra cómo ejecutar la VanishingGradient
regla integrada en la gradients
colección guardada.
"DebugRuleConfigurations": [ { "RuleConfigurationName": "
VanishingGradient
", "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest
", "RuleParameters": { "rule_to_invoke": "VanishingGradient
", "threshold": "20.0
" } } ]
Con una configuración como la de este ejemplo, el depurador inicia un trabajo de evaluación de reglas para el trabajo de entrenamiento mediante la regla gradients
de la colección de tensores VanishingGradient
. Para ver una lista completa de las imágenes de Docker disponibles para usar las reglas del depurador, consulte Imágenes de Docker para reglas del depurador. Para encontrar los pares clave-valor de RuleParameters
, consulte Lista de reglas integradas del depurador.
Configurar una regla integrada en el depurador para perfilar las métricas del sistema y del marco
El siguiente código de ejemplo muestra cómo especificar la ProfilerConfig API operación para permitir la recopilación de métricas del sistema y del marco.
Habilitar la creación de perfiles del depurador para recopilar métricas del sistema y del marco
Habilitar las reglas del depurador para perfilar las métricas
En el siguiente ejemplo de código se muestra cómo configurar la regla 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 ver una lista completa de las imágenes de Docker disponibles para usar las reglas del depurador, consulte Imágenes de Docker para reglas del depurador. Para encontrar los pares clave-valor de RuleParameters
, consulte Lista de reglas integradas del depurador.
Actualice la configuración de creación de perfiles del depurador mediante UpdateTrainingJob
API
La configuración de los perfiles del depurador se puede actualizar mientras se ejecuta el trabajo de entrenamiento mediante la operación. UpdateTrainingJobAPI Configure los nuevos ProfilerRuleConfigurationobjetos ProfilerConfigy especifique el nombre del trabajo de entrenamiento en el 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
" }
Añada la configuración de reglas personalizadas del Debugger al CreateTrainingJob
API
Se puede configurar una regla personalizada para un trabajo de entrenamiento utilizando los DebugRuleConfigurationobjetos DebugHookConfigy de la CreateTrainingJobAPIoperación. El siguiente ejemplo de código muestra cómo configurar una ImproperActivation
regla personalizada escrita con la biblioteca smdebug mediante esta SageMaker API operación. En este ejemplo se supone que ha escrito la regla personalizada en el archivo custom_rules.py y la ha cargado en un bucket de Amazon S3. El ejemplo proporciona imágenes de Docker prediseñadas que puede usar para ejecutar sus reglas personalizadas. Se enumeran en Imagen de Amazon SageMaker Debugger URIs para evaluadores de reglas personalizados. La dirección de URL registro de la imagen de Docker prediseñada se especifica en el 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 ver una lista completa de las imágenes de Docker disponibles para usar las reglas del depurador, consulte Imágenes de Docker para reglas del depurador. Para encontrar los pares clave-valor de RuleParameters
, consulte Lista de reglas integradas del depurador.