バッチ予測を使用すると、レイテンシの影響を受けない複数のテキストのみのプロンプトを Llama モデルに効率的に送信できます。リクエストごとに 1 つの入力プロンプトを送信するオンライン予測とは異なり、バッチ予測では 1 つのリクエストで大量の入力プロンプトをバッチ処理できます。
プレビュー期間中は、バッチ予測に対して料金は発生しません。
サポートされている Llama モデル
Vertex AI は、次の Llama モデルのバッチ予測をサポートしています。
入力を準備する
始める前に、BigQuery テーブルまたは Cloud Storage の JSONL ファイルとして入力を準備します。両方のソースの入力は、次の例に示すように、OpenAI API スキーマの JSON 形式に従っている必要があります。
{"custom_id": "test-request-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "meta/llama-3.1-405b-instruct-maas", "messages": [{"role": "system", "content": "You are a chef."}, {"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 ファイルである必要があります。
バッチ予測をリクエストする
BigQuery または Cloud Storage からの入力を使用して、Llama モデルに対してバッチ予測を行います。予測の出力先として、BigQuery テーブルまたは Cloud Storage バケット内の JSONL ファイルのいずれかを選択できます。
BigQuery
BigQuery 入力テーブル、モデル、出力先を指定します。 バッチ予測ジョブとテーブルは同じリージョンに存在する必要があります。
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: Llama モデルをサポートするリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL: チューニングするモデルの名前。
- 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
など)を指定します。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
リクエストの本文(JSON):
'{ "displayName": "JOB_NAME", "model": "publishers/meta/models/MODEL", "inputConfig": { "instancesFormat":"bigquery", "bigquerySource":{ "inputUri" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }'
リクエストを送信するには、次のいずれかのオプションを選択します。
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
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: Llama モデルをサポートするリージョン。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL: チューニングするモデルの名前。
- 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
など)を指定します。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/batchPredictionJobs
リクエストの本文(JSON):
'{ "displayName": "JOB_NAME", "model": "publishers/meta/models/MODEL", "inputConfig": { "instancesFormat":"jsonl", "gcsDestination":{ "uris" : "INPUT_URI" } }, "outputConfig": { "predictionsFormat":"OUTPUT_FORMAT", "DESTINATION":{ "OUTPUT_URI_FIELD_NAME": "OUTPUT_URI" } } }'
リクエストを送信するには、次のいずれかのオプションを選択します。
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
環境をセットアップしたら、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 ファイルとして保存されます。