您可以在 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 值區,或使用現有值區來儲存資料集檔案。值區必須與模型位於相同區域。
值區準備就緒後,請上傳資料集檔案至值區。
執行模型評估作業
您可以使用 REST API 或 Google Cloud 控制台評估模型。
REST
如要建立模型評估工作,請使用 pipelineJobs 方法傳送 POST 要求。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:執行管道元件的 Google Cloud 專案。
- PIPELINEJOB_DISPLAYNAME:PipelineJob 的顯示名稱。
- 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:要評估模型執行的工作。評估工作會計算與該特定工作相關的一組指標。可接受的值包括:
summarizationquestion-answeringtext-generationclassification
- INSTANCES_FORMAT:資料集的格式。目前僅支援
jsonl。如要進一步瞭解這個參數,請參閱 InputConfig。 - PREDICTIONS_FORMAT:評估輸出內容的格式。目前僅支援
jsonl。如要進一步瞭解這個參數,請參閱 InputConfig。 - MACHINE_TYPE:(選用) 執行評估作業的機型。預設值為
e2-highmem-16。如需支援的機器類型清單,請參閱「機器類型」。 - SERVICE_ACCOUNT: (選用) 用於執行評估工作的服務帳戶。如要瞭解如何建立自訂服務帳戶,請參閱「 設定具有精細權限的服務帳戶」。如未指定,系統會使用 Gemini Enterprise Agent Platform Custom Code Service Agent 。
- 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
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。 詳情請參閱 Python API 參考文件。
控制台
如要使用 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」(評估) 分頁中,按一下要查看的評估執行作業名稱。