GPT-4 滿分通過MIT本科數學?恐怕是假的,數據集本身有問題

原文標題:《爆火的「GPT-4 MIT本科數學滿分」論文作弊,數據集本身有問題》

這兩天,一篇關於GPT-4 滿分通過麻省理工MIT EECS 和數學本科考試的論文在推特上瘋傳。

論文地址:

簡單概括,一個來自MIT 的研究團隊從自己學校的數學、電氣工程和計算機科學(EECS) 專業的課程問題、期中考試和期末考試中,整理出了一個包含4550 個問題和解決方案的綜合數據集。

然後,研究團隊讓各種大語言模型去完成這個數據集的題目,結果太嚇人:GPT-3.5 能做對1/3,GPT-4 幾乎滿分通過。

論文作者表示,提升模型表現主要靠「四件套」:Few-shot learning、CoT、Self-critique、Expert。

就像上表中所示,加持GPT-4 的手法越多,模型的答題正確率就越高。原始的GPT-4 本來就能拿到90% 的正確率得分,一番運作之後,甚至直接拿到滿分。

但大部分討論得很激烈的網友可能沒注意到,這個分數本身就是用GPT-4 打的……

三位同樣來自MIT 的學生第一時間發現了這篇論文,作為險些被GPT-4 赶超的群體,他們想立即領會一下爆款論文的方法論。

研究了一小時後,他們對該論文的方法產生了懷疑。

兩小時後,他們意識到:數據集本身有問題。

儘管原論文的作者宣稱已手動審查了發布的數據集質量,但三人發現,有明顯的跡象表明,測試數據集的很大一部分被污染了。

也就是說,模型就像一個學生在考試前被告知了答案,這是赤裸裸的「作弊」。

產生質疑後,他們立即著手在數據集上完成了零樣本GPT-4 的運行,並對數據的前30% 進行了手動評分,結果與原論文相差甚遠,應該說是一個天上、一個地下。

「作為麻省理工學院的本科生,至少根據我們的經驗,這個測試集並不能準確地代表在麻省理工學院獲得EECS 學位所需的理解廣度和深度。」三人在博客中這麼寫道。

*最新進展:零樣本GPT-4 的準確率能達到62.5% 了,但還是和論文裡宣稱的90% 差很多。 *

三人還質疑了「過度宣傳」的風潮:「這些論文通常在任何合法的同行評審之前就被上傳到Arxiv,並在Twitter 上廣泛分享。在這種情況下,可能會傳播不良信息,並為未來的工作樹立一個糟糕的先例。」

「深度學習」鬥士Gary Marcus 也不出意料地聲援了這波質疑:

同時,三人也在博客中指出一點:《Exploring the MIT Mathematics and EECS Curriculum Using Large Language Models》論文上列出的幾個作者都是本科生研究人員,讓這些人對工作中出現的任何失誤負責是不合適的。相反,責任應該在指導作者身上—— 他們才是被期望確保工作符合其領域內公共學術標準的人。

接下來讓我們看下,這篇「爆火」論文都有哪些問題。

**數據集到底有什麼問題? **

首先,從原論文中得知,研究者收集的數據集包含獲得MIT 學位考試所需的30 門數學和EECS 課程的4550 個問題和相應的解決方案,涵蓋核心課程和選修課程。

論文中寫道:「在沒有圖像和有解決方案的問題中隨機選擇了288 個問題的測試集。」

這個數據集(不包括用於微調開源LLM 的訓練集)隨著論文的公開也被發佈到GitHub 上,同時發布的還有用於生成報告的測試性能的代碼。然而,作者Drori 教授在最近的一次提交中已經將其刪除。

經過檢查、對比,三人確信這個被刪掉的文件代表了論文中分析的測試集,因為評估代碼中的所有數據的文件路徑都指向它,沒有提供任何修改其內容的代碼,而且它在最初發布的GitHub 倉庫中是可用的。此外,該文件滿足了論文中規定的所有模式要求(行數等)。這些證據似乎非常有力地支持了下面的所有主張,

「但我們要承認,這個文件有可能被換成了一個用於測試的不同文件。如果是這樣的話,我們認為證明的責任在於作者公開發布這個數據和用它做的所有分析。」

那麼,被掩蓋的問題究竟是什麼呢?三人給出了自己的分析。

無法解決的問題(約佔測試集的4%)

鑑於原論文表示,任何形式的GPT-4 都能在測試集上產生一個完美的分數,三人開始檢查個別數據點。他們很快就發現,根本不可能有滿分,因為數據集中至少有10 個問題是無法用所提供的信息解決的,另外幾個問題在這種情況下根本就不是有效的問題。

像這種「有問題的問題」,至少佔據了測試集的4%。

在一個擴展的excel 文檔裡,三人對已經發現有問題的數據集例子進行了註釋。 「紅色」代表用提供的信息無法解決的問題,「黃色」代表一部分不太合理的問題。

頁面地址:

重複的問題(約佔測試集的5%)

使用文本相似性檢測,三人發現有14 個問題(7 對)在288 個問題的測試集中是重複的,在這些情況下,問題串之間的唯一區別是極小的字符級噪音,甚至完全相同。

鑑於這些無法解決的問題,GPT-4 能夠通過任何方式獲得100% 的準確率,也是難以置信。要么是在某個階段出現了答案洩漏到中,要么是問題沒有被正確打分。

這些初步的發現促使他們從少樣本示例開始進一步調查(如果模型在零樣本正確率方面失敗的話),最終發現,既有解題信息的洩露,也有用於對模型輸出進行分級的方法問題。具體情況如下:

少樣本示例中的信息洩露

