近一兩年,不管是開源或閉源,全世界的大模型競賽已呈現出白熱化的局面,市場上湧現出數量眾多的模型。各大實驗室和企業大廠不僅注重模型參數、效能的提升,還常在宣傳中強調自己在某些排行榜上取得的優異成績,比如“獲得某某榜單第一”、“在某評測中奪冠”或是"某模型已成某領域的 SOTA(state-of-art)"等。
那麽,目前有哪些具備權威性的榜單?這些榜單在評估大模型時,又具體考慮了哪些指標呢?大模型百百種,我們到底該如何挑選適合當前任務的 LLM 呢?
MMLU(Massive Multitask Language Understanding) 是一個大規模的資料集,包含 57 種不同的 Tasks,範圍涵蓋初等數學,美國歷史,計算機科學,法律等等多種學科領域,題目跨度大,難度也各不相同。
目標是測驗在大語言模型在廣泛的知識領域和任務類型上的理解能力和適應性,鼓勵模型在多個任務上進行學習、推理和泛化,而不是僅針對單一任務或領域進行優化;題目設計上更要求要有文字的深層理解和推理能力,而不只是表面文字的匹配或關鍵字檢索。
我們淺看一下資料集中"Microeconomics(微觀經濟學) task"、 “Conceptual Physics” 和 “College Mathematics STEM tasks”這三個 task 的題目:
我覺得還滿難的,普通水平的人類答題正確率大概在34.5%左右,而人類專家的正確率可以達到 89.5%。
資料集中每一筆資料都以單選題的方式呈現,也就是有一個問題配上四個選項與一個答案這樣的形式。每一個 Task 都有大約 100~300多筆 data,現在可以在 huggingface 上直接下載該 dataset:
下面是關於高中電腦科學類型的題目:
MMLU 是 2021 年提出的 dataset,三年過去了,原本的 MMLU 對很多模型來說變得太容易。很多模型現在在MMLU上達到了人類基準性能,這種現象被稱為飽和。
可以從上圖發現有好幾個 benchmark 的大模型平均分數已經跟 human baseline 齊平了。
甚至有些新的模型在和 MMLU 很像的 dataset 上訓練,使得這個 benchmark 不再能反應模型在這些測試任務上的泛化性能。這個現象在除了 MMLU 以外的 dataset 例如 HellaSwag、ARC、GSM8K、TruthfulQA 等 benchmark 也有出現類似的問題。
(圖片來源:5)
甚至有些研究指出 MMLU 中有一些問題不清楚、答案給錯等等問題。
因此今年,一個新的、更複雜、難度更高的改良版 MMLU dataset 出現了。
MMLU-Pro 主要的改動在於通過結合更具挑戰性的推理密集型任務並將干擾選項的數量從三個增加到九個來提升整體的難度,所以單選題的選項就從原本的4個增加到14個。整個 dataset 包含超過 12,000 個問題,並且從另外三個不同的 source 引入更多問題(STEM Website, TheoremQA, Scibench),從而提供更廣泛、更具區分性的評估。
MMLU-Pro 建立的流程如下:
首先將原本 MMLU 的 data 先過濾一遍,把原本有問題的、太簡單的問題篩掉,之後和另外三個來源的問題進行合併,再利用現有的 LLM 擴充選項,最後交由人類專家檢查產出的 dataset 是否有問題。
另外,雖然 MMLU-Pro 依然有涵蓋多個領域的問題,但可以發現大部分都是關於數學的問題,且這些數學問題都是需要多步驟的思考推理才有辦法得到答案的。這也是一個和前身 MMLU 的一個重大差異,之前的版本,數學問題大部分都不需要 chain-of-thoughts 就可以回答出來。
這次更新提供的 dataset 除了有問題和10個選項與正確答案之外,還多了一個cot_content
的欄位,裡面詳細說明得到正確答案的正確推理步驟:
全稱GPQA: A Graduate-Level Google-Proof
Q&A Benchmark,GPQA 這是一個難度極高的領域專家知識數據集,其問題由各領域的專家(如生物學、物理學、化學等領域的博士級專家)精心設計,普通人難以作答,但對於專家來說相對容易。問題經過多次驗證,以確保其挑戰性和準確性。整個資料集一共有 448 個極度專業的單選題,每一題有 4 個選項,創建的流程如下:
ps.由於論文作者要求不得以文字或圖像的方式洩漏資料集中的題目到網路上,以避免訓練資料污染,所以上圖中提到題目的部分用灰色方塊碼掉了。
MATH dataset 包含來自美國高中生數學競賽的問題,AMC 10、AMC 12、AIME 等。許多這些問題可以從 aops.com/community/c3158_usa_contests 收集到,共有 12,000筆 data。
他們使用 Latex 一致地格式化方程和 Asymptote 格式化圖形,生成的答案必須嚴格遵循特定的輸出格式。
因為不是像前面幾個一樣是單選題,而是輸出 answer span ,例如 $\frac{2}{3}$
,所以使用的評估指摽是"exatch match"。
Hard Reasoning 通常是指在解數理問題等根據精確的規則、定理推導答案的能力;Soft Reasoning 則通常指模糊的、不確定的,並且可能涉及概率推斷、直觀判斷或常識推理。這種推理常應用於處理開放性問題或不確定的情境,比如語言理解、決策制定、甚至是情感分析等。
MuSR 是一個在2024 ICLR發表的新數據集,個人覺得超級有趣。資料集包含由算法生成的複雜問題,平均長度約為 1000 字,就...還滿長的,也滿考驗模型的長文理解能力。
這些問題涵蓋謀殺之謎、物體擺放挑戰和團隊分配優化等三種主題。為了成功解答這些問題,模型需要具備推理能力並能處理極長的上下文。很少有模型能超越隨機猜測的表現水準。
Dataset 下載:https://github.com/Zayne-sprague/MuSR/tree/main/datasets
有別於前面幾個 benchmark 要嘛測試學科能力,要嘛數理能力,這個 benchmark 卻只關心模型乖不乖、聽不聽得懂人話、有沒有照做xdd。
也就是說,我們關心模型的回覆是否能夠準確遵循明確的指令,如“包含關鍵詞 x”或“使用格式 y”。測試的重點在於模型是否能嚴格遵守格式要求,而非生成的內容本身,這樣可以使用明確的標準進行評估。
舉例如下:
我們叫模型把一篇文章摘要成兩個段落,並至少有 25 個句子。我們評估的重點不在模型寫的內容是否有真的有在摘要原始文本、寫得流不流暢、邏輯文采等等,只在乎他是不是有遵照我們要求的格式,寫「兩個段落」並「至少有25個句子」。
下面是這個 Becnhmark 會評測到的項目:
那這個 benchmark 要怎麼評估呢?可以用人工確認 model 的 output 有沒有符合我們要求的格式,或是用 regex 之類寫一些簡單的判斷式來檢查。
比方說如果要求結尾要是一個 email 的話,我們可以很輕易地用 regex 做到自動化地確認。如果通過的話,就得 1 分,反之 0 分,最後可以算一個整體的 accuracy。
聽起來有點麻煩,別擔心,論文作者都幫你寫好不同 instruction 的 evaluation script 了,請參考:https://github.com/google-research/google-research/tree/master/instruction_following_eval
整個 dataset 有 541 筆 data,可在 huggingface 下載:
如果我們非常需要讓大模型遵從某種特定的格式輸出,例如:“以 json 的格式輸出“,或是”用 xxx 開頭來回答”或“不可以提到 xxx字眼“,就很適合用這個 benchmark 先測試哪個LLM比較乖,或是哪一種 prompt 可以成功讓大模型乖乖照做。
BBL 是從 BigBench 挑出 23 個大部分模型的表現都在人類平均水準之下的艱難任務,所以是 BigBench 的子集。
BigBench任務涵蓋了多個領域,包括文本理解、推理、邏輯推理、數學推理和常識推理等。其中一些任務包括:
BigBench 包含170個任務,覆蓋20多個數據集。每個任務都由一個模板、一組例子和一個測試集組成。
• 機器翻譯
• 文本分類
• 序列標注
• 抽取式摘要
• 信息檢索
• 表格解讀
• 數理推理
• 常識推理
• 多模態推理
• 規劃
• 數學問題解答
總而言之就是各種 NLP 經典類型題目都包含了,包羅萬象,BBH從裡面挑出現在大語言模型還是做得不太好的一部份出來:
並且 BBH 1) 采用客觀的評估標準,2) 難度較大,評估顯示語言模型未能超越人類基準,3) 樣本量足夠大,確保統計顯著性。內容涵蓋多步算術和算法推理(如理解布爾表達式、幾何圖形的 SVG 等)、語言理解(如諷刺檢測、名稱消歧)以及部分世界知識。
有研究發現,模型在 BBH 的表現與人類偏好的平均相關性較高。
這其實不算是非常常見的通用型 LLM Benchmark,只是因為這是一個大型繁體中文評測 Benchmark ,裡面像 MMLU 一樣,包含如 STEM, Social Science, Humanities 或是 Business, Health 等多個領域的單選題,並且具有台灣特色,所以特別來介紹xd。
每一題都由一個問題 prompt 和四個選項所組成。
除了問題與選項都是繁體中文以外,也新增很多和台灣相關的地理、氣候,符合台灣民情與用語的問題,可用來開發台灣在地的大型語言模型。
現在也可在 huggingface 上下載 dataset:
LiveBench 是一個基準測試平台,包含 6 個類別中的 18 個任務,主要包括推理、數據分析、數學、編碼、語言理解和指令執行。任務分為兩類:
數據集中包含的六個類別的題目介紹如下:
介紹到這邊,我們可以把以上幾種 benchmark 的形式寫成下列三種:
可以發現都是在測驗LLM單次回答問題的準確率。
但生活中我們和 LLM 互動的方式常常是在多輪問答中尋求滿意的回答的,在這之中甚至沒有標準答案。例如我們和 chatgpt 聊心事、和 chatgpt 玩角色扮演,這些都是開放式的問題,沒有固定的解答。
那麽對於這些任務,要如何有效地評估 LLM 的能力呢?
MT-Bench 就是用來解決這類的評測問題的。
MT-Bench 方法使用的數據集涵蓋了八個不同領域的問題,包括寫作、角色扮演、推理、數學、編程、人文學科、信息提取和 STEM(科學、技術、工程、數學)領域。
由於生活中實際和 LLM 的使用場景時常是基於多輪對話的,所以 MT-Bench 中有設計 first-turn 和 second-turn 的問題,範例如下:
你會發現 2nd Turn 的問題其實是 1st Turn 的 follow-up 問題,兩者息息相關,一起組成一個題組。
在評估的時候,我們不只要評估模型對 1st Turn 問題做出的回答,也同時需要評估模型對 2nd Turn 問題的答覆,確認模型是可以在同樣的脈絡下連續回答問題的。
舉例來說,從下面 dataset viewer 就可以看出,每個 prompt 都是一個 List,裡面包含兩個問題:
但是你發現一個怪怪的地方了嗎?這個 dataset 竟然沒有"answer"這個正確答案的欄位。
沒有錯!這個 Benchmark 是沒有提供標準答案的!
MT-Bench 主要採用 "Single Answer Grading" 和 "Pariwise Comparison" 這兩種評估方式。
{"name": "single-v1", "type": "single", "system_prompt": "You are a helpful assistant.", "prompt_template": "[Instruction]\nPlease act as an impartial judge and evaluate the quality of the response provided by an AI assistant to the user question displayed below. Your evaluation should consider factors such as the helpfulness, relevance, accuracy, depth, creativity, and level of detail of the response. Begin your evaluation by providing a short explanation. Be as objective as possible. After providing your explanation, you must rate the response on a scale of 1 to 10 by strictly following this format: \"[[rating]]\", for example: \"Rating: [[5]]\".\n\n[Question]\n{question}\n\n[The Start of Assistant's Answer]\n{answer}\n[The End of Assistant's Answer]", "description": "Prompt for general questions", "category": "general", "output_format": "[[rating]]"}
假如我們現在要測試 Llama-2-70b-chat
在 "writing" 這個類別的多輪對話能力,我們可以請他回答 1st Turn 和 2nd Turn question:
以下是 1st Tuen question 和 Llama-2-70b-chat
的第一個回答:
下面是 2nd Turn question 和 Llama-2-70b-chat
的第二個回答:
接下來讓 GPT-4 去幫兩個回答打分:
接下來我們可以把 GPT-4 打出的兩個分數做加權平均,就看我們覺得哪一輪的回答比較重要,就給該輪分數較高的權重即可。
怎麼看懂 LMSYS 排行榜呢? 一進來會看到榜單有四個主要的 column: "Model", "Arean Elo rating", "MT-bench(score)", "MMLU"。
"Model"不用介紹了,其他三個分數各自代表什麼意義呢?
MT-Bench
就是我們前面介紹過的 Single Answer Grading 計算方法。GPT-4幫目前測試的模型打上 1st Turn Response 和 2nd Response 的分數後,會用加權平均的方式計算一個總分出來。
MMLU
這邊用的就是前面介紹過的 MMLU benchmark 來評分。會給當前模型 5-shots 輔助模型回答 MMLU 的單選題,之後就計算模型答題的準確率即得此欄分數。
Arean Elo rating
要看懂這個指標,我們首先需要介紹 Elo rating 的計算方式。
ELO Rating
ELO 是一種在世界上非常流行的評級類型,例如國際象棋多年來一直使用ELO評級,而且它不僅僅是國際象棋,還像足球和乒乓球等許多其他遊戲一樣也使用ELO評級,常見於各種博弈對抗類型的活動。
這個指標的概念簡單來說就是:為所有參與評分的模型最初都被賦予一個初始的 Elo 分數,然後依次與其他模型進行對決,通過對比計算得出新的 Elo 評估,並更新該模型的 Elo 分數。這一過程持續進行,直到該模型與所有其他模型都進行過對比對決,最終得到其最終的 Elo 分數。
假如現在有兩個模型 A 和 B,他們的初始分數分別為 $R_A$ 和 $R_B$,經過一場激烈的對決之後,模型 A 勝出了,那模型 A 的分數就會更新為 $R_A'$。這個分數具體是用下面的公式來更新:
$R_A' = R_A + K*(S_A-E_A)$
我們來逐一解釋這個公式使用到的變量:
$E_A$ 指的是模型 A 的預期勝率。假如模型 A 的初始評分 $R_A$ 為 1000 分,模型 B 的初始評分 $R_B$ 是 1200分,那 $E_A$的計算方式如下:
$E_A = \frac{1}{1+10^({R_B-R_A})/400}$ = $\frac{1}{1+10^({1200-1000})/400} = \frac{1}{1+10^(0.5)} = 0.24$
$K$ 因子是一個固定的常數,是通常根據比賽的級別或者模型的穩定性選取的,較常見的值是32(對於成熟的模型)。
$S_A$ 只會是 1(勝局), 0.5(平局) 或是 0(敗局) 這三個數字。如果模型 A 在這場比賽中打贏模型 B,那這場比賽的 $S_A = 1.0$;如若兩者平手,那$S_A = 0.5$;如果模型 A 輸了,那 $S_A = 0.0$。
所以結合上面的計算過程, $R_A' = 1000 + 32 * (1-0.24) = 1024.32$
通常都只取整數,所以 $R_A'$ 更新後的分數就從 1000 變成 1024 了!
但是前面說到模型 A 跟模型 B 打一架,到底模型和模型之間要怎麼打架呢?
LMSYS Leaderboard 主要通過 Chatbot Arena 進行基準測試,這是一個眾包平台,采用匿名、隨機化的戰鬥方式來評估大型語言模型的性能。
舉例來說,我隨便亂問 Model A 和 Model B 這樣的問題:
看完他們的回覆後,我可以點擊下面選擇比較好的回覆:
我選了 Model B。
所以在這輪就是 Model B 獲勝囉!
接下來就可以用上面介紹的 ELO rating 來更新 Model A 和 Model B 的 Elo rating score。
投完票之後系統會告訴你這兩個模型分別是從他們的 model pool 抽出的哪兩個模型。
用這種投票的方式,就可以避免模型過度 fit 在那些公開的 benchmark 上測不出效果;這種大家投票的方式可以找出比較符合人類偏好的大語言模型!
Open LLM Leaderboard 採用以下幾個 benchmark :
根據下游任務的需求,我們可以從中挑選在特定 benchmark 上表現良好的模型來使用。
例如在我們的 Science Exam 中,我們可能會特別需要在 MMLU-Pro(跨學科推理能力), GPQA(專家領域的知識測驗)這兩個 Benchmark 表現出色的模型。
就是用 LiveBench 測試當紅的LLM的分數排行榜,可以看到資料最新版本有到今年的八月。可說是所有 Testbench 中最跟得上當前時事的一份了。
(以上內容部分參考這些來源:1, 2, 3, 4, 6, 7, 8)
最後,我們用下表總結一下上述提到的 Benchmark 的特色吧!
Benchmark | 評估重點 |
---|---|
MMLU | 測驗LLM對不同學科的知識理解 |
MMLU-Pro (CoT) | 測驗LLM對不同學科的知識理解與多步驟推理能力 |
GPQA | 測驗LLM是否具有研究生/博士生級別的知識理解能力 |
MATH | 測驗LLM的高中數學競賽程度的困難數學推理解題能力 |
MuSR | 測試多步驟的 Soft Reasoning 能力 |
IFEval | 測驗LLM的指令遵循能力 |
BBH | 測試LLM在多項高難度複雜推理任務中的能力 |
TMMLU+ | 測試LLM在繁體中文的不同學科領域上的知識理解能力 |
LiveBench | 用最新的資料測試LLM的多任務推理能力 |
MT-Bench score | 測試 LLM 的多輪對話能力 |
昨天我們生成了足夠多的訓練數據,今天也一起研究要怎麼為下游任務挑適合的 LLM 了,明天就開始進入令人期待的 fine-tune 與 inference LLM 的環節囉!
沒想到這篇文章竟然是我到目前為止花最多時間寫的一篇QQ,希望會對正在從事 LLM 相關研究或開發工作的朋友有所幫助<3
我們明天見~
謝謝讀到最後的你,希望你會覺得有趣!
如果喜歡這系列,別忘了按下訂閱,才不會錯過最新更新,也可以按讚⭐️給我鼓勵唷!
如果有任何回饋和建議,歡迎在留言區和我說✨✨
(Kaggle - LLM Science Exam 解法分享系列)