SageMaker デバッガーインタラクティブレポート - Amazon SageMaker

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

SageMaker デバッガーインタラクティブレポート

Debugger によって自動生成されたプロファイリングレポートを受け取ります。Debugger レポートは、トレーニングジョブに関するインサイトを提供し、モデルのパフォーマンスを向上させるための推奨事項を提案します。次のスクリーンショットは、デバッガープロファイリングレポートのコラージュを示しています。詳細については、「SageMaker デバッガープロファイリングレポート」を参照してください。

注記

デバッガーレポートは、トレーニングジョブの実行中またはジョブの終了後にダウンロードできます。トレーニング中、デバッガーは現在のルールの評価ステータスを反映したレポートを同時に更新します。完全なデバッガーレポートは、トレーニングジョブが完了した後にのみダウンロードできます。

重要

レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。

デバッガートレーニングジョブの要約レポートの例

SageMaker デバッガープロファイリングレポート

SageMaker トレーニングジョブの場合、 SageMaker デバッガーProfilerReportルールはすべてのモニタリングルールとプロファイリングルールを呼び出し、ルール分析を包括的なレポートに集約します。このガイドに従って、Amazon SageMaker Python SDK または S3 コンソールを使用してレポートをダウンロードし、プロファイリング結果から解釈できる内容を学習します。

重要

レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。

SageMaker デバッガープロファイリングレポートをダウンロードする

トレーニングジョブの実行中、または Amazon SageMaker Python SDK と (CLI) を使用してジョブが終了した後に、 SageMaker デバッガープロファイリングレポートをダウンロードします。 AWS Command Line Interface

注記

SageMaker デバッガーによって生成されたプロファイリングレポートを取得するには、 SageMaker デバッガーが提供する組み込みProfilerReportルールを使用する必要があります。トレーニングジョブでルールを有効にするには、「Configure Built-in Profiler Rules」を参照してください。

ヒント

SageMaker Studio デバッガーインサイトダッシュボードでワンクリックでレポートをダウンロードすることもできます。レポートをダウンロードするために追加のスクリプトは必要ありません。Studio からレポートをダウンロードする方法については、「Amazon SageMaker Debugger Insights ダッシュボードを開きます。」を参照してください。

Download using SageMaker Python SDK and AWS CLI
  1. 現在のジョブのデフォルトの S3 出力基本 URI をチェックします。

    estimator.output_path
  2. 現在のジョブの名前をチェックします。

    estimator.latest_training_job.job_name
  3. デバッガープロファイリングレポートは、<default-s3-output-base-uri>/<training-job-name>/rule-output に保存されます。ルールの出力パスを次のように設定します。

    rule_output_path = estimator.output_path + estimator.latest_training_job.job_name + "/rule-output"
  4. レポートが生成されているかどうかをチェックするには、--recursive オプションを付けて aws s3 ls を使い、rule_output_path の下にディレクトリとファイルを再帰的にリストします。

    ! aws s3 ls {rule_output_path} --recursive

    これにより、ProfilerReport-1234567890 という名前の自動生成されたフォルダにファイルの完全なリストが返されます。フォルダ名は、文字列 ProfilerReportと、ルールが開始されたとき ProfilerReportの Unix タイムスタンプに基づく一意の 10 桁のタグの組み合わせです。

    ルール出力の例

    profiler-report.html は、デバッガーによって自動生成されたプロファイリングレポートです。残りのファイルは、JSON に保存されている組み込みルール分析コンポーネントと、それらをレポートにまとめるための Jupyter ノートブックです。

  5. aws s3 cp を使ってファイルを再帰的にダウンロードします。次のコマンドは、すべてのルール出力ファイルを現在の作業ディレクトリの下にある ProfilerReport-1234567890 フォルダに保存します。

    ! aws s3 cp {rule_output_path} ./ --recursive
    ヒント

    Jupyter ノートブックサーバーを使っている場合は、!pwd を実行して、現在の作業ディレクトリを再チェックしてください。

  6. /ProfilerReport-1234567890/profiler-output ディレクトリで、profiler-report.html を開きます。を使用している場合は JupyterLab、HTML を信頼を選択して、自動生成されたデバッガープロファイリングレポートを表示します。

    ルール出力の例
  7. profiler-report.ipynb ファイルを開いて、レポートがどのように生成されているか検証します。Jupyter ノートブックファイルを使って、プロファイリングレポートをカスタマイズして拡張することもできます。

