Debugger の組み込みプロファイラールールのリスト - Amazon SageMaker

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

Debugger の組み込みプロファイラールールのリスト

Amazon Debugger が提供する SageMaker デバッガーの組み込みプロファイラールールを使用し、モデルのトレーニング中に収集されたメトリクスを分析します。Debugger の組み込みルールは、パフォーマンスの高いトレーニングジョブの実行を成功させるために不可欠なさまざまな共通条件をモニタリングします。Amazon SageMaker Python SDK または低レベル API オペレーションを使用して、組み込みプロファイラールールを呼び出すことができます。 SageMaker 組み込みルールの使用に追加料金はかかりません。請求の詳細については、「Amazon SageMaker 料金表」ページを参照してください。

注記

トレーニングジョブにアタッチできる組み込みプロファイラールールの最大数は 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 以降のフレームワークプロファイリング機能を廃止します。以前のバージョンのフレームワークと SDK でも、次のようにこの機能を引き続き使用できます。

  • 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 パラメータで利用可能なキーを見つけるに、パラメータの説明テーブルを参照してください。

パラメータの説明テーブルの下に、各組み込みルールのサンプル設定コードが記載されています。

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>

他の組み込みのモニタリングルールおよびプロファイリングルールのしきい値を調整するためのカスタマイズ可能なパラメータ。

オプション

デフォルト値: None

BatchSize

この BatchSize ルールは、バッチサイズが小さいために GPU が十分に活用されていないかどうかを検出するのに役立ちます。この問題を検出するために、このルールは平均 CPU 使用率、GPU 使用率、GPU メモリ使用率をモニタリングします。CPU、GPU、GPU メモリの使用率が平均的に低い場合は、トレーニングジョブをより小さなインスタンスタイプで実行できるか、より大きなバッチサイズで実行できることを示している可能性があります。この分析は、メモリを過剰に割り当てるフレームワークでは機能しません。ただし、バッチサイズを大きくすると、各反復でデータの前処理時間がより多く必要になるため、処理やデータロードのボトルネックが発生する可能性があります。

BatchSize ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

cpu_threshold_p95

CPU 使用率の 95 番目の分位数のしきい値をパーセント単位で定義します。

オプション

有効な値: 整数

デフォルト値: 70 (パーセント)

gpu_threshold_p95

GPU 使用率の 95 番目の分位数のしきい値をパーセント単位で定義します。

オプション

有効な値: 整数

デフォルト値: 70 (パーセント)

gpu_memory_threshold_p95

GPU メモリ使用率の 95 番目の分位数のしきい値をパーセント単位で定義します。

オプション

有効な値: 整数

デフォルト値: 70 (パーセント)

patience

ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 100

window

分位数を計算するためのウィンドウサイズ。

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

CPUBottleneck

CPUBottleneck ルールは、CPU のボトルネックのために GPU が十分に利用されていないか検出するのに役立ちます。CPU のボトルネックの数が事前定義されたしきい値を超えた場合、ルールは true を返します。

CPUBottleneck ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

合計トレーニング時間に対するボトルネック時間の割合のしきい値を定義します。この割合がしきい値パラメータに指定されたパーセンテージを超えた場合、ルールはルールのステータスを true に切り替えます。

オプション

有効な値: 整数

デフォルト値: 50 (パーセント)

gpu_threshold

低 GPU 使用率を定義するしきい値。

オプション

有効な値: 整数

デフォルト値: 10 (パーセント)

cpu_threshold

高 CPU 使用率を定義するしきい値。

オプション

有効な値: 整数

デフォルト値: 90 (パーセント)

patience

ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 100

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

GPUMemoryIncrease

GPU MemoryIncrease ルールは、GPUsのメモリ使用量の大幅な増加を検出するのに役立ちます。

GPU MemoryIncrease ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

increase

絶対メモリ増加のしきい値を定義します。

オプション

有効な値: 整数

デフォルト値: 10 (パーセント)

patience

ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 100

window

分位数を計算するためのウィンドウサイズ。

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

IOBottleneck

このルールは、データ I/O のボトルネックのために GPU が十分に利用されていないか検出するのに役立ちます。IO のボトルネックの数が事前定義されたしきい値を超えた場合、ルールは true を返します。

