ステップ 2: SageMaker Python SDK を使用してトレーニングジョブを起動およびデバッグする - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 2: SageMaker Python SDK を使用してトレーニングジョブを起動およびデバッグする

SageMaker デバッガーで SageMaker 推定器を設定するには、Amazon SageMaker Python SDK を使用してデバッガー固有のパラメータを指定します。デバッグ機能を最大限に活用するには、debugger_hook_configtensorboard_output_config、および rules の 3 つのパラメータを設定する必要があります。

重要

トレーニングジョブを起動するために推定器フィットメソッドをコンストラクトして実行する前に、「ステップ 1: フックを登録するためにトレーニングスクリプトを適応させる」で説明されている手順に従ってトレーニングスクリプトを調整してください。

デバッガー固有のパラメータを使用して 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) – 中に適合したトレーニングスクリプトでフックをアクティブ化しステップ 1: フックを登録するためにトレーニングスクリプトを適応させる、 SageMaker トレーニングランチャー (推定器) を設定してトレーニングジョブから出力テンソルを収集し、保護された S3 バケットまたはローカルマシンにテンソルを保存するために必要です。debugger_hook_config パラメータの設定方法については、「テンソルを保存するように SageMaker デバッガーを設定する」を参照してください。

  • rules (Ruleオブジェクトのリスト) – このパラメータを設定して、リアルタイムで実行する SageMaker デバッガーの組み込みルールを有効にします。組み込みルールは、セキュアな S3 バケットに保存されている出力テンソルを分析することで、モデルのトレーニングの進行状況を自動的にデバッグし、トレーニングの問題を検出するロジックです。rules パラメータの設定方法については、「デバッガーの組み込みルールを設定する」を参照してください。出力テンソルをデバッグするための組み込みルールの完全なリストについては、「デバッガールール」を参照してください。トレーニングの問題を検出する独自のロジックを作成したい場合は、「トレーニングジョブ分析用のデバッガーカスタムルールを作成する」を参照してください。

    注記

    組み込みルールは、 SageMaker トレーニングインスタンスを介してのみ使用できます。ローカルモードでは使用できません。

  • tensorboard_output_config ( のオブジェクトTensorBoardOutputConfig) — TensorBoard出力テンソルを 互換形式で収集し、TensorBoardOutputConfigオブジェクトで指定された S3 出力パスに保存するように SageMaker デバッガーを設定します。詳細については、「で Amazon SageMaker デバッガー出力テンソルを視覚化する TensorBoard」を参照してください。

    注記

    tensorboard_output_configdebugger_hook_config パラメータを使用して設定する必要があります。そのためには、sagemaker-debugger フックを追加してトレーニングスクリプトを調整する必要もあります。

注記

SageMaker デバッガーは、S3 バケットのサブフォルダに出力テンソルを安全に保存します。例えば、アカウントのデフォルトの S3 バケット URI の形式は、s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/ です。 SageMaker デバッガーによって作成された 2 つのサブフォルダはdebug-output、、、および ですrule-outputtensorboard_output_config パラメータを追加すると、tensorboard-output フォルダも表示されます。

Debugger 固有パラメータの詳細な設定方法については、次のトピックを参照してください。