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.
AWS Boto3
Las reglas integradas de Amazon SageMaker Debugger se pueden configurar para un trabajo de formación mediante la create_training_job()
RuleEvaluatorImage
; los siguientes ejemplos explican cómo configurar el cuerpo de la solicitud de la función create_training_job()
El siguiente código muestra un ejemplo completo de cómo configurar Debugger para el cuerpo de la create_training_job()
solicitud e iniciar un trabajo de formación en élus-west-2
, suponiendo que un guion entry_point/train.py
de formación se haya preparado utilizando. TensorFlow Para encontrar un end-to-end ejemplo de bloc de notas, consulte Creación de perfiles de TensorFlow múltiples nodos y GPU para tareas de formación con Amazon SageMaker Debugger (Boto3
nota
Asegúrese de utilizar las imágenes del contenedor de Docker correctas. Para encontrar las imágenes de AWS Deep Learning Containers disponibles, consulte Imágenes de Deep Learning Containers
import sagemaker, boto3 import datetime, tarfile # Start setting up a SageMaker session and a Boto3 SageMaker client session = sagemaker.Session() region = session.boto_region_name bucket = session.default_bucket() # Upload a training script to a default Amazon S3 bucket of the current SageMaker session source = 'source.tar.gz' project = '
debugger-boto3-test
' tar = tarfile.open(source, 'w:gz') tar.add ('entry_point/train.py
') # Specify the directory and name of your training script tar.close() s3 = boto3.client('s3') s3.upload_file(source, bucket, project+'/'+source) # Set up a Boto3 session client for SageMaker sm = boto3.Session(region_name=region).client("sagemaker") # Start a training job sm.create_training_job( TrainingJobName='debugger-boto3-'+datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'), HyperParameters={ 'sagemaker_submit_directory': 's3://'+bucket+'/'+project+'/'+source, 'sagemaker_program': '/entry_point/train.py
' # training scrip file location and name under the sagemaker_submit_directory }, 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
}, RoleArn='arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20201014T161125', OutputDataConfig={'S3OutputPath': 's3://'+bucket+'/'+project+'/output'}, ResourceConfig={ 'InstanceType': 'ml.p3.8xlarge
', 'InstanceCount':1
, 'VolumeSizeInGB': 30 }, StoppingCondition={ 'MaxRuntimeInSeconds': 86400 }, DebugHookConfig={ 'S3OutputPath': 's3://'+bucket+'/'+project+'/debug-output', 'CollectionConfigurations': [ { 'CollectionName': 'losses
', 'CollectionParameters' : { 'train.save_interval': '500
', 'eval.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://'+bucket+'/'+project+'/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/' # Optional. Local path for profiling outputs } }, ProfilerRuleConfigurations=[ { 'RuleConfigurationName': 'ProfilerReport', 'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest
', 'RuleParameters': {'rule_to_invoke': 'ProfilerReport'} } ] )
Configurar una regla del depurador para depurar los parámetros del modelo
Los siguientes ejemplos de código muestran cómo configurar una VanishingGradient
regla integrada mediante esta 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' : { 'train.save_interval': '500
', 'eval.save_interval': '50
' } } ] }
Esto hará que el trabajo de entrenamiento guarde una colección de tensores, gradients
, cada save_interval
de 500 pasos. Para encontrar los valores disponibles CollectionName
, consulte las colecciones integradas del depuradorCollectionParameters
parámetros disponibles, consulta la sagemaker.debugger.CollectionConfig
Activar las reglas del depurador para depurar los tensores de salida
El siguiente ejemplo de API DebugRuleConfigurations
muestra cómo ejecutar la regla VanishingGradient
integrada en la colección gradients
guardada.
DebugRuleConfigurations=[ { 'RuleConfigurationName': '
VanishingGradient
', 'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.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 Utilice imágenes de Docker del depurador para reglas integradas o personalizadas. 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 operación de la ProfilerConfig API 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 Utilice imágenes de Docker del depurador para reglas integradas o personalizadas. 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 la operación de la API UpdateTrainingJob
.
La configuración de los perfiles del depurador se puede actualizar mientras se ejecuta el trabajo de entrenamiento mediante la update_training_job()
TrainingJobName
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
'
Agregue la configuración de reglas personalizadas del depurador a la operación de la CreateTrainingJob API
Se puede configurar una regla personalizada para un trabajo de entrenamiento utilizando los DebugRuleConfigurationobjetos DebugHookConfigy mediante la función del SageMaker cliente AWS Boto3. create_training_job()
ImproperActivation
regla personalizada escrita con la biblioteca smdebug mediante esta operación de API. SageMaker 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 Registro de Amazon SageMaker Debugger URLs para evaluadores de reglas personalizadas. Especifique la dirección URL del registro para la imagen de Docker prediseñada 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 Utilice imágenes de Docker del depurador para reglas integradas o personalizadas. Para encontrar los pares clave-valor de RuleParameters
, consulte Lista de reglas integradas del depurador.