翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker デバッガーインタラクティブレポート
Debugger によって自動生成されたプロファイリングレポートを受け取ります。Debugger レポートは、トレーニングジョブに関するインサイトを提供し、モデルのパフォーマンスを向上させるための推奨事項を提案します。次のスクリーンショットは、デバッガープロファイリングレポートのコラージュを示しています。詳細については、「SageMaker デバッガープロファイリングレポート」を参照してください。
注記
デバッガーレポートは、トレーニングジョブの実行中またはジョブの終了後にダウンロードできます。トレーニング中、デバッガーは現在のルールの評価ステータスを反映したレポートを同時に更新します。完全なデバッガーレポートは、トレーニングジョブが完了した後にのみダウンロードできます。
重要
レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。
![デバッガートレーニングジョブの要約レポートの例](images/debugger/debugger-profile-report.jpg)
SageMaker デバッガープロファイリングレポート
SageMaker トレーニングジョブの場合、 SageMaker デバッガーProfilerReportルールはすべてのモニタリングルールとプロファイリングルールを呼び出し、ルール分析を包括的なレポートに集約します。このガイドに従って、Amazon SageMaker Python SDK
重要
レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。
SageMaker デバッガープロファイリングレポートをダウンロードする
トレーニングジョブの実行中、または Amazon SageMaker Python SDK と (CLI)
注記
SageMaker デバッガーによって生成されたプロファイリングレポートを取得するには、 SageMaker デバッガーが提供する組み込みProfilerReportルールを使用する必要があります。トレーニングジョブでルールを有効にするには、「Configure Built-in Profiler Rules」を参照してください。
ヒント
SageMaker Studio デバッガーインサイトダッシュボードでワンクリックでレポートをダウンロードすることもできます。レポートをダウンロードするために追加のスクリプトは必要ありません。Studio からレポートをダウンロードする方法については、「Amazon SageMaker Debugger Insights ダッシュボードを開きます。」を参照してください。
注記
デバッガー固有パラメータを設定せずにトレーニングジョブを開始した場合、デバッガーのパラメータがフレームワークメトリクスを保存するように設定されていないため、デバッガーはシステムモニタリングルールにのみ基づいてレポートを生成します。フレームワークメトリクスプロファイリングを有効にして拡張デバッガープロファイリングレポートを受け取るには、 SageMaker 推定器を構築または更新するときに profiler_config
パラメータを設定します。
トレーニングジョブを始める前に profiler_config
パラメータを設定する方法については、「フレームワークプロファイリング用に設定する」を参照してください。
現在のトレーニングジョブを更新し、フレームワークメトリクスプロファイリングを有効にするには、「デバッガーのフレームワークプロファイリング設定を更新する」を参照してください。
デバッガープロファイリングレポートのチュートリアル
このセクションでは、デバッガープロファイリングレポートをセクション別に具体的に説明します。プロファイリングレポートは、モニタリングおよびプロファイリングのための組み込みルールに基づいて生成されます。レポートには、問題を見つけたルールについてのみ結果プロットが表示されます。
重要
レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。
トピック
トレーニングジョブの要約
レポートの冒頭に、デバッガーはトレーニングジョブの要約を記載します。このセクションには、さまざまなトレーニングフェーズの期間とタイムスタンプの概要が記載されています。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-summary.gif)
要約テーブルには次の情報が含まれます。
-
start_time - トレーニングジョブが開始された正確な時刻。
-
end_time - トレーニングジョブが終了した正確な時刻。
-
job_duration_in_seconds - start_time から end_time までの合計トレーニング時間。
-
training_loop_start - 最初のエポックの最初のステップが開始された正確な時刻。
-
training_loop_end - 最後のエポックの最後のステップが終了した正確な時刻。
-
training_loop_duration_in_seconds - トレーニングループの開始時刻とトレーニングループの終了時刻の間の合計時間。
-
initialization_in_seconds - トレーニングジョブの初期化に費やされた時間。初期化フェーズは、start_time から training_loop_start までの期間をカバーします。初期化時間は、トレーニングスクリプトのコンパイル、トレーニングスクリプトの開始、モデルの作成と初期化、EC2 インスタンスの開始、トレーニングデータのダウンロードに費やされます。
-
finalization_in_seconds - モデルトレーニングの終了、モデルアーティファクトの更新、EC2 インスタンスの終了など、トレーニングジョブの終了に費やされた時間。ファイナライズフェーズは、training_loop_end から end_time までの時間をカバーします。
-
initialization (%) - 合計の job_duration_in_seconds に対する初期化に費やされた時間の割合。
-
training loop (%) - 合計の job_duration_in_seconds に対するトレーニングループに費やされた時間の割合。
-
finalization (%) - 合計の job_duration_in_seconds に対するファイナライズに費やされた時間の割合。
システム使用統計
このセクションでは、システム使用率統計の概要を確認できます。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-system-usage.png)
デバッガープロファイリングレポートには次の情報が含まれます。
-
node - ノードの名前をリストします。マルチノード (複数の EC2 インスタンス) で分散トレーニングを行う場合、ノード名は
algo-n
の形式になります。 -
metric - デバッガーによって収集されるシステムメトリクス (CPU、GPU、CPU メモリ、GPU メモリ、I/O、ネットワークメトリクス) 。
-
unit – システムメトリクスの単位。
-
max - 各システムメトリクスの最大値。
-
p99 - 各システム使用率の 99 番目のパーセンタイル。
-
p95 - 各システム使用率の 95 番目のパーセンタイル。
-
p50 - 各システム使用率の 50 番目のパーセンタイル (中央値)。
-
最小 - 各システムメトリクスの最小値。
フレームワークメトリクスの要約
このセクションでは、CPU と GPU におけるフレームワークオペレーションの内訳を次の円グラフに示します。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-framework-metrics-summary.gif)
各円グラフは、収集されたフレームワークメトリクスを次のようにさまざまな側面で分析します。
-
TRAIN/EVAL フェーズと他のフェーズの比率 - 異なるトレーニングフェーズに費やされた時間の比率を示します。
-
フォワードパスとバックパスの比率 - トレーニングループでフォワードパスとバックパスに費やされた時間の比率を示します。
-
CPU/GPU 演算子の比率 - 畳み込み演算子など、CPU または GPU で実行される演算子に費やされた時間の比率を示します。
-
フレームワークで記録された一般的なメトリクス - データロード、フォワードパス、バックワードパスなど、主要なフレームワークメトリクスに費やされた時間の比率を示します。
概要: CPU 演算子
このセクションには、CPU 演算子の詳細な情報が記載されています。表は、最も頻繁に呼び出される CPU 演算子に費やされた時間の割合と絶対累積時間を示しています。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-framework-cpu-operators.gif)
概要: GPU 演算子
このセクションには、GPU 演算子の詳細な情報が記載されています。表は、最も頻繁に呼び出される GPU 演算子に費やされた時間の割合と絶対累積時間を示しています。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-framework-gpu-operators.gif)
ルールの概要
このセクションにはデバッガーが、ルールの評価結果、分析、ルールの説明、提案のすべてをまとめます。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-rules-summary.png)
トレーニングループの分析 - ステップ期間
このセクションでは、各ノードの各 GPU コアにおけるステップ期間の詳細な統計を確認できます。デバッガーは、ステップ期間の平均値、最大値、p99、p95、p50、最小値を評価し、ステップの外れ値を評価します。次のヒストグラムは、さまざまなワーカーノードと GPU でキャプチャされたステップ期間を示しています。右側の凡例を選択すると、各ワーカーのヒストグラムを有効または無効にできます。ステップ期間の外れ値を生じさせている特定の GPU があるかどうかをチェックできます。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-framework-step-duration.gif)
GPU 使用率分析
このセクションには、LowGPUUtilization ルールに基づく GPU コア使用率の詳細な統計が記載されています。また、トレーニングジョブが GPU を十分に活用しているかどうかを判断するために、GPU 使用率の統計、平均、p95、p5 を要約します。
バッチサイズ
このセクションには、合計 CPU 使用率、個々の GPU 使用率、GPU メモリフットプリントの詳細な統計が記載されています。この BatchSize ルールは、GPUs をより有効に活用するためにバッチサイズを変更する必要があるかどうかを決定します。バッチサイズが小さすぎて使用率が低くなったり、大きすぎて使用率が過大になりメモリ不足に陥ったりしていないかどうかをチェックできます。プロットにおきボックスは、中央値 (p50) から p25 および p75 までのパーセンタイル範囲 (それぞれ濃い紫と明るい黄色で塗りつぶされている) を示し、エラーバーは下限の 5 パーセンタイルと上限の 95 パーセンタイルを示します。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-batch-size.png)
CPU のボトルネック
このセクションでは、CPUBottleneck ルールがトレーニングジョブから検出した CPU のボトルネックをドリルダウンできます。このルールは、CPU 使用率が cpu_threshold
(デフォルトでは 90%) を上回っているかどうかと、GPU 使用率が gpu_threshold
(デフォルトでは 10%) を下回っているかどうかをチェックします。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-cpu-bottlenecks.png)
円グラフには次の情報が表示されます。
-
CPU のボトルネックによる GPU 使用率の低下 - GPU 使用率がしきい値を上回るおよび下回るデータポイントの比率と、CPU のボトルネック基準に一致するデータポイントの比率を示します。
-
TRAIN/EVAL フェーズと他のフェーズの比率 - 異なるトレーニングフェーズに費やされた時間の比率を示します。
-
フォワードパスとバックパスの比率 - トレーニングループでフォワードパスとバックパスに費やされた時間の比率を示します。
-
CPU/GPU 演算子の比率 - データローダープロセス、フォワードパス演算子、バックワードパス演算子など、Python 演算子によって GPU と CPU に費やされた時間の比率を示します。
-
フレームワークに記録された一般的なメトリクス - 主要なフレームワークメトリクスと、メトリクスに費やされた時間の比率を示します。
I/O のボトルネック
このセクションには、I/O のボトルネックの要約が示されます。このルールは、I/O 待機時間と GPU 使用率を評価し、I/O リクエストに費やされた時間が合計トレーニング時間のしきい値のパーセントを超えたかどうかをモニタリングします。これは、GPU がストレージからのデータの到着を待っている場合の I/O ボトルネックを示している可能性があります。
マルチ GPU トレーニングでのロードバランシング
このセクションでは、すべての GPU にわたるワークロードバランシングの問題を特定できます。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-workload-balancing.gif)
GPU メモリ分析
このセクションでは、GPU MemoryIncrease ルールによって収集された GPU メモリ使用率を分析できます。プロットにおきボックスは、中央値 (p50) から p25 および p75 までのパーセンタイル範囲 (それぞれ濃い紫と明るい黄色で塗りつぶされている) を示し、エラーバーは下限の 5 パーセンタイルと上限の 95 パーセンタイルを示します。
![デバッガープロファイリングレポートの例](images/debugger/debugger-profiling-report-gpu-memory-utilization.png)