翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
JSON (AWS CLI)
Amazon SageMaker Debugger の組み込みルールは、、DebugHookConfig、DebugRuleConfigurationProfilerConfig、および ProfilerRuleConfiguration オブジェクトを使用して、 APIオペレーションを通じて SageMaker CreateTrainingJobトレーニングジョブ用に設定できます。RuleEvaluatorImage
パラメータURIで適切なイメージを指定する必要があります。次の例では、 をリクエストするJSON文字列を設定する方法を説明しますCreateTrainingJob。
次のコードは、必要な設定とデバッガー設定でトレーニングジョブを実行するための完全なJSONテンプレートを示しています。テンプレートを作業ディレクトリにJSONファイルとして保存し、 を使用してトレーニングジョブを実行します AWS CLI。例えば、次のコードを debugger-training-job-cli.json
として保存します。
注記
正しい Docker コンテナイメージを使っていることを確認してください。 AWS Deep Learning Container イメージを検索するには、「利用可能な Deep Learning Containers イメージ
{ "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
} }
JSON ファイルを保存したら、ターミナルで次のコマンドを実行します。(Jupyter ノートブックを使用している場合は、行の先頭で !
を使用してください)。
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
モデルパラメータをデバッグするためのデバッガールールを設定するには
次のコードサンプルは、この を使用して組み込みVanishingGradient
ルールを設定する方法を示しています SageMaker API。
デバッガーが出力テンソルを収集できるようにするには
デバッガーフック設定を次のように指定します。
"DebugHookConfig": { "S3OutputPath": "
s3://<default-bucket>/<training-job-name>/debug-output
", "CollectionConfigurations": [ { "CollectionName": "gradients
", "CollectionParameters" : { "save_interval": "500
" } } ] }
これにより、トレーニングジョブは 500 ステップの save_interval
ごとに、テンソルコレクション、gradients
を保存します。使用可能なCollectionName
値を見つけるには、SMDebugクライアントライブラリドキュメントの「デバッガー組み込みコレクションCollectionParameters
パラメータキーと値を確認するには、SageMaker Python SDKドキュメントの sagemaker.debugger.CollectionConfig
出力テンソルをデバッグするためのデバッガールールを有効にするには
次のDebugRuleConfigurations
API例は、保存されたgradients
コレクションで組み込みVanishingGradient
ルールを実行する方法を示しています。
"DebugRuleConfigurations": [ { "RuleConfigurationName": "
VanishingGradient
", "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest
", "RuleParameters": { "rule_to_invoke": "VanishingGradient
", "threshold": "20.0
" } } ]
このサンプルのような設定では、デバッガーは gradients
テンソルのコレクションで VanishingGradient
ルールを使ってトレーニングジョブのルール評価ジョブを開始します。デバッガールールを使用するために利用可能な Docker イメージの完全なリストを見つけるには、「デバッガールールの Docker イメージ」を参照してください。RuleParameters
のキーバリューのペアを見つけるには、「デバッガー組み込みルールのリスト」を参照してください。
システムおよびフレームワークのメトリクスをプロファイリングするためのデバッガー組み込みルールを設定するには
次のサンプルコードは、システムおよびフレームワークメトリクスの ProfilerConfig API収集を有効にするオペレーションを指定する方法を示しています。
システムおよびフレームワークのメトリクスを収集するためにデバッガープロファイリングを有効にするには
メトリクスをプロファイリングするためのデバッガールールを有効にするには
次のサンプルコードは、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
" } } ]
デバッガールールを使用するために利用可能な Docker イメージの完全なリストを見つけるには、「デバッガールールの Docker イメージ」を参照してください。RuleParameters
のキーバリューのペアを見つけるには、「デバッガー組み込みルールのリスト」を参照してください。
を使用してデバッガープロファイリング設定を更新する UpdateTrainingJob
API
デバッガープロファイリング設定は、 UpdateTrainingJobAPIオペレーションを使用して、トレーニングジョブの実行中に更新できます。新しい ProfilerConfigおよび ProfilerRuleConfiguration オブジェクトを設定し、トレーニングジョブ名を 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
" }
デバッガーカスタムルール設定を に追加する CreateTrainingJob
API
カスタムルールは、 CreateTrainingJobAPIオペレーションの DebugHookConfigおよび DebugRuleConfiguration オブジェクトを使用してトレーニングジョブ用に設定できます。次のコードサンプルは、この SageMaker APIオペレーションを使用して smdebug ライブラリで記述されたカスタムImproperActivation
ルールを設定する方法を示しています。この例では、カスタムルールを custom_rules.py ファイルに記述し、Amazon S3 バケットにアップロード済みであることを前提としています。例では、カスタムルールを実行するために使用できる構築済み Docker イメージを提供しています。これらについては、「カスタムルール評価者URIsの Amazon SageMaker デバッガーイメージ」を参照してください。RuleEvaluatorImage
パラメータで、構築済みの Docker イメージのURLレジストリアドレスを指定します。
"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
" } } ]
デバッガールールを使用するために利用可能な Docker イメージの完全なリストを見つけるには、「デバッガールールの Docker イメージ」を参照してください。RuleParameters
のキーバリューのペアを見つけるには、「デバッガー組み込みルールのリスト」を参照してください。