定義評估指標

評估生成式模型或應用程式的首要步驟,就是找出評估目標並定義評估指標。本頁面將概略說明與定義用途相關評估指標相關的概念。

總覽

生成式 AI 模型可用於建立各種應用程式,執行多種工作,例如摘要新聞文章、回覆客戶詢問,或協助編寫程式碼。Vertex AI 的 Gen AI Evaluation Service 可用來評估任何模型,並提供可解釋的指標。

舉例來說,您可能會開發用於摘要文章的應用程式。如要評估應用程式在該特定工作中的效能,請考慮要評估的條件,以及用來評分的評估指標:

  • 條件:您要評估的單一或多個維度,例如 concisenessrelevancecorrectnessappropriate choice of words

  • 指標:根據評估標準評估模型輸出的單一分數。

Gen AI Evaluation Service 提供兩種主要指標:

  • 模型式指標:模型式指標會根據判定模型評估候選模型。大多數用途的判斷模型為 Gemini,但您也可以在翻譯用途中使用 MetricXCOMET 等模型。

    您可以逐對或逐點評估以模型為基準的指標:

    • 逐點指標:讓評判模型根據評估標準評估候選模型的輸出內容。舉例來說,分數可能為 0 到 5,其中 0 表示回應不符合條件,而 5 表示回應完全符合條件。

    • 逐對指標:讓評估模型比較兩個模型的回應,並選出較佳的模型。這項指標通常用於比較候選模型和基準模型。只有在 Gemini 做為評估模型時,系統才會支援成對指標。

  • 計算指標:這些指標會使用數學公式計算,比較模型輸出內容與真值或參考值。常用的以運算為基礎的指標包括 ROUGE 和 BLEU。

您可以單獨使用運算資源相關指標,也可以與模型相關指標搭配使用。請參考下表,決定何時使用以模型為基礎或以計算為基礎的指標:

評估方法 資料 成本和速度
以模型為準的評估指標 使用評估模型,根據描述性評估標準評估成效 真值為選填 價格略高且速度較慢
計算指標 使用數學公式評估成效 通常需要基準真相 成本低廉且快速

如要開始使用,請參閱「準備資料集」和「執行評估」。

定義以模型為基準的指標

以模型為基準的評估會使用機器學習模型做為評估模型,評估候選模型的輸出內容。

Google 專屬評分模型 (例如 Gemini) 會經過人工評分員校正,確保品質。這些特徵會在開箱即用模式下管理,模型式評估程序會根據您提供的評估指標而有所不同。

模型式評估的程序如下:

  1. 資料準備:您以輸入提示的形式提供評估資料。候選模型會收到提示,並產生相應回覆。

  2. 評估:評估指標和產生的回覆會傳送至評審模型。評分模型會個別評估每個回覆,並提供以列為單位的評估結果。

  3. 匯總和說明:Gen AI Evaluation Service 會將這些個別評估結果匯總為總分。輸出結果也會包含每個判斷的思考連結說明,概述選擇背後的理由。

Gen AI 評估服務提供下列選項,可透過 Vertex AI SDK 設定以模型為基礎的指標:

選項 說明 適用情境
使用現有範例 使用預先建構的指標提示範本即可開始。 常見用途,節省時間
使用範本介面定義指標 取得指引協助,瞭解如何定義指標。我們的範本介面提供結構和建議。 支援自訂
從頭開始定義指標 完全掌控指標定義。 非常適合用於特定用途。需要更多技術專業知識和時間投入。

舉例來說,您可能想開發生成式 AI 應用程式,以便傳回流暢且有趣的回應。針對此應用程式,您可以使用範本介面定義兩個評估條件:

  • 流暢:句子流暢,避免使用不自然的措詞或長句。想法和句子之間有邏輯連結,並在必要時有效使用轉場效果。

  • 娛樂:短小有趣的文字,內含表情符號、驚嘆號和疑問句,可快速傳達即時的溝通內容和轉移。

如要將這兩項條件轉換為指標,您需要一個總分數,範圍為 -1 到 1,稱為 custom_text_quality。您可以定義如下的指標:

# Define a pointwise metric with two criteria: Fluency and Entertaining.
custom_text_quality = PointwiseMetric(
    metric="custom_text_quality",
    metric_prompt_template=PointwiseMetricPromptTemplate(
        criteria={
            "fluency": (
                "Sentences flow smoothly and are easy to read, avoiding awkward"
                " phrasing or run-on sentences. Ideas and sentences connect"
                " logically, using transitions effectively where needed."
            ),
            "entertaining": (
                "Short, amusing text that incorporates emojis, exclamations and"
                " questions to convey quick and spontaneous communication and"
                " diversion."
            ),
        },
        rating_rubric={
            "1": "The response performs well on both criteria.",
            "0": "The response is somewhat aligned with both criteria",
            "-1": "The response falls short on both criteria",
        },
    ),
)

