每天都看模型評分,但你真的了解嗎?OpenAI研究員最新博客,一文讀懂LLM評估
上周六,OpenAI研究院Jason Wei在個人網站上發表了一篇博客,討論了他眼中「成功的語言模型評估」應該具備哪些因素,并總結出了阻礙好的評估在NLP社區獲得關注的「七宗罪」。
Jason Wei在最近的斯坦福NLP研討會上展示了這篇文章,OpenAI的同事、GPT-4o團隊成員之一William Fedus也轉發了這篇推文。
如果評估不夠好,進展就會受阻。當我們的評估改進后,一些想法才被發現是好的。當沒有可以攀登的單一指標時,良好的評估在訓練后尤其重要。
Jason Wei從2023年2月開始加入OpenAI,此前他在Google Brain擔任研究科學家。
今年3月他曾在推特上分享OpenAI的「996」作息(為了AGI,全員主動996!OpenAI匿名員工自曝3年工作感受)
也在今年5月GPT-4o發布后主動現身說法,比較了大公司谷歌和初創公司OpanAI在人事策略上的不同思路,為我們解開了OpenAI成功之謎的一角。
那么就讓我們看看,這篇博客具體談了哪些內容。
評估對于LLM有多重要
目前,每個開發LLM的人都在使用基準評估,但是這個領域應該得到更多的關注和投入,因為這是對學界工作的直接激勵,與模型的重大性能突破密切相關。
由于LLM大規模、多任務的特性,而且模型通常會給出很長的回答,因此評估工作變得更加困難。目前還沒有一個評估集可以充分測評LLM的能力。
當前流行的評估仍然使用非常簡單的評分機制(單選/多選、核對數字或運行單元測試)。即使這些簡單的機制也存在問題,比如使用了不同的prompt或解析答案的方式。
一個比較好的方案是讓LLM采用同一種prompt,比如零樣本思維鏈。
這可能并不是一個完美的解決方案,但為了「控制變量」,更公平地衡量所有LLM的能力,付出一些代價也是值得的。
零樣本思維鏈prompt:https://arxiv.org/abs/2205.11916
什么是成功的評估
首先,如果一個評估測試被用在突破性論文中,而且受到整個領域的信任,那么它顯然是成功的。
按照這個標準,過去5年中有一些成功的評估被廣泛采用:
- GLUE/SuperGLUE(General Language Understanding Evaluation):基本被前LLM時代的所有NLP論文所使用,包括BERT、T5等。
論文地址:https://gluebenchmark.com/
- MMLU(Measuring Massive Multitask Language Understanding):幾乎所有LLM論文都使用MMLU,也是DeepMind和Google最喜歡的評估。
這項測試涵蓋了基礎數學、美國歷史、計算機科學、法律等領域的57項任務,模型想要在這項測試中獲得高評分,則必須具備廣泛的世界知識和解決問題的能力。
論文地址:https://arxiv.org/abs/2009.03300
- GSM8K(Grade Scholl Math 8K):包括多種語言的小學數學應用題,可以刺激LLM進行多步推理,每一篇關于思想鏈(CoT)的論文中都會使用。
https://klu.ai/glossary/GSM8K-eval
- MATH:包含超過1.2萬個競賽難度的數學題目,也被大多數LLM論文使用。
論文地址:https://arxiv.org/pdf/2103.03874
- HumanEval:由OpenAI建立的手寫評估測試,用于衡量從文檔字符串生成程序的功能正確性
項目地址:https://github.com/openai/human-eval?tab=readme-ov-file
當然,這里列出的是一個不完全列表,還有很多其他非常優秀的評估測試,包括HellaSwag、SQuAD以及Jason Wei本人參與開發的MGSM、BBH等。
一篇突破性的論文提出一個全新的評估,并宣稱在上面取得了性能突破,再將其推廣開來,這是一種常見的范式。
比如GLUE由BERT推廣,MMLU 由DeepMind推出的Gopher、Chinchilla和Flan-PaLM推廣,首先提出CoT prompting的論文宣稱在GSM8K上取得性能突破,Minerva在MATH上體現了數學能力,OpenAI的Codex首先嘗試HumanEval。
這些評估為什么可以在LLM領域流行起來?
Jason認為,一個評估集上的高分必須能體現出一些有重要意義而且易于理解的事情。
比如「超越人類表現」是容易理解的,「解決小學水平的數學題」對于模型能力的意義,也不難明白。
此外,評估的主題也直接影響著研究者們的關注程度。
在為某個特定領域(如法律、醫療等)創建高質量評估集時,最重要的是基于領域專家的意見和價值判斷,而且不要對流行程度期待過高。
Jason曾做過一個組織病理學的圖像基準測試,不出所料,除了醫學圖像分析領域,這項研究幾乎沒有引起任何關注,文章只有40次引用。
但也有例外,比如OpenAI曾經投入大量資金開發LLM的代碼能力,在Codex和CoPilot等項目獲得關注后,人們也開始意識到這個小眾領域的重要性,HumanEval也因此流行起來。
另一個現實層面的因素是,如果希望自己開發的評估基準獲得更多關注,你應該積極地幫助或激勵別人使用它。
Jason Wei說,他開發一個評估集之后,會主動提出幫別人在上面運行模型。如果模型表現良好,開發人員就會喜歡這個評估,并主動幫你推廣。
此外,也可以試著讓公司或實驗室內部的經理認可你的評估,這樣他們就會要求研發人員撰寫報告,闡述模型在這個評估上表現如何。
評估的「七宗罪」
好的評估是相似的,糟糕的評估各有各的缺陷。大多數不成功的評估都至少犯過以下錯誤中的一個:
1. 沒有足夠的示例
這相當于一個嘈雜的且糟糕的用戶界面。例如,在訓練過程中運行評估時,各個checkpoint之間分數波動很大,研究人員就不會喜歡使用這種評估。
最好有至少1000個示例,對于單選/多選題目組成的評估集,示例數應該更多。GPQA就是這方面的反例,盡管是一個很好的評估,但它隨著輸入的prompt不同會發生波動,因而很難使用。
2. 質量不夠高
如果評估中有很多錯誤,就得不到大家的信任。
例如,Jason曾經長期使用NQ數據集(Natural Questions)進行評估,但GPT-4的能力強大到跨過了一個閾值——即如果模型給出的答案被判定為錯,更可能的情況是評估提供的真實答案錯了,因此他不再使用NQ。
3. 指標過于復雜
過于復雜的評估會讓人難以理解,因而很少使用,這方面的反例是HELM評估集。
HELM的第一版是一項巨大的努力,但它有太多的指標和子集。擁有單一數字指標至關重要——我想不出任何優秀的評估是沒有單一數字指標的。
4. 運行太麻煩
如果運行起來太麻煩,即使其他方面都很好,也不會吸引很多人使用,比如BIG-Bench。
BIG-Bench運行起來非常痛苦,包括對數概率評估和生成評估,子集太多、示例太多,而且需要不同的基礎設施,所以運行花了很長時間。這也許就是BIG-Bench沒有獲得太多關注的原因,盡管它提供了很多信號。
5. 沒有針對一項有意義的任務
如果評估不是針對一項有意義的任務,AI研究人員就不會非常關心它。
例如,BIG-Bench Hard有諸如推薦電影或正確結束括號之類的任務。這些任務具有挑戰性,并且隨著模型大小的改變,體現出良好的的變化趨勢。
但是,在這些任務上做得好并不能對模型的智能程度做出實質性結論。成功的評估通常會衡量對模型智能至關重要的方面,例如語言理解、考試問題或數學等。
6. 評分不正確
如果有人因為模型評分不正確需要調試代碼,并且他們不同意評分,那么他們可以立即舍棄這個評估。所以,盡量減少解析模型引起的錯誤,或者盡可能給出最好的自動評分的prompt。
7. 性能飽和過快
大模型的性能飛速發展,為了使評估集能經得起時間考驗,因此不能使模型性能飽和過快。
例如,GLUE/SuperGLUE的分數飽和得太快,改進模型很難帶來巨大的收益,大家就會停止使用這種評估測試。LM在摘要、翻譯等任務上的性能也進步很快,開發評估集的速度很難追上,因此幾乎沒有人使用這類任務了。
除了傳統的評估數據集,還有一種范式正在興起——以LMSYS為代表的人類成對評估(human pairwise rating),這種機制有很強的普適性,可以用于所有類型的模型。
但這也是一把雙刃劍。優勢在于,得到的單一的數字指標可以衡量LLM在一組通用prompt上的表現,非常簡單直觀,而且樣本級別的噪聲可以在大量樣本上得到平均。
另一方面,我們不清楚人類評估者具體在為模型的哪一方面打分——與答案的正確性相比,感覺和風格在評分中有多少占比?
此外,還需要關注到的一個問題是評估集的數據污染。一個良好的評估發布之后,其中的示例往往會在互聯網上流傳開來,傳播到arxiv論文、ChatGPT示例或Reddit帖子中。
解決方法之一是建立隱藏測試集,但這會帶來很多分歧和沖突。Christopher Manning曾提出一個很好的建議——
為評估同時建立公開測試集和私有測試集,并監控哪些模型在兩個測試集上的分數有較大差異。這種方法可以平衡公開測試集的高認可度和私有測試集的高可信度。
雖然LLM的評估工作如此重要,但一個現實的困境是,投身于評估測試的工作可能比較痛苦,而且通常不會和模型開發的工作得到同等的回報。
但是無論如何,良好的評估發揮著「目標函數」的作用,會對整個領域產生有力影響,也值得我們投入持續的關注和努力。