

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

# Amazon SageMaker Debugger によって管理される組み込みプロファイラールールを使用する
<a name="use-debugger-built-in-profiler-rules"></a>

Amazon SageMaker Debugger の組み込みプロファイラールールは、モデルのトレーニング中に収集されたシステムメトリクスとフレームワークオペレーションを分析します。Debugger には、トレーニング用のコンピューティングリソースとオペレーションを監視し、異常を検出するためのルールを設定するのに役立つ `ProfilerRule` API オペレーションが用意されています。例えば、プロファイリングルールは、CPU のボトルネック、過度の I/O 待機時間、GPU ワーカー間のワークロードの不均衡、コンピュートリソースの未使用などの計算上の問題があるかどうかを検出するのに役立ちます。使用可能な組み込みプロファイリングルールの完全なリストについては、「[Debugger の組み込みプロファイラールールのリスト](debugger-built-in-profiler-rules.md)」を参照してください。次のトピックでは、Debugger の組み込みルールをデフォルトのパラメータ設定とカスタムのパラメータ値で使用する方法を紹介します。

**注記**  
組み込みルールは Amazon SageMaker の処理コンテナに用意され、SageMaker Debugger によって追加料金なしで完全に管理されます。請求の詳細については、「[Amazon SageMaker の料金](https://aws.amazon.com/sagemaker/pricing/)」のページを参照してください。

**Topics**
+ [SageMaker Debugger の組み込みプロファイラールールをデフォルトのパラメータ設定で使用する](#debugger-built-in-profiler-rules-configuration)
+ [Debugger の組み込みプロファイラールールをカスタムパラメータ値で使用する](#debugger-built-in-profiler-rules-configuration-param-change)

## SageMaker Debugger の組み込みプロファイラールールをデフォルトのパラメータ設定で使用する
<a name="debugger-built-in-profiler-rules-configuration"></a>

SageMaker Debugger の組み込みルールを推定器に追加するには、`rules` リストオブジェクトを設定する必要があります。次のサンプルコードは、SageMaker Debugger の組み込みルールをリストする基本構造を示しています。

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules=[
    ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_1()),
    ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_2()),
    ...
    ProfilerRule.sagemaker(rule_configs.BuiltInProfilerRuleName_n()),
    ... # You can also append more debugging rules in the Rule.sagemaker(rule_configs.*()) format.
]

estimator=Estimator(
    ...
    rules=rules
)
```

組み込みルールの完全なリストについては、「[Debugger の組み込みプロファイラールールのリスト](debugger-built-in-profiler-rules.md)」を参照してください。

プロファイリングルールを使用してトレーニングジョブの計算パフォーマンスと進行状況を調べるには、SageMaker Debugger の [https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#profiler-report](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#profiler-report) ルールを追加します。このルールは [Debugger ProfilerRule](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-built-in-profiler-rules.html#debugger-built-in-profiler-rules-ProfilerRule) `ProfilerRule` ファミリーに含まれるすべての組み込みルールを有効にします。さらに、このルールは集約されたプロファイリングレポートを生成します。詳細については、「[SageMaker Debugger を使用して生成されたプロファイリングレポート](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-profiling-report.html)」を参照してください。次のコードを使用して、プロファイリングレポートルールをトレーニング推定器に追加できます。

```
from sagemaker.debugger import Rule, rule_configs

rules=[
    ProfilerRule.sagemaker(rule_configs.ProfilerReport())
]
```

`ProfilerReport` ルールを使用してトレーニングジョブを開始すると、Debugger は 500 ミリ秒ごとにリソース使用状況データを収集します。デバッガーは、リソース使用率を分析して、モデルにボトルネックの問題があるかどうかを特定します。ルールがトレーニングの異常を検出すると、ルールの評価ステータスが `IssueFound` に変わります。Amazon CloudWatch Events と AWS Lambdaを使用して、トレーニングの問題の通知やトレーニングジョブの停止などの自動アクションを設定できます。詳細については、「[Amazon SageMaker Debugger ルールに基づくアクション](debugger-action-on-rules.md)」を参照してください。

## Debugger の組み込みプロファイラールールをカスタムパラメータ値で使用する
<a name="debugger-built-in-profiler-rules-configuration-param-change"></a>

組み込みルールのパラメータ値を調整し、テンソルコレクションの正規表現をカスタマイズする場合は、`ProfilerRule.sagemaker` および `Rule.sagemaker` クラスメソッドの `base_config` および `rule_parameters` パラメータを設定します。`Rule.sagemaker` クラスメソッドの場合、`collections_to_save` パラメータを使用してテンソルコレクションをカスタマイズすることもできます。`CollectionConfig` クラスの使用方法については、「[`CollectionConfig` API を使用してテンソルコレクションを設定する](debugger-configure-tensor-collections.md)」を参照してください。

パラメータ値をカスタマイズするには、組み込みルールに次の設定テンプレートを使用します。好きなようにルールパラメータを変更することで、開始されるルールの感度を調整できます。
+ `base_config` 引数は、組み込みルールメソッドを呼び出す場所です。
+ `rule_parameters` 引数は、[Debugger の組み込みプロファイラールールのリスト](debugger-built-in-profiler-rules.md) にリストされている組み込みルールのデフォルトのキーバリューを調整するためのものです。

デバッガールールクラス、メソッド、パラメータの詳細については、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) の「[SageMaker AI Debugger Rule class](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html)」を参照してください。

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig

rules=[
    ProfilerRule.sagemaker(
        base_config=rule_configs.BuiltInProfilerRuleName(),
        rule_parameters={
                "key": "value"
        }
    )
]
```

各ルールのパラメータの説明と値のカスタマイズ例については、「[Debugger の組み込みプロファイラールールのリスト](debugger-built-in-profiler-rules.md)」を参照してください。

`CreateTrainingJob` API を使用した Debugger の組み込みルールの低レベル JSON の設定については、「[SageMaker API を使って Debugger を設定する](debugger-createtrainingjob-api.md)」を参照してください。