快轉到主要內容

LLM as a Judge: 用語言模型來評估好壞

評估問答的好壞 – 無論 LLM 答的或人類回的 – 都很實用。例如批改學生作業、或評估 LLM 的回答(咬著自己尾巴的蛇?)等等

然而人類批改太慢、很難規模化,大家自然就想 LLM 能否回答「這個答案好不好」

看了兩篇關於 LLM-as-a-Judge 的論文,記錄一些重點跟有趣的地方

  1. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena
  2. G-Eval: NLG Evaluation using GPT-4 with Better Human Alignment

其中第一篇就是 Chatbot Arena 那一票人寫的。兩篇的附錄都有不錯的 prompt 可參考


評判的型態 #

評估有兩種

  • Point-wise: 直接評估「這個回答你給幾分?」
    • 比較直接,但可能比較不準(例如 1-10 都給 7 分)或沒有標準(有人覺得 3 分就很高了,有人覺得沒大錯就給 5 分)
  • Pair-wise: 對於同一個問題,蒐集 A 的回答跟 B 的回答,然後評估「誰的回答比較好」
    • 比較偏重「評估評估者」,或者說很難給回答的品質做絕對排序
    • 不過相對來說能抓到兩個回答細微的差異,不會陷入「兩個應該都 7 分,雖然 A 比 B 好一點點」

無論是 LLM 去評估或是人類評估都可以用這樣的方式

Benchmark 跟 metrics #

先講第一篇用的 benchmark 資料跟 metrics – 因為這是他們怎麼評估「LLM 對於問答的評估」

他們宣稱傳統像 MMLU 這種資料已經無法有效評斷 LLM

  • 沒有微調的 pre-trained 模型在 MMLU 的表現,已經跟有細心微調對齊的模型差不多了
  • 然而在開放式問答上,「人類」都喜歡有細心微調的模型

所以他們發明兩種 benchmark 資料,來包含「問答」跟「答案的好壞」

  1. MT-bench (multi-turn benchmark):多輪開放問題,小資料,請人類評估
  2. Chatbot Arena:大家熟知的 https://chat.lmsys.org/ – 隨機兩個 LLM 回答問題,人類去選哪個比較好,也就是集地球眾人之力 (crowd-sourcing)

有了這些 benchmark 的「問答」,跟人類對於這些答案的好惡,間接也可以評估「LLM 對這些答案的評估」 – 也就是 “agreement",看 LLM 對這些答案的評估是否跟人類對這些答案的評估一樣

偏見 (Bias) #

他們發現 LLM 評估某個問題的答案好壞會有偏見/錯誤,尤其比較弱的模型更明顯

  • Positional bias (位置):Pairwise 評估時,LLM 會喜歡「第一個」回答,而不見得是看回答的內容
    • 驗證方式:把兩個答案交換再請 LLM 評估,如果 LLM 還是選「第一個比較好」那就是有偏見;如果兩次都偏好同一個答案就是「一致」 (consistent) – 雖然不代表評估「正確」
    • GPT-4 的一致性比較高;GPT-3.5 只有 50%(剩下 50% 偏好第一個)
  • Name bias (名字):類似位置偏見,Claude-V1 喜歡署名為 “Assistant A” 的回答
  • Verbosity bias:喜歡很長的回答
    • 驗證方式:把同樣的回答換句話說接在後面
    • GPT-4 不到 10% 上當;GPT-3.5 不到 10% 會通過測試
  • Self-enhancement bias:模型喜歡同類模型的回答;LLM 也可能會偏好 LLM 的回答而非人類的
  • 數學/推理性的問題不太準 – 就算他自己本身會解這題,卻不見得能評估別人的回答

可能的解法 #

如果是 pairwise 評估,讓 LLM 評估兩次不同順序的答案:如果不一致,就算兩個回答平手

Few-shot:給 LLM 範例什麼叫好。例如 pairwise 的設定下,在 prompt 給 LLM 三個範例:A 好、B 好、一樣好

  • API cost 會變高
  • 以他們評估的 GPT-4,雖然一致性變高,且對於前後的 bias 也一樣了,但是以「正確」性,或說是跟人類的 agreement 相比,few-shot 跟 zero-shot 一樣

對於數學/推理題:先讓 LLM judge 自己回答問題,然後再去評價別人的回答

  • 他們稱為 CoT (Chain of Thought)
  • 失敗率:14/20 降低成 6/20

對於數學/推理題:先給 LLM judge 參考解答,然後再去評價別人的回答

  • 論文稱 Reference-guided
  • 失敗率:14/20 降低成 3/20
  • 但可能不是每個場景都適用 – 這個參考解答要從哪來呢?

Finetune 微調

  • Vicuna-13B finetune 後,快要趕上 GPT-4

G-Eval 還提出了兩個有趣的想法

讓 LLM 裁判自己生成 prompt:給他「任務說明」與「評判標準」,讓 LLM 生出「評判步驟」,再把這三者合成一個 prompt 變成後續的任務 prompt

  • 論文稱 Auto-CoT

給分的時候考慮「機率加權分數」

  • LLM 文字接龍並非絕對:例如下一個字要出 1 還是 5 是都有機率的
  • 就算是 OpenAI 封閉式的模型也有 API 參數 (logprobs) 能拿到這種資訊
  • 他們讓 LLM 評估時「只回答數字」1~5 分,再看 LLM 想出 “1” 的機率多高、“2” 的機率多高、依此類推。最後把 1~5 五種可能的分數根據 LLM 認為的機率去加權平均
  • 同時考慮了對分數的信心,以及到小數點更細膩的分數(不會每個都是 3 分)
  • 缺點可能是無法搭配第一篇說的 CoT 手法

結論… 嗎? #

論文的結論是「GPT-4 跟人類 agreement 高」,然而之後也有其他研究繼續討論各種偏見、Adverserial attak 如何誤導 LLM 的評估、 fine-tuned LLM 當裁判的限制等等

問題、領域、使用場景都太多太個人,或許結論還是親自試一遍並跟人類合作輔助吧


若您覺得有趣, 請 追蹤我的Facebook 或  Linkedin, 讓你獲得更多資訊!