您可以在 Vertex AI 上評估基礎模型和經過調整的生成式 AI 模型效能。系統會根據您提供的評估資料集,使用一組指標評估模型。本頁面說明如何透過評估管道服務進行以運算為基礎的模型評估,如何建立及設定評估資料集,以及如何使用 Google Cloud 控制台、Vertex AI API 或 Vertex AI SDK for Python 執行評估。
運算式模型評估的運作方式
如要評估模型效能,請先建立評估資料集,其中包含提示和真值組合。每個組合中的提示都是您要評估的輸入內容,而真值則是該提示的理想回覆。在評估期間,評估資料集中每個組合的提示都會傳遞至模型,以產生輸出內容。模型產生的輸出內容,以及評估資料集的真值,會用於計算評估指標。
用於評估的指標類型取決於您要評估的任務。下表列出支援的作業,以及用於評估每項作業的指標:
工作 | 指標 |
---|---|
分類 | Micro-F1、Macro-F1、Per class F1 |
摘要 | ROUGE-L |
問題回答 | 完全符合 |
文字生成 | BLEU、ROUGE-L |
支援的模型
系統支援下列模型的模型評估功能:
text-bison
:基礎和調校版本。Gemini:所有任務 (分類任務除外)。
準備評估用資料集
用於模型評估的評估資料集,包含與您要評估的任務相符的提示和真值組合。資料集必須包含至少 1 個提示和真值組合,且至少有 10 個組合才能產生有意義的指標。提供的例子越多,結果就越有意義。
資料集格式
評估資料集必須採用 JSON Lines (JSONL) 格式,其中每一行都包含一個提示和真值組合,分別在 input_text
和 output_text
欄位中指定。input_text
欄位包含您要評估的提示,而 output_text
欄位則包含提示的理想回應。
input_text
的符記長度上限為 8,192,output_text
的符記長度上限則為 1,024。
將評估資料集上傳至 Cloud Storage
您可以建立新的 Cloud Storage 值區,或使用現有值區來儲存資料集檔案。值區必須與模型位於相同區域。
值區準備就緒後,請上傳資料集檔案至該值區。
執行模型評估
您可以使用 REST API 或 Google Cloud 控制台評估模型。
REST
如要建立模型評估工作,請使用 pipelineJobs 方法傳送 POST
要求。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:執行管道元件的 Google Cloud 專案。
- PIPELINEJOB_DISPLAYNAME:管道工作程式的顯示名稱。
- LOCATION:執行管道元件的區域。目前僅支援
us-central1
。 - DATASET_URI:參照資料集的 Cloud Storage URI。您可以指定一或多個 URI。這個參數支援萬用字元。如要進一步瞭解這個參數,請參閱 InputConfig。
- OUTPUT_DIR:用於儲存評估輸出的 Cloud Storage URI。
- MODEL_NAME:如以下所示,指定發布商模型或經過調整的模型資源:
- 發布端模型:
publishers/google/models/MODEL@MODEL_VERSION
範例:
publishers/google/models/text-bison@002
- 調整後模型:
projects/PROJECT_NUMBER/locations/LOCATION/models/ENDPOINT_ID
範例:
projects/123456789012/locations/us-central1/models/1234567890123456789
評估工作不會影響模型的任何現有部署作業或其資源。
- 發布端模型:
- EVALUATION_TASK:您要評估模型的工作。評估工作會計算與該特定工作相關的一組指標。可接受的值包括:
summarization
question-answering
text-generation
classification
- INSTANCES_FORMAT:資料集格式。目前僅支援
jsonl
。如要進一步瞭解這個參數,請參閱 InputConfig。 - PREDICTIONS_FORMAT:評估輸出的格式。目前僅支援
jsonl
。如要進一步瞭解這個參數,請參閱 InputConfig。 - MACHINE_TYPE:(選用) 執行評估工作機器的類型。預設值為
e2-highmem-16
。如需支援的機器類型清單,請參閱「機器類型」。 - SERVICE_ACCOUNT:(選用) 用於執行評估工作的服務帳戶。如要瞭解如何建立自訂服務帳戶,請參閱「設定具備精細權限的服務帳戶」。如未指定,系統會使用 Vertex AI 自訂程式碼服務代理。
- NETWORK:(選用) 要與評估工作對等互連的 Compute Engine 網路完整名稱。網路名稱的格式為
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
。如果您指定這個欄位,就必須建立 Vertex AI 的 VPC 網路對接。如果未指定,評估工作就不會與任何網路配對。 - KEY_NAME:(選用) 客戶管理的加密金鑰 (CMEK) 名稱。如果已設定,評估工作所建立的資源會使用提供的加密金鑰進行加密。金鑰名稱的格式為
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
。金鑰必須與評估工作位於相同區域。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
JSON 要求主體:
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "location": "LOCATION", "batch_predict_gcs_source_uris": ["gs://DATASET_URI"], "batch_predict_gcs_destination_output_uri": "gs://OUTPUT_DIR", "model_name": "MODEL_NAME", "evaluation_task": "EVALUATION_TASK", "batch_predict_instances_format": "INSTANCES_FORMAT", "batch_predict_predictions_format: "PREDICTIONS_FORMAT", "machine_type": "MACHINE_TYPE", "service_account": "SERVICE_ACCOUNT", "network": "NETWORK", "encryption_spec_key_name": "KEY_NAME" } }, "templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1" }
如要傳送要求,請選擇以下其中一個選項:
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/pipelineJobs"
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/pipelineJobs" | Select-Object -Expand Content
您應該會收到類似以下的 JSON 回應。請注意,pipelineSpec
已截斷以節省空間。
curl 指令範例
PROJECT_ID=myproject
REGION=us-central1
MODEL_NAME=publishers/google/models/text-bison@002
TEST_DATASET_URI=gs://my-gcs-bucket-uri/dataset.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs" -d \
$'{
"displayName": "evaluation-llm-text-generation-pipeline",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"location": "'${REGION}'",
"batch_predict_gcs_source_uris": ["'${TEST_DATASET_URI}'"],
"batch_predict_gcs_destination_output_uri": "'${OUTPUT_DIR}'",
"model_name": "'${MODEL_NAME}'",
}
},
"templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}'
Python 適用的 Vertex AI SDK
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Vertex AI SDK for Python API 參考說明文件。
控制台
如要使用 Google Cloud 控制台建立模型評估工作,請執行下列步驟:
- 前往 Google Cloud 控制台的「Vertex AI Model Registry」頁面。
- 按一下要評估的模型名稱。
- 在「評估」分頁中,按一下「建立評估」,然後按照下列方式設定:
- 目標:選取要評估的工作。
- 目標資料欄或欄位:(僅限分類) 輸入預測的目標資料欄。範例:
ground_truth
。 - 來源路徑:輸入或選取評估資料集的 URI。
- 輸出格式:輸入評估輸出的格式。
目前僅支援
jsonl
。 - Cloud Storage 路徑:輸入或選取 URI,以便儲存評估輸出內容。
- 類別名稱:(僅限分類) 輸入可能的類別名稱清單。
- 運算節點數量:輸入執行評估工作的運算節點數量。
- Machine type (機器類型):選取用於執行評估作業的機器類型。
- 按一下「Start evaluation」(開始評估)。
查看評估結果
您可以在建立評估工作時指定的 Cloud Storage 輸出目錄中找到評估結果。檔案名稱為 evaluation_metrics.json
。
對於已調整的模型,您也可以在 Google Cloud 控制台中查看評估結果:
在 Google Cloud 控制台的 Vertex AI 專區中,前往「Vertex AI Model Registry」頁面。
按一下模型名稱,查看評估指標。
在「評估」分頁中,按一下要查看的評估執行作業名稱。
後續步驟
- 瞭解生成式 AI 評估。
- 瞭解如何使用 Gen AI Evaluation Service 進行線上評估。
- 瞭解如何調整基礎模型。