您可以在 Gemini Enterprise Agent Platform 評估基礎模型和調整後生成式 AI 模型的效能。系統會根據您提供的評估資料集,使用一組指標評估模型。本頁面說明如何透過評估管道服務,進行以運算為基礎的模型評估、如何建立評估資料集並設定格式,以及如何使用 Google Cloud 控制台、Agent Platform API 或 Agent Platform SDK for Python 執行評估。
運算式模型評估的運作方式
如要評估模型效能,請先建立評估資料集,其中包含提示和基準真相組合。在每個組合中,提示詞是您要評估的輸入內容,基準真相則是該提示詞的理想回覆。在評估期間,評估資料集中每個組合的提示會傳給模型以生成內容。模型生成的內容以及評估資料集的基準真相,會用於運算評估指標。
評估指標的類型取決於要評估的工作。下表列出支援的工作,以及用於評估各項工作的指標:
| 工作 | 指標 |
|---|---|
| 分類 | Micro-F1、Macro-F1、各類別的 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 bucket,或使用現有 bucket 儲存資料集檔案。bucket 必須與模型位於相同區域。
bucket 準備就緒後,請將資料集檔案上傳至 bucket。
評估模型
您可以使用 REST API 或 Google Cloud 控制台評估模型。
REST
如要建立模型評估工作,請使用 pipelineJobs 方法傳送 POST 要求。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:執行管道元件的 Google Cloud 專案。
- PIPELINEJOB_DISPLAYNAME:pipelineJob 的顯示名稱。
- LOCATION:執行 pipeline 元件的區域。目前僅支援
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:要評估模型的工作。評估工作會計算一組與該特定工作相關的指標。可接受的值如下:
summarizationquestion-answeringtext-generationclassification
- INSTANCES_FORMAT:資料集的格式。
目前僅支援
jsonl。如要進一步瞭解這項參數,請參閱 InputConfig。 - PREDICTIONS_FORMAT:評估輸出的格式。目前僅支援
jsonl。如要進一步瞭解這項參數,請參閱 InputConfig。 - MACHINE_TYPE:(選用)
執行評估工作的機器類型。預設值為
e2-highmem-16。如需支援的機器類型清單,請參閱「機器類型」。 - SERVICE_ACCOUNT:(選用) 用於執行評估工作的服務帳戶。如要瞭解如何建立自訂服務帳戶,請參閱「設定具有精細權限的服務帳戶」。如未指定,則會使用 Gemini Enterprise Agent Platform 自訂程式碼服務代理。
- NETWORK:(選用) 要與評估工作對等互連的 Compute Engine 網路完整名稱。網路名稱的格式為
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME。如要指定這個欄位,您必須具備 Gemini Enterprise Agent Platform 的虛擬私有雲網路對等互連。如未指定,評估工作就不會與任何網路對等互連。 - 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
在試用這個範例之前,請先按照「使用用戶端程式庫的 Agent Platform 快速入門導覽課程」中的 Python 設定說明操作。
如要向 Agent Platform 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
控制台
如要使用 Google Cloud 控制台建立模型評估工作,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Gemini Enterprise Agent Platform Model Registry」頁面。
- 按一下要評估的模型名稱。
- 在「Evaluate」(評估) 分頁中,按一下「Create evaluation」(建立評估),然後按照下列指示設定:
- 目標:選取要評估的工作。
- 目標資料欄或欄位:(僅限分類) 輸入要預測的目標資料欄。範例:
ground_truth。 - 來源路徑:輸入或選取評估資料集的 URI。
- 輸出格式:輸入評估輸出的格式。
僅支援
jsonl。 - Cloud Storage 路徑:輸入或選取要儲存評估輸出的 URI。
- 類別名稱:(僅限分類) 輸入可能的類別名稱清單。
- 運算節點數量:輸入要執行評估工作的運算節點數量。
- 機型:選取要用於執行評估工作的機型。
- 按一下「Start evaluation」(開始評估)。
查看評估結果
您可以在建立評估工作時指定的 Cloud Storage 輸出目錄中,找到評估結果。檔案名稱為 evaluation_metrics.json。
如果是調整後的模型,您也可以在 Google Cloud 控制台查看評估結果:
前往 Google Cloud 控制台「Agent Platform」部分的「Gemini Enterprise Agent Platform Model Registry」頁面。
按一下模型名稱,即可查看評估指標。
在「Evaluate」(評估) 分頁中,按一下要查看的評估執行作業名稱。