Azure Machine Learning スタジオを使用してパイプラインの失敗をデバッグする

パイプライン ジョブを送信したら、Azure Machine Learning スタジオのワークスペースでジョブへのリンクを選択できます。 リンクによってパイプライン ジョブの詳細ページが開きます。ここで、結果を確認し、失敗したパイプライン ジョブをデバッグできます。 この記事では、パイプライン ジョブの詳細ページとパイプライン比較 (プレビュー) を使用して、機械学習パイプラインの失敗をデバッグする方法について説明します。

重要

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 プレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

アウトラインを使ってノードをすばやく見つける

パイプライン ジョブの詳細ページの左側にある [アウトライン] ペインには、パイプライン ジョブの全体構造が表示されます。 任意の行にマウス ポインターを合わせ、[キャンバスで検索] アイコンを選択してキャンバス上のそのノードを強調表示し、右側にノードの情報ペインを開きます。

アウトラインとキャンバス内の検索を示すスクリーンショット。.

[アウトライン] ペインで [フィルター] アイコンを選択すると、ビューをすばやく [完了したノードのみ][コンポーネントのみ]、または [データのみ] にフィルター処理できます。 [検索] ボックスにノード名またはコンポーネント名を入力するか、[フィルターの追加] を選択してフィルターの一覧から選択して、一覧をフィルター処理することもできます。

[アウトライン] ペインでのクイック フィルターと検索を示すスクリーンショット。

左側のペインには、一致したノードと、状態、期間、実行日時などの詳細情報が表示されます。 フィルター処理したノードを並べ替えることができます。

[アウトライン] ペインでの検索結果の並べ替えのスクリーンショット。

コンポーネントのログと出力を確認する

パイプラインが失敗したり、ノードでスタックする場合は、最初にログを見ます。

ノード ログを確認する方法を示すアニメーション付きスクリーンショット。

  1. ノードを選択して、右側の情報ペインを開きます。

  2. [出力とログ] タブを選択して、このノードのすべての出力とログを表示します。

    ノード情報ペインの user_logs のスクリーンショット。

    • user_logs フォルダーには、ユーザー コードで生成されたログに関する情報が含まれています。 このフォルダーは既定で開いており、std_log.txt ログが選択されています。 コードのログ (print ステートメントなど) が std_log.txt に表示されます。

    • system_logs フォルダーには、Azure Machine Learning によって生成されたログが含まれています。 詳細については、「診断ログの表示とダウンロード」を参照してください。

    Note

    フォルダーが見当たらない場合、計算実行時の更新プログラムがコンピューティング クラスターにリリースされてない可能性があります。 最初に azureml-logs フォルダー内の 70_driver_log.txt を確認できます。

パイプライン ジョブを比較する (プレビュー)

さまざまなパイプライン ジョブを比較して、失敗や他の予期しない問題をデバッグすることができます (プレビュー)。 パイプラインを比較すると、パイプライン ジョブの間の相違 (トポロジ、コンポーネント プロパティ、ジョブ プロパティなど) が明らかになります。

成功および失敗したパイプライン ジョブを比較して、あるパイプライン ジョブを失敗させる可能性がある違いを見つけることができます。 失敗したパイプライン ジョブを完了したジョブと比較してデバッグしたり、パイプライン内の失敗したノードを同様の完了したノードと比較してデバッグしたりできます。

Azure Machine Learning スタジオでこの機能を有効にするには、右上にあるメガフォン アイコンを選択してプレビュー機能を管理します。 [マネージド プレビュー機能] パネルで、[パイプライン ジョブを比較して、失敗や予期しない問題をデバッグする][有効] に設定されていることを確認します。

プレビュー機能をオンに切り替えたスクリーンショット。

失敗したパイプライン ジョブと成功したジョブを比較する

