モデルをトレーニングしてデプロイし、予測を取得するというプロセスの間、Google Cloud Platform 上のリソースを管理することが必要です。このページでは、モデル、バージョン、ジョブを取り扱う方法を説明します。
AI Platform Training リソースに名前を付ける
作成するすべてのジョブに名前を指定する必要があります。命名規則はこの 3 種類のリソースすべてに共通で、次のとおりです。
- 使用できるのは英数字とアンダースコアのみです。
- 大文字と小文字が区別されます。
- 先頭は英文字でなければなりません。
- 長さは 128 文字以下でなければなりません。
- その名前空間(モデルとジョブの場合はプロジェクト、バージョンの場合は親モデル)内で一意でなければなりません。
リソースのリスト(ジョブログなど)の中で区別しやすい名前を作成する必要があります。次の方法を参考にしてください。
- 同じモデルのすべてのジョブに、そのモデルの名前とジョブ インデックスを使用した名前を付けます(ジョブ作成時のタイムスタンプが役立ちます)。
- モデルで使用されるデータセットで簡単にモデルを特定できるように名前を付けます(たとえば、通常は
my_new_model
よりもcensus_wide_deep
の方が特定しやすくなります)。 - バージョンを簡単に読み取れることが最善です。タイムスタンプなどの一意の値を使用する代わりに、単純なバージョン指定子(
v1
など)を使用することをおすすめします。
ジョブの管理
AI Platform Training がサポートするジョブには、トレーニングとバッチ予測の 2 種類があります。それぞれの詳細は異なりますが、基本的なオペレーションは同じです。
次の表に、ジョブのオペレーションの要約と、その実行に使用できるインターフェースの一覧を示します。
オペレーション | インターフェース | メモ |
---|---|---|
create |
projects.jobs.create
|
|
コンソールからは実行できません。 | ||
キャンセル |
projects.jobs.cancel
|
実行中のジョブをキャンセルします。 |
[ジョブの詳細] ページでキャンセルします。 | ||
get |
projects.jobs.get
|
取得できる情報については、Jobs リソースのリファレンスをご覧ください。 |
[ジョブの詳細] ページ([ジョブ] リストにあるリンクから移動)。 | ||
list |
projects.jobs.list
|
過去 90 日間に作成されたジョブのみが表示されます。 |
[ジョブ] リスト。 |
非同期オペレーションの処理
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 を使用してバージョンを作成する場合は、次の方法でオペレーションのステータスを自分で調べます。
サービスによって割り当てられたオペレーション名を取得します。これは、projects.models.versions.create の呼び出しに対するレスポンスの中の Operation オブジェクトから取得します。名前値のキーは
"name"
です。projects.operations.get を使用して、オペレーションのステータスを定期的に問い合わせます。
最初のステップで取得したオペレーション名を使用して、次の形式の名前文字列を作成します。
'projects/my_project/operations/operation_name'
レスポンス メッセージの中に Operation オブジェクトがあります。
"done"
キーに対応する値を取得します。これは、オペレーション完了を示すブール値です。true の場合はオペレーションが完了しています。
完了すると、Operation オブジェクトの中に次の 2 つのキーのいずれかが存在するようになります。
"response"
キーが存在する場合、オペレーションは成功しています。その値は google.protobuf.Empty になるはずです。AI Platform Training の長時間実行オペレーションはレスポンス オブジェクトを持たないためです。"error"
キーが存在する場合は、エラーが発生しています。値は Status オブジェクトです。
次のステップ
- モデルをトレーニングする。
- ラベルを使用してリソースを整理する方法を学ぶ。