
2025年5月29日,微軟和上海人工智能實(shí)驗(yàn)室的研究團(tuán)隊(duì)聯(lián)合發(fā)布了一篇重要論文《SWE-bench Goes Live!》(arXiv:2505.23419v1)。這項(xiàng)由微軟實(shí)習(xí)生Linghao Zhang和對應(yīng)作者Shilin He領(lǐng)導(dǎo)的研究,為軟件工程領(lǐng)域的大語言模型評估帶來了全新的基準(zhǔn)測試方法。論文已在arXiv預(yù)印本平臺(tái)公開,研究團(tuán)隊(duì)同時(shí)提供了完整的代碼庫、數(shù)據(jù)集和在線排行榜。
在軟件開發(fā)領(lǐng)域,大語言模型(LLM)已經(jīng)徹底改變了我們的工作方式。從GitHub Copilot到Cursor等工具,它們已經(jīng)成為現(xiàn)代開發(fā)流程中不可或缺的助手,幫助開發(fā)者自動(dòng)生成代碼、檢測bug并解決問題。為了評估這些模型在真實(shí)軟件工程任務(wù)上的表現(xiàn),研究人員開發(fā)了各種基準(zhǔn)測試,其中SWE-bench及其變體因?yàn)榫劢褂谡鎸?shí)世界的代碼問題解決能力,逐漸成為業(yè)界標(biāo)準(zhǔn)。
然而,這些現(xiàn)有的基準(zhǔn)測試存在三個(gè)關(guān)鍵問題:首先是數(shù)據(jù)老化問題,SWE-bench自2023年10月發(fā)布以來從未更新,這導(dǎo)致新模型可能已經(jīng)在訓(xùn)練中"見過"這些測試案例;其次是倉庫覆蓋有限,僅包含約12個(gè)代碼倉庫,缺乏多樣性;最后是高度依賴人工建設(shè),從案例構(gòu)建到環(huán)境搭建都需要大量手工勞動(dòng)。想象一下,你有一套多年不變的考題,學(xué)生遲早會(huì)背下所有答案,這并不能真實(shí)反映他們的實(shí)力。
為了解決這些問題,研究團(tuán)隊(duì)推出了SWE-bench-Live,這是一個(gè)能夠持續(xù)更新的基準(zhǔn)測試平臺(tái)。想象它就像一個(gè)永不重復(fù)考題的考試系統(tǒng),不斷收集最新的真實(shí)世界軟件問題,確保AI模型不可能通過"記憶"答案獲得高分。該平臺(tái)的初始版本包含1,319個(gè)來自93個(gè)代碼倉庫的真實(shí)GitHub問題,這些問題全部是2024年以來創(chuàng)建的,確保了數(shù)據(jù)的新鮮度。每個(gè)測試任務(wù)都配有專用的Docker鏡像,保證了執(zhí)行環(huán)境的一致性和可重現(xiàn)性。
SWE-bench-Live的核心是一個(gè)名為REPOLAUNCH的自動(dòng)化流水線。想象它像一個(gè)自動(dòng)化的考試出題系統(tǒng),能夠從GitHub上找到有價(jià)值的問題,為每個(gè)問題準(zhǔn)備好評估環(huán)境,并驗(yàn)證解決方案的正確性。這個(gè)系統(tǒng)解決了以往基準(zhǔn)測試構(gòu)建過程中最費(fèi)時(shí)費(fèi)力的環(huán)節(jié)——環(huán)境配置。
在傳統(tǒng)的SWE-bench中,研究人員需要手動(dòng)為每個(gè)代碼庫設(shè)置環(huán)境,這就像為每道考題手工準(zhǔn)備一套實(shí)驗(yàn)設(shè)備一樣繁瑣。而REPOLAUNCH則像一個(gè)熟練的實(shí)驗(yàn)室助手,能夠自動(dòng)識(shí)別項(xiàng)目的依賴項(xiàng)、選擇合適的基礎(chǔ)環(huán)境、安裝必要的軟件包,并確保測試能夠正常運(yùn)行。這種自動(dòng)化不僅大幅提高了效率,還保證了環(huán)境配置的一致性和可靠性。
為了驗(yàn)證SWE-bench-Live的實(shí)用性,研究團(tuán)隊(duì)使用多種最先進(jìn)的代碼助手和大語言模型進(jìn)行了測試,包括OpenHands、SWE-Agent和Agentless框架,搭配GPT-4.1、GPT-4o、Claude 3.7 Sonnet和DeepSeek V3等模型。測試結(jié)果令人深思:即使是表現(xiàn)最好的組合——OpenHands搭配Claude 3.7 Sonnet,在SWE-bench-Live上的解決率也只有19.25%,遠(yuǎn)低于它們在SWE-bench驗(yàn)證集上的43.20%。
這種顯著的表現(xiàn)差異突顯出動(dòng)態(tài)、新鮮基準(zhǔn)測試的重要性。通過對倉庫來源、問題新近度和任務(wù)難度的詳細(xì)分析,研究團(tuán)隊(duì)發(fā)現(xiàn)性能差距不僅來自基準(zhǔn)測試的熟悉度,還源于SWE-bench-Live提供的更廣泛的代碼庫和問題類型多樣性。
一個(gè)特別有趣的發(fā)現(xiàn)是,模型在修復(fù)單文件、小范圍的代碼問題時(shí)表現(xiàn)相對較好(約48%的成功率),但一旦需要修改多個(gè)文件或大量代碼行,成功率就急劇下降至不到10%。同樣,在較小的代碼庫(少于100個(gè)文件和2萬行代碼)上,模型通常能達(dá)到20%以上的解決率,而在大型項(xiàng)目上則很少超過5%。
研究團(tuán)隊(duì)計(jì)劃每月更新SWE-bench-Live,持續(xù)提供新的測試案例,確保它能夠反映軟件開發(fā)領(lǐng)域的最新變化和挑戰(zhàn)。這種持續(xù)更新的特性使SWE-bench-Live成為評估代碼大語言模型真實(shí)能力的更可靠工具,為未來的研究和開發(fā)提供了堅(jiān)實(shí)的基礎(chǔ)。
對于普通開發(fā)者而言,SWE-bench-Live的出現(xiàn)意味著我們可以更準(zhǔn)確地了解當(dāng)前AI編碼助手的真實(shí)能力和局限性。當(dāng)我們在日常工作中使用這些工具時(shí),了解它們在什么類型的問題上更可能成功,什么情況下可能需要更多人工干預(yù),這對提高工作效率至關(guān)重要。
此外,REPOLAUNCH作為一個(gè)獨(dú)立工具已經(jīng)開源,它不僅對基準(zhǔn)測試構(gòu)建有價(jià)值,對日常開發(fā)也有實(shí)用價(jià)值。開發(fā)者可以使用它來快速為陌生或遺留代碼庫設(shè)置開發(fā)環(huán)境,簡化項(xiàng)目入門過程。
總的來說,SWE-bench-Live代表了軟件工程領(lǐng)域AI評估方法的一次重要進(jìn)步。通過提供持續(xù)更新、多樣化、可執(zhí)行的基準(zhǔn)測試,它為代碼大語言模型的公平評估鋪平了道路,也為研究人員和開發(fā)者提供了更清晰的發(fā)展方向。
SWE-bench-Live的構(gòu)建流程
SWE-bench-Live遵循一個(gè)三階段的構(gòu)建流程,類似于一條自動(dòng)化的生產(chǎn)線,將原始的GitHub問題轉(zhuǎn)化為標(biāo)準(zhǔn)化的測試任務(wù)。
第一階段是原始問題和修復(fù)抓取。研究團(tuán)隊(duì)從GitHub上篩選出符合條件的代碼倉庫——這些倉庫必須星標(biāo)超過1,000,以Python為主要語言,擁有200多個(gè)問題和PR,超過200個(gè)分叉,至少60%的代碼是Python,并且?guī)в杏行У拈_源許可證。經(jīng)過這些篩選,最終確定了2,609個(gè)適合的倉庫。從這些倉庫中,團(tuán)隊(duì)提取了2024年1月之后創(chuàng)建的問題及其對應(yīng)的修復(fù)PR,確保數(shù)據(jù)的新鮮度,降低數(shù)據(jù)污染風(fēng)險(xiǎn)。
第二階段是自動(dòng)化環(huán)境設(shè)置,這是整個(gè)流程中最具創(chuàng)新性的部分。傳統(tǒng)上,為代碼問題創(chuàng)建執(zhí)行環(huán)境是一項(xiàng)極其耗時(shí)的工作,SWE-Gym報(bào)告稱,他們花了超過200小時(shí)來為一個(gè)相對較小的數(shù)據(jù)集設(shè)置環(huán)境。REPOLAUNCH徹底改變了這一過程。
REPOLAUNCH就像一個(gè)熟練的開發(fā)者,它能夠閱讀項(xiàng)目文檔,嘗試各種命令,解決出現(xiàn)的錯(cuò)誤,并不斷調(diào)整策略直到環(huán)境配置成功。具體來說,它首先會(huì)識(shí)別項(xiàng)目中的重要文件,如README、CI/CD配置等;然后根據(jù)這些信息選擇合適的Docker基礎(chǔ)鏡像;接著在容器中啟動(dòng)一個(gè)交互式會(huì)話,開始逐步安裝依賴、構(gòu)建項(xiàng)目;最后驗(yàn)證測試是否可以正常運(yùn)行。
特別值得一提的是,REPOLAUNCH引入了一個(gè)"時(shí)間機(jī)器"機(jī)制來解決版本不兼容問題。在設(shè)置歷史代碼庫的環(huán)境時(shí),一個(gè)常見挑戰(zhàn)是依賴版本漂移——未固定的依賴項(xiàng)會(huì)解析到最新的包版本,導(dǎo)致向后不兼容性,經(jīng)常破壞構(gòu)建。REPOLAUNCH通過一個(gè)自定義的代理服務(wù)器解決了這個(gè)問題,該服務(wù)器只允許使用截至代碼庫基礎(chǔ)提交時(shí)間點(diǎn)之前發(fā)布的包版本。這就像真的讓環(huán)境回到了那個(gè)時(shí)間點(diǎn),確保兼容性。
第三階段是任務(wù)實(shí)例驗(yàn)證。每個(gè)候選任務(wù)必須經(jīng)過嚴(yán)格測試,確保PR的修復(fù)確實(shí)解決了問題,并且這種修復(fù)是可靠穩(wěn)定的。研究團(tuán)隊(duì)重點(diǎn)關(guān)注兩種測試結(jié)果變化:從失敗到通過的轉(zhuǎn)變(表明bug被修復(fù)了)和持續(xù)通過的測試(表明修復(fù)沒有引入新問題)。為了處理不同測試框架的輸出格式,團(tuán)隊(duì)開發(fā)了專門的解析器。只有展示出至少一個(gè)從失敗到通過轉(zhuǎn)變的任務(wù)才會(huì)被納入基準(zhǔn)測試,而且必須在多次運(yùn)行中表現(xiàn)一致,避免測試不穩(wěn)定性的干擾。
通過這三個(gè)階段的處理,最終構(gòu)建出的SWE-bench-Live數(shù)據(jù)集包含1,319個(gè)任務(wù)實(shí)例,來自93個(gè)開源Python倉庫。這些任務(wù)在時(shí)間上分布均勻,涵蓋了2024年1月至2025年4月的問題。從倉庫類別來看,數(shù)據(jù)集涵蓋了多種應(yīng)用領(lǐng)域,包括AI/ML(26個(gè)倉庫)、DevOps(23個(gè))、Web開發(fā)(17個(gè))、數(shù)據(jù)庫(8個(gè))和科學(xué)計(jì)算(8個(gè))等,保證了問題類型的多樣性。
為了支持輕量級(jí)實(shí)驗(yàn),研究團(tuán)隊(duì)還提供了一個(gè)名為SWE-bench-Live-Lite的子集,通過從2024年10月至2025年3月期間每月抽樣50個(gè)實(shí)例,形成了一個(gè)緊湊的300實(shí)例集合,平衡了新近性、多樣性和評估效率。
模型評估和發(fā)現(xiàn)
在SWE-bench-Live上的評估結(jié)果揭示了當(dāng)前代碼大語言模型和助手在真實(shí)世界代碼修復(fù)任務(wù)上的能力和局限。研究團(tuán)隊(duì)使用了三種代表性的代理框架進(jìn)行測試:通用編碼代理OpenHands(搭配CodeAct代理)、專為問題解決設(shè)計(jì)的SWE-Agent和Agentless。每個(gè)框架都與四種先進(jìn)的大語言模型搭配:GPT-4o、GPT-4.1、Claude 3.7 Sonnet和DeepSeek V3。
測試的主要指標(biāo)是解決率(成功修復(fù)問題的百分比)、補(bǔ)丁應(yīng)用率(語法正確并能成功應(yīng)用的補(bǔ)丁百分比)以及定位成功率(識(shí)別出正確修改文件的能力)。
在lite子集上的測試結(jié)果顯示,Claude 3.7 Sonnet搭配OpenHands或SWE-agent的組合表現(xiàn)最佳,兩者都達(dá)到了17.67%的解決率。GPT-4.1搭配SWE-agent緊隨其后,達(dá)到16.33%。有趣的是,DeepSeek V3展現(xiàn)了很強(qiáng)的競爭力,在三種框架中都取得了不錯(cuò)的成績(13.00%至15.33%)。
當(dāng)研究團(tuán)隊(duì)將表現(xiàn)最好的三種組合在完整數(shù)據(jù)集上進(jìn)行測試時(shí),發(fā)現(xiàn)OpenHands/Claude 3.7 Sonnet達(dá)到了19.25%的解決率,略高于SWE-agent/GPT-4.1的18.57%。
這些結(jié)果與同樣的模型和代理在SWE-bench上的表現(xiàn)形成了鮮明對比。為了進(jìn)行公平比較,研究團(tuán)隊(duì)使用完全相同的設(shè)置(OpenHands/Claude 3.7 Sonnet)在SWE-bench驗(yàn)證子集上進(jìn)行了測試,得到的解決率高達(dá)43.20%,是其在SWE-bench-Live上表現(xiàn)的兩倍多。
為了深入理解這種性能差距,研究團(tuán)隊(duì)按照倉庫來源對SWE-bench-Live實(shí)例進(jìn)行了分類。有216個(gè)實(shí)例來自8個(gè)原始SWE-bench中包含的倉庫,而剩余的1,103個(gè)實(shí)例來自新的倉庫。有趣的是,即使在非SWE-bench倉庫通常更簡單(文件更少,代碼量更小)的情況下,模型在原SWE-bench倉庫上的表現(xiàn)仍然更好——解決率為22.96%,而在新倉庫上僅為18.89%。這支持了一個(gè)假設(shè):當(dāng)前的代理模型可能對SWE-bench數(shù)據(jù)集過度擬合或隱式優(yōu)化。
研究團(tuán)隊(duì)還分析了問題創(chuàng)建時(shí)間與解決率的關(guān)系,發(fā)現(xiàn)從2024年第一季度到2025年第一季度,解決率相對穩(wěn)定,僅在2024年第四季度有輕微下降。這表明較新的問題并不本質(zhì)上更難解決,SWE-bench-Live提供了一致的挑戰(zhàn)水平。
最后,研究人員從兩個(gè)互補(bǔ)的角度分析了任務(wù)難度:補(bǔ)丁難度(由修改的文件數(shù)量和行數(shù)衡量)和倉庫難度(由項(xiàng)目的整體大小衡量)。
結(jié)果顯示,當(dāng)修復(fù)局限于單個(gè)文件且修改少于5行代碼時(shí),模型表現(xiàn)最好,接近48%的成功率。但隨著任務(wù)規(guī)模的擴(kuò)大,性能迅速下降——一旦補(bǔ)丁編輯3個(gè)或更多文件,或跨越超過100行代碼,成功率就降至10%以下;對于修改7個(gè)或更多文件的補(bǔ)丁,甚至從未成功解決。
同樣,倉庫規(guī)模也顯著影響成功率。對于小型項(xiàng)目(少于100個(gè)文件和2萬行代碼),模型通常能達(dá)到20%以上的解決率,而對于超過500個(gè)文件的大型項(xiàng)目,很少超過5%。
這些發(fā)現(xiàn)清晰地表明,當(dāng)前的代碼代理在協(xié)調(diào)跨多文件的連貫編輯或處理大型內(nèi)部文件變更方面存在明顯局限。因?yàn)镾WE-bench-Live涵蓋了這些難度因素的全譜,同時(shí)不斷添加新的、未見過的實(shí)例,它為大規(guī)模程序修復(fù)的未來進(jìn)展提供了嚴(yán)格且最新的測試平臺(tái)。
SWE-bench-Live的意義與展望
SWE-bench-Live的推出標(biāo)志著代碼大語言模型評估方法的一次重要變革。通過解決靜態(tài)基準(zhǔn)測試的三大核心問題——數(shù)據(jù)老化、有限覆蓋和手工構(gòu)建瓶頸,它為軟件工程領(lǐng)域的AI系統(tǒng)提供了更公平、更真實(shí)的評估標(biāo)準(zhǔn)。
對于研究人員來說,SWE-bench-Live的持續(xù)更新特性尤為寶貴。想象一下,這就像為AI系統(tǒng)提供了一個(gè)永不停止的挑戰(zhàn)賽,每個(gè)月都會(huì)有新的、前所未見的問題需要解決。這種設(shè)計(jì)從根本上避免了數(shù)據(jù)污染和過度擬合的風(fēng)險(xiǎn),確保評估結(jié)果能夠真實(shí)反映模型的泛化能力,而非簡單的記憶表現(xiàn)。
對于開發(fā)者來說,SWE-bench-Live提供的多樣化倉庫和問題類型,讓我們能夠更清晰地了解當(dāng)前AI編碼工具的能力邊界。它揭示了現(xiàn)有模型在處理單文件小修改時(shí)相對得心應(yīng)手,但在涉及多文件協(xié)調(diào)或大規(guī)模代碼庫時(shí)仍面臨顯著挑戰(zhàn)。這種認(rèn)識(shí)有助于開發(fā)者更有效地利用這些工具,知道何時(shí)可以依賴AI助手,何時(shí)需要更多人工介入。
而REPOLAUNCH作為一個(gè)獨(dú)立工具的價(jià)值也不容忽視。在軟件開發(fā)中,環(huán)境配置一直是一個(gè)令人頭疼的問題,特別是對于陌生或遺留代碼庫。REPOLAUNCH提供的自動(dòng)化環(huán)境設(shè)置能力,不僅服務(wù)于基準(zhǔn)測試構(gòu)建,也能直接應(yīng)用于實(shí)際開發(fā)工作流,幫助開發(fā)者快速上手新項(xiàng)目,提高工作效率。
從更廣泛的角度看,SWE-bench-Live代表了AI評估方法的一個(gè)重要趨勢——從靜態(tài)、封閉的測試向動(dòng)態(tài)、開放的評估轉(zhuǎn)變。這種轉(zhuǎn)變不僅適用于代碼生成和修復(fù)領(lǐng)域,也可能影響其他AI應(yīng)用領(lǐng)域的評估方法。
隨著SWE-bench-Live的持續(xù)更新和擴(kuò)展,我們可以期待它在未來涵蓋更多編程語言和應(yīng)用場景。目前,它主要關(guān)注Python倉庫,但研究團(tuán)隊(duì)已經(jīng)表示計(jì)劃將其擴(kuò)展到Java、Go等其他語言。這種擴(kuò)展將進(jìn)一步提升基準(zhǔn)測試的代表性和實(shí)用價(jià)值。
對于普通開發(fā)者而言,SWE-bench-Live的出現(xiàn)意味著我們可以對AI編碼助手的評價(jià)更加客觀和理性。當(dāng)我們在日常工作中使用GitHub Copilot或Cursor等工具時(shí),了解它們的真實(shí)能力和局限性,能夠幫助我們形成更合理的期望,更有效地與這些工具協(xié)作,而不是過度依賴或完全排斥。
總的來說,SWE-bench-Live不僅是一個(gè)新的基準(zhǔn)測試,更是軟件工程領(lǐng)域AI評估方法的一次重要?jiǎng)?chuàng)新。通過提供新鮮、多樣、可執(zhí)行的測試案例,它為代碼大語言模型的公平評估鋪平了道路,也為未來的研究和開發(fā)指明了方向。正如研究團(tuán)隊(duì)所言,它建立了"評估代碼LLM和基于代理系統(tǒng)真實(shí)能力的新的、穩(wěn)健的標(biāo)準(zhǔn)"。
好文章,需要你的鼓勵(lì)
浙江大學(xué)團(tuán)隊(duì)提出動(dòng)態(tài)專家搜索方法,讓AI能根據(jù)不同問題靈活調(diào)整內(nèi)部專家配置。該方法在數(shù)學(xué)、編程等任務(wù)上顯著提升推理準(zhǔn)確率,且不增加計(jì)算成本。研究發(fā)現(xiàn)不同類型問題偏愛不同專家配置,為AI推理優(yōu)化開辟新路徑。
清華大學(xué)研究團(tuán)隊(duì)提出SIRI方法,通過"壓縮-擴(kuò)張"交替訓(xùn)練策略,成功解決了大型推理模型"話多且準(zhǔn)確率低"的問題。實(shí)驗(yàn)顯示,該方法在數(shù)學(xué)競賽題上將模型準(zhǔn)確率提升43.2%的同時(shí),輸出長度減少46.9%,真正實(shí)現(xiàn)了效率與性能的雙重優(yōu)化,為AI模型訓(xùn)練提供了新思路。
南洋理工大學(xué)與騰訊聯(lián)合研究團(tuán)隊(duì)開發(fā)出Rolling Forcing技術(shù),實(shí)現(xiàn)AI視頻實(shí)時(shí)流式生成的重大突破。該技術(shù)通過滾動(dòng)窗口聯(lián)合去噪、注意力錨點(diǎn)機(jī)制和高效訓(xùn)練算法三項(xiàng)創(chuàng)新,解決了長視頻生成中的錯(cuò)誤累積問題,可在單GPU上以16fps速度生成多分鐘高質(zhì)量視頻,延遲僅0.76秒,質(zhì)量漂移指標(biāo)從傳統(tǒng)方法的1.66降至0.01,為交互式媒體和內(nèi)容創(chuàng)作開辟新可能。
華中科技大學(xué)研究團(tuán)隊(duì)發(fā)現(xiàn),通過讓AI模型學(xué)習(xí)解決幾何問題,能夠顯著提升其空間理解能力。他們構(gòu)建了包含約30000個(gè)幾何題目的Euclid30K數(shù)據(jù)集,使用強(qiáng)化學(xué)習(xí)方法訓(xùn)練多個(gè)AI模型。實(shí)驗(yàn)結(jié)果顯示,幾何訓(xùn)練在四個(gè)空間智能測試基準(zhǔn)上都帶來顯著提升,其中最佳模型達(dá)到49.6%準(zhǔn)確率,超越此前最好成績。這項(xiàng)研究揭示了基礎(chǔ)幾何知識(shí)對培養(yǎng)AI空間智能的重要價(jià)值。