このページでは、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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。 詳細については、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" }