バッチ予測

バッチ予測を使用すると、レイテンシの影響を受けない複数のテキストのみのプロンプトを Llama モデルに効率的に送信できます。リクエストごとに 1 つの入力プロンプトを送信するオンライン予測とは異なり、バッチ予測では 1 つのリクエストで大量の入力プロンプトをバッチ処理できます。

プレビュー期間中は、バッチ予測に対して料金は発生しません。

サポートされている Llama モデル

Vertex AI は、次の Llama モデルのバッチ予測をサポートしています。

  • Llama 3.1 405B(llama-3.1-405b-instruct-maas
  • Llama 3.1 70B(llama-3.1-70b-instruct-maas
  • Llama 3.1 8B(llama-3.1-8b-instruct-maas

入力を準備する

始める前に、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) 入力プロンプト。
  • 入力テーブルには他の列を含めることができます。これらの列はバッチジョブでは無視され、出力テーブルに直接渡されます。
  • バッチ予測ジョブは、バッチ予測出力に 2 つの列名(response(JSON)id)を予約します。入力テーブルではこれらの列を使用しないでください。
  • 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 ファイルとして保存されます。