LLM-as-a-Judge,解鎖「LLM評估LLM」新世界

LLM-as-a-Judge,解鎖「LLM評估LLM」新世界

文章圖片

LLM-as-a-Judge,解鎖「LLM評估LLM」新世界

文章圖片

LLM-as-a-Judge,解鎖「LLM評估LLM」新世界

文章圖片

LLM-as-a-Judge,解鎖「LLM評估LLM」新世界

文章圖片

在AI技術飛速發展的當下 , 如何準確評估大型語言模型(LLM)的性能成為了一個關鍵問題 。 本文將帶你走進“LLM-as-a-Judge”的奇妙世界 , 這是一種創新的評估方法 , 通過讓LLM自身來評估其他LLM的輸出 , 從而實現高效、客觀的質量把控 。
上一篇文章分析了AI產品經理做好評測的重要性 , 并以本人所在的AI+醫療場景為例 , 示例了評估標準的構建以及測評了相關大模型在此任務上的能力 。
從這篇文章起 , 將開啟LLM-as-a-Judge的系列文章 , 包含從評估方法到實戰應用的全流程 。 這是一種用魔法打敗魔法的神奇方法體系 , 以本人曾在某廠子做過智能客服的經驗來看 , 里面的方法極其實用 , 甚至不只是在評估環節用得到 , 很多方法都可以融到產品設計中 , 以保證AI產品的可靠性 。 里面的絕大多數內容我都曾在工作中或多或少用到過 , 現在終于被梳理成了一個完整的體系 。 在此強烈安利給各位AI產品經理以及算法伙伴 。

一、什么是LLM-as-a-judgeLLM-as-a-Judge 是一種評估方法 , 用于根據評估提示詞中定義的自定義標準評估任何 LLM產品(包括聊天機器人、問答系統或代理)生成的文本質量 。 它給LLM以評估提示詞 , 讓LLM來根據您定義的標準對生成的文本進行評級 。 LLM可以對兩個輸出進行比較 , 也可以直接對一個輸出進行評分(評估正確性和相關性) 。 LLM 將按照您的指示返回分數、標簽甚至描述性判斷 。
假設您有一個聊天機器人 。 您可以要求外部LLM 評估其輸出 , 類似于人工評估員的方式 , 查看以下內容:
  • 禮貌 :回應是否尊重和體貼?
  • 偏見 :回應是否顯示出對特定群體的偏見?
  • 語氣 :語氣是正式的、友好的還是對話的?
  • 情感 :文本中表達的情感是積極的、消極的還是中性的?
  • 幻覺 :這種反應是否符合所提供的上下文?
值得注意的是 , LLM 作為裁判并不是準確度、 精確度或 NDCG 等意義上的評估指標。 在機器學習中 , 指標是一種定義明確、客觀的衡量標準:它們精確量化模型的預測與真實情況的匹配程度 。 相比之下 , LLM as-a-judge 是一種用來近似人工標記的過程 。 當要求 LLM 評估“忠實于來源”、“正確性”或“有用性”等品質時 , 需要在提示詞中定義這些術語在的含義 , 且依賴于 LLM本身從訓練數據中學到的語義關系 。 使用 LLM judges 的成功在很大程度上還取決于實現細節:使用的模型、提示詞設計和任務復雜性 。 還需要根據特定的評估者 LLM 調整評估提示詞:單詞和格式都很重要 。

二、幾種類型LLM評估器可以要求 LLM 在兩個輸出之間選擇最佳答案 , 評估簡潔或禮貌性等特定品質 , 或使用額外的上下文評估答案 , 例如檢測幻覺或確定相關性:
  • 成對比較 :給LLM兩個回答 , 并要求LLM根據特定標準選擇更好的一個 。 這使您可以比較模型、提示或配置 , 以查看哪個性能最佳 。
  • 按標準評估(無參考):要求 LLM 根據語氣、清晰度、正確性或其他維度評估回復或對話 。
  • 按標準評估(基于參考文獻):提供額外的上下文 , 如源文檔或參考文獻 , 并要求 LLM 對回答進行評分 。