如需指標提示範本的完整清單,請參閱「評估指標的提示範本」。

評估翻譯模型

Gen AI 評估服務提供下列翻譯工作評估指標:

MetricX 和 COMET 是根據點式模型訓練的點式指標,用於翻譯工作。無論是 NMT、TranslationLLM 還是 Gemini 模型的輸出內容,您都可以評估翻譯模型結果的品質和準確度。

您也可以使用 Gemini 做為評估模型,搭配 MetricX、COMET 或 BLEU 評估模型的流暢度、連貫性、冗長程度和文字品質。

  • MetricX 是 Google 開發的以錯誤為依據的指標,可預測 0 到 25 之間的浮點分數,代表翻譯的品質。MetricX 可做為以參照為基礎和無參照 (QE) 的方法使用。使用這項指標時,分數越低越好,因為這表示錯誤較少。

  • COMET 採用以參考值為基礎的迴歸方法,提供 0 到 1 之間的分數,其中 1 代表完美翻譯。

  • BLEU (雙語評估研究) 是以運算為基礎的指標。BLEU 分數表示候選文字與參考文字的相似程度。BLEU 分數值越接近 1,表示翻譯內容越接近參考文字。

請注意,我們不建議在不同語料庫和語言之間比較 BLEU 分數。舉例來說,英文到德文的 BLEU 分數為 50 與日文到英文的 BLEU 分數為 50 無法相提並論。許多翻譯專家已轉向採用以模型為基礎的指標方法,因為這類方法與人類評分有更高的相關性,且可更精確地識別錯誤情境。

如要瞭解如何評估翻譯模型,請參閱「評估翻譯模型」。

選擇逐點評估或逐對評估

請參考下表,決定何時要使用點對點或成對評估:

定義 使用時機 應用實例
逐點評估 評估一個模型,並根據標準產生分數
  • 需要為每個評估模型評分時。
  • 當您不難為每個分數定義評分標準時。
  • 瞭解模型在實際工作環境中的行為。
  • 探索單一模型的優缺點。
  • 找出調整時應著重於哪些行為。
  • 取得模型的基準效能。
逐對評估 比較兩個模型,並根據標準產生偏好值
  • 您想比較兩個模型,但不需要評分。
  • 難以定義點評分標準。舉例來說,您可能很難為逐點文字品質定義 1 到 5 的評分標準,但比較兩個模型並直接輸出偏好值,難度就不會那麼高。
  • 決定要將哪個模型投入實際工作環境。
  • 選擇模型類型。例如 Gemini-Pro 與 Claude 3。
  • 選擇不同的提示。
  • 判斷微調是否改善了基準模型。

計算指標

計算式指標會比較 LLM 產生的結果是否與輸入和輸出內容配對的基準真相資料集一致。常用的指標可分為以下幾類:

  • 語彙型指標:使用數學計算 LLM 產生的結果與基準真相 (例如 Exact MatchROUGE) 之間的字串相似度。
  • 以計數為準的指標:匯總符合或不符合特定真實標籤 (例如 F1-scoreAccuracyTool Name Match) 的資料列數量。
  • 以嵌入為依據的指標:計算 LLM 產生的結果與基準真相在嵌入空間中的距離,反映兩者的相似程度。

一般文字產生

您可以利用下列指標評估模型是否能確保回覆內容對使用者而言實用、安全且有效。

完全比對

exact_match 指標會計算模型回應是否與參考值完全相符。

  • 符記限制:無

評估標準

不適用。

指標輸入參數

輸入參數 說明
response LLM 回覆。
reference 可供參考的 LLM 黃金回覆。

輸出分數

說明
0 不相符
1 相符

BLEU

bleu (BiLingual Evaluation Understudy) 指標會保留演算法評估結果,以便評估從一種自然語言翻譯成另一種自然語言的回覆品質。回應的品質視為 response 參數與其 reference 參數之間的對應關係。

  • 符記限制:無

評估標準

不適用。

指標輸入參數

輸入參數 說明
response LLM 回覆。
reference 參考用的精選 LLM 回覆。

輸出分數