值得注意的是,原論文中還提到了「少樣本示例」這個事。

簡而言之,論文對OpenAI 嵌入的數據集內的類似問題進行餘弦相似度搜索,並將這些問題和解決方案作為額外的上下文納入模型的,幫助模型解決問題。

這個方法本身是沒問題的,只要這些示例與有關問題有足夠的差異,且避免暴露不公平的信息。

只是隨機掃描已發布的測試數據集時,三人注意到一些奇怪的事情:許多提供給模型的「少樣本示例」與問題本身幾乎一字不差。

為了進一步了解這一點,他們寫了一個簡單的腳本,查看了所提供的幾個示例的問題陳述和所列出的問題之間的重疊情況,並繪出了直方圖:

許多提供的少樣本與問題本身幾乎相同,這意味著模型得到的是問題的答案或與問題非常相似的問題。通常情況下,這來自於大量的共享背景的多環節問題的重複。

他們認為,為了正確評估GPT 的解題能力,多環節問題的其他部分應該被完全排除在某一問題的少樣本示例之外。事實上,他們發現這些多環節問題的解決方案,往往直接提到或給出了模型被要求解決的另一部分問題的答案。

不僅如此,在對這些數據的挖掘中,他們還發現了整個問題被重複的樣本。比如:

在這兩種情況下,答案是完全相同的。很難說不算信息洩漏了。

GPT-4 自動打分,有問題

此外,三人還在原論文開源的打分機制中發現了問題:

def repeat_grading(input_path, output_path, num_experts = 3, num_fs = 3, most_recent_q = 0):

df = pd.read_csv(輸入路徑)

df = df.iloc[most_recent_q:]

對於索引,df.iterrows() 中的行:

print('完成問題', index)

question_output = row.values.tolist()

course_name = row['課程名稱']

問題=行['問題']

解決方案=行['解決方案']

fs_qs = [[row['Few shot question 1'], row['Few shot solution 1']], [row['Few shot question 2'], row['Few shot solution 2']], [row[ 'Few shot question 3'], row['Few shot solution 3']]]

experts = get_experts(course_name, question, num_experts).split(', ')

s = [lambda 專家:zero_shot_response(問題,專家),

lambda 專家:few_shot_response(專家、問題、fs_qs),

lambda 專家:few_shot_response(專家、問題、fs_qs、True)

]

critiques = [["回顧你之前的答案,找出你答案中的問題。", "根據你發現的問題,改進你的答案。"], ["請對以下不正確的答案進行反饋。","鑑於此反饋, 再回答一次。"]]

對於專家中的專家:

print("使用專家", 專家)

question_output.append(專家)

暴擊 = 真

對於在 s:

_response = (expert) # 調用新鮮的 ChatCompletion.create

_grade = grade(course_name, question, solution, _response) # GPT-4 自動評分比較答案和解決方案

question_output+=[_response, _grade]

如果正確(_grade):

暴擊=假

休息

如果暴擊:

對於批評中的批評:

crit_response = self_critique_response(expert, course_name, question, question_output[-2], critique) # 調用新鮮的 ChatCompletion.create

crit_grade = grade(course_name, question, solution, crit_response) # GPT-4 自動評分比較答案和解決方案

question_output+=[crit_response,crit_grade]

如果正確(crit_grade):

休息

repeat_grading('MIT_test_set.csv', 'MIT_test_set_graded.csv')

在代碼中,能看出流程上處理分級存在嚴重的問題:論文是用GPT-4 去評估檢查的,包括a)原始問題,b)解決方案,c)GPT 自己的答案,作為分級中的參數。

在更多的技術領域,GPT 更有可能出現隱性誤解,這種自動評分更有可能出現「自我欺騙」的結果。

此外,雖然級聯是最近許多GPT 論文中常見的技術,但這裡有大量數據洩漏的可能性。每一級不僅提供基於ground truth 的二元信息,而且還在繼續,直到達到正確答案。

儘管這些創建的並沒有看到實際的答案,但重新直到達到正確答案的形式已經足夠了,尤其是在佔測試集16% 的多選題中,無限次的嘗試(幾乎)保證了正確答案一定會出現。

這就好比有人拿著答題紙,告訴正在考試的學生答得對不對,一直提示到學生得到正確答案。

總結

在博客的最後,三位這樣寫道:

這篇論文道出了最近人工智能領域研究的一個更大趨勢。隨著該領域的進展越來越快,新發現的時間節奏似乎在縮短,這往往伴隨著捷徑。一個特別令人擔憂的趨勢是使用像GPT-4 這樣基於語言的模型來評估一個模型的準確性的技術。

雖然是一個有用的工具,但它的結論絕不應該被誇大,也不應該被當作ground truth。最近的工作表明,如果沒有準確的ground truth 信息,GPT-4 評估器就不能可靠地用於驗證。至少,應該選擇一個隨機的數據集子集,將GPT-4 的性能與人類的評估進行比較。語言模型還不能被當作產生ground truth 的神諭。

此外,在使用數據之前,無論是用於訓練、推理、基準測試還是其他方面,重新評估每一個數據點並進行基本的檢查是極其重要的。鑑於有關數據集的規模較小,簡單的人工驗證很容易在工作範圍內完成。

我們的批評主要是針對這項研究的方法和嚴謹性,而不是針對其內容。我們對大型語言模型實際解決麻省理工學院課程的能力沒有任何意見,只是認為本文未能以科學嚴謹的方式證明這一點。

參考鏈接:

查看原文
本頁面內容僅供參考,非招攬或要約,也不提供投資、稅務或法律諮詢。詳見聲明了解更多風險披露。
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate.io APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)