以批次方式取得回覆,可有效率地傳送大量對延遲時間不敏感的嵌入要求。取得線上回覆與執行批次預測並不相同,前者一次只能發出一項輸入要求,後者則可讓您一次傳送大量 LLM 要求,與在 Vertex AI 中對表格資料進行批次預測類似,您需要決定輸出位置、新增輸入內容,然後系統會將回應非同步填入輸出位置。
支援批次預測的文字嵌入模型
除了 Gemini 嵌入 (gemini-embedding-001) 之外,所有穩定版文字嵌入模型都支援批次預測。穩定版完全支援正式環境。如要查看完整的嵌入模型清單,請參閱「嵌入模型和版本」。
準備輸入內容
批次要求的輸入內容是提示清單,可儲存在 BigQuery 資料表或 Cloud Storage 中的 JSON Lines (JSONL) 檔案。每個要求最多可包含 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 輸出範例
| 內容 | 預測 | 狀態 | 
|---|---|---|
| 「簡要說明機器學習模型:」 | '[{"embeddings": { "statistics":{"token_count":8,"truncated":false}, "Values":[0.1,....] } } ]' | |
| 「香蕉麵包的最佳食譜:」 | '[{"embeddings": { "statistics":{"token_count":3,"truncated":false}, "Values":[0.2,....] } } ]' | 
要求批次回應
視您提交的輸入項目數量而定,批次生成工作可能需要一些時間才能完成。
REST
如要使用 Vertex AI API 測試文字提示,請將 POST 要求傳送至發布商模型端點。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- BP_JOB_NAME:工作名稱。
- INPUT_URI:輸入來源 URI。這是 BigQuery 資料表 URI 或 Cloud Storage 中的 JSONL 檔案 URI。
- OUTPUT_URI:輸出目標 URI。
HTTP 方法和網址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs
JSON 要求主體:
{
    "name": "BP_JOB_NAME",
    "displayName": "BP_JOB_NAME",
    "model": "publishers/google/models/textembedding-gecko",
    "inputConfig": {
      "instancesFormat":"bigquery",
      "bigquerySource":{
        "inputUri" : "INPUT_URI"
      }
    },
    "outputConfig": {
      "predictionsFormat":"bigquery",
      "bigqueryDestination":{
        "outputUri": "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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs" | Select-Object -Expand Content
您應該會收到如下的 JSON 回應:
{
  "name": "projects/123456789012/locations/us-central1/batchPredictionJobs/1234567890123456789",
  "displayName": "BP_sample_publisher_BQ_20230712_134650",
  "model": "projects/{PROJECT_ID}/locations/us-central1/models/textembedding-gecko",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "bq://project_name.dataset_name.text_input"
    }
  },
  "modelParameters": {},
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "bq://project_name.llm_dataset.embedding_out_BP_sample_publisher_BQ_20230712_134650"
    }
  },
  "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": {}
}
回應會包含批次工作的專屬 ID。
您可以使用 BATCH_JOB_ID 輪詢批次工作的狀態,直到工作 state 為止。JOB_STATE_SUCCEEDED例如:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID
Python
安裝
pip install --upgrade google-genai
詳情請參閱 SDK 參考說明文件。
設定環境變數,透過 Vertex AI 使用 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_VERTEXAI=True
擷取批次輸出內容
批次預測工作完成後,輸出內容會儲存在您在要求中指定的 Cloud Storage bucket 或 BigQuery 表格。
後續步驟
- 瞭解如何取得文字嵌入。