Download using Amazon S3 Console
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. 基本の S3 バケットを検索します。例えば、基本のジョブ名を指定していない場合、基本の S3 バケット名は、sagemaker-<region>-111122223333 という形式になります。[Find bucket by name] (名前でバケットを検索) フィールドから基本の S3 バケットを調べます。

    ルール出力の S3 バケット URI の例
  3. 基本の S3 バケットで、[Find objects by prefix] (プレフィックスでオブジェクトを検索) 入力フィールドにジョブ名のプレフィックスを指定することで、トレーニングジョブ名を調べます。トレーニングジョブの名前を選択します。

    ルール出力の S3 バケット URI の例
  4. トレーニングジョブの S3 バケットには、デバッガーで収集されたトレーニングデータ用の 3 つのサブフォルダ (debug-output/profiler-output/rule-output/) があります。rule-output/ を選択します。

    ルール出力の S3 バケット URI の例
  5. rule-output/ フォルダで、ProfilerReport-1234567890 を選択し、Profiler-output/ フォルダを選択します。この profiler-output/ フォルダには、profiler-report.html (html で自動生成されたプロファイリングレポート)、profiler-report.ipynb (レポートの生成に使用されるスクリプトを含む Jupyter ノートブック)、profiler-report/ フォルダ (レポートのコンポーネントとして使用されるルール分析 JSON ファイルを含む) が含まれています。

  6. profiler-report.html ファイルを選択し、[Actions] (アクション)、[Download] (ダウンロード) の順に選択します。

    ルール出力の S3 バケット URI の例
  7. ダウンロードした profiler-report.html ファイルをウェブブラウザで開きます。

注記

デバッガー固有パラメータを設定せずにトレーニングジョブを開始した場合、デバッガーのパラメータがフレームワークメトリクスを保存するように設定されていないため、デバッガーはシステムモニタリングルールにのみ基づいてレポートを生成します。フレームワークメトリクスプロファイリングを有効にして拡張デバッガープロファイリングレポートを受け取るには、 SageMaker 推定器を構築または更新するときに profiler_configパラメータを設定します。

トレーニングジョブを始める前に profiler_config パラメータを設定する方法については、「フレームワークプロファイリング用に設定する」を参照してください。

現在のトレーニングジョブを更新し、フレームワークメトリクスプロファイリングを有効にするには、「デバッガーのフレームワークプロファイリング設定を更新する」を参照してください。

デバッガープロファイリングレポートのチュートリアル

このセクションでは、デバッガープロファイリングレポートをセクション別に具体的に説明します。プロファイリングレポートは、モニタリングおよびプロファイリングのための組み込みルールに基づいて生成されます。レポートには、問題を見つけたルールについてのみ結果プロットが表示されます。

重要

レポートでは、プロットや推奨事項は情報提供を目的として提供されており、決定的なものではありません。お客様は情報を独自に評価する責任を負うものとします。

トレーニングジョブの要約

レポートの冒頭に、デバッガーはトレーニングジョブの要約を記載します。このセクションには、さまざまなトレーニングフェーズの期間とタイムスタンプの概要が記載されています。

デバッガープロファイリングレポートの例

要約テーブルには次の情報が含まれます。

  • 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 に対するファイナライズに費やされた時間の割合。

システム使用統計

このセクションでは、システム使用率統計の概要を確認できます。

デバッガープロファイリングレポートの例

デバッガープロファイリングレポートには次の情報が含まれます。

  • node - ノードの名前をリストします。マルチノード (複数の EC2 インスタンス) で分散トレーニングを行う場合、ノード名は algo-n の形式になります。

  • metric - デバッガーによって収集されるシステムメトリクス (CPU、GPU、CPU メモリ、GPU メモリ、I/O、ネットワークメトリクス) 。

  • unit – システムメトリクスの単位。

  • max - 各システムメトリクスの最大値。

  • p99 - 各システム使用率の 99 番目のパーセンタイル。

  • p95 - 各システム使用率の 95 番目のパーセンタイル。

  • p50 - 各システム使用率の 50 番目のパーセンタイル (中央値)。

  • 最小 - 各システムメトリクスの最小値。