1、成對比較簡而言之 , 您生成兩個響應 , 并要求 LLM 根據特定質量或因素選擇更合適的一個 。
提示詞示例:你將看到對同一問題的兩個回答 。 你的任務是根據其相關性、有用性和詳細程度來決定哪個響應更好 。 如果兩個響應都一樣好 , 則聲明平局 。

2、按標準評估你可以要求 LLM 直接按你定義的任何維度對生成的文本進行評分 。 例如 , 你可以使用 LLM評委來評估語氣、清晰度、格式遵守性、簡潔性、禮貌性、個人身份信息 (PII) 的存在等內容 。
LLM 在專注于語言和語義的分類任務中非常有效 。 一種常見的方法是將評估視為二元分類問題 。 或者 , 你可以使用分級量表來衡量響應滿足特定標準的程度 , 例如使用從 1 到 5 的Likert scale 。
對話級評估:
對包含完整上下文的對話進行評估 , 如:
  • 確定問題是否已解決 :用戶的問題是否最終得到解決?
  • 檢測用戶挫敗感 :用戶是否表達了負面情緒?
提示詞示例:閱讀對話并評估用戶的請求是否已解決 。 “已解決”表示問題已得到解決 , 并且用戶確認或表示滿意 。 返回以下標簽之一:“已解決” 或“未解決” 。

3、基于參考的評估在基于參考的評估中 , 不僅可以單獨評估生成的輸出 , 還可以提供額外的上下文以供查看 。 以下是提供額外輸入的幾個示例:
1)答案 + 參考答案:
適合于有基本事實或正確答案進行比較時 。 例如 , 在QA系統中 , LLM評委可以檢查新的回答是否與之前同一問題的答案是否相似 。
示例prompt:將生成的 response 與 reference 答案進行比較 。 評估生成的響應即使措辭不同是否正確傳達了相同的含義 。 返回以下標簽之一:“Correct”或“Incorrect” 。
2)答案 + 問題 :
常見于聊天機器人或 Q&A 系統 , 用于檢查響應是否正確解決了問題 。
  • 完整性 :答案是否完全解決了問題?
  • 相關性 :答案是否與所提出的問題直接相關?
本人有話說:本人曾在某廠做過智能客服系統 , 在QA鏈路中 , 當大模型基于檢索的相關知識生成了答案之后 , 還要再過一個類似這樣的質檢模塊 , 判斷生成的答案是否能解決用戶的問題
3)在 RAG 中對上下文相關性進行評分:
答案 + 檢索到的上下文或問題 + 檢索的上下文:用于RAG中 , 評估根據檢索出來的上下文生成的答案情況 。
RAG的過程是:系統首先在知識庫中搜索可幫助回答問題的文檔 , 隨后LLM根據它們生成輸出 。 這為 LLM 答案增加了最新的知識 。 要正確評估 RAG 的性能 , 需要評估以下兩方面:
對于第一部分 —— 搜索質量評估 —— 可以使用 NDCG 或精確率等排名(ranking)質量指標 。 這些類型的指標量化了系統查找和排序有助于回答查詢的文檔的能力 。這些評估通常在迭代不同搜索策略等參數時離線進行 。
LLM評委可以充當上下文相關性評判員 , 可以對每個檢索到的文本塊與query進行相關性評分 。
4)評估RAG中的幻覺:
您可以創建一個忠實度評判來仔細檢查 LLM 是否正確處理了檢索到的內容 。
示例:評估以下 response 是否忠實于 context 。 忠實的回應應該只包括上下文中存在的信息 , 避免發明新的細節 , 并且不與上下文矛盾 。 返回以下標簽之一:“忠實”或“不忠實” 。
還可以使用LLM 評委來評估響應與上下文的連貫性、將摘要與來源進行比較來評估摘要。 這有助于您交叉檢查質量并發現不一致之處 。

