全球首測(cè)!OpenAI開(kāi)源SWELancer,大模型沖擊100萬(wàn)年薪
今天凌晨2點(diǎn),OpenAI開(kāi)源了一個(gè)全新評(píng)估大模型代碼能力的測(cè)試基準(zhǔn)——SWE-Lancer。
目前,測(cè)試模型代碼能力的基準(zhǔn)主要有SWE-Bench和SWE-BenchVerified,但這兩個(gè)有一個(gè)很大的局限性,主要針對(duì)孤立任務(wù),很難反映現(xiàn)實(shí)中軟件工程師的復(fù)雜情況。例如,開(kāi)發(fā)人員需處理全技術(shù)棧的工作,要考慮代碼庫(kù)間的復(fù)雜交互和權(quán)衡。
而SWE-Lancer的測(cè)試數(shù)據(jù)集包含1488個(gè)來(lái)自Upwork平臺(tái)上Expensify開(kāi)源倉(cāng)庫(kù)的真實(shí)開(kāi)發(fā)任務(wù),并且總價(jià)值高達(dá)100萬(wàn)美元。也就是說(shuō),如果你的大模型能全部答對(duì)這些問(wèn)題,就能像人類一樣獲得百萬(wàn)年薪。
開(kāi)源地址:https://github.com/openai/SWELancer-Benchmark
SWE-Lancer獨(dú)特測(cè)試方法
SWE-Lancer的一個(gè)重要?jiǎng)?chuàng)新是其采用的端到端測(cè)試方法。與傳統(tǒng)的單元測(cè)試不同,端到端測(cè)試能夠模擬真實(shí)用戶的工作流程,驗(yàn)證應(yīng)用程序的完整行為。這種方法不僅能夠更全面地評(píng)估模型的解決方案,還能夠避免一些模型通過(guò)作弊來(lái)通過(guò)測(cè)試。
例如,對(duì)于一個(gè)價(jià)值1000美元的開(kāi)發(fā)任務(wù),模型需要修復(fù)一個(gè)導(dǎo)致用戶頭像在“分享代碼”頁(yè)面與個(gè)人資料頁(yè)面不一致的漏洞。
傳統(tǒng)的單元測(cè)試可能只能驗(yàn)證頭像上傳和顯示的獨(dú)立功能,但端到端測(cè)試則會(huì)模擬用戶登錄、上傳頭像、切換賬戶以及查看不同頁(yè)面的完整流程。通過(guò)這種方式,測(cè)試不僅能夠驗(yàn)證頭像是否正確顯示,還能夠確保整個(gè)交互過(guò)程的連貫性和正確性。
端到端測(cè)試的另一個(gè)重要特點(diǎn)是其對(duì)真實(shí)場(chǎng)景的還原能力。在軟件工程中,許多問(wèn)題并非孤立出現(xiàn),而是與系統(tǒng)的其他部分相互作用。
例如,一個(gè)看似簡(jiǎn)單的漏洞可能涉及到多個(gè)組件的協(xié)同工作,或者與數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)狀態(tài)等外部因素相關(guān)。
端到端測(cè)試通過(guò)模擬真實(shí)用戶的行為,能夠捕捉到這些復(fù)雜的交互關(guān)系,從而更準(zhǔn)確地評(píng)估模型的解決方案是否真正解決了問(wèn)題。
在評(píng)估的過(guò)程中,引入了一個(gè)重要模塊用戶工具,允許模型在本地運(yùn)行應(yīng)用程序,并模擬用戶的行為來(lái)驗(yàn)證其解決方案。
例如,在處理Expensify應(yīng)用中報(bào)銷(xiāo)流程的相關(guān)任務(wù)時(shí),模型借助用戶工具模擬用戶進(jìn)行費(fèi)用錄入操作。會(huì)按照真實(shí)用戶的操作習(xí)慣,在本地運(yùn)行的應(yīng)用程序中依次輸入各項(xiàng)費(fèi)用明細(xì),如金額、日期、費(fèi)用類型等信息,之后點(diǎn)擊提交按鈕,觀察應(yīng)用程序是否能正確記錄費(fèi)用數(shù)據(jù),以及后續(xù)的審批流程是否能順利啟動(dòng)。
通過(guò)這樣的模擬操作,模型能夠判斷自己對(duì)報(bào)銷(xiāo)流程問(wèn)題的解決方案是否有效,比如是否修復(fù)了費(fèi)用錄入后數(shù)據(jù)丟失的漏洞,或者是否優(yōu)化了審批流程中的卡頓現(xiàn)象等。
SWE-Lancer數(shù)據(jù)集
SWE-Lancer數(shù)據(jù)集一共包含1488個(gè)來(lái)自Upwork平臺(tái)上Expensify開(kāi)源庫(kù)的真實(shí)軟件開(kāi)發(fā)任務(wù),一共分為獨(dú)立貢獻(xiàn)者和軟件工程管理任務(wù)兩大類。
獨(dú)立開(kāi)發(fā)任務(wù)一共有764個(gè),價(jià)值414,775美元,主要模擬個(gè)體軟件工程師的職責(zé),例如,實(shí)現(xiàn)功能、修復(fù)漏洞等。在這類任務(wù)中,模型會(huì)得到問(wèn)題文本描述涵蓋重現(xiàn)步驟、期望行為、問(wèn)題修復(fù)前的代碼庫(kù)檢查點(diǎn)以及修復(fù)目標(biāo)。
軟件管理任務(wù),有724個(gè),價(jià)值585,225美元。模型在此類任務(wù)中扮演軟件工程經(jīng)理的角色,需要從多個(gè)解決任務(wù)的提案中挑選最佳方案。例如,在一個(gè)關(guān)于在iOS上實(shí)現(xiàn)圖像粘貼功能的任務(wù)中,模型要從不同提案里選擇最適宜的方案。
首批SWE-Lancer測(cè)試結(jié)果
OpenAI使用了GPT-4o、o1和Claude3.5Sonnet在SWE-Lancer進(jìn)行了測(cè)試,結(jié)果顯示,大模型沖擊百萬(wàn)年薪都失敗了。
在獨(dú)立開(kāi)發(fā)測(cè)試任務(wù)中,表現(xiàn)最好的模型Claude 3.5 Sonnet的通過(guò)率僅為26.2%,只能正確解決不到三分之一的開(kāi)發(fā)任務(wù)。而在軟件工程管理任務(wù)中,Claude 3.5 Sonnet的表現(xiàn)稍好,通過(guò)率達(dá)到了44.9%。
而GPT-4o在獨(dú)立開(kāi)發(fā)測(cè)試中的通過(guò)率僅為8%,o1的通過(guò)率為20.3%;在軟件工程管理任務(wù)中,GPT-4o為37.0%,o1為46.3%。
需要注意的是,模型在不同任務(wù)類型和難度級(jí)別上的表現(xiàn)存在顯著差異。在價(jià)值較低、相對(duì)簡(jiǎn)單的任務(wù)中,模型的通過(guò)率相對(duì)較高;而在價(jià)值較高、難度較大的任務(wù)中,通過(guò)率則明顯下降。
例如,在SWE-Lancer Diamond數(shù)據(jù)集中,價(jià)值超過(guò)1000美元的任務(wù),模型的通過(guò)率普遍低于30%。這表明,盡管模型在處理一些基礎(chǔ)任務(wù)時(shí)能夠表現(xiàn)出一定的能力,但在面對(duì)復(fù)雜的、高價(jià)值的軟件工程任務(wù)時(shí),他們?nèi)员热祟愐詈芏唷?/span>
看完這個(gè)基準(zhǔn)測(cè)試,網(wǎng)友表示,現(xiàn)在我們竟然需要測(cè)試大型語(yǔ)言模型是否能成為百萬(wàn)富翁,這簡(jiǎn)直瘋狂。
我很喜歡這個(gè)發(fā)展的方向。用全棧問(wèn)題進(jìn)行測(cè)試,將其與市場(chǎng)價(jià)值和開(kāi)發(fā)工作的日常現(xiàn)實(shí)聯(lián)系起來(lái)。一直覺(jué)得以前的基準(zhǔn)測(cè)試就不太準(zhǔn)確。
百分之百確定o3在這方面會(huì)勝過(guò)Grok3。
將它與現(xiàn)實(shí)世界的任務(wù)和經(jīng)濟(jì)價(jià)值聯(lián)系起來(lái)真是天才之舉,非常有趣。