說明
介於 [0,1] 範圍內的浮點值 分數越高,表示翻譯越準確。分數為 1 代表與 reference 完全相符。

ROUGE

ROUGE 指標用於比較所提供的 response 參數與 reference 參數。所有 rouge 指標都會傳回 F1 分數。rouge-l-sum 會依預設計算,但您可以指定要使用的 rouge 變化版本

  • 符記限制:無

評估標準

不適用

指標輸入參數

輸入參數 說明
response LLM 回覆。
reference 參考用的精選 LLM 回覆。

輸出分數

說明
介於 [0,1] 範圍內的浮點值 分數越接近 0,表示 responsereference 的相似度越低。分數越接近 1,表示 responsereference 之間的相似度越高。

使用工具和呼叫函式

下列指標可協助您評估模型預測有效工具 (函式) 呼叫的能力。

通話有效

tool_call_valid 指標說明模型預測有效工具呼叫的能力。系統只會檢查第一個工具呼叫。

  • 符記限制:無

評估標準

評估標準 說明
有效性 模型輸出內容包含有效的工具呼叫。
格式設定 JSON 字典包含 namearguments 欄位。

指標輸入參數

輸入參數 說明
prediction 候選模型輸出內容,也就是包含 contenttool_calls 鍵的 JSON 序列化字串。content 值是模型的文字輸出內容。tool_calls 值是工具呼叫清單的 JSON 序列化字串。以下是範例:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference 實際資料參考預測值,格式與 prediction 相同。

輸出分數

說明
0 無效的工具呼叫
1 有效工具呼叫

名稱相符

tool_name_match 指標說明模型預測工具呼叫時,是否能使用正確的工具名稱。系統只會檢查第一個工具呼叫。

  • 符記限制:無

評估標準

評估標準 說明
名稱比對 模型預測的工具呼叫與參考工具呼叫的名稱相符。

指標輸入參數

輸入參數 說明
prediction 候選模型輸出內容,也就是包含 contenttool_calls 鍵的 JSON 序列化字串。content 值是模型的文字輸出內容。tool_call 值是工具呼叫清單的 JSON 序列化字串。以下是範例:

{"content": "","tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference 實際資料參考預測值,格式與 prediction 相同。

輸出分數

說明
0 工具呼叫名稱與參照不符。
1 工具呼叫名稱與參照相符。

參數鍵比對

tool_parameter_key_match 指標說明模型是否能使用正確的參數名稱預測工具呼叫。

  • 符記限制:無

評估標準

評估標準 說明
參數比對比率 與參照工具呼叫的參數名稱相符的預測參數數量與參數總數之間的比率。

指標輸入參數

輸入參數 說明
prediction 候選模型輸出內容,也就是包含 contenttool_calls 鍵的 JSON 序列化字串。content 值是模型的文字輸出內容。tool_call 值是工具呼叫清單的 JSON 序列化字串。以下是範例:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference 真值參考模型預測值,採用與 prediction 相同的格式。

輸出分數

說明
介於 [0,1] 範圍內的浮點值 1 的分數越高,代表越多參數與 reference 參數名稱相符。

參數 KV 比對

tool_parameter_kv_match 指標說明模型是否能使用正確的參數名稱和鍵值預測工具呼叫。

  • 符記限制:無

評估標準

評估標準 說明
參數比對比率 參照工具呼叫的參數名稱和值與參數總數之間,符合預測參數的數量比率。

指標輸入參數

輸入參數 說明
prediction 候選模型輸出內容,也就是包含 contenttool_calls 鍵的 JSON 序列化字串。content 值是模型的文字輸出內容。tool_call 值是工具呼叫清單的 JSON 序列化字串。以下是範例:

{"content": "", "tool_calls": [{"name": "book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]}
reference 實際資料參考預測值,格式與 prediction 相同。

輸出分數

說明
介於 [0,1] 範圍內的浮點值 1 分數越高,表示有越多參數與 reference 參數的名稱和值相符。

在生成式 AI 評估服務中,您可以透過 Python 適用的 Vertex AI SDK 使用以運算為基礎的指標

生成式工作基準評估品質

評估生成式 AI 模型的輸出內容時,請注意評估程序本質上是主觀的,且評估品質可能會因特定工作和評估標準而異。這種主觀性也適用於人類評估員。如要進一步瞭解如何為生成式 AI 模型進行一致的評估,請參閱「使用 MT-Bench 和 Chatbot Arena 評估 LLM」和「從人類意見回饋中學習如何摘要」。

後續步驟