定義評估指標

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

總覽

生成式 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 Evaluation Service 提供下列選項,可透過 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 Evaluation Service 提供下列翻譯工作評估指標:

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 (雙語評估研究) 指標會顯示演算法的結果,用於評估從一種自然語言翻譯成另一種自然語言的回覆品質。回應品質是指 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 參數名稱相符的參數越多。

參數鍵值比對

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 評估服務中,您可以透過 Vertex AI SDK for Python 使用以運算為基礎的指標

生成工作的基準評估品質

評估生成式 AI 模型輸出內容時,請注意評估過程本質上是主觀的,評估品質會因特定工作和評估標準而異。人類評估人員也會有這種主觀性。如要進一步瞭解如何持續評估生成式 AI 模型,請參閱「Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena」和「Learning to summarize from human feedback」。

後續步驟