モデルをトレーニングしてデプロイし、予測を取得するというプロセスの間、Google Cloud Platform 上のリソースを管理することが必要です。このページでは、モデル、バージョン、ジョブを取り扱う方法を説明します。
AI Platform Prediction リソースに名前を付ける
作成するすべてのジョブに名前を指定する必要があります。命名規則はこの 3 種類のリソースすべてに共通で、次のとおりです。
- 使用できるのは英数字とアンダースコアのみです。
- 大文字と小文字が区別されます。
- 先頭は英文字でなければなりません。
- 長さは 128 文字以下でなければなりません。
- その名前空間(モデルとジョブの場合はプロジェクト、バージョンの場合は親モデル)内で一意でなければなりません。
リソースのリスト(ジョブログなど)の中で区別しやすい名前を作成する必要があります。次の方法を参考にしてください。
- 同じモデルのすべてのジョブに、そのモデルの名前とジョブ インデックスを使用した名前を付けます(ジョブ作成時のタイムスタンプが役立ちます)。
- モデルで使用されるデータセットで簡単にモデルを特定できるように名前を付けます(たとえば、通常は
my_new_model
よりもcensus_wide_deep
の方が特定しやすくなります)。 - バージョンを簡単に読み取れることが最善です。タイムスタンプなどの一意の値を使用する代わりに、単純なバージョン指定子(
v1
など)を使用することをおすすめします。
モデルの管理
AI Platform Prediction のモデルリソースは、機械学習モデルの個々の実装の論理コンテナです。これは、取り扱いが最も単純なリソースといえます。複雑なオペレーションはなく、割り当てや保守のための追加リソースも必要としないからです。
次の表に、モデルのオペレーションの要約と、その実行に使用できるインターフェースの一覧を示します。
オペレーション | インターフェース | メモ |
---|---|---|
create |
projects.models.create
|
|
gcloud
ai-platform models create
|
||
AI Platform Prediction の [モデル] ページの [モデルの作成]。 | ||
delete |
projects.models.delete
|
モデルの削除は長時間実行オペレーションです。 モデルを削除できるのは、そのモデルにバージョンが関連付けられていない場合に限られます。 |
gcloud
ai-platform models delete
|
||
[モデル] リストまたは [モデルの詳細] ページの [削除]。 | ||
get |
projects.models.get
|
取得できる情報については、 |
gcloud
ai-platform models describe
|
||
[モデルの詳細] ページ([モデル] リストにあるリンクから移動)。 | ||
list |
projects.models.list
|
|
gcloud
ai-platform models list
|
||
AI Platform Prediction の [モデル] ページ。 |
バージョンの管理
バージョンは、モデルの反復を具体的に表すものです。モデル バージョンの中核は、TensorFlow SavedModel です。
次の表に、バージョンのオペレーションの要約と、その実行に使用できるインターフェースの一覧を示します。
オペレーション | インターフェース | メモ |
---|---|---|
create |
projects.models.versions.create
|
バージョンの作成とは、SavedModel を AI Platform Prediction にデプロイすることです。詳細については、モデルデプロイ ガイドをご覧ください。 |
gcloud
ai-platform versions create
|
||
[モデルの詳細] ページ([モデル] リストにあるリンクから移動)の [バージョンを作成]。 | ||
delete |
projects.models.versions.delete
|
バージョンの削除は長時間実行オペレーションです。 モデルのデフォルト バージョンは、それがそのモデルに割り当てられた唯一のバージョンでない限り、削除することはできません。 |
gcloud
ai-platform versions delete
|
||
[モデルの詳細] ページの [バージョン] リストの [削除]。 | ||
get |
projects.models.versions.get
|
取得できる情報については、 |
gcloud
ai-platform versions describe
|
||
[バージョンの詳細] ページ([モデルの詳細] ページの [バージョン] リストにあるリンクから移動)。 | ||
list |
projects.models.versions.list
|
|
gcloud
ai-platform versions list
|
||
[モデルの詳細] ページの [バージョン] リスト。 | ||
setDefault |
projects.models.versions.setDefault
|
これは、モデルに新しいデフォルト バージョンを割り当てる唯一の方法です。最初のバージョンを作成した後は、新しいバージョンを作成してもそれがデフォルトになることはありません。 |
gcloud
ai-platform versions set-default
|
||
[モデルの詳細] ページの [バージョン] リストの [デフォルトに設定]。 |
ジョブの管理
AI Platform Prediction がサポートするジョブには、トレーニングとバッチ予測の 2 種類があります。それぞれの詳細は異なりますが、基本的なオペレーションは同じです。
次の表に、ジョブのオペレーションの要約と、その実行に使用できるインターフェースの一覧を示します。
オペレーション | インターフェース | メモ |
---|---|---|
create |
projects.jobs.create
|
|
コンソールからは実行できません。 | ||
キャンセル |
projects.jobs.cancel
|
実行中のジョブをキャンセルします。 |
[ジョブの詳細] ページでキャンセルします。 | ||
get |
projects.jobs.get
|
取得できる情報については、Jobs リソースのリファレンスをご覧ください。 |
[ジョブの詳細] ページ([ジョブ] リストにあるリンクから移動)。 | ||
list |
projects.jobs.list
|
過去 90 日間に作成されたジョブのみが表示されます。 |
[ジョブ] リスト。 |
非同期オペレーションの処理
AI Platform Prediction のリソース管理オペレーションのほとんどは、可能な限り短時間で完了し、完全なレスポンスが返されます。ただし、2 種類の非同期オペレーションがあることを理解しておく必要があります。その 2 種類とは、ジョブと長時間実行オペレーションです。
非同期オペレーションを開始するときに、いつ完了するかを知りたいのは当然のことです。ステータスを取得するプロセスは、ジョブと長時間実行オペレーションで異なります。
ジョブのステータスを取得する
projects.jobs.get を使用すると、ジョブのステータスを取得できます。この方法は、gcloud ai-platform jobs describe
として、Google Cloud コンソールの [ジョブ] ページでも使用できます。ステータスの取得方法に関係なく、ジョブリソースのメンバーに基づいて情報が返されます。ジョブが完了しているといえるのは、レスポンスの Job.state
が次の値のいずれかに等しいときです。
SUCCEEDED
FAILED
CANCELLED
長時間実行オペレーションのステータスの取得
AI Platform Prediction の長時間実行オペレーションには、次の 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 Prediction の長時間実行オペレーションがレスポンス オブジェクトを持たないためです。"error"
キーが存在する場合は、エラーが発生しています。値は Status オブジェクトです。
次のステップ
- モデルをトレーニングする。
- ラベルを使用してリソースを整理する方法を学ぶ。