Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
JSON (AWS CLI)
Die integrierten Regeln von Amazon SageMaker Debugger können für einen Trainingsjob mithilfe der ProfilerRuleConfigurationObjekte DebugHookConfig, DebugRuleConfigurationProfilerConfig, und über die SageMaker CreateTrainingJobKI-API-Operation konfiguriert werden. Sie müssen den richtigen Bild-URI im RuleEvaluatorImage
Parameter angeben. In den folgenden Beispielen erfahren Sie, wie Sie die CreateTrainingJobanzufordernden JSON-Zeichenketten einrichten.
Der folgende Code zeigt eine vollständige JSON-Vorlage zum Ausführen eines Trainingsauftrags mit den erforderlichen Einstellungen und Debugger-Konfigurationen. Speichern Sie die Vorlage als JSON-Datei in Ihrem Arbeitsverzeichnis und führen Sie den Trainingsjob mit AWS CLI aus. Speichern Sie zum Beispiel den folgenden Code als debugger-training-job-cli.json
.
Anmerkung
Stellen Sie sicher, dass Sie die richtigen Docker-Container-Images verwenden. Informationen zu AWS Deep Learning-Container-Images finden Sie unter Verfügbare Deep Learning Containers Learning-Container-Images
{ "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
} }
Führen Sie nach dem Speichern der JSON-Datei den folgenden Befehl in Ihrem Terminal aus. (Verwenden Sie !
am Anfang der Zeile, wenn Sie ein Jupyter Notebook verwenden.)
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
So konfigurieren Sie eine Debugger-Regel für das Debuggen von Modellparametern
Die folgenden Codebeispiele zeigen, wie eine integrierte VanishingGradient
Regel mithilfe dieser SageMaker API konfiguriert wird.
Um zu aktivieren, dass der Debugger Ausgabetensoren sammelt
Geben Sie die Debugger-Hook-Konfiguration wie folgt an:
"DebugHookConfig": { "S3OutputPath": "
s3://<default-bucket>/<training-job-name>/debug-output
", "CollectionConfigurations": [ { "CollectionName": "gradients
", "CollectionParameters" : { "save_interval": "500
" } } ] }
Dies führt dazu, dass der Trainingsauftrag die Tensorsammlung, gradients
, alle save_interval
von 500 Schritten speichert. Informationen zu verfügbaren CollectionName
Werten finden Sie unter Integrierte Debugger-SammlungenCollectionParameters
Parameterschlüssel und -werte finden Sie in der sagemaker.debugger.CollectionConfig
Um Debugger-Regeln für das Debuggen der Ausgabetensoren zu aktivieren
Das folgende DebugRuleConfigurations
API-Beispiel zeigt, wie die integrierte VanishingGradient
Regel für die gespeicherte gradients
Sammlung ausgeführt wird.
"DebugRuleConfigurations": [ { "RuleConfigurationName": "
VanishingGradient
", "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest
", "RuleParameters": { "rule_to_invoke": "VanishingGradient
", "threshold": "20.0
" } } ]
Mit einer Konfiguration wie in diesem Beispiel startet der Debugger einen Regelauswertungsauftrag für Ihren Trainingsauftrag unter Verwendung der VanishingGradient
-Regel für die Sammlung des gradients
-Tensors. Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter Docker-Images für Debugger-Regeln. Die Schlüssel-Wert-Paare für RuleParameters
finden Sie unter Liste der integrierten Debuger-Regeln.
Um eine integrierte Debugger-Regel für das Profiling von System- und Framework-Metriken zu konfigurieren
Der folgende Beispielcode zeigt, wie der ProfilerConfig API-Vorgang spezifiziert wird, um die Erfassung von System- und Framework-Metriken zu ermöglichen.
Um Debugger-Profiling zur Sammlung von System- und Framework-Metriken zu aktivieren
Um Debugger-Regeln für die das Profiling der Metriken zu aktivieren
Das folgende Codebeispiel zeigt, wie Sie die ProfilerReport
-Regel konfigurieren.
"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
" } } ]
Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter Docker-Images für Debugger-Regeln. Die Schlüssel-Wert-Paare für RuleParameters
finden Sie unter Liste der integrierten Debuger-Regeln.
Aktualisieren Sie die Debugger-Profiling-Konfiguration mithilfe der API UpdateTrainingJob
Die Konfiguration der Debugger-Profilerstellung kann mithilfe des API-Vorgangs aktualisiert werden, während Ihr Trainingsjob ausgeführt wird. UpdateTrainingJob Konfigurieren Sie neue ProfilerRuleConfigurationObjekte ProfilerConfigund geben Sie den Namen des Trainingsjobs für den TrainingJobName
Parameter an.
{ "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
" }
Fügen Sie der API eine benutzerdefinierte Debugger-Regelkonfiguration hinzu CreateTrainingJob
Eine benutzerdefinierte Regel kann für einen Trainingsjob mithilfe der DebugRuleConfigurationObjekte DebugHookConfigund in der CreateTrainingJobAPI-Operation konfiguriert werden. Das folgende Codebeispiel zeigt, wie eine mit der smdebug-Bibliothek geschriebene benutzerdefinierte ImproperActivation
Regel mithilfe dieser SageMaker API-Operation konfiguriert wird. In diesem Beispiel wird davon ausgegangen, dass Sie die benutzerdefinierte Regel in der Datei custom_rules.py geschrieben und in einen Amazon-S3-Bucket hochgeladen haben. Das Beispiel stellt vorgefertigte Docker-Images bereit, mit denen Sie Ihre benutzerdefinierten Regeln ausführen können. Diese werden unter Amazon SageMaker Debugger-Image URIs für benutzerdefinierte Regelauswerter gelistet. Sie geben die URL-Registry-Adresse für das vorgefertigte Docker-Image im RuleEvaluatorImage
-Parameter an.
"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
" } } ]
Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter Docker-Images für Debugger-Regeln. Die Schlüssel-Wert-Paare für RuleParameters
finden Sie unter Liste der integrierten Debuger-Regeln.