管理評估指標

事前準備

管理評估指標前,請先確認下列事項:

  • 啟用 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()

在控制台中管理指標

  1. 在 Google Cloud 控制台,前往「Agent Platform」>「Agents」>「Evaluation」頁面。

    前往「Evaluation」(評估)

  2. 按一下「指標」分頁標籤,即可查看登錄檔。

  3. 建立指標:按一下「新指標」,然後選取「自訂 LLM 指標」或「自訂程式碼指標」

  4. 定義評量表:針對 LLM 指標,使用「樣本」按鈕快速填入指令、標準 (例如「清楚度」或「吸引力」) 和評分。

  5. 查看及編輯:按一下任一指標名稱,即可在唯讀模式下查看指標定義,或使用「更多選項」 圖示「複製」或「刪除」資源。

使用 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
)