IOBottleneck ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold ルールが true を返すときのしきい値を定義します。

オプション

有効な値: 整数

デフォルト値: 50 (パーセント)

gpu_threshold

GPU が十分に利用されていないと見なされるタイミングを定義するしきい値。

オプション

有効な値: 整数

デフォルト値: 70 (パーセント)

io_threshold 高 IO 待機時間を定義するしきい値。

オプション

有効な値: 整数

デフォルト値: 50 (パーセント)

patience ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 1000

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

LoadBalancing

この LoadBalancing ルールは、複数の GPUs 間のワークロードバランシングの問題を検出するのに役立ちます。

LoadBalancing ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

ワークロードのパーセンテージを定義します。

オプション

有効な値: 整数

デフォルト値: 0.5 (単位なしの割合)

patience

ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 10

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

LowGPUUtilization

LowGPUUtilization ルールは、GPU の使用率が低い、または変動による影響を受けていないか検出するのに役立ちます。これは、各ワーカーの GPU ごとにチェックされます。95 番目の分位数が低使用率を示す threshold_p95 を下回ると、ルールは true を返します。95 番目の分位数が threshold_p95 を上回り、5 番目の分位数が変動を示す threshold_p5 を下回ると、ルールは true を返します。

LowGPUUtilization ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold_p95

これを下回ると GPU が十分に利用されていないと見なされる 95 番目の分位数のしきい値。

オプション

有効な値: 整数

デフォルト値: 70 (パーセント)

threshold_p5 5 番目の分位数のしきい値。デフォルトは 10 パーセントです。

オプション

有効な値: 整数

デフォルト値: 10 (パーセント)

patience

ルールが評価を開始するまでにスキップするデータポイントの数を定義します。通常、トレーニングジョブの最初の数ステップでは大量のデータ処理が表示されるため、ルールを抑え気味に保ち、このパラメータで指定するプロファイリングデータの特定の数を使ってルールがすぐに呼び出されないようにします。

オプション

有効な値: 整数

デフォルト値: 1000

window

分位数を計算するためのウィンドウサイズ。

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

OverallSystem使用状況

この OverallSystemUsage ルールは、ワーカーノードごとのシステム全体の使用状況を測定します。このルールは現在、ノードごとの値を集約し、そのパーセンタイルを計算するだけです。

OverallSystemUsage ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

scan_interval_us

タイムラインファイルをスキャンする時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

MaxInitialization時間

この MaxInitializationTime ルールは、トレーニングの初期化に時間がかかりすぎているかどうかを検出するのに役立ちます。ルールは、最初のステップが利用可能になるまで待機します。

MaxInitializationTime ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

threshold

最初のステップが使用可能になるまでの待機時間のしきい値を分単位で定義します。

オプション

有効な値: 整数

デフォルト値: 20 (分)

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

OverallFrameworkメトリクス

この OverallFrameworkMetrics ルールは、フォワードパスとバックワードパス、データロードなどのフレームワークメトリクスに費やされた時間を要約します。

OverallFrameworkMetrics ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

scan_interval_us

タイムラインファイルをスキャンする時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)

StepOutlier

この StepOutlier ルールは、ステップ期間の外れ値を検出するのに役立ちます。このルールは、一定の時間範囲内のステップ期間にステップ期間全体の stddev シグマよりも大きな外れ値がある場合に True を返します。

StepOutlier ルールのパラメータの説明
Parameter Name 説明
base_trial

基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker Debugger によって現在のトレーニングジョブに自動的に設定されます。

必須

有効な値: 文字列

stddev

標準偏差を乗算する係数を定義します。例えば、デフォルトでステップ期間が標準偏差の 5 倍より大きいか小さい場合、ルールが呼び出されます。

オプション

有効な値: 整数

デフォルト値: 5 (分)

mode ステップが保存され、ルールが実行されるモード。デフォルトでは、ルールは EVAL および TRAIN フェーズのステップで実行されます。

オプション

有効な値: 整数

デフォルト値: 5 (分)

n_outliers ルールが true を返すまでに無視する外れ値の数

オプション

有効な値: 整数

デフォルト値: 10

scan_interval_us

タイムラインファイルがスキャンされる時間間隔。

オプション

有効な値: 整数

デフォルト値: 60000000 (マイクロ秒)