

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

# Amazon SageMaker Debugger Python モジュールを使用した基本的なプロファイリング用パラメータを用いた推定器の設定
<a name="debugger-configuration-for-profiling"></a>

デフォルトでは、SageMaker Debugger の基本プロファイリングはデフォルトでオンになっており、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) を使用して送信されたすべての SageMaker トレーニングジョブの CPU 使用率、GPU 使用率、GPU メモリ使用率、ネットワーク、I/O 待機時間などのリソース使用率のメトリクスをモニタリングします。SageMaker Debugger は、これらのリソース使用率のメトリクスを 500 ミリ秒ごとに収集します。基本的なリソース使用率を追跡するために、コード、トレーニングスクリプト、またはジョブランチャーに追加の変更を加える必要はありません。基本プロファイリングのメトリクス収集間隔を変更する場合は、SageMaker Python SDK、または AWS Command Line Interface (CLI) を使用して SageMaker トレーニングジョブランチャーを作成するときに AWS SDK for Python (Boto3)、デバッガー固有のパラメータを指定できます。このガイドでは、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) を使用してプロファイリングオプションを変更する方法に焦点を当てています。このページでは、この推定器オブジェクトを設定するための参照テンプレートを提供します。

SageMaker Studio でトレーニングジョブのリソース使用率メトリクスダッシュボードにアクセスする場合は、[Amazon SageMaker Studio Classic Experiments の Amazon SageMaker Debugger UI](debugger-on-studio.md) に移動することができます。

システムリソースの使用率の問題を自動的に検出するルールをアクティブ化する場合は、ルールをアクティブ化する `rules` パラメータを推定器オブジェクトに追加できます。

**重要**  
最新の SageMaker Debugger の機能を使うには、SageMaker Python SDK と `SMDebug` クライアントライブラリをアップグレードする必要があります。iPython カーネル、Jupyter ノートブック、または JupyterLab 環境で、次のコードを実行して最新バージョンのライブラリをインストールし、カーネルを再起動します。  

```
import sys
import IPython
!{sys.executable} -m pip install -U sagemaker smdebug
IPython.Application.instance().kernel.do_shutdown(True)
```

## SageMaker AI Python SDK の SageMaker Debugger Python モジュールを使用して SageMaker AI 推定器オブジェクトを設定するためのコードテンプレート
<a name="debugger-configuration-structure-profiler"></a>

基本的なプロファイリング設定 (`profiler_config`) を調整するか、プロファイラールール (`rules`) を追加するには、タブの 1 つを選択して SageMaker AI 推定器を設定するためのテンプレートを取得します。以降のページでは、2 つのパラメータの設定方法について詳細を示します。

**注記**  
次のコード例は、直接実行できません。次のセクションに進み、各パラメータの設定方法について説明します。

------
#### [ PyTorch ]

```
# An example of constructing a SageMaker AI PyTorch estimator
import boto3
import sagemaker
from sagemaker.pytorch import PyTorch
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs

session=boto3.session.Session()
region=session.region_name

profiler_config={{ProfilerConfig(...)}}
rules=[
    {{ProfilerRule.sagemaker(rule_configs.BuiltInRule())}}
]

estimator=PyTorch(
    entry_point="{{directory/to/your_training_script.py}}",
    role=sagemaker.get_execution_role(),
    base_job_name="{{debugger-profiling-demo}}",
    instance_count={{1}},
    instance_type="{{ml.p3.2xlarge}}",
    framework_version="{{1.12.0}}",
    py_version="{{py37}}",
    
    # SageMaker Debugger parameters
    profiler_config=profiler_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ TensorFlow ]

```
# An example of constructing a SageMaker AI TensorFlow estimator
import boto3
import sagemaker
from sagemaker.tensorflow import TensorFlow
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs

session=boto3.session.Session()
region=session.region_name

profiler_config={{ProfilerConfig(...)}}
rules=[
    {{ProfilerRule.sagemaker(rule_configs.BuiltInRule())}}
]

estimator=TensorFlow(
    entry_point="{{directory/to/your_training_script.py}}",
    role=sagemaker.get_execution_role(),
    base_job_name="{{debugger-profiling-demo}}",
    instance_count={{1}},
    instance_type="{{ml.p3.2xlarge}}",
    framework_version="{{2.8.0}}",
    py_version="{{py37}}",
    
    # SageMaker Debugger parameters
    profiler_config=profiler_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ MXNet ]

