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

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

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

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

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

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

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

GPUMemoryIncrease ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

increase

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

オプション

有効な値: 整数

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

patience

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

オプション

有効な値: 整数

デフォルト値: 100

window

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

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

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

オプション

有効な値: 整数

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

IOBottleneck

このルールは、データ IO のボトルネックのために 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

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 番目の分位数のしきい値。

オプション

有効な値: 整数

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

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

オプション

有効な値: 整数

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

patience

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

オプション

有効な値: 整数

デフォルト値: 1000

window

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

オプション

有効な値: 整数

デフォルト値: 500

scan_interval_us

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

オプション

有効な値: 整数

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

OverallSystemUsage

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

OverallSystemUsage ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

scan_interval_us

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

オプション

有効な値: 整数

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

MaxInitializationTime

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

MaxInitializationTime ルールのパラメータの説明

Parameter Name 説明
base_trial

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

必須

有効な値: 文字列

threshold

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

オプション

有効な値: 整数

デフォルト値: 20 (分)

scan_interval_us

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

オプション

有効な値: 整数

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

OverallFrameworkMetrics

この 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 (マイクロ秒)