Model Garden で利用可能なモデルの一部は、独自の Google Cloud プロジェクトにセルフデプロイして、バッチ予測の提供に使用できます。バッチ予測を使用すると、レイテンシの影響を受けない複数のテキストのみのプロンプトをモデルで効率的に処理できます。
入力を準備する
始める前に、BigQuery テーブルまたは Cloud Storage の JSONL ファイルとして入力を準備します。両方のソースの入力は、次の例に示すように、OpenAI API スキーマの JSON 形式に従っている必要があります。
{"body": {"messages": [{"role": "user", "content": "Give me a recipe for banana bread"}], "max_tokens": 1000}}
BigQuery
BigQuery 入力テーブルは、次のスキーマに準拠している必要があります。
列名 | 説明 |
---|---|
custom_id | 入力と出力を照合するための各リクエストの ID。 |
method | リクエスト メソッド。 |
URL | リクエスト エンドポイント。 |
body(JSON) | 入力プロンプト。 |
- 入力テーブルには他の列を含めることができます。これらの列はバッチジョブで無視され、出力テーブルに直接渡されます。
- バッチ予測ジョブは、バッチ予測出力用に response(JSON) と id の 2 つの列名を予約します。入力テーブルではこれらの列を使用しないでください。
- method 列と url 列は削除され、出力テーブルに含まれません。
Cloud Storage
Cloud Storage の場合、入力ファイルは Cloud Storage バケットにある JSONL ファイルである必要があります。
モデルに必要なリソースを取得する
モデルを選択し、そのリソース要件をクエリします。必要なリソースは、レスポンスの dedicatedResources
フィールドに表示されます。このフィールドは、バッチ予測ジョブの構成で指定します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PUBLISHER: モデル パブリッシャー(
meta
、google
、mistral-ai
、deepseek-ai
など)。 - PUBLISHER_MODEL_ID: モデルのパブリッシャーのモデル ID(
llama3_1
など)。 - VERSION_ID: モデルのパブリッシャー バージョン ID(
llama-3.1-8b-instruct
など)。
HTTP メソッドと URL:
GET "https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
""https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri ""https://us-central1-aiplatform.googleapis.com/ui/publishers/PUBLISHER/models/PUBLISHER_MODEL_ID@VERSION_ID" | jq '.supportedActions.multiDeployVertex'" | Select-Object -Expand Content
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
バッチ予測をリクエストする
BigQuery または Cloud Storage からの入力を使用して、セルフデプロイされた Model Garden モデルに対してバッチ予測を行います。予測の出力先として、BigQuery テーブルまたは Cloud Storage バケット内の JSONL ファイルのいずれかを選択できます。
BigQuery
BigQuery 入力テーブル、モデル、出力先を指定します。 バッチ予測ジョブとテーブルは同じリージョンに存在する必要があります。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: Model Garden のセルフデプロイ モデルをサポートするリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL: チューニングするモデルの名前(
llama-3.1-8b-instruct
など)。 - PUBLISHER: モデル パブリッシャー(
meta
、google
、mistral-ai
、deepseek-ai
など)。 - INPUT_URI: バッチ予測入力が配置されている BigQuery テーブル(
myproject.mydataset.input_table
など)。 - OUTPUT_FORMAT: BigQuery テーブルに出力するには、
bigquery
を指定します。Cloud Storage バケットに出力するには、jsonl
を指定します。 - DESTINATION: BigQuery の場合は、
bigqueryDestination
を指定します。Cloud Storage の場合は、gcsDestination
を指定します。 - OUTPUT_URI_FIELD_NAME: BigQuery の場合は、
outputUri
を指定します。Cloud Storage の場合は、outputUriPrefix
を指定します。 - OUTPUT_URI: BigQuery の場合は、テーブルの場所(
myproject.mydataset.output_result
など)を指定します。Cloud Storage の場合は、バケットとフォルダの場所(gs://mybucket/path/to/outputfile
など)を指定します。 - MACHINE_TYPE: モデルにデプロイするリソースのセットを定義します(例:
g2-standard-4
)。 - ACC_TYPE: 集約型のワークロードを扱う際のパフォーマンス向上に役立つように、バッチ予測ジョブに追加するアクセラレータを指定します(例:
NVIDIA_L4
)。 - ACC_COUNT: バッチ予測ジョブで使用するアクセラレータの数。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
リクエストの本文(JSON):
'{ "displayName": "JOB_NAME", "model": "publishers/PUBLISHER/models/MODEL", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } }, "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACC_TYPE", "accelerator_count": ACC_COUNT, }, "starting_replica_count": 1, }, }'
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth 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_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Cloud Storage
JSONL ファイルの Cloud Storage のロケーション、モデル、出力場所を指定します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: Model Garden のセルフデプロイ モデルをサポートするリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL: チューニングするモデルの名前(
llama-3.1-8b-instruct
など)。 - PUBLISHER: モデル パブリッシャー(
meta
、google
、mistral-ai
、deepseek-ai
など)。 - INPUT_URI: JSONL バッチ予測入力の Cloud Storage の場所(
gs://bucketname/path/to/jsonl
など)。 - OUTPUT_FORMAT: BigQuery テーブルに出力するには、
bigquery
を指定します。Cloud Storage バケットに出力するには、jsonl
を指定します。 - DESTINATION: BigQuery の場合は、
bigqueryDestination
を指定します。Cloud Storage の場合は、gcsDestination
を指定します。 - OUTPUT_URI_FIELD_NAME: BigQuery の場合は、
outputUri
を指定します。Cloud Storage の場合は、outputUriPrefix
を指定します。 - OUTPUT_URI: BigQuery の場合は、テーブルの場所(
myproject.mydataset.output_result
など)を指定します。Cloud Storage の場合は、バケットとフォルダの場所(gs://mybucket/path/to/outputfile
など)を指定します。 - MACHINE_TYPE: モデルにデプロイするリソースのセットを定義します(例:
g2-standard-4
)。 - ACC_TYPE: 集約型のワークロードを扱う際のパフォーマンス向上に役立つように、バッチ予測ジョブに追加するアクセラレータを指定します(例:
NVIDIA_L4
)。 - ACC_COUNT: バッチ予測ジョブで使用するアクセラレータの数。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
リクエストの本文(JSON):
'{ "displayName": "JOB_NAME", "model": "publishers/PUBLISHER/models/MODEL", "inputConfig": { "instancesFormat":"jsonl", "gcsDestination":{ "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } }, "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACC_TYPE", "accelerator_count": ACC_COUNT, }, "starting_replica_count": 1, }, }'
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth 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_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
バッチ予測ジョブのステータスを取得する
バッチ予測ジョブの状態を取得して、正常に完了したかどうかを確認します。ジョブの長さは、送信した入力アイテムの数によって異なります。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- LOCATION: バッチジョブが配置されているリージョン。
- JOB_ID: ジョブの作成時に返されたバッチジョブ ID。
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/JOB_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
出力を取得する
バッチ予測ジョブが完了したら、指定したロケーションから出力を取得します。
- BigQuery の場合、出力は宛先 BigQuery テーブルの response(JSON) 列にあります。
- Cloud Storage の場合、出力は出力 Cloud Storage のロケーションに JSONL ファイルとして保存されます。
サポートされているモデル
Vertex AI は、次のセルフデプロイ モデルのバッチ予測をサポートしています。
- Llama
publishers/meta/models/llama3_1@llama-3.1-8b-instruct
publishers/meta/models/llama3_1@llama-3.1-70b-instruct
publishers/meta/models/llama3_1@llama-3.1-405b-instruct-fp8
publishers/meta/models/llama3-2@llama-3.2-1b-instruct
publishers/meta/models/llama3-2@llama-3.2-3b-instruct
publishers/meta/models/llama3-2@llama-3.2-90b-vision-instruct
- Gemma
publishers/google/models/gemma@gemma-1.1-2b-it
publishers/google/models/gemma@gemma-7b-it
publishers/google/models/gemma@gemma-1.1-7b-it
publishers/google/models/gemma@gemma-2b-it
publishers/google/models/gemma2@gemma-2-2b-it
publishers/google/models/gemma2@gemma-2-9b-it
publishers/google/models/gemma2@gemma-2-27b-it
- Mistral
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.2
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.3
publishers/mistral-ai/models/mistral@mistral-7b-instruct-v0.1
publishers/mistral-ai/models/mistral@mistral-nemo-instruct-2407
- Deepseek
publishers/deepseek-ai/models/deepseek-r1@deepseek-r1-distill-llama-8b