このページでは、Google Cloud コンソールまたは Vertex AI API を使用して、動画データセットから AutoML オブジェクト トラッキング モデルをトレーニングする方法について説明します。
AutoML モデルをトレーニングする
Google Cloud コンソール
Google Cloud コンソールの [Vertex AI] セクションで、[データセット] ページに移動します。
モデルのトレーニングに使用するデータセットの名前をクリックして、詳細ページを開きます。
[新しいモデルのトレーニング] をクリックします。
新しいモデルの表示名を入力します。
トレーニング データの分割方法を手動で設定する場合は、[ADVANCED OPTIONS] を開き、データ分割オプションを選択します詳細。
[続行] をクリックします。
モデルのトレーニング方法を選択します。
AutoML
は幅広いユースケースに適しています。Seq2seq+
はテストに適しています。このアーキテクチャはシンプルで、検索スペースが小さいため、AutoML
よりも速く収束する可能性が高くなります。Google でのテストによると、Seq2Seq+ は少ない時間予算で十分に機能し、サイズが 1 GB 未満のデータセットで高いパフォーマンスを発揮します。
[トレーニングを開始] をクリックします。
データのサイズ、複雑さ、トレーニング予算(指定された場合)に応じて、モデルのトレーニングに何時間もかかることがあります。このタブを閉じて、後で戻ることもできます。モデルのトレーニングが完了すると、メールが送られてきます。
トレーニング開始から数分後には、モデルのプロパティ情報からトレーニング ノード時間の見積もりを確認できます。トレーニングをキャンセルした場合、現在のプロダクトに料金はかかりません。
API
お使いの言語または環境に応じて、以下のタブを選択してください。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: データセットが配置され、モデルが格納されるリージョン。例:
us-central1
- PROJECT: 実際のプロジェクト ID。
- MODEL_DISPLAY_NAME: 新しくトレーニングされたモデルの表示名。
- DATASET_ID: トレーニング データセットの ID。
-
filterSplit
オブジェクトは省略可です。データ分割の制御に使用します。データ分割の制御については、REST を使用したデータ分割の制御をご覧ください。 - PROJECT_NUMBER: プロジェクトに自動生成されたプロジェクト番号
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
リクエストの本文(JSON):
{ "displayName": "MODE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": {}, "modelToUpload": {"displayName": "MODE_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", "filterSplit": { "trainingFilter": "labels.ml_use = training", "validationFilter": "labels.ml_use = -", "testFilter": "labels.ml_use = test" } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/2307109646608891904", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Vertex AI SDK for Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Vertex AI SDK for Python API のリファレンス ドキュメントをご覧ください。
REST を使用してデータ分割を制御する
トレーニング セット、検証セット、テストセットの間でトレーニング データをどのように分割するかを制御できます。Vertex AI API を使用する場合は、Split
オブジェクトを使用してデータの分割を決定します。トレーニング データの分割に使用できるオブジェクト タイプの一つとして、Split
オブジェクトを InputConfig
オブジェクトに含めることができます。選択できるメソッドは 1 つのみです。
-
FractionSplit
:- TRAINING_FRACTION: トレーニング セットに使用されるトレーニング データの割合。
- VALIDATION_FRACTION: 検証セットに使用されるトレーニング データの割合。動画データに対しては使用されません。
- TEST_FRACTION: テストセットに使用されるトレーニング データの割合。
いずれか一つでも指定する場合は、すべてを指定する必要があります。割合の合計が 1.0 になるようにしてください。割合のデフォルト値は、データ型によって異なります。詳細については、こちらをご覧ください。
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
: - TRAINING_FILTER: このフィルタに一致するデータ項目がトレーニング セットに使用されます。
- VALIDATION_FILTER: このフィルタに一致するデータ項目が検証セットに使用されます。動画データの場合は "-" にする必要があります。
- TEST_FILTER: このフィルタに一致するデータ項目がテストセットに使用されます。
これらのフィルタは、ml_use
ラベル、またはデータに適用された任意のラベルとともに使用できます。ml-use ラベルとその他のラベルを使用してデータをフィルタリングする方法をご確認ください。
次の例は、検証セットを含む、ml_use
ラベルを持つ filterSplit
オブジェクトの使用方法を示しています。
"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }