LLM as a Judge: 用語言模型來評估好壞
目錄
評估問答的好壞 – 無論 LLM 答的或人類回的 – 都很實用。例如批改學生作業、或評估 LLM 的回答(咬著自己尾巴的蛇?)等等
然而人類批改太慢、很難規模化,大家自然就想 LLM 能否回答「這個答案好不好」
看了兩篇關於 LLM-as-a-Judge 的論文,記錄一些重點跟有趣的地方
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena
- 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 資料,來包含「問答」跟「答案的好壞」
- MT-bench (multi-turn benchmark):多輪開放問題,小資料,請人類評估
- 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 當裁判的限制等等
問題、領域、使用場景都太多太個人,或許結論還是親自試一遍並跟人類合作輔助吧