三、實踐案例1、創建LLM評估器的步驟創建 LLM 評委與開發任何 LLM 驅動的產品非常相似 , 需要一個提示來告訴LLM 確切該做什么 。 在本例中 , 它是一個評估提示詞 , 指示 LLM 評估文本輸入并返回標簽、分數或解釋 。
問題是:如果你正在使用 LLM 來評估其他 LLM , 而結果不是確定性的 , 你如何確保你的評委符合你的期望?
您需要采用迭代方法——像優化LLM產品提示一樣優化評委 。 換句話說 , 您的評估系統需要自己的評估!
Step1. 定義評估方案 。
首先 , 確定你到底希望 LLM 法官評估什么 。
Tip:保持簡單!不要試圖一次評估太多事情 。 如果要檢查不同的維度(如逾期和準確性) , 請將它們拆分為單獨的評估 。 盡可能使用清晰的二元選項(例如 , “正確”與“不正確”) 。
Step2. 準備評估數據集 。
接下來 , 創建一個小型數據集來測試您的 LLM 判斷 。 這可以包括來自實驗或生產數據的示例 。 如果您沒有這些 , 則可以創建模擬預期輸入的合成案例 。
您的數據集不需要很大 , 但應該包含各種示例 , 尤其是那些挑戰您的評估標準的示例 。
Step3. Label此數據集 。
您需要手動標記此數據集 , 這個標記的數據集將是您的“基本事實” , 并幫助您衡量 LLM 裁判的表現如何 。
Step4. 撰寫評估提示詞 。
以下是一個示例:
Step5. 評估和迭代 。
提示準備就緒后 , 將其應用于您的評估數據集 , 并將 LLM 裁判的輸出與您手動標記的真實情況進行比較 。
對于二元分類 , 可以使用精確率和召回率等指標來衡量 LLM 裁判的表現 。
請注意 , 您的 LLM 評委不需要完美——只需“足夠好”以達到您的目標即可 。 即使是人類評估員也會犯錯誤!
最后 , 引入領域專家 。
非技術團隊成員(如產品或領域專家)在設置評估方面發揮著重要作用 。

2、LLM評估提示詞幾種提示技術可以提高 LLM 評估器的準確性和一致性 。 這些類似于您在開發 LLM 產品時可能使用的那些 , 例如思維鏈提示 。
1)使用二進制或低精度評分 。
二元評估 , 如 “Polite” 與 “Impolite”, 對 LLM 和人工評估者來說往往更可靠和一致 。 通過兩個簡單的選擇更容易獲得準確的結果 , 而不是試圖決定特定回答的 “禮貌” 得分是 73 分還是 82 分 。
您還可以使用三個選項的方法 , 例如 “相關”、“不相關” 和 “部分相關” , 或者在信息不足時包括 “未知” 選項 。 這避免了在沒有足夠數據的情況下迫使 LLM 做出決定 。
2)解釋每個分數的含義 。
不要只是要求 LLM 將某物標記為“禮貌”或“不禮貌” 。 相反 , 明確定義“不禮貌”的含義 , 則更有幫助 。 如果您更喜歡標記邊緣情況 , 您可以指導 LLM 更加嚴格地使用指示 , 例如“如果不確定 , 請謹慎行事并將其標記為’不禮貌’” 。
使用 5 分制之類的內容 , 解釋每個類別的含義變得更加重要——3 分和 4 分有什么區別?如果這一點不清楚 , LLM 和人工審稿人都將難以保持一致 。
為了減少可變性 , 您可以考慮使用多重評估。 然后 , 您可以使用最大投票或平均等方法組合結果 。
3)通過拆分標準簡化評估 。
如果你有幾個方面需要評估 , 比如完整性、準確性和相關性 , 最好將它們分成單獨的評估器 。 這樣可以保持專注 。
4)在提示中添加示例 。
如果您的標準很細微 , 您還可以考慮添加輸入和判斷的示例 。
您的提示可以從一般說明開始(例如 , “Good”表示……“Bad” 的意思是……然后提供良好和不良響應的示例 。 這些示例可幫助 LLM 更好地了解如何應用您的條件 , 尤其是對于功能較弱的模型 。
但是也要注意 , 避免添加有偏差或有偏見的例子 , 且如果包含的負面示例多于正面示例 , 或者如果所有負面示例都列在末尾 , 則它們的順序或頻率可能會影響評估結果 。
5)鼓勵循序漸進的推理 。
就像其他任務一樣 , 要求 LLM 在給出最終答案之前“思考”其過程——稱為思維鏈 (CoT) 方法——可以幫助取得更好的結果 。
您可以在評估提示中執行相同的動作:要求模型解釋其推理或逐步思考 , 從而有效地實施 Zero-Shot-CoT 方法 。 這樣 , 模型將在一個響應中同時提供推理和結果 。
6)設置低溫 。
【LLM-as-a-Judge,解鎖「LLM評估LLM」新世界】在 LLM 中 , 溫度控制輸出的隨機性 。 較高的溫度意味著更多的種類 , 而較低的溫度使輸出更“可預測” 。 對于評估 , 您不需要創造力 – 設置一個低溫 , 以便模型為相同的輸入提供一致的答案 。
7)使用功能更強大的模型 。
在評估時 , 從更強大的模型開始是有意義的 。 這通常有助于確保更好地與人類判斷保持一致 。 一旦有了這個堅實的基線 , 您就可以試驗更小或功能更弱的模型 , 看看它們是否滿足您的需求 。
8)獲取結構化輸出 。
最后但并非最不重要的一點是 , 始終選擇結構化輸出格式 , 例如 JSON 。 它使解析評估結果以進行進一步分析變得更加容易 。

