翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker Python を使用してデバッガーでトレーニングジョブを起動する SDK
SageMaker デバッガーで SageMaker 推定器を設定するには、Amazon SageMaker Python SDKを使用し、デバッガー固有のパラメータを指定します。デバッグ機能を最大限に活用するには、debugger_hook_config
、tensorboard_output_config
、および rules
の 3 つのパラメータを設定する必要があります。
デバッガー固有のパラメータを使用した SageMaker 推定器の構築
このセクションのコード例は、デバッガー固有のパラメータを使用して SageMaker 推定器を構築する方法を示しています。
次のコード例は、 SageMaker フレームワーク推定器を構築するためのテンプレートであり、直接実行することはできません。次のセクションに進み、デバッガー固有のパラメータを設定する必要があります。
- PyTorch
-
# An example of constructing a SageMaker PyTorch estimator
import boto3
import sagemaker
from sagemaker.pytorch import PyTorch
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs
session=boto3.session.Session()
region=session.region_name
debugger_hook_config
=DebuggerHookConfig(...)
rules
=[
Rule.sagemaker(rule_configs.built_in_rule())
]
estimator=PyTorch(
entry_point="directory/to/your_training_script.py
",
role=sagemaker.get_execution_role(),
base_job_name="debugger-demo
",
instance_count=1
,
instance_type="ml.p3.2xlarge
",
framework_version="1.12.0
",
py_version="py37
",
# Debugger-specific parameters
debugger_hook_config=debugger_hook_config
,
rules=rules
)
estimator.fit(wait=False)
- TensorFlow
-
# An example of constructing a SageMaker TensorFlow estimator
import boto3
import sagemaker
from sagemaker.tensorflow import TensorFlow
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs
session=boto3.session.Session()
region=session.region_name
debugger_hook_config
=DebuggerHookConfig(...)
rules
=[
Rule.sagemaker(rule_configs.built_in_rule())
,
ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]
estimator=TensorFlow(
entry_point="directory/to/your_training_script.py
",
role=sagemaker.get_execution_role(),
base_job_name="debugger-demo
",
instance_count=1
,
instance_type="ml.p3.2xlarge
",
framework_version="2.9.0
",
py_version="py39
",
# Debugger-specific parameters
debugger_hook_config=debugger_hook_config
,
rules=rules
)
estimator.fit(wait=False)
- MXNet
-
# An example of constructing a SageMaker MXNet estimator
import sagemaker
from sagemaker.mxnet import MXNet
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs
debugger_hook_config
=DebuggerHookConfig(...)
rules
=[
Rule.sagemaker(rule_configs.built_in_rule())
]
estimator=MXNet(
entry_point="directory/to/your_training_script.py
",
role=sagemaker.get_execution_role(),
base_job_name="debugger-demo
",
instance_count=1
,
instance_type="ml.p3.2xlarge
",
framework_version="1.7.0
",
py_version="py37
",
# Debugger-specific parameters
debugger_hook_config=debugger_hook_config
,
rules=rules
)
estimator.fit(wait=False)
- XGBoost
-
# An example of constructing a SageMaker XGBoost estimator
import sagemaker
from sagemaker.xgboost.estimator import XGBoost
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs
debugger_hook_config
=DebuggerHookConfig(...)
rules
=[
Rule.sagemaker(rule_configs.built_in_rule())
]
estimator=XGBoost(
entry_point="directory/to/your_training_script.py
",
role=sagemaker.get_execution_role(),
base_job_name="debugger-demo
",
instance_count=1
,
instance_type="ml.p3.2xlarge
",
framework_version="1.5-1
",
# Debugger-specific parameters
debugger_hook_config=debugger_hook_config
,
rules=rules
)
estimator.fit(wait=False)
- Generic estimator
-
# An example of constructing a SageMaker generic estimator using the XGBoost algorithm base image
import boto3
import sagemaker
from sagemaker.estimator import Estimator
from sagemaker import image_uris
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs
debugger_hook_config
=DebuggerHookConfig(...)
rules
=[
Rule.sagemaker(rule_configs.built_in_rule())
]
region=boto3.Session().region_name
xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1")
estimator=Estimator(
role=sagemaker.get_execution_role()
image_uri=xgboost_container,
base_job_name="debugger-demo
",
instance_count=1
,
instance_type="ml.m5.2xlarge
",
# Debugger-specific parameters
debugger_hook_config=debugger_hook_config
,
rules=rules
)
estimator.fit(wait=False)
SageMaker デバッガーをアクティブ化するには、次のパラメータを設定します。
-
debugger_hook_config
( のオブジェクトDebuggerHookConfig
) — 中に適合したトレーニングスクリプトでフックをアクティブ化しフックを登録するトレーニングスクリプトの適応、 SageMaker トレーニングジョブから出力テンソルを収集するようにトレーニングランチャー (推定器) を設定し、テンソルを安全な S3 バケットまたはローカルマシンに保存するために必要です。debugger_hook_config
パラメータの設定方法については、「テンソルを保存するように SageMaker デバッガーを設定する」を参照してください。
-
rules
(Rule
オブジェクトのリスト) – このパラメータを設定して、リアルタイムで実行する SageMaker デバッガー組み込みルールを有効にします。組み込みルールは、セキュアな S3 バケットに保存されている出力テンソルを分析することで、モデルのトレーニングの進行状況を自動的にデバッグし、トレーニングの問題を検出するロジックです。rules
パラメータの設定方法については、「デバッガーの組み込みルールを設定する方法」を参照してください。出力テンソルをデバッグするための組み込みルールの完全なリストについては、「デバッガールール」を参照してください。トレーニングの問題を検出する独自のロジックを作成したい場合は、「デバッガークライアントライブラリを使用したカスタムルールの作成」を参照してください。
組み込みルールは、 SageMaker トレーニングインスタンスでのみ使用できます。ローカルモードでは使用できません。
-
tensorboard_output_config
( のオブジェクトTensorBoardOutputConfig
) – SageMaker デバッガーを設定して、出力テンソルを TensorBoard互換形式で収集し、TensorBoardOutputConfig
オブジェクトで指定された S3 出力パスに保存します。詳細については、「で Amazon SageMaker Debugger 出力テンソルを視覚化する TensorBoard」を参照してください。
tensorboard_output_config
は debugger_hook_config
パラメータを使用して設定する必要があります。そのためには、sagemaker-debugger
フックを追加してトレーニングスクリプトを調整する必要もあります。
SageMaker デバッガーは、S3 バケットのサブフォルダに出力テンソルを安全に保存します。例えば、URIアカウントのデフォルトの S3 バケットの形式は ですs3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/
。 SageMaker デバッガーによって作成された 2 つのサブフォルダがあります。 debug-output
と ですrule-output
。tensorboard_output_config
パラメータを追加すると、tensorboard-output
フォルダも表示されます。
Debugger 固有パラメータの詳細な設定方法については、次のトピックを参照してください。