深度揭秘OpenAI如何讓GPT-5「技術性」超越Claude:悄悄跳過最難的23道題
幾天前,OpenAI發(fā)布會上,奧特曼宣布GPT-5登頂了,號稱代碼能力全球第一。
但發(fā)布會上搞了一個大烏龍,52.8>69.1=30.8?
于是,OpenAI那些年薪上億的天才們做的一張表格火遍了全世界(左邊)。

雖然這張表格一開始在OpenAI的官博中是準確的,但是當面向全世界直播竟然搞了這么大一個Bug。
拋開烏龍外,更重要的但是被人們忽視的一個事情是,GPT-5在SWE-bench Verified基準上取得的74.9%的通過率。
這個分數(shù)略高于Anthropic的Claude Opus 4.1的74.5%。

這一下子,就讓GPT-5成為當前軟件工程任務基準上的領先模型。
但等等,這分數(shù)…好像有點貓膩啊。
OpenAI并未運行SWE-bench Verified的全部500道測試任務,而是略去了其中無法運行的23個任務,僅基于477個任務計算得分。
SemiAnalysis專門發(fā)帖提到這個問題。

Anthropic專門在它的博客里也「內涵」了這個問題。

SWE-bench Verified總共500道題,GPT-5只做了477道,那23道題,它直接跳過了!
而對手Claude呢?老老實實,500道題一道沒落。
這下,性質全變了。
當然OpenAI是承認這件事情的。
他們從GPT-4.1開始就在「備注」里說明了:OpenAI的基礎設施無法運行這23道題目。(好奇啊,什么樣的題目,OpenAI的天才們竟然說無法運行)

如果將這23道無法運行的題目按0分計入,GPT-4.1的得分將從54.6%降至52.1%。
由此推測,GPT-5的74.9%,若也將那23道題視作全錯,其實際全500題通過率約為71.4%(74.9%×477/500,注意這是極度簡化的計算)明顯低于Claude Opus 4.1基于500道題取得的74.5%
需要強調的是,那23個被略去的任務并非對GPT-5「無關緊要」。
相反,它們大多是Verified集中最困難的一批問題。
據第三方分析,在Verified數(shù)據集的「耗時>4小時」級別的任務中,絕大多數(shù)模型都無法解決任何一道。
模型在需要超過1小時才能完成的「較難」問題上表現(xiàn)顯著下降。
只有ClaudeSonnet4(非思考模式)、o3和GPT4.1能夠完成部分超過4小時的任務(各占33%)。

這些極端困難任務對模型的綜合能力是嚴峻考驗。
如果GPT-5無法運行這些任務,那么從全面能力上說,它可能尚未真正超越Claude 4.1。
在Anthropic提供的信息中,Claude 4.1很可能也嘗試了這些任務(Anthropic并未聲稱其模型跳過任何Verified任務),因此其74.5%分數(shù)包含了所有難題的考驗。
而GPT-5的74.9%則是在剔除了這些「攔路虎」后的結果。
這種差異引發(fā)的主要爭議點在于:評測分數(shù)的可比性和報告方法的透明性。
甚至,就連作為裁判的SWE-bench Verified數(shù)據集,也是OpenAI自己搞的。

SemiAnalysis認為,要想「公平」的對比模型之間的成績,或許swebench.com上的SWE-bench官方排行榜可能是對當前模型在此基準測試中表現(xiàn)的最清晰描述。
沒有「驗證」子集,工具使用受限(僅限bash),大部分腳手架內容是開放可見的。
在此前提下的基準測試中,5月14日的Claude 4 Opus檢查點(67.6)表現(xiàn)是要優(yōu)于GPT-5(65)的。

接下來的問題就是,什么是SWE-bench,什么又是「驗證」子集,為啥要額外搞一個SWE-bench Verified?
SWE-bench:AI界的「程序員高考」
SWE-bench你可以把它想象成AI界的「程序員高考」。
考的,全是真實世界的代碼難題。
想拿高分?不僅要修復bug。還不能引入新bug,這標準簡直不要太嚴格。
曾幾何時,AI們分數(shù)也就二三十分,慘不忍睹。
比如截至2024年8月5日,根據SWE-bench的排行榜,編碼智能體在SWE-bench上最高得分20%。
在SWE-bench Lite上得分能稍微好點,達到43%。
但是現(xiàn)在的AI厲害了,基本上前十的模型都能超過50分。

OpenAI覺得SWE-bench太難了,一些任務甚至壓根沒法解決,從而沒法很好的評估模型的能力。
簡單介紹下SWE-bench
SWE-bench測試集中的每個樣本均來自GitHub上12個開源Python存儲庫中的已解決GitHub問題。
每個樣本都有一個相關的拉取請求(PR),其中包含解決方案代碼和單元測試以驗證代碼的正確性。
這些單元測試在PR中的解決方案代碼添加之前會失敗,但添加之后會通過,因此被稱為FAIL_TO_PASS測試。
每個樣本還具有相關的PASS_TO_PASS測試,這些測試在PR合并前后都會通過,用于檢查PR是否破壞了代碼庫中現(xiàn)有且不相關的功能。
對于SWE-bench中的每個樣本,智能體將獲得來自GitHub issue的原始文本,即問題描述,并可以訪問代碼庫。
據此,智能體必須編輯代碼庫中的文件以解決問題。測試用例不會展示給智能體。
模型提出的修改編輯通過運行FAIL_TO_PASS和PASS_TO_PASS測試進行評估。
如果FAIL_TO_PASS測試通過,表明該模型解決了問題。
如果PASS_TO_PASS測試通過,則表明該編輯沒有意外破壞代碼庫中不相關的部分。
只有當這兩組測試全部通過后,該編輯才能徹底解決原始GitHub問題。
這就是上面所說的:不僅要修復bug,還不能引入新bug。
SWE-bench Verified:一個人工選出來的子集
SWE-bench Verified是SWE-bench基準的一個人類校驗子集,于2024年8月由OpenAI與SWE-bench作者合作發(fā)布。
OpenAI與93名精通Python的軟件開發(fā)人員合作,手動篩選SWE-bench樣本的質量。
首先,給SWE-bench測試集的1699個隨機樣本「打分」。

四個分數(shù):
- 0:問題描述清晰,對于成功解決所需的條件也很明確。
- 1:關于這個問題還有一些空白需要填寫,但對于成功解決方案所需的內容,存在一種合理的解讀方式。
- 2:該問題描述含糊,存在歧義空間,尚不清楚一個成功的解決方案應具備哪些特征。
- 3:在沒有更多信息的情況下,幾乎無法理解你需要做什么。

得分為2和3分的直接拋棄不要,只留0和1分的題目。
雖然這種方法會導致樣本移除的誤報率較高,但有助于提高對最終數(shù)據集樣本質量的信心。
然后從0和1分的題目中再隨機抽取500道,這就是最終的SWE-bench Verified。
說回分數(shù),Claude考的是「全科」,OpenAI考的是「精選版」。
這成績,怎么能直接比?數(shù)字背后的故事,更值得玩味。
在發(fā)布會圖表畫錯的烏龍以外,這個被「掩蓋」的事實似乎并沒有引起太多人的注意。
甚至,我們可以陰謀論的猜測一下,OpenAI是不是故意而為之,用這個小小的烏龍,來掩蓋SWE-Bench的分數(shù)?
畢竟,要想隱瞞一個真相,最好的做法不是否認它,而是用一個更大的「真相」去轉移所有人的注意力。




































