批次預測

批次預測功能可讓您有效率地將多個不需即時回覆的純文字提示傳送至 Llama 模型。與線上預測不同,您可以在單一要求中批次處理大量輸入提示,不必像線上預測一樣,每次要求都傳送一個輸入提示。

預先發布版期間,批次預測不會產生費用。

支援的 Llama 模型

Vertex AI 支援下列 Llama 模型的批次預測:

準備輸入內容

開始前,請在 BigQuery 資料表中準備輸入內容,或以 Cloud Storage 中的 JSONL 檔案形式準備。這兩種來源的輸入內容都必須採用 OpenAI API 結構定義 JSON 格式,如下列範例所示:

{"custom_id": "test-request-0", "method": "POST", "url": "/https/cloud.google.com/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,用於將輸入內容與輸出內容配對。
方法 要求方法。
網址 要求端點。
body(JSON) 輸入提示。
  • 輸入資料表可以有其他資料欄,但批次作業會忽略這些資料欄,並直接傳遞至輸出資料表。
  • 批次預測工作會保留兩個資料欄名稱,用於批次預測輸出內容:response(JSON)id。請勿在輸入表格中使用這些資料欄。
  • 系統會捨棄 methodurl 資料欄,不會納入輸出資料表。

Cloud Storage

如果是 Cloud Storage,輸入檔案必須是位於 Cloud Storage bucket 中的 JSONL 檔案。

要求批次預測

使用 BigQueryCloud 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 方法和網址:

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 方法和網址:

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 方法和網址:

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,輸出內容會儲存為 JSONL 檔案,並存放在輸出 Cloud Storage 位置。