取得批次回應是一種有效傳送大量非延遲敏感嵌入要求的方式。取得線上回應與在 Vertex AI 使用 Gemini API 執行批次預測並不相同,前者一次只能發出一項輸入要求,後者則可讓您一次傳送大量 LLM 要求。與 Vertex AI 中的表格資料的批次預測方式類似,您可以決定輸出位置、新增輸入內容,然後讓回應以非同步方式填入輸出位置。
支援批次預測的文字嵌入模型
所有穩定版的文字嵌入模型都支援批次預測。穩定版是指不再處於預覽階段,且已全面支援實際作業環境的版本。如需支援的嵌入模型完整清單,請參閱「嵌入模型和版本」。
準備輸入內容
批次要求的輸入內容是提示清單,可儲存在 BigQuery 表格中,或以 JSON 行 (JSONL) 檔案的形式儲存在 Cloud Storage 中。每個要求最多可包含 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
Gen AI SDK for 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 值區或 BigQuery 表格中。
後續步驟
- 瞭解如何取得文字嵌入。