Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
JSON (AWS CLI)
Les règles intégrées d'Amazon SageMaker Debugger peuvent être configurées pour une tâche de formation à l'aide des ProfilerRuleConfigurationobjets DebugHookConfigDebugRuleConfiguration, ProfilerConfig, et via l'opération de l'CreateTrainingJobAPI SageMaker AI. Vous devez spécifier le bon URI d'image dans le RuleEvaluatorImage
paramètre, et les exemples suivants vous expliquent comment configurer les chaînes JSON à demander CreateTrainingJob.
Le code suivant affiche un modèle JSON complet pour exécuter une tâche d'entraînement avec les paramètres requis et les configurations de Debugger. Enregistrez le modèle sous forme de fichier JSON dans votre répertoire de travail et exécutez la tâche de formation à l'aide de la AWS CLI. Par exemple, enregistrez le code suivant sous debugger-training-job-cli.json
.
Note
Assurez-vous d'utiliser les images de conteneur Docker appropriées. Pour trouver des images de AWS Deep Learning Containers, consultez la section Images 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
} }
Après avoir enregistré le fichier JSON, exécutez la commande suivante dans votre terminal. (Utilisez !
au début de la ligne si vous utilisez un bloc-notes Jupyter.)
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
Pour configurer une règle Debugger pour le débogage des paramètres de modèle
Les exemples de code suivants montrent comment configurer une VanishingGradient
règle intégrée à l'aide de cette SageMaker API.
Pour activer Debugger afin de collecter les tenseurs de sortie
Spécifiez la configuration du hook Debugger comme suit :
"DebugHookConfig": { "S3OutputPath": "
s3://<default-bucket>/<training-job-name>/debug-output
", "CollectionConfigurations": [ { "CollectionName": "gradients
", "CollectionParameters" : { "save_interval": "500
" } } ] }
Ainsi, la tâche d'entraînement enregistre la collection de tenseurs, gradients
, chaque save_interval
sur 500 étapes. Pour trouver les CollectionName
valeurs disponibles, consultez la section Collections intégrées au DebuggerCollectionParameters
paramètres disponibles, consultez la sagemaker.debugger.CollectionConfig
Pour activer les règles Debugger pour le débogage des tenseurs de sortie
L'exemple d'API DebugRuleConfigurations
suivant montre comment exécuter la règle VanishingGradient
intégrée sur la collection gradients
enregistrée.
"DebugRuleConfigurations": [ { "RuleConfigurationName": "
VanishingGradient
", "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest
", "RuleParameters": { "rule_to_invoke": "VanishingGradient
", "threshold": "20.0
" } } ]
Avec une configuration telle que celle de cet exemple, Debugger lance une tâche d'évaluation des règles pour votre tâche d'entraînement à l'aide de la règle VanishingGradient
sur la collection de tenseurs gradients
. Pour obtenir une liste complète des images Docker disponibles pour l'utilisation des règles Debugger, consultez Images Docker pour les règles du débogueur. Pour voir les paires clé-valeur pour RuleParameters
, consultez Liste des règles intégrées du Debugger.
Pour configurer une règle intégrée Debugger pour le profilage des métriques système et de cadre
L'exemple de code suivant montre comment spécifier le fonctionnement de l' ProfilerConfig API pour permettre la collecte des métriques du système et du framework.
Pour activer le profilage Debugger pour collecter les métriques du système et du framework
Pour activer les règles Debugger pour le profilage des métriques
L'exemple de code suivant montre comment configurer la règle 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
" } } ]
Pour obtenir une liste complète des images Docker disponibles pour l'utilisation des règles Debugger, consultez Images Docker pour les règles du débogueur. Pour voir les paires clé-valeur pour RuleParameters
, consultez Liste des règles intégrées du Debugger.
Mettre à jour la configuration du profilage du débogueur à l'aide de l'API UpdateTrainingJob
La configuration du profilage du débogueur peut être mise à jour pendant que votre tâche de formation est en cours d'exécution à l'aide de l'opération UpdateTrainingJobAPI. Configurez ProfilerConfigles nouveaux ProfilerRuleConfigurationobjets et spécifiez le nom de la tâche d'entraînement dans le TrainingJobName
paramètre.
{ "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
" }
Ajouter la configuration des règles personnalisées du Debugger à l'API CreateTrainingJob
Une règle personnalisée peut être configurée pour une tâche de formation à l'aide DebugRuleConfigurationdes objets DebugHookConfiget dans le fonctionnement de l' CreateTrainingJobAPI. L'exemple de code suivant montre comment configurer une ImproperActivation
règle personnalisée écrite avec la bibliothèque smdebug à l'aide de cette opération d' SageMaker API. Cet exemple suppose que vous avez écrit la règle personnalisée dans le fichier custom_rules.py et que vous l'avez chargée dans un compartiment Amazon S3. L'exemple fournit des images Docker préconçues que vous pouvez utiliser pour exécuter vos règles personnalisées. Celles-ci sont énumérées sur la page Image Amazon SageMaker Debugger pour les évaluateurs URIs de règles personnalisés. Vous spécifiez l'adresse de registre d'URL pour l'image Docker préconçue dans le paramètre 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
" } } ]
Pour obtenir une liste complète des images Docker disponibles pour l'utilisation des règles Debugger, consultez Images Docker pour les règles du débogueur. Pour voir les paires clé-valeur pour RuleParameters
, consultez Liste des règles intégrées du Debugger.