四、生產環境中LLM的觀測與評估系統上線后 , 真實用戶將以您可能意想不到的方式與它進行交互 。 即使是最徹底的發布前測試也無法涵蓋人們使用它的所有不同方式 。 這就是為什么實時跟蹤實際性能如此重要的原因 。
在生產中 , 沒有完美的答案來比較輸出 , 因此您需要自行監控響應的質量 。 LLM 評估員使這成為可能 。 您可以設置一個常規流程 , 根據所選標準對新一代輸出進行評分 。
這種監控不僅與質量控制有關 , 還可以深入了解用戶如何與您的工具交互
第一步:追蹤
第一步是跟蹤 — 從用戶交互中收集數據并將其存儲以供分析 , 獲得日志后 , 您可以查看和讀取它們 , 以了解用戶與您的應用程序交互時發生的情況 。
最初 , 您可能會手動查看輸出以發現常見模式或問題 。 但是 , 隨著數據量的增長 , 人工審核將無法擴展 , 因此您需要一些自動化 。
第二步:安排評估
制定評估計劃:如果您正在運行客戶服務聊天機器人 , 您可以評估 10% 的對話 , 以發現用戶表達的沮喪、重復的問題或未解決的聊天 。 定期運行這些評估(例如 , 每小時、每天或在 X 次對話之后)可以讓您了解最新的情況 。
第三步:構建儀表盤
在對最新一批數據進行評估后 , 您可以將“標記為幻覺的答案比率”或“用戶表達沮喪的對話數”等指標添加到控制面板中 , 并隨著時間的推移可視化它們 。 這有助于跟蹤性能趨勢并發現問題 。
您還可以設置警報, 以便在事情偏離軌道時 , 您會立即收到通知 , 并可以在問題影響太多用戶之前介入 。
第四步:查看您的數據
監控和調試齊頭并進 。 比如說 , 如果你注意到用戶不滿情緒增加 , 你需要查看特定的問題對話 。 您可以導出示例以微調模型 , 或創建測試集以調整提示詞以解決問題 。
本文由 @「愛」原生 原創發布于人人都是產品經理 。 未經作者許可 , 禁止轉載
題圖來自Unsplash , 基于CC0協議

    推薦閱讀