バッチ予測

バッチ予測を使用すると、レイテンシの影響を受けない複数のテキストのみのプロンプトを 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 ファイルとして保存されます。