翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Debugger の組み込みプロファイラールールのリスト
Amazon Debugger が提供する SageMaker デバッガーの組み込みプロファイラールールを使用し、モデルのトレーニング中に収集されたメトリクスを分析します。Debugger の組み込みルールは、パフォーマンスの高いトレーニングジョブの実行を成功させるために不可欠なさまざまな共通条件をモニタリングします。Amazon SageMaker Python SDK
注記
トレーニングジョブにアタッチできる組み込みプロファイラールールの最大数は 20 です。 SageMaker デバッガーは組み込みルールを完全に管理し、トレーニングジョブを同期的に分析します。
重要
新しいデバッガー機能を使用するには、 SageMaker Python SDKとSMDebugクライアントライブラリをアップグレードする必要があります。 iPython カーネル、Jupyter Notebook、または JupyterLab 環境で、次のコードを実行して最新バージョンのライブラリをインストールし、カーネルを再起動します。
import sys import IPython !{sys.executable} -m pip install -U sagemaker smdebug IPython.Application.instance().kernel.do_shutdown(True)
プロファイラールール
次のルールは、ProfilerRule.sagemaker
クラスメソッド使って呼び出せるデバッガーの組み込みルールです。
プロファイリングレポートを生成するための Debugger 組み込みルール
有効範囲 | 組み込みルール |
---|---|
SageMaker トレーニングジョブのプロファイリングレポート |
ハードウェアシステムのリソース使用率 (システムメトリクス)をプロファイリングするための Debugger 組み込みルール
有効範囲 | 組み込みルール |
---|---|
SageMaker トレーニングジョブの一般的なシステムモニタリングルール |
フレームワークメトリクスをプロファイリングするための Debugger 組み込みルール
有効範囲 | 組み込みルール |
---|---|
深層学習フレームワーク (TensorFlow および PyTorch) のプロファイリングルール |
警告
Amazon SageMaker Profiler を優先して、 SageMakerデバッガーは TensorFlow 2.11 および PyTorch 2.0 以降のフレームワークプロファイリング機能を廃止します。この機能は、以前のバージョンのフレームワークでも、SDKs次のように使用できます。
-
SageMaker Python SDK <= v2.130.0
-
PyTorch >= v1.6.0、< v2.0
-
TensorFlow >= v2.3.1、< v2.11
「2023 年 3 月 16 日」も参照してください。
デフォルトのパラメータ値で組み込みルールを使用するには - 次の設定形式を使用します。
from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker(rule_configs.
BuiltInRuleName_1
()), ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_2
()), ... ProfilerRule.sagemaker(rule_configs.BuiltInRuleName_n
()) ]
パラメータ値をカスタマイズして組み込みルールを使用するには - 次の設定形式を使用します。
from sagemaker.debugger import Rule, ProfilerRule, rule_configs rules = [ ProfilerRule.sagemaker( base_config=rule_configs.
BuiltInRuleName
(), rule_parameters={ "key
": "value
" } ) ]
rule_parameters
パラメータで利用可能なキーを見つけるに、パラメータの説明テーブルを参照してください。
パラメータの説明テーブルの下に、各組み込みルールのサンプル設定コードが記載されています。
-
デバッガーの組み込みルールの詳細な説明と使用例については、「デバッガー組み込みルールのサンプルコード」を参照してください。
-
低レベル SageMaker APIオペレーションで組み込みルールを使用する詳細な手順については、「」を参照してくださいを使用してデバッガーを設定する SageMaker API。
ProfilerReport
この ProfilerReport ルールは、モニタリングとプロファイリングのためにすべての組み込みルールを呼び出します。個々のルールがトリガーされると、プロファイリングレポートが作成され、更新されます。トレーニングジョブの実行中またはトレーニングジョブの完了後に、包括的なプロファイリングレポートをダウンロードできます。ルールパラメータ値を調整することで、組み込みのモニタリングルールとプロファイリングルールの感度をカスタマイズできます。次のコード例は、 ProfilerReport ルールを通じて組み込みルールパラメータを調整するための基本的な形式を示しています。
rules=[ ProfilerRule.sagemaker( rule_configs.
ProfilerReport
(<BuiltInRuleName>
_<parameter_name>
=value
) ) ]
次のサンプルコードに示すように、カスタマイズされたパラメータなしでこの ProfilerReport ルールをトリガーすると、 ProfilerReport ルールはデフォルトのパラメータ値でモニタリングおよびプロファイリングするための組み込みルールをすべてトリガーします。
rules=[ProfilerRule.sagemaker(rule_configs.ProfilerReport())]
次のコード例は、CPUBottleneckルールの cpu_threshold
パラメータとIOBottleneckルールの threshold
パラメータを指定および調整する方法を示しています。
rules=[ ProfilerRule.sagemaker( rule_configs.ProfilerReport(
CPUBottleneck_cpu_threshold
=90
,IOBottleneck_threshold
=90
) ) ]
プロファイラーレポートの内容を確認するには、SageMaker 「デバッガープロファイリングレポート」を参照してください。また、このルールはすべてのプロファイリングルールをアクティブ化するため、SageMaker SageMaker Studio Experiments のデバッガー UI を使用してルール分析ステータスを確認することもできます。
OverallSystemUsage ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
<BuiltInRuleName>_<parameter_name> |
他の組み込みのモニタリングルールおよびプロファイリングルールのしきい値を調整するためのカスタマイズ可能なパラメータ。 オプション デフォルト値: |
BatchSize
この BatchSize ルールGPUは、バッチサイズが小さいために が十分に活用されていないかどうかを検出するのに役立ちます。この問題を検出するために、このルールは平均CPU使用率、GPU使用率、GPUメモリ使用率をモニタリングします。CPU、GPU、および GPUメモリの使用率が平均して低い場合は、トレーニングジョブを小さなインスタンスタイプで実行することも、バッチサイズを大きくして実行することもできます。この分析は、メモリを過剰に割り当てるフレームワークでは機能しません。ただし、バッチサイズを大きくすると、各反復でデータの前処理時間がより多く必要になるため、処理やデータロードのボトルネックが発生する可能性があります。
BatchSize ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
cpu_threshold_p95 |
CPU 使用率の 95 分位数のしきい値をパーセンテージで定義します。 オプション 有効な値: 整数 デフォルト値: |
gpu_threshold_p95 |
GPU 使用率の 95 分位数のしきい値をパーセンテージで定義します。 オプション 有効な値: 整数 デフォルト値: |
gpu_memory_threshold_p95 |
GPU メモリ使用率の 95 分位数のしきい値をパーセンテージで定義します。 オプション 有効な値: 整数 デフォルト値: |
patience |
ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。 オプション 有効な値: 整数 デフォルト値: |
window |
分位数を計算するためのウィンドウサイズ。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
CPUBottleneck
このCPUBottleneckルールは、CPUボトルネックのために GPU が十分に活用されていないかどうかを検出するのに役立ちます。CPU ボトルネックの数が事前定義されたしきい値を超えた場合、ルールは True を返します。
CPUBottleneck ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold |
合計トレーニング時間に対するボトルネック時間の割合のしきい値を定義します。この割合がしきい値パラメータに指定されたパーセンテージを超えた場合、ルールはルールのステータスを true に切り替えます。 オプション 有効な値: 整数 デフォルト値: |
gpu_threshold |
低GPU使用率を定義するしきい値。 オプション 有効な値: 整数 デフォルト値: |
cpu_threshold |
高いCPU使用率を定義するしきい値。 オプション 有効な値: 整数 デフォルト値: |
patience |
ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
GPUMemoryIncrease
このGPUMemoryIncreaseルールは、 でのメモリ使用量の大幅な増加を検出するのに役立ちますGPUs。
GPUMemoryIncrease ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
increase |
絶対メモリ増加のしきい値を定義します。 オプション 有効な値: 整数 デフォルト値: |
patience |
ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。 オプション 有効な値: 整数 デフォルト値: |
window |
分位数を計算するためのウィンドウサイズ。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
IOBottleneck
このルールは、データ IO のボトルネックのために GPUが十分に活用されていないかどうかを検出するのに役立ちます。IO のボトルネックの数が事前定義されたしきい値を超えた場合、ルールは true を返します。
IOBottleneck ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold |
ルールが true を返すときのしきい値を定義します。 オプション 有効な値: 整数 デフォルト値: |
gpu_threshold |
が十分に活用されていないGPUと見なされるタイミングを定義するしきい値。 オプション 有効な値: 整数 デフォルト値: |
io_threshold |
高 IO 待機時間を定義するしきい値。 オプション 有効な値: 整数 デフォルト値: |
patience |
ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
LoadBalancing
この LoadBalancing ルールは、複数の 間のワークロードバランシングの問題を検出するのに役立ちますGPUs。
LoadBalancing ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold |
ワークロードのパーセンテージを定義します。 オプション 有効な値: 整数 デフォルト値: |
patience |
ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
LowGPUUtilization
L owGPUUtilization ルールは、GPU使用率が低いか、変動に悩まされているかを検出するのに役立ちます。これは、各ワーカーの ごとにチェックGPUされます。95 番目の分位数が低使用率を示す threshold_p95 を下回ると、ルールは true を返します。95 番目の分位数が threshold_p95 を上回り、5 番目の分位数が変動を示す threshold_p5 を下回ると、ルールは true を返します。
L owGPUUtilization ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold_p95 |
使用率が低いGPUと見なされる 95 番目の分位数のしきい値。 オプション 有効な値: 整数 デフォルト値: |
threshold_p5 |
5 番目の分位数のしきい値。デフォルトは 10 パーセントです。 オプション 有効な値: 整数 デフォルト値: |
patience |
ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。 オプション 有効な値: 整数 デフォルト値: |
window |
分位数を計算するためのウィンドウサイズ。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
OverallSystemUsage
この OverallSystemUsage ルールは、ワーカーノードごとのシステム全体の使用状況を測定します。このルールは現在、ノードごとの値を集約し、そのパーセンタイルを計算するだけです。
OverallSystemUsage ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
scan_interval_us |
タイムラインファイルをスキャンする時間間隔。 オプション 有効な値: 整数 デフォルト値: |
MaxInitializationTime
この MaxInitializationTime ルールは、トレーニングの初期化に時間がかかりすぎているかどうかを検出するのに役立ちます。ルールは、最初のステップが利用可能になるまで待機します。
MaxInitializationTime ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
threshold |
最初のステップが使用可能になるまでの待機時間のしきい値を分単位で定義します。 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |
OverallFrameworkMetrics
この OverallFrameworkMetrics ルールは、フォワードパスとバックワードパス、データロードなどのフレームワークメトリクスに費やされた時間を要約します。
OverallFrameworkMetrics ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
scan_interval_us |
タイムラインファイルをスキャンする時間間隔。 オプション 有効な値: 整数 デフォルト値: |
StepOutlier
この StepOutlier ルールは、ステップ期間の外れ値を検出するのに役立ちます。このルールは、一定の時間範囲内のステップ期間にステップ期間全体の stddev
シグマよりも大きな外れ値がある場合に True
を返します。
StepOutlier ルールのパラメータの説明
Parameter Name | 説明 |
---|---|
base_trial |
基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。 必須 有効な値: 文字列 |
stddev |
標準偏差を乗算する係数を定義します。例えば、デフォルトでステップ期間が標準偏差の 5 倍より大きいか小さい場合、ルールが呼び出されます。 オプション 有効な値: 整数 デフォルト値: |
mode |
ステップが保存され、ルールが実行されるモード。デフォルトのルールでは、 EVALおよび TRAINフェーズのステップで実行されます。 オプション 有効な値: 整数 デフォルト値: |
n_outliers |
ルールが true を返すまでに無視する外れ値の数 オプション 有効な値: 整数 デフォルト値: |
scan_interval_us |
タイムラインファイルがスキャンされる時間間隔。 オプション 有効な値: 整数 デフォルト値: |