フレームワークメトリクスの要約

このセクションでは、CPU と GPU におけるフレームワークオペレーションの内訳を次の円グラフに示します。

デバッガープロファイリングレポートの例

各円グラフは、収集されたフレームワークメトリクスを次のようにさまざまな側面で分析します。

  • TRAIN/EVAL フェーズと他のフェーズの比率 - 異なるトレーニングフェーズに費やされた時間の比率を示します。

  • フォワードパスとバックパスの比率 - トレーニングループでフォワードパスとバックパスに費やされた時間の比率を示します。

  • CPU/GPU 演算子の比率 - 畳み込み演算子など、CPU または GPU で実行される演算子に費やされた時間の比率を示します。

  • フレームワークで記録された一般的なメトリクス - データロード、フォワードパス、バックワードパスなど、主要なフレームワークメトリクスに費やされた時間の比率を示します。

概要: CPU 演算子

このセクションには、CPU 演算子の詳細な情報が記載されています。表は、最も頻繁に呼び出される CPU 演算子に費やされた時間の割合と絶対累積時間を示しています。

デバッガープロファイリングレポートの例
概要: GPU 演算子

このセクションには、GPU 演算子の詳細な情報が記載されています。表は、最も頻繁に呼び出される GPU 演算子に費やされた時間の割合と絶対累積時間を示しています。

デバッガープロファイリングレポートの例

ルールの概要

このセクションにはデバッガーが、ルールの評価結果、分析、ルールの説明、提案のすべてをまとめます。

デバッガープロファイリングレポートの例

トレーニングループの分析 - ステップ期間

このセクションでは、各ノードの各 GPU コアにおけるステップ期間の詳細な統計を確認できます。デバッガーは、ステップ期間の平均値、最大値、p99、p95、p50、最小値を評価し、ステップの外れ値を評価します。次のヒストグラムは、さまざまなワーカーノードと GPU でキャプチャされたステップ期間を示しています。右側の凡例を選択すると、各ワーカーのヒストグラムを有効または無効にできます。ステップ期間の外れ値を生じさせている特定の GPU があるかどうかをチェックできます。

デバッガープロファイリングレポートの例

GPU 使用率分析

このセクションには、LowGPUUtilization ルールに基づく GPU コア使用率の詳細な統計が記載されています。また、トレーニングジョブが GPU を十分に活用しているかどうかを判断するために、GPU 使用率の統計、平均、p95、p5 を要約します。

バッチサイズ

このセクションには、合計 CPU 使用率、個々の GPU 使用率、GPU メモリフットプリントの詳細な統計が記載されています。この BatchSize ルールは、GPUs をより有効に活用するためにバッチサイズを変更する必要があるかどうかを決定します。バッチサイズが小さすぎて使用率が低くなったり、大きすぎて使用率が過大になりメモリ不足に陥ったりしていないかどうかをチェックできます。プロットにおきボックスは、中央値 (p50) から p25 および p75 までのパーセンタイル範囲 (それぞれ濃い紫と明るい黄色で塗りつぶされている) を示し、エラーバーは下限の 5 パーセンタイルと上限の 95 パーセンタイルを示します。

デバッガープロファイリングレポートの例

CPU のボトルネック

このセクションでは、CPUBottleneck ルールがトレーニングジョブから検出した CPU のボトルネックをドリルダウンできます。このルールは、CPU 使用率が cpu_threshold (デフォルトでは 90%) を上回っているかどうかと、GPU 使用率が gpu_threshold (デフォルトでは 10%) を下回っているかどうかをチェックします。

デバッガープロファイリングレポートの例

円グラフには次の情報が表示されます。

  • 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 にわたるワークロードバランシングの問題を特定できます。

デバッガープロファイリングレポートの例

GPU メモリ分析

このセクションでは、GPU MemoryIncrease ルールによって収集された GPU メモリ使用率を分析できます。プロットにおきボックスは、中央値 (p50) から p25 および p75 までのパーセンタイル範囲 (それぞれ濃い紫と明るい黄色で塗りつぶされている) を示し、エラーバーは下限の 5 パーセンタイルと上限の 95 パーセンタイルを示します。

デバッガープロファイリングレポートの例