反復モデルの開発時に、パラメーター、データセット、コンピューティング リソース、またはその他の設定を変更して、成功したベースライン パイプラインをクローンおよび変更することがあります。 新しいパイプラインが失敗した場合は、パイプラインの比較を使用して、親パイプラインからの変更を識別して失敗を把握できます。

たとえば、メモリ不足の問題が原因で新しいパイプラインが失敗した場合、パイプラインの比較を使用して、メモリの問題の原因となる可能性がある親パイプラインからの変更を確認できます。

パイプラインとその親を比較する

  1. 失敗したパイプライン ジョブのページで、[系列の表示] を選択します。

  2. [クローン元] ポップアップのリンクを選択して、新しいブラウザー タブで親パイプライン ジョブのページを開きます。

    [複製元] リンクと前のステップが示され、系列ボタンが強調されているスクリーンショット。

  3. 両方のページで、上部のメニュー バーの [比較のために追加] を選択して、両方のジョブを [比較] リストに追加します。

    親と子のパイプラインが追加された比較リストを示すスクリーンショット。

両方のパイプラインを比較リストに追加したら、[詳細の比較] または [グラフの比較] を選択できます。

グラフを比較する

[グラフの比較] には、パイプライン AB の間のグラフ トポロジの変化が表示されます。キャンバスでは、パイプライン A に固有のノードは A とマークされ、赤で強調表示されます。パイプライン B に固有のノードは B とマークされ、緑色で強調表示されます。 変化の説明は、違いがあるノードの上部に表示されます。

任意のノードを選択して [コンポーネント情報] ペインを開き、[データセットのプロパティ] または [コンポーネントのプロパティ] (パラメーターrunSettingsoutputSettings など) を表示できます。 [違いのみを表示する][差分をインラインで表示] を選択できます。

変更されたパラメーターとコンポーネント情報タブを示すスクリーンショット。

このビューでは、右上にある [比較の詳細の表示] を選択してパイプラインの [比較の概要] を開くことができます。ここには、[詳細の比較] ページと同じ情報が表示されます。

詳細を比較する

パイプラインとジョブの全体的なメタデータ、プロパティ、相違点を表示するには、比較リストで [詳細の比較] を選択します。 [詳細の比較] ページには、両方のパイプライン ジョブの [パイプラインのプロパティ][ジョブのプロパティ] が表示されます。

  • [パイプラインのプロパティ] には、パイプライン パラメーター、コンピューティング設定、出力設定が含まれます。
  • [実行のプロパティ] には、実行状態、送信時刻と期間、その他の実行設定が含まれます。

[差分のみを表示][差分をインラインで表示] を選択するか、右上の [グラフの比較] を選択してグラフ トポロジの比較を開くことができます。

[グラフの比較] が強調されている詳細比較のスクリーンショット。

次のスクリーンショットは詳細比較の使用例を示したもので、defaultCompute 設定が失敗の理由である可能性があります。

既定のコンピューティングの比較の概要を示すスクリーンショット。

失敗したパイプライン ノードと同様の完了したノードを比較する

ノードのプロパティのみを更新した場合は、ノードを他のジョブの同じノードと比較するとデバッグできます。

  1. 失敗したノードを右クリックし、[ジョブの表示] を選択してジョブの一覧を取得します。

    [ジョブの表示] が強調されている、失敗したノードを示すスクリーンショット。

  2. 完了したジョブを比較ターゲットとして選び、開きます。

  3. 両方のジョブ ページで、上部のメニュー バーの [比較のために追加] を選択して、両方のジョブを [比較] リストに追加します。

  4. 2 つのジョブを比較リストに追加したら、[詳細の比較] を選んで相違を表示します。

デバッグ結果を共有する

デバッグ結果をチームメイトや他の関係者と共有するには、上部のメニュー バーで [共有] を選択します。 [共有可能なリンクをグラフにコピーする] または [パイプライン ジョブ ID をコピーする] を選択して、他のユーザーと共有できます。

共有ボタンとコピーする必要があるリンクを示すスクリーンショット。