Vertex AI API を使用した AutoML Edge モデルのトレーニング

コンソールから直接、またはプログラムでトレーニング パイプラインを作成することによって、API や、Vertex AI クライアント ライブラリの 1 つを使用して AutoML モデルを作成します。

このモデルは、コンソールまたは API から提供される準備済みのデータセットを使用して作成されます。Vertex AI API は、データセットの項目を使用してモデルのトレーニングとテストを行い、モデルのパフォーマンスを評価します。評価結果を確認して、必要に応じてトレーニング データセットを調整し、改善されたデータセットで新しいトレーニング パイプラインを作成します。

モデルのトレーニングが完了するまで数時間かかることがあります。Vertex AI API を使用すると、トレーニングのステータスを取得できます。

AutoML Edge トレーニング パイプラインを作成する

代表的なトレーニング アイテムのセットを含むデータセットを用意したら、AutoML Edge トレーニング パイプラインを作成します。

データタイプを選択します。

画像

目標に応じて以下のタブを選択してください。

分類

トレーニング時に、特定のユースケースで必要な AutoML Edge モデルのタイプを選択できます。

  • 低レイテンシ(MOBILE_TF_LOW_LATENCY_1
  • 一般的な用途(MOBILE_TF_VERSATILE_1
  • 予測品質の向上(MOBILE_TF_HIGH_ACCURACY_1

お使いの言語または環境に応じて、以下のタブを選択してください。

REST とコマンドライン

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: データセットが配置され、モデルが作成されるリージョン。例: us-central1
  • PROJECT: プロジェクト ID。
  • TRAININGPIPELINE_DISPLAYNAME: 必須。trainingPipeline の表示名。
  • DATASET_ID: トレーニングに使用するデータセットの ID 番号。
  • fractionSplit: 省略可。ML が使用する可能性のあるデータ分割オプションの 1 つ。fractionSplit の場合、値の合計 1 でなければなりません。例:
    • {"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
  • MODEL_DISPLAYNAME*: TrainingPipeline によってアップロード(作成)されたモデルの表示名。
  • MODEL_DESCRIPTION*: モデルの説明。
  • modelToUpload.labels*: モデルを整理するための任意の Key-Value ペアのセット。例:
    • "env": "prod"
    • tier: backend
  • EDGE_MODELTYPE: トレーニングする Edge モデルのタイプ。次のオプションがあります。
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET: 実際のトレーニング料金はこの値以下になります。Edge モデルでは、予算は 1,000~100,000 ミリノード時間(上限、下限を含む)にする必要があります。
  • PROJECT_NUMBER: プロジェクトのプロジェクト番号。

HTTP メソッドと URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines

JSON 本文のリクエスト:

{
  "displayName": "TRAININGPIPELINE_DISPLAYNAME",
  "inputDataConfig": {
    "datasetId": "DATASET_ID",
    "fractionSplit": {
      "trainingFraction": "DECIMAL",
      "validationFraction": "DECIMAL",
      "testFraction": "DECIMAL"
    }
  },
  "modelToUpload": {
    "displayName": "MODEL_DISPLAYNAME",
    "description": "MODEL_DESCRIPTION",
    "labels": {
      "KEY": "VALUE"
    }
  },
  "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml",
  "trainingTaskInputs": {
    "multiLabel": "false",
    "modelType": ["EDGE_MODELTYPE"],
    "budgetMilliNodeHours": NODE_HOUR_BUDGET
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content

レスポンスには、仕様と TRAININGPIPELINE_ID に関する情報が含まれています。