バッチ レスポンスを取得すると、レイテンシの影響を受けない大量のエンベディング リクエストを効率的に送信できます。オンライン レスポンスでは一度に 1 つの入力リクエストしか行えませんが、バッチ レスポンスでは 1 つのバッチ リクエストで多くのエンベディング リクエストを送信できます。Gemini Enterprise Agent Platform の表形式データに対してバッチ推論を行う場合と同様に、出力先を決めて入力を追加すると、その出力先に非同期でレスポンスが返されます。
Gemini エンベディングのバッチ予測
Gemini エンベディング バッチ予測は Gemini バッチ推論に基づいて構築されており、入力と出力に更新されたスキーマを使用します。
- 入力と出力のストレージ: 入力と出力は、Cloud Storage に保存されている JSON Lines(JSONL)ファイルとしてフォーマットする必要があります。(BigQuery テーブルは Gemini エンベディング モデルではサポートされていません)。
- ジョブの上限: 各バッチジョブは、最大 1,000,000 行と最大 1 GB の入力ファイルサイズをサポートします。
- 割り当てとキューイング: 事前定義された同時実行割り当てはありません。バッチジョブはリソースの可用性に基づいて動的にスケジュールされ、最大 72 時間キューに登録されたままになる可能性があります。目標のターンアラウンド時間は 24 時間未満です。
サポートされているモデルと地域
次の表に、バッチ推論でサポートされている Gemini エンベディング モデルとロケーションを示します。
| モデル | モデル ID | サポートされているロケーション |
|---|---|---|
| Gemini エンベディング 001 | gemini-embedding-001 |
us-central1、us-east1、us-east4、us-west1、us-west4、europe-west1、europe-west4 |
| Gemini Embedding 2 | gemini-embedding-2 |
グローバル(global)、米国マルチリージョン(us)、EU マルチリージョン(eu) |
リージョン エンドポイントとグローバル エンドポイントの詳細については、ロケーションをご覧ください。
入力を準備する
バッチ入力データを JSONL ファイルとして Cloud Storage にアップロードします。各行は "request" フィールドを含む単一の JSON オブジェクトです。
Gemini エンベディング 001
gemini-embedding-001 モデルは、各行の embed_content_config 内の task_type 構成と title 構成をサポートしています。
{"key": "id_1", "request": {"content": {"parts": [{"text": "Hello World"}]}, "embed_content_config": {"output_dimensionality": 768, "title": "some_title", "task_type": "RETRIEVAL_DOCUMENT"}}}
{"key": "id_2", "request": {"content": {"parts": [{"text": "Hello World again"}]}, "embed_content_config": {"output_dimensionality": 768, "title": "some_title_2", "task_type": "RETRIEVAL_DOCUMENT"}}}
Gemini Embedding 2
gemini-embedding-2 モデルは、テキスト、画像、動画、音声の入力をサポートしています。gemini-embedding-001 とは異なり、gemini-embedding-2 では、タスクのタイプとタイトルがプロンプト テキスト内に直接インライン化されることが想定されています。embed_content_config の内部で task_type または title が渡されると、それらは暗黙的に無視されます(オンライン API の動作と一致します)。
マルチモーダル入力の制約とトークンとファイルの上限については、マルチモーダル エンベディング API の上限をご覧ください。
{"key": "id_1", "request": {"content": {"parts": [{"text": "title: sample | text: Hello World"}]}, "embed_content_config": {"output_dimensionality": 768}}}
{"key": "id_2", "request": {"content": {"parts": [{"fileData": {"fileUri": "gs://cloud-samples-data/generative-ai/image/benchmark.jpeg", "mimeType": "image/jpeg"}}]}, "embed_content_config": {"output_dimensionality": 768}}}
バッチ レスポンスをリクエストする
送信する入力アイテムの数によっては、バッチジョブが完了するまでに時間がかかることがあります。バッチ エンベディング ジョブは、REST API または Google Gen AI SDK を使用して送信できます。
REST
REST API を使用してバッチ エンベディング ジョブを作成するには、batchPredictionJobs エンドポイントに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- ENDPOINT_PREFIX: リージョンまたはマルチリージョンの接頭辞の後に
-を付けます(例:us-central1-、us-、eu-)。globalエンドポイントを使用する場合は、空白(aiplatform.googleapis.com)のままにします。 - PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。
- LOCATION: モデルでサポートされているロケーション(
gemini-embedding-001の場合はus-central1、gemini-embedding-2の場合はglobal、us、euなど)。 - BP_JOB_NAME: バッチジョブの表示名。
- MODEL_ID: パブリッシャー モデル ID(
gemini-embedding-001またはgemini-embedding-2)。 - INPUT_URI: 入力 JSONL ファイルの Cloud Storage URI(
gs://my-bucket/path/to/input.jsonlなど)。 - OUTPUT_URI_PREFIX: 出力 JSONL ファイルが書き込まれる Cloud Storage バケットとディレクトリ接頭辞(例:
gs://my-bucket/path/to/output/)。
HTTP メソッドと URL:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
リクエストの本文(JSON):
{
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"INPUT_URI"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF'
{
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"INPUT_URI"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
}
}
EOFその後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
PowerShell
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@'
{
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"INPUT_URI"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
}
}
'@ | Out-File -FilePath request.json -Encoding utf8その後、次のコマンドを実行して REST リクエストを送信します。
$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://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID",
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"INPUT_URI"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
},
"state": "JOB_STATE_PENDING",
"createTime": "2026-09-15T19:33:59.153782Z",
"updateTime": "2026-09-15T19:33:59.153782Z",
"modelVersionId": "1"
}
curl コマンドの例
レスポンスには、バッチジョブの一意の識別子(BATCH_JOB_ID)が含まれます。curl を使用して、バッチジョブを送信し、そのステータスをポーリングできます。
バッチジョブを作成します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs"
ジョブのステータスをポーリングする:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/BATCH_JOB_ID"
Python
インストール
pip install --upgrade google-genai
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Google Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
Go をインストールまたは更新する方法について学びます。
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Google Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
インストール
npm install @google/genai
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Google Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
Java をインストールまたは更新する方法について学びます。
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Google Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
バッチ出力を取得する
バッチ推論タスクが完了すると、出力 JSONL ファイルは、リクエストで指定した Cloud Storage 出力ディレクトリに保存されます。
{"key": "id_1", "request": {...}, "response": {"tokenCount": "2", "embedding": {"values": [-0.015, 0.024, ...]}}}
{"key": "id_2", "request": {...}, "response": {"tokenCount": "3", "embedding": {"values": [-0.075, 0.031, ...]}}}
参考情報
gemini-embedding-001で使用可能な構成オプションについては、テキスト エンベディング ガイドをご覧ください。gemini-embedding-2で使用可能な構成オプションについては、マルチモーダル エンベディング ガイドをご覧ください。- Gemini バッチ推論の機能と割り当ての詳細については、Gemini を使用したバッチ推論をご覧ください。
以前のエンベディング バッチ予測
このセクションでは、Gemini エンベディング モデルとは異なるアーキテクチャで構築された、以前のテキスト エンベディング モデル(text-embedding-004、text-embedding-005、text-multilingual-embedding-002)のバッチ推論ワークフローについて説明します。
バッチ推論をサポートするテキスト エンベディング モデル
以前のテキスト エンベディング モデルのすべての安定版は、バッチ推論をサポートしており、本番環境で完全にサポートされています。エンベディング モデルの一覧については、エンベディング モデルとバージョンをご覧ください。
以前のモデルの入力を準備する
以前のバッチ リクエストの入力は、BigQuery テーブルまたは Cloud Storage の JSON Lines(JSONL)ファイルとして保存可能なプロンプトのリストです。1 つのリクエストには最大 30,000 件のプロンプトを含めることができます。
JSONL の例
このセクションでは、以前のモデルの JSONL の入出力をフォーマットする方法の例を示します。
JSONL 入力の例
{"content":"Give a short description of a machine learning model:"}
{"content":"Best recipe for banana bread:"}
JSONL 出力の例
{"instance":{"content":"Give..."},"predictions": [{"embeddings":{"statistics":{"token_count":8,"truncated":false},"values":[0.2,....]}}],"status":""}
{"instance":{"content":"Best..."},"predictions": [{"embeddings":{"statistics":{"token_count":3,"truncated":false},"values":[0.1,....]}}],"status":""}
BigQuery の例
このセクションでは、以前のモデルの BigQuery の入力と出力をフォーマットする方法の例を示します。
BigQuery 入力の例
この例は、単一列の BigQuery テーブルを示しています。
| コンテンツ |
|---|
| 「機械学習モデルについて簡単に説明してください」 |
| 「バナナブレッドのベストレシピ」 |
BigQuery 出力の例
| コンテンツ | 予測 | ステータス |
|---|---|---|
| 「ML モデルについて簡単に説明してください」 |
[ { "embeddings": { "statistics": { "token_count": 8, "truncated": false }, "values": [0.1, ...] } } ] |
|
| 「バナナブレッドのベストレシピ」 |
[ { "embeddings": { "statistics": { "token_count": 3, "truncated": false }, "values": [0.2, ...] } } ] |
以前のモデルのバッチ レスポンスをリクエストする
送信した入力アイテム数によっては、バッチ生成タスクが完了するまでに時間がかかることがあります。
REST
REST API を使用して、パブリッシャー モデル エンドポイントに POST リクエストを送信することで、以前のモデルのテキスト エンベディングを一括で取得できます。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: リクエストを送信するロケーション(例:
us-central1)。 - PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。
- BP_JOB_NAME: ジョブ名。
- MODEL_ID: 以前のエンベディング モデルのモデル ID(
text-embedding-005など)。 - INPUT_URI: 入力ソース URI。これは、BigQuery テーブル URI または Cloud Storage の JSONL ファイルの URI です。
- OUTPUT_URI: 出力ターゲット URI。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
リクエストの本文(JSON):
{
"name": "BP_JOB_NAME",
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/text-embedding-005",
"inputConfig": {
"instancesFormat":"bigquery",
"bigquerySource":{
"inputUri" : "INPUT_URI"
}
},
"outputConfig": {
"predictionsFormat":"bigquery",
"bigqueryDestination":{
"outputUri": "OUTPUT_URI"
}
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF'
{
"name": "BP_JOB_NAME",
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/text-embedding-005",
"inputConfig": {
"instancesFormat":"bigquery",
"bigquerySource":{
"inputUri" : "INPUT_URI"
}
},
"outputConfig": {
"predictionsFormat":"bigquery",
"bigqueryDestination":{
"outputUri": "OUTPUT_URI"
}
}
}
EOFその後、次のコマンドを実行して REST リクエストを送信します。
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 という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@'
{
"name": "BP_JOB_NAME",
"displayName": "BP_JOB_NAME",
"model": "publishers/google/models/text-embedding-005",
"inputConfig": {
"instancesFormat":"bigquery",
"bigquerySource":{
"inputUri" : "INPUT_URI"
}
},
"outputConfig": {
"predictionsFormat":"bigquery",
"bigqueryDestination":{
"outputUri": "OUTPUT_URI"
}
}
}
'@ | Out-File -FilePath request.json -Encoding utf8その後、次のコマンドを実行して REST リクエストを送信します。
$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 レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs/123456789",
"displayName": "BP_JOB_NAME",
"model": "projects/PROJECT_ID/locations/LOCATION/models/text-embedding-005",
"inputConfig": {
"instancesFormat": "bigquery",
"bigquerySource": {
"inputUri": "INPUT_URI"
}
},
"modelParameters": {},
"outputConfig": {
"predictionsFormat": "bigquery",
"bigqueryDestination": {
"outputUri": "OUTPUT_URI"
}
},
"state": "JOB_STATE_PENDING",
"createTime": "2023-07-12T20:46:52.148717Z",
"updateTime": "2023-07-12T20:46:52.148717Z",
"labels": {
"owner": "sample_owner",
"product": "llm"
},
"modelVersionId": "1",
"modelMonitoringStatus": {}
}
curl コマンドの例
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"
以前のモデルのバッチ出力を取得する
以前のバッチ推論タスクが完了すると、リクエストで指定した Cloud Storage バケットまたは BigQuery テーブルに出力が保存されます。
次のステップ
- テキスト エンベディングを取得する方法を学習する。
- マルチモーダル エンベディングを取得する方法を学習する。