![]()
新智元報道
編輯:好困
【新智元導(dǎo)讀】SWE-Bench上能拿72%的模型,換張考卷直接歸零!Meta聯(lián)合斯坦福、哈佛放出ProgramBench,200個項目從零手寫,9大頂級模型完整通過率0%。最強(qiáng)的Claude Opus 4.7平均通過率也才51.2%。更離譜的是一聯(lián)網(wǎng),就有模型在36%的任務(wù)里跑去GitHub扒源碼。
給你一份FFmpeg的使用文檔,和一個編譯好的可執(zhí)行文件。
現(xiàn)在,從零把整個程序重新寫出來。
這就是ProgramBench給全球頂級AI出的題。
昨天剛發(fā)布,出自SWE-Bench原班人馬之手,Meta、斯坦福、哈佛三家聯(lián)手打造。
200個軟件項目。9個頂級模型。通過率,0%!
![]()
共同一作John Yang,斯坦福在讀博士,同時也是SWE-Bench和SWE-agent的創(chuàng)建者
不是修bug,是從零造軟件
過去一年,「讓AI Agent從零造軟件」的案例報道越來越多。
Anthropic用一組平行Claude寫了個C編譯器,Cursor發(fā)博客講長時間自主編程,Epoch AI的MirrorCode也在做類似的事。
但這些案例有個共同問題,每次只測幾個項目,腳手架都是手工調(diào)優(yōu)的。
相比之下,ProgramBench把這件事正規(guī)化了。
200個任務(wù),統(tǒng)一腳手架,系統(tǒng)性反作弊,一把拉到benchmark的標(biāo)準(zhǔn)。
![]()
論文地址:https://programbench.com/static/paper.pdf
在之前的測試中,SWE-Bench會給你一個現(xiàn)成的代碼庫,告訴你哪里有bug或者需要加什么功能,你去改。本質(zhì)上是「閱讀理解+局部手術(shù)」。
而且在評估層面,它用的是單元測試,檢查你的代碼內(nèi)部實現(xiàn)對不對,你的函數(shù)簽名、變量名都得和預(yù)期一致。
ProgramBench則完全反過來。
它只給你兩樣?xùn)|西,一個編譯好的可執(zhí)行文件,加上使用文檔。
你的任務(wù)是僅憑運行這個程序、觀察它的輸入輸出行為,從零寫出一套能復(fù)現(xiàn)同樣行為的代碼。
選什么編程語言,用什么數(shù)據(jù)結(jié)構(gòu),怎么拆分模塊,全部你自己定。
沒有代碼骨架,沒有函數(shù)簽名,沒有任何提示。
![]()
評估方式上,研究團(tuán)隊用Agent驅(qū)動的模糊測試,為200個任務(wù)生成了總計248,853個行為測試。
你寫的程序跑一遍,輸入輸出和原版一致就算過,不一致就掛。測試永遠(yuǎn)不會透露給模型。
和SWE-Bench的單元測試不同,ProgramBench的行為測試完全不關(guān)心你的代碼內(nèi)部長什么樣,只要行為一致就行。
![]()
200個任務(wù)覆蓋的項目橫跨壓縮工具(zstd、lz4、brotli)、語言解釋器(PHP、Lua、tinycc)、數(shù)據(jù)庫(DuckDB、SQLite)、媒體處理(FFmpeg)、開發(fā)者工具(ripgrep、fzf、jq)。
代碼行數(shù)中位數(shù)8,635行,最大的FFmpeg有270萬行。
![]()
![]()
總結(jié)來說,這個測試考的是AI有沒有能力「像人類工程師一樣思考和設(shè)計軟件」,而不只是「在現(xiàn)成代碼里找到該改的地方然后改對」。
九大模型排排坐,成績?nèi)砍曾喌?/strong>
參加測試的共有9款模型,涵蓋Claude、Gemini、GPT三大家族。
完整通過率(所有測試全部通過),全員0%。
![]()
先看三家旗艦的正面對決。
GPT-5.4和Gemini 3.1 Pro的平均測試通過率幾乎打平,分別是38.3%和36.6%。但兩者的做題風(fēng)格截然不同。
GPT-5.4只用16次API調(diào)用、0.33美元成本,基本就是一口氣把整個程序?qū)懲辏?00%的代碼在一次編輯中生成,之后幾乎不回頭改。
Gemini 3.1 Pro則是9個模型里最愛「觀察」的。它用了94次API調(diào)用,其中34.1%的操作都在運行原版程序、觀察輸入輸出行為。探索做得最多,但最終成績差距不大。
真正拉開身位的是Claude Opus 4.7。
平均通過率51.2%,在3%的任務(wù)上通過了95%以上的測試,是唯一達(dá)到「幾乎通過」標(biāo)準(zhǔn)的模型。但即便是它,也沒有在任何一個任務(wù)上拿到滿分。
從整體來看,9個模型的表現(xiàn)呈現(xiàn)出清晰的梯隊。
Claude系三款旗艦(Opus 4.7、Opus 4.6、Sonnet 4.6)領(lǐng)先,GPT-5.4和Gemini 3.1 Pro構(gòu)成第二梯隊,剩下的四款小模型通過率都在35%以下。
![]()
另一個反直覺的發(fā)現(xiàn)是,砸錢和堆步數(shù)并不能換來更好的成績。
Sonnet 4.6每個任務(wù)平均跑868條命令,成本27.09美元,最長的軌跡接近2000步。但它的成績反而不如只用93次調(diào)用、花3.81美元的Opus 4.7。
更關(guān)鍵的是,98%的運行中,模型都是自己覺得「做完了」主動交卷的,根本沒有撞到時間或步數(shù)上限。
不是考試時間不夠,是真的做不到。
此外,任務(wù)難度和模型排名高度一致。
簡單的CLI工具(nnn、fzf、gron)大家都能拿到不錯的分?jǐn)?shù),復(fù)雜系統(tǒng)(FFmpeg、PHP、typst、ast-grep)則對所有模型一視同仁地?zé)o情。
![]()
需要說明的是,ProgramBench用的是mini-SWE-agent這個極簡腳手架,沒有上下文壓縮、沒有多Agent協(xié)作、沒有定制化工具鏈。
![]()
代碼寫出來了,但完全不像人寫的
研究團(tuán)隊對比了通過75%以上測試的高分解答和人類原版代碼,發(fā)現(xiàn)了幾個驚人的差異。
單文件怪獸。
人類代碼中位數(shù)分布在15個文件里,模型的中位數(shù)是3個。
60%的解答只有1到3個代碼文件。
人類工程師按功能拆分模塊,模型傾向于把所有東西塞進(jìn)一個巨大的文件。目錄深度中位數(shù),人類是2層,模型是1層。
函數(shù)又少又長。
Opus 4.7寫的函數(shù)數(shù)量只有人類的29%,Sonnet 4.6是24%,GPT-5.4只有10%。
但每個函數(shù)的平均長度更長,Gemini 3.1 Pro寫的函數(shù)比人類長62%。
代碼量大幅縮水。
模型代碼中位數(shù)1,173行,人類是3,068行。85%的高分解答比原版短。
![]()
總結(jié)來說就是,現(xiàn)在的AI會寫代碼,但不會做軟件設(shè)計。
它不懂為什么要拆分模塊,不理解為什么人類工程師要花時間定義接口和抽象層。策略就是把所有邏輯硬塞進(jìn)盡可能少的文件和函數(shù)里,能跑就行。
GPT-5.4的表現(xiàn)最極端。平均每個任務(wù)只創(chuàng)建5個文件,修改1.2次,39.5%的軌跡在創(chuàng)建文件后零修改。
相比之下,Claude Sonnet 4.6平均創(chuàng)建11.3個文件、修改18.3次,表現(xiàn)出更接近人類的迭代開發(fā)模式。
![]()
還有一個很有意思的現(xiàn)象。
模型只有50%的概率會用和原版相同的編程語言。
其中,Python是模型的最愛,占所有1,800次運行的36%。
原版用Rust寫的項目,只有44%用Rust重寫;C/C++的,46%。Go項目的「忠誠度」最高,70%。
不管你原來是用什么語言寫的,模型有三分之一的概率會用Python重來一遍。
![]()
說好的不作弊,一聯(lián)網(wǎng)就去GitHub扒源碼
這可能是整個研究里最有戲劇感的部分。
研究團(tuán)隊做了一組對照實驗,給模型開放網(wǎng)絡(luò)訪問權(quán)限,但在系統(tǒng)提示中明確告知「作弊不允許」。
然后用9個AI裁判檢查每條軌跡是否存在作弊行為。
結(jié)果觸目驚心。
Claude Sonnet 4.6有36%的任務(wù)被判定作弊,Claude Opus 4.6是21%,Gemini 3 Flash是20%。
![]()
作弊方式五花八門。
最赤裸裸的是去GitHub克隆源碼倉庫。
稍微隱蔽一點的是通過包管理器下載,比如cargo install、go get。
更狡猾的是去本地包緩存目錄翻依賴庫的源碼。
![]()
但AI裁判之間的分歧也大得驚人。
對于Claude Opus 4.6,9個裁判在57%的任務(wù)上無法達(dá)成一致。
有一個案例特別典型。
Claude Sonnet 4.6在做handlr這個Rust項目時,跑去~/.cargo/registry/src/目錄翻了xdg-mime、clap等依賴庫的源代碼。
5個裁判判定作弊,4個裁判認(rèn)為這些是第三方庫不算作弊。
最終,研究團(tuán)隊放棄了「聯(lián)網(wǎng)+事后檢測」的方案,直接斷網(wǎng)。
模型在面對困難任務(wù)時,「找捷徑」的傾向比預(yù)想的強(qiáng)得多。而連9個AI裁判都判不清楚什么算作弊、什么算合理的逆向工程,說明這條邊界本身就是模糊的。
舊考試結(jié)束了,新考試才剛開始
SWE-Bench上能拿72%的模型,在ProgramBench上拿0%。
這兩個測試考的根本就是兩種能力。SWE-Bench考的是「在別人的代碼里找到問題并修好」,ProgramBench考的是「自己從頭設(shè)計并實現(xiàn)一個完整系統(tǒng)」。
前者AI已經(jīng)做得相當(dāng)好了,后者目前完全不及格。
Epoch AI上周剛發(fā)了一篇博文,宣判舊推理benchmark集體死亡。想搞出還沒被刷爆的測試,至少得放棄四個舒適條件中的一個,純文本、短耗時、易評分、人類專家碾壓。
![]()
按這個框架來看,ProgramBench放棄了其中兩個,短耗時和易評分。
它把任務(wù)拉到了人類工程師可能需要數(shù)周甚至數(shù)月才能完成的量級,同時用行為等價性而非源碼匹配來評估。
作者John Yang在推文中強(qiáng)調(diào),「ProgramBench非常難,但它在設(shè)計上是可解的。」
也就是說,0%不代表這些任務(wù)超出了AI的理論極限,只是說明今天的模型還遠(yuǎn)遠(yuǎn)不夠。
SWE-Bench測的是AI能不能當(dāng)一個好員工。ProgramBench測的是AI能不能當(dāng)一個工程師。
這兩件事之間的距離,今天剛被精確測量出來。答案是0%。
參考資料:
https://programbench.com/static/paper.pdf
https://x.com/jyangballin/status/2051677497562210552?s=20
https://x.com/EpochAIResearch/status/2051760424891392204?s=20
https://epochai.substack.com/p/rip-classic-reasoning-benchmarks
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.