モデルとジョブの管理

モデルをトレーニングしてデプロイし、予測を取得するというプロセスの間、Google Cloud Platform 上のリソースを管理することが必要です。このページでは、モデル、バージョン、ジョブを取り扱う方法を説明します。

AI Platform Training リソースに名前を付ける

作成するすべてのジョブに名前を指定する必要があります。命名規則はこの 3 種類のリソースすべてに共通で、次のとおりです。

  • 使用できるのは英数字とアンダースコアのみです。
  • 大文字と小文字が区別されます。
  • 先頭は英文字でなければなりません。
  • 長さは 128 文字以下でなければなりません。
  • その名前空間(モデルとジョブの場合はプロジェクト、バージョンの場合は親モデル)内で一意でなければなりません。

リソースのリスト(ジョブログなど)の中で区別しやすい名前を作成する必要があります。次の方法を参考にしてください。

  • 同じモデルのすべてのジョブに、そのモデルの名前とジョブ インデックスを使用した名前を付けます(ジョブ作成時のタイムスタンプが役立ちます)。
  • モデルで使用されるデータセットで簡単にモデルを特定できるように名前を付けます(たとえば、通常は my_new_model よりも census_wide_deep の方が特定しやすくなります)。
  • バージョンを簡単に読み取れることが最善です。タイムスタンプなどの一意の値を使用する代わりに、単純なバージョン指定子(v1 など)を使用することをおすすめします。

ジョブの管理

AI Platform Training がサポートするジョブには、トレーニングとバッチ予測の 2 種類があります。それぞれの詳細は異なりますが、基本的なオペレーションは同じです。

次の表に、ジョブのオペレーションの要約と、その実行に使用できるインターフェースの一覧を示します。

オペレーション インターフェース メモ
create projects.jobs.create

ジョブの作成の詳細については、トレーニングおよびバッチ予測のガイドをご覧ください。

gcloud ai-platform jobs submit training

gcloud ai-platform jobs submit prediction

コンソールからは実行できません。
キャンセル projects.jobs.cancel

実行中のジョブをキャンセルします。

gcloud ai-platform jobs cancel

[ジョブの詳細] ページでキャンセルします。
get projects.jobs.get 取得できる情報については、Jobs リソースのリファレンスをご覧ください。

gcloud ai-platform jobs describe

[ジョブの詳細] ページ([ジョブ] リストにあるリンクから移動)。
list projects.jobs.list 過去 90 日間に作成されたジョブのみが表示されます。

gcloud ai-platform jobs list

[ジョブ] リスト

非同期オペレーションの処理

AI Platform Training のリソース管理オペレーションのほとんどは、可能な限り短時間で完了し、完全なレスポンスが返されます。ただし、2 種類の非同期オペレーションがあることを理解しておく必要があります。その 2 種類とは、ジョブと長時間実行オペレーションです。

非同期オペレーションを開始するときに、いつ完了するかを知りたいのは当然のことです。ステータスを取得するプロセスは、ジョブと長時間実行オペレーションで異なります。

ジョブのステータスを取得する

projects.jobs.get を使用すると、ジョブのステータスを取得できます。この方法は、gcloud ai-platform jobs describe として、Google Cloud コンソールの [ジョブ] ページでも使用できます。ステータスの取得方法に関係なく、ジョブリソースのメンバーに基づいて情報が返されます。ジョブが完了しているといえるのは、レスポンスの Job.state が次の値のいずれかに等しいときです。

  • SUCCEEDED
  • FAILED
  • CANCELLED

長時間実行オペレーションのステータスの取得

AI Platform Training の長時間実行オペレーションは、次の 3 つがあります。

  • バージョンの作成
  • モデルの削除
  • バージョンの削除

長時間実行オペレーションのうち、完了までにかなりの時間がかかるのはバージョンの作成だけです。モデルやバージョンの削除は、一般的にリアルタイムに近い速さで完了します。

Google Cloud CLI または Google Cloud コンソールでバージョンを作成すると、オペレーションの完了がインターフェースで自動的に通知されます。API を使用してバージョンを作成する場合は、次の方法でオペレーションのステータスを自分で調べます。

  1. サービスによって割り当てられたオペレーション名を取得します。これは、projects.models.versions.create の呼び出しに対するレスポンスの中の Operation オブジェクトから取得します。名前値のキーは "name" です。

  2. projects.operations.get を使用して、オペレーションのステータスを定期的に問い合わせます。

    1. 最初のステップで取得したオペレーション名を使用して、次の形式の名前文字列を作成します。

      'projects/my_project/operations/operation_name'
      

      レスポンス メッセージの中に Operation オブジェクトがあります。

    2. "done" キーに対応する値を取得します。これは、オペレーション完了を示すブール値です。true の場合はオペレーションが完了しています。

  3. 完了すると、Operation オブジェクトの中に次の 2 つのキーのいずれかが存在するようになります。

    • "response" キーが存在する場合、オペレーションは成功しています。その値は google.protobuf.Empty になるはずです。AI Platform Training の長時間実行オペレーションはレスポンス オブジェクトを持たないためです。

    • "error" キーが存在する場合は、エラーが発生しています。値は Status オブジェクトです。

次のステップ