```
# An example of constructing a SageMaker AI MXNet estimator
import sagemaker
from sagemaker.mxnet import MXNet
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs

profiler_config={{ProfilerConfig(...)}}
rules=[
    {{ProfilerRule.sagemaker(rule_configs.BuiltInRule())}}
]

estimator=MXNet(
    entry_point="{{directory/to/your_training_script.py}}",
    role=sagemaker.get_execution_role(),
    base_job_name="{{debugger-profiling-demo}}",
    instance_count={{1}},
    instance_type="{{ml.p3.2xlarge}}",
    framework_version="{{1.7.0}}",
    py_version="{{py37}}",
    
    # SageMaker Debugger parameters
    profiler_config=profiler_config,
    rules=rules
)

estimator.fit(wait=False)
```

**注記**  
MXNet の場合、`profiler_config` パラメータを設定するときは、システムモニタリング用にのみ設定できます。MXNet では、フレームワークメトリクスのプロファイリングはサポートされていません。

------
#### [ XGBoost ]

```
# An example of constructing a SageMaker AI XGBoost estimator
import sagemaker
from sagemaker.xgboost.estimator import XGBoost
from sagemaker.debugger import ProfilerConfig, ProfilerRule, rule_configs

profiler_config={{ProfilerConfig(...)}}
rules=[
    {{ProfilerRule.sagemaker(rule_configs.BuiltInRule())}}
]

estimator=XGBoost(
    entry_point="{{directory/to/your_training_script.py}}",
    role=sagemaker.get_execution_role(),
    base_job_name="{{debugger-profiling-demo}}",
    instance_count={{1}},
    instance_type="{{ml.p3.2xlarge}}",
    framework_version="{{1.5-1}}",

    # Debugger-specific parameters
    profiler_config=profiler_config,
    rules=rules
)

estimator.fit(wait=False)
```

**注記**  
XGBoost の場合、`profiler_config` パラメータを設定するときは、システムモニタリング用にのみ設定できます。XGBoost では、フレームワークメトリクスのプロファイリングはサポートされていません。

------
#### [ Generic estimator ]

```
# An example of constructing a SageMaker AI 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 ProfilerConfig, DebuggerHookConfig, Rule, ProfilerRule, rule_configs

profiler_config={{ProfilerConfig(...)}}
rules=[
    {{ProfilerRule.sagemaker(rule_configs.BuiltInRule())}}
]

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
    profiler_config=profiler_config,
    rules=rules
)

estimator.fit(wait=False)
```

------

次に、パラメータについて簡単に説明します。
+ `profiler_config` - トレーニングジョブからシステムメトリクスとフレームワークメトリクスを収集し、セキュアな S3 バケット URI またはローカルマシンに保存するようにデバッガーを設定します。システムメトリクスを収集する頻度を設定できます。`profiler_config` パラメータの設定方法については、「[システムリソース使用率の基本的なプロファイリング設定を行う](debugger-configure-system-monitoring.md)」および「[フレームワークプロファイリング用の推定器設定](debugger-configure-framework-profiling.md)」を参照してください。
+ `rules` - 並列で実行する SageMaker Debugger の組み込みルールをアクティブ化するには、このパラメータを設定します。トレーニングジョブがこの S3 バケットに対するアクセス権を持っていることを確認してください。ルールは処理中のコンテナで実行され、トレーニングジョブを自動的に分析して計算上および運用上のパフォーマンスの問題を検索します。[ProfilerReport](debugger-built-in-profiler-rules.md#profiler-report) ルールは、組み込みのプロファイリングルールをすべて実行し、プロファイリング結果をセキュリティで保護された S3 バケットにレポートとして保存する、最も統合されたルールです。`rules` パラメータの設定方法については、「[Amazon SageMaker Debugger によって管理される組み込みプロファイラールールを使用する](use-debugger-built-in-profiler-rules.md)」を参照してください。

**注記**  
デバッガーは、デフォルトの S3 バケットのサブフォルダに出力データを安全に保存します。例えば、デフォルトの S3 バケット URI の形式は、`s3://sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/` です。デバッガーによって作成されるサブフォルダは、`debug-output`、`profiler-output`、`rule-output` の 3 つです。[SageMaker AI 推定器クラスメソッド](debugger-estimator-classmethods.md)を使用してデフォルトの S3 バケット URI を取得することもできます。

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

**Topics**
+ [SageMaker AI Python SDK の SageMaker Debugger Python モジュールを使用して SageMaker AI 推定器オブジェクトを設定するためのコードテンプレート](#debugger-configuration-structure-profiler)
+ [システムリソース使用率の基本的なプロファイリング設定を行う](debugger-configure-system-monitoring.md)
+ [フレームワークプロファイリング用の推定器設定](debugger-configure-framework-profiling.md)
+ [トレーニングジョブ実行中にデバッガーシステムのモニタリングとフレームワークプロファイリングの設定を更新する](debugger-update-monitoring-profiling.md)
+ [Debugger をオフにする](debugger-turn-off-profiling.md)