トレーニング ジョブのモニタリング

データセットのサイズやモデルの複雑さによっては、トレーニングに時間がかかることがあります。実際のデータを使用したトレーニングは、何時間も続く場合があります。ジョブの実行中にいくつかの側面をモニタリングできます。

ジョブ ステータスの確認

ジョブの全体のステータスは、GCP Console の AI Platform ジョブページを見れば容易に確認できます。同様の詳細情報は、プログラムでも、gcloud コマンドライン ツールでも取得できます。

Console

  1. GCP Console で AI Platform の [ジョブ] ページを開きます。

    GCP Console で [ジョブ] を開く

  2. リスト内のジョブ名をクリックして、[ジョブの詳細] ページを開きます。

  3. レポートの上部のジョブのステータスを見つけます。ジョブの現在の状態がアイコンとテキストで表示されます。

    [ジョブの詳細] ページの上部にあるジョブのステータス情報。

ジョブをフィルタリングする

[ジョブ] ページで、ジョブをさまざまなパラメータ(タイプJobID状態、ジョブ作成時間など)でフィルタリングできます。

  1. ジョブのリストの上にある [接頭辞でフィルタ] フィールド内をクリックします。フィルタリングで使用する接頭辞を選択します。たとえば、タイプを選択します。
  2. フィルタを完成するには、使用するフィルタ接尾辞をクリックします。たとえば、タイプ接頭辞の接尾辞オプションは次の通りです。

    • カスタム コード トレーニング
    • 組み込みアルゴリズム トレーニング
    • 予測
  3. フィルタはジョブリストに適用され、フィルタの名前はフィルタ フィールドに表示されます。たとえば、カスタム コード トレーニングを選択した場合、タイプ: カスタム コード トレーニング フィルタは最上部に表示されて、ジョブリストをフィルタリングします。必要に応じて、複数のフィルタを追加できます。

ハイパーパラメータ トライアルを表示する

[ジョブの詳細] ページで、HyperTune トライアル表の各トライアルの指標を表示できます。この表が表示されるのは、ハイパーパラメータ調整を使用するジョブの場合だけです。指標を切り替えてトライアルを rmseTraining steps および learning_rate の高い順、あるいは低い順に表示することができます。

特定のトライアルのログを表示するには、more_vert アイコンをクリックして、さらに [ログを表示] をクリックします。

gcloud

コマンドラインで gcloud ai-platform jobs describe を使用して、ジョブの現在の状態の詳細を取得します。

gcloud ai-platform jobs describe job_name

gcloud ai-platform jobs list を使用すると、プロジェクトに関連付けられたジョブのリストを取得できます。このリストにはジョブのステータスや作成時間が記載されます。最も単純な形式のこのコマンドでは、プロジェクトで作成されたすべてのジョブが一覧表示されます。報告されるジョブの数を制限するように、リクエストを絞り込む必要があります。次の例から始められます。

--limit 引数を使用して、ジョブの数を制限します。この例では、5 つの最新ジョブが一覧表示されます。

gcloud ai-platform jobs list --limit=5

--filter 引数を使用して、指定された属性値を持つジョブのリストに限定します。ジョブ オブジェクトの 1 つ以上の属性をフィルタリングできます。コアジョブの属性だけでなく、TrainingInput オブジェクトなど、ジョブ内のオブジェクトもフィルタリングできます。

リストのフィルタリングの例:

  • 特定の時間の後に開始されたすべてのジョブを一覧表示します。この例では、2017 年 1 月 15 日の夜 7 時を使用しています。

    gcloud ai-platform jobs list --filter='createTime>2017-01-15T19:00'
    
  • 指定された文字列で始まる名前を持つ最新の 3 つのジョブを一覧表示します。たとえば、文字列は、特定のモデルのすべてのトレーニング ジョブに使用する名前を表します。この例では、'census' の後に、ジョブごとに増分されるインデックスのサフィックスを付けたジョブ識別子を持つモデルを使用しています。

    gcloud ai-platform jobs list --filter='jobId:census*' --limit=3
    
  • 名前が「rnn」で始まる失敗したすべてのジョブを一覧表示します。

    gcloud ai-platform jobs list --filter='jobId:rnn* AND state:FAILED'
    

filter オプションでサポートされる式の詳細については、gcloud コマンドのドキュメントをご覧ください。

Python

  1. プロジェクト名とジョブ名を 'projects/your_project_name/jobs/your_job_name' の形式で組み合わせて、ジョブ識別子の文字列を作成します。

    projectName = 'your_project_name'
    projectId = 'projects/{}'.format(projectName)
    jobName = 'your_job_name'
    jobId = '{}/jobs/{}'.format(projectId, jobName)
    
  2. projects.jobs.get へのリクエストを作成します。

    request = ml.projects().jobs().get(name=jobId)
    
  3. リクエストを実行します(この例では、execute 呼び出しを try ブロックに入れて例外をキャッチしています)。

    response = None
    
    try:
        response = request.execute()
    except errors.HttpError, err:
        # Something went wrong. Handle the exception in an appropriate
        #  way for your application.
    
  4. レスポンスをチェックして、HTTP エラーに関係なく、サービス呼び出しからデータが返されたことを確認します。

    if response == None:
        # Treat this condition as an error as best suits your
        # application.
    
  5. ステータス データを取得します。レスポンス オブジェクトは、Job リソースの該当するメンバーをすべて含む辞書です。これには完全な TrainingInput リソースと、TrainingOutput リソースの該当するメンバーが含まれます。次の例では、ジョブ ステータスとジョブで消費された ML ユニットの数を出力します。

    print('Job status for {}.{}:'.format(projectName, jobName))
    print('    state : {}'.format(response['state']))
    print('    consumedMLUnits : {}'.format(
        response['trainingOutput']['consumedMLUnits']))
    

トレーニング アプリケーションや AI Platform インフラストラクチャに問題がある場合、ジョブが失敗する可能性があります。Stackdriver Logging を使用してデバッグを開始できます。

リソース消費のモニタリング

トレーニング ジョブに関する次のリソース使用率グラフは [ジョブの詳細] ページにあります。

  • ジョブの CPU または GPU 使用率と、メモリ使用率の集計。これらは、マスター、ワーカー、そしてパラメータ サーバーごとに分類されます。
  • ジョブのネットワーク使用量(バイト/秒)。送信バイト数、受信バイト数を示す別個のグラフがあります。
  1. GCP Console で AI Platform の [ジョブ] ページに移動します。

    AI Platform のジョブページに移動

  2. リストでジョブを見つけます。

  3. リスト内のジョブ名をクリックして、[ジョブの詳細] ページを開きます。

  4. CPUGPU、あるいはネットワークのラベルが付いたタブを選択すると、関連するリソース使用率グラフが表示されます。

Stackdriver Monitoring を使って、トレーニング ジョブで使用するオンライン リソースに関する情報にアクセスすることもできます。AI Platform が指標を Stackdriver にエクスポートします。

AI Platform トレーニングの各指標タイプで「training」がその名前に含まれます。例: ml.googleapis.com/training/cpu/utilization あるいは ml.googleapis.com/training/accelerator/memory/utilization

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

scikit-learn と XGBoost の AI Platform