事前準備
管理評估指標前,請先確認下列事項:
- 啟用 Agent Platform API 的 Google Cloud 專案。
- (選用) 如果使用 Agent Platform SDK,請按照「評估代理程式」一文所述初始化用戶端。
您可以透過指標登錄,定義、儲存及管理代理程式評估方式的可重複使用設定。您不必為每次測試執行設定條件,而是可以儲存標準化指標 (例如安全性的自訂 LLM 評分量表,或執行準確率的 Python 函式),並持續套用至離線評估和持續線上監控。
指標類型
Agent Platform 支援登錄檔中的三種指標:
- 預先定義的指標:Google 提供的受管理指標,包括多輪評估人員的任務成功率、工具使用品質和軌跡合規性。
- 自訂 LLM 指標:自然語言評分量表,由「評估 LLM」根據特定條件和評分標準評估代理的回覆。
- 自訂程式碼指標:以程式輔助驗證代理行為的 Python 函式,例如檢查特定輸出格式或驗證工具回應。
除了 Google 提供的受管理指標,您也可以使用自訂的已註冊指標進行評估。
預先定義的指標
Agent Platform 提供一組預先定義的指標,用於評估代理程式。這些指標由 Google 管理,涵蓋單輪和多輪代理互動的常見評估層面。
您可以使用 types.RubricMetric.METRIC_NAME,在 SDK 中存取預先定義的指標。如要查看所有受管理評量表指標的完整詳細資料,包括輸入規定和輸出格式,請參閱「受管理評量表指標詳細資料」。
單輪對話代理程式指標
下列指標會評估單一代理互動 (一個提示和一個回覆,可能包含中繼工具呼叫):
| 指標 | 類型 | SDK 存取器 | 說明 |
|---|---|---|---|
| 服務專員最終回覆品質 | 自動調整評分量表 | types.RubricMetric.FINAL_RESPONSE_QUALITY |
全面評估:根據代理的設定 (系統指令和工具宣告) 和使用者提示詞,自動產生評量表準則。 |
| 代理幻覺 | 靜態評分量表 | types.RubricMetric.HALLUCINATION |
將回覆內容拆分為多個不可分割的部分,並驗證各部分是否有憑有據,做法是依據中繼事件中的工具使用情況。 |
| 代理工具使用品質 | 自動調整評分量表 | types.RubricMetric.TOOL_USE_QUALITY |
評估所選工具是否適當、參數使用方式是否正確,以及是否符合指定的作業順序。 |
| 安全功能 | 靜態評分量表 | types.RubricMetric.SAFETY |
評估回覆是否違反安全政策,包括個人識別資訊和人口統計資料、仇恨言論、危險內容、騷擾或情色露骨內容。安全則傳回 1,不安全則傳回 0。 |
多輪對話代理程式指標
下列指標會評估多輪代理對話。他們會分析完整的對話內容,評估多輪對話中代理程式的整體成效:
| 指標 | 類型 | SDK 存取器 | 說明 |
|---|---|---|---|
| Agent Multi-turn Task Success | 自動調整評分量表 | types.RubricMetric.MULTI_TURN_TASK_SUCCESS |
評估代理是否順利達成對話目標。這項指標不含參照,著重於目標「是否」達成,而非「如何」達成。 |
| 代理程式多輪對話工具使用品質 | 自動調整評分量表 | types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY |
評估多輪對話期間的函式呼叫品質。評估代理是否在適當的時機,使用正確的引數呼叫合適的工具。 |
| Agent Multi-turn Trajectory Quality | 自動調整評分量表 | types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY |
評估對話的整體軌跡 (路徑)。與「工作成功」不同,這項指標會評估代理程式如何達成目標,也就是推論路徑是否合乎邏輯且有效率。 |
使用 SDK 中預先定義的指標
from vertexai import evals, types
# Run an evaluation with predefined metrics
result = client.evals.evaluate(
dataset=eval_dataset,
metrics=[
types.RubricMetric.FINAL_RESPONSE_QUALITY,
types.RubricMetric.TOOL_USE_QUALITY,
types.RubricMetric.HALLUCINATION,
types.RubricMetric.SAFETY,
],
)
# Visualize results in Colab
result.show()
在控制台中管理指標
在 Google Cloud 控制台,前往「Agent Platform」>「Agents」>「Evaluation」頁面。
按一下「指標」分頁標籤,即可查看登錄檔。
建立指標:按一下「新指標」,然後選取「自訂 LLM 指標」或「自訂程式碼指標」。
定義評量表:針對 LLM 指標,使用「樣本」按鈕快速填入指令、標準 (例如「清楚度」或「吸引力」) 和評分。
查看及編輯:按一下任一指標名稱,即可在唯讀模式下查看指標定義,或使用「更多選項」more_vert 圖示「複製」或「刪除」資源。
使用 SDK 管理指標
您可以使用 Agent Platform SDK,以程式輔助方式註冊及使用指標。
註冊自訂 LLM 指標
from vertexai import evals, types
# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
name="tone_check",
prompt_template="Analyze the tone of the response ...",
result_parsing_function="""
import json, re
def parse_results(responses):
response = json.loads(responses[0])
return {"score": response.get("score", 0.0),
"explanation": response.get("explanation", "default explanation")}
"""
)
# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
metric=tone_check_metric
)
註冊自訂程式碼指標
from vertexai import evals, types
# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
agent_data = instance.get('agent_eval_data', {})
turns = agent_data.get('turns', [])
for turn in turns:
...
"""
accuracy_metric = types.CodeExecutionMetric(
name="multi_turn_accuracy",
custom_function=accuracy_metric_code
)
# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
metric=accuracy_metric
)