機(jī)器之心報(bào)道
編輯:Panda
400 多年前,宋應(yīng)星著成《天工開物》。這是一部寫給匠人、也寫給未來(lái)的書。它讓人相信:技術(shù)不是死物,而是人與世界持續(xù)互動(dòng)的方式。
如果說「天工」代表了中國(guó)古代對(duì)「工程」與「制造」的極致理解,那么今天,一個(gè)同樣以「天工」(即 Skywork)為名的 Agent 智能體,正試圖在另一片疆域(代碼世界)中,繼承這份精神。
這個(gè) Skywork,不是煉鐵鑄器的匠人,而是自主代碼智能體基座模型,要修補(bǔ)的是一種現(xiàn)代最復(fù)雜的人造系統(tǒng):(開源)軟件工程。它不握錘鑿,而是靠多輪交互、長(zhǎng)上下文理解與邏輯推理,在成千上萬(wàn)的 GitHub 項(xiàng)目中識(shí)別 issue/bug、定位原因、打補(bǔ)丁,并驗(yàn)證是否真的修好了。故此,它得名Skywork-SWE。(注:SWE 是指軟件工程 / Software Engineering。)
Skywork-SWE 因何而生?
軟件智能體面臨的困難
在古人的世界里,修一口破鼎、補(bǔ)一段布帛是「匠人精神」的體現(xiàn)。而在今天,最頻繁「破裂」的,莫過于代碼。
如今,代碼系統(tǒng)早已成為現(xiàn)代文明的骨架。它們運(yùn)行在日常軟件、銀行服務(wù)、交通調(diào)度等各式系統(tǒng)中,也支撐著我們所依賴的 AI 算法本身。但和古代器物一樣,再精妙的程序也難免出現(xiàn) bug—— 有些是邏輯失誤,有些是環(huán)境變遷,有些甚至源于協(xié)作失控。比如,就在前幾天,AWS、谷歌云、Azure 和 Cloudflare 都發(fā)生了中斷,連帶著 ChatGPT 和 Cursor 等熱門 AI 應(yīng)用也一并短暫失聯(lián);而這一事故的原因可能是一次錯(cuò)誤的自動(dòng)配額更新導(dǎo)致谷歌的 API 管理系統(tǒng)出現(xiàn)了故障。
同時(shí),bug 修復(fù)也是軟件工程中最基礎(chǔ),卻也是最復(fù)雜、最消耗人力的任務(wù)之一。特別是在真實(shí)的 GitHub 項(xiàng)目中,修一個(gè) bug 并不是「找到一行錯(cuò)字那么簡(jiǎn)單」,它常常需要:
- 讀取和理解成百上千個(gè)文件;
- 推演變量在不同模塊的流動(dòng)路徑;
- 閱讀前人留下的修復(fù)記錄與討論;
- 理解上下文、猜測(cè)意圖、編寫代碼補(bǔ)?。?/li>
- 最后,還得跑幾遍測(cè)試,看看是不是真的「已解決」。
那么,我們能否使用 AI 智能體來(lái)完成這些任務(wù)呢?
當(dāng)然可以!但我們需要的絕不是傳統(tǒng)的用于解決單獨(dú)編程任務(wù)的 AI 編程模型,而是需要像人類開發(fā)者一樣能夠理解歷史上下文、進(jìn)行多輪推理、在模糊與不確定中做決策、具備落地執(zhí)行的能力的軟件工程智能體。
而難題也隨之而生:這類任務(wù)長(zhǎng)期缺乏高質(zhì)量訓(xùn)練數(shù)據(jù)。市面上現(xiàn)有的 SWE 數(shù)據(jù)集,不是驗(yàn)證機(jī)制不足,就是訓(xùn)練樣本雜亂無(wú)章,難以支持模型在真實(shí)工程中進(jìn)化。另外,這些數(shù)據(jù)集的規(guī)模普遍較小,導(dǎo)致數(shù)據(jù) Scaling Law 適用性不明確。
正是為了應(yīng)對(duì)這種挑戰(zhàn),昆侖萬(wàn)維推出了自主代碼智能體基座模型 Skywork-SWE。它不僅代表一個(gè)性能卓越的模型 ——32B 參數(shù)量級(jí)別的最強(qiáng)開源軟件工程智能體,更是一個(gè)集數(shù)據(jù)、驗(yàn)證、推理與修復(fù)為一體的完整系統(tǒng)。不僅如此,他們還基于此成功揭示了LLM 軟件工程能力的 Scaling Law
目前,該模型的技術(shù)報(bào)告和模型權(quán)重都已發(fā)布。
- 技術(shù)報(bào)告:https://huggingface.co/Skywork/Skywork-SWE-32B/resolve/main/assets/Report.pdf
- 技術(shù)博客:https://quixotic-sting-239.notion.site/eb17f379610040ceb54da5d5d24065bd
- 模型權(quán)重:https://huggingface.co/Skywork/Skywork-SWE-32B
Skywork-SWE
數(shù)據(jù)錘煉出的智能工匠
那么,昆侖萬(wàn)維究竟是如何打造出 Skywork-SWE 的呢?
核心的秘訣在于:在軟件工程任務(wù)上高質(zhì)量地達(dá)成了數(shù)據(jù) Scaling Law
為了獲得高質(zhì)量數(shù)據(jù),昆侖萬(wàn)維構(gòu)建了構(gòu)建了一套自動(dòng)化、結(jié)構(gòu)化、可復(fù)現(xiàn)的 SWE 數(shù)據(jù)收集與驗(yàn)證流程,共分為三大階段、九個(gè)步驟。
最終,他們從 15 萬(wàn)個(gè) GitHub 開源項(xiàng)目中篩選出 10,169 個(gè)真實(shí)代碼問題和 8,209 條多輪交互軌跡,構(gòu)建出了業(yè)內(nèi)最大規(guī)模、可驗(yàn)證的 SWE 數(shù)據(jù)集,其中每一個(gè)樣本都不是「描述性」的,而是「工程級(jí)」的:
- 每條任務(wù)都能在 Docker 中復(fù)現(xiàn);
- 每個(gè)補(bǔ)丁都要通過單元測(cè)試驗(yàn)證;
- 每條智能體軌跡都覆蓋完整修復(fù)閉環(huán)。
下圖展示了其完整的數(shù)據(jù)構(gòu)建流程:
數(shù)據(jù)構(gòu)建流程圖
具體來(lái)說,階段 A 的工作是數(shù)據(jù)采集與預(yù)篩選,其中又細(xì)分為 GitHub 元數(shù)據(jù)抓取、PR(Pull Request)收集與任務(wù)初篩和安裝驗(yàn)證 3 個(gè)步驟。第一階段的處理下來(lái),昆侖萬(wàn)維團(tuán)隊(duì)從 15 萬(wàn)個(gè)開源倉(cāng)庫(kù)中得到了 23,389 個(gè)有效任務(wù)樣本。為了防止數(shù)據(jù)泄漏,排除 SWE-bench Verified(測(cè)試數(shù)據(jù)集)已包含的倉(cāng)庫(kù)。
而階段 B 則是環(huán)境設(shè)置和基于執(zhí)行的驗(yàn)證。同樣,這一階段也分為三個(gè)步驟:統(tǒng)一命令生成、Docker 環(huán)境構(gòu)建和單元測(cè)試驗(yàn)證。很容易看出來(lái),這一步的目標(biāo)是確保問題的修復(fù)是有效的,進(jìn)而進(jìn)一步保證數(shù)據(jù)的質(zhì)量。
最后,還需要針對(duì)每個(gè)任務(wù)生成正確的智能體軌跡。這也正是階段 C 的任務(wù)目標(biāo)。同樣地,三個(gè)步驟:首先,昆侖萬(wàn)維團(tuán)隊(duì)基于開源的 OpenHands 代碼智能體框架,選用代碼能力突出的商用大模型(如 Claude,DeepSeek 等)作為智能體基座,對(duì)每個(gè)任務(wù)執(zhí)行最多 100 輪交互,完整記錄智能體在問題求解過程中的交互軌跡。然后,他們進(jìn)行了 Patch 級(jí)的驗(yàn)證,以確保智能體行為嚴(yán)格對(duì)齊倉(cāng)庫(kù)級(jí)代碼修復(fù)目標(biāo)。最后,構(gòu)建訓(xùn)練樣本庫(kù),得到了 8,209 條高質(zhì)量、長(zhǎng)上下文、多輪交互的經(jīng)過驗(yàn)證的軌跡。
走完全流程后,昆侖萬(wàn)維團(tuán)隊(duì)得到了一個(gè)當(dāng)前規(guī)模最大、質(zhì)量最高且可驗(yàn)證的軟件工程任務(wù)數(shù)據(jù)集:Skywork-SWE。是的,正是基于該數(shù)據(jù)集,昆侖萬(wàn)維訓(xùn)練出了同名的自主代碼智能體模型:Skywork-SWE-32B?。ㄗⅲ?2B 是指模型參數(shù)量。)
數(shù)據(jù)構(gòu)建過程中各個(gè)階段數(shù)據(jù)樣本量變化圖
在任務(wù)數(shù)量與代碼覆蓋廣度方面,Skywork-SWE 遠(yuǎn)超現(xiàn)有同類數(shù)據(jù)集(如 SWE-Gym Lite 與 SWE-bench Verified),可為大模型提供豐富、多樣且貼近實(shí)際的軟件工程任務(wù)樣本,進(jìn)而持續(xù)推動(dòng)智能體模型的能力進(jìn)化。
更具體而言,如下左表所示,相較于其他基準(zhǔn)數(shù)據(jù)集,Skywork-SWE 中的任務(wù)在編輯復(fù)雜度上顯著更高:平均每個(gè)補(bǔ)丁涉及 2 個(gè)以上函數(shù)修改、6 個(gè)代碼塊、以及多達(dá) 74 行代碼變更,能更真實(shí)地反映GitHub 開發(fā)中的問題修復(fù)復(fù)雜度。這也意味著,模型要在此類任務(wù)中實(shí)現(xiàn)有效修復(fù),必須具備更強(qiáng)的代碼理解、上下文建模與多輪交互推理能力。
Skywork-SWE 數(shù)據(jù)集統(tǒng)計(jì)表與 GitHub 倉(cāng)庫(kù)詞云圖
而右圖則給出了 Skywork-SWE 數(shù)據(jù)集的倉(cāng)庫(kù)名稱詞云。可以看到,其中不僅涵蓋如 Pydantic、SQLGlot、DVC 等主流開源項(xiàng)目,還包含大量中小型倉(cāng)庫(kù),呈現(xiàn)出高度貼近真實(shí)開發(fā)生態(tài)的任務(wù)分布特征。這種貼近真實(shí)開發(fā)生態(tài)的數(shù)據(jù)構(gòu)成,有助于提升模型在復(fù)雜多樣場(chǎng)景下的問題解決能力。
這些能力也在基于 Skywork-SWE 數(shù)據(jù)集微調(diào)得到的 Skywork-SWE-32B 模型上得到了體現(xiàn)。(注:采用的基座模型是 Qwen2.5-Coder-32B-Instruct)。
Skywork-SWE-32B 的實(shí)驗(yàn)表現(xiàn)
在廣受關(guān)注的 SWE-bench Verified 基準(zhǔn)(包含 500 個(gè)實(shí)例,來(lái)自 12 個(gè)流行 Python GitHub 庫(kù)的 PR)上,Skywork-SWE-32B 在 OpenHands Agent 框架下取得了 47% 的準(zhǔn)確度,超越了現(xiàn)有參數(shù)規(guī)模在 32B 以下的開源模型,甚至優(yōu)于參數(shù)量高達(dá) 671B 的 DeepSeek-V3-0324 模型。
而在這個(gè)亮眼成績(jī)背后,他們的實(shí)驗(yàn)還成功揭示了 LLM SWE 能力在數(shù)據(jù)方面的 Scaling Law:隨著訓(xùn)練數(shù)據(jù)規(guī)模的持續(xù)擴(kuò)展,SWE 模型性能會(huì)持續(xù)提升,充分驗(yàn)證了「數(shù)據(jù) scaling 帶來(lái)的性能增益」在軟件工程任務(wù)中的有效性與適用性。Skywork-SWE-32B 實(shí)現(xiàn)了 38.0% pass@1 準(zhǔn)確度,刷新 Qwen2.5-Coder-32B 系列模型在 OpenHands 代碼框架下的最佳成績(jī)。
可以看到,隨著訓(xùn)練軌跡數(shù)量的增多,Skywork-SWE-32B 的性能會(huì)持續(xù)提升。請(qǐng)注意,上圖的橫軸采用了指數(shù)刻度,這意味著模型性能幾乎呈指數(shù)級(jí)隨數(shù)據(jù)增長(zhǎng)而提升。更重要的是,在當(dāng)前數(shù)據(jù)集規(guī)模范圍內(nèi),性能提升尚未出現(xiàn)飽和跡象,這充分揭示了進(jìn)一步擴(kuò)展高質(zhì)量數(shù)據(jù)的巨大潛力。
另外,為了在推理階段進(jìn)一步釋放模型能力,昆侖萬(wàn)維團(tuán)隊(duì)也實(shí)驗(yàn)了測(cè)試時(shí)擴(kuò)展(TTS)技術(shù)對(duì) Skywork-SWE-32B 帶來(lái)的提升,充分釋放了模型的潛力,在 Best of 8 的測(cè)試下即可達(dá)到 47% 的正確率。
下圖展示了其具體在不同倉(cāng)庫(kù)上的得分情況。
相較于主流的一些閉源模型,經(jīng)過 TTS 后的 Skywork-SWE-32B 的表現(xiàn)也相當(dāng)不俗:顯著超越了 GPT-4.1-mini(23.86%)、 Claude 3.5 HaiKu(40.6%)和 OpenAI-o1-preview (41.3%),并且領(lǐng)先于 Claude v3.5(46.0%)。
下面通過一個(gè)實(shí)際案例來(lái)看看 Skywork-SWE-32B 的工作過程。
以用 Python 編寫的、用于天文學(xué)的通用核心軟件包 Astropy 及對(duì)應(yīng)的 #14309 PR 為例。
Astropy 倉(cāng)庫(kù) issue:修復(fù)當(dāng)提供的文件路徑?jīng)]有 args 參數(shù)時(shí) FITS 鏈接邏輯崩潰問題。
向 Skywork-SWE-32B 模型輸入上述 Astropy 倉(cāng)庫(kù) issue 和相應(yīng)的代碼倉(cāng)庫(kù),可以看到該模型能精準(zhǔn)定位問題源文件與具體缺陷,并生成 patch 修復(fù)方案。
生成 patch 修復(fù)方案示例圖
如下所示,Skywork-SWE-32B 生成的方案成功通過了全部測(cè)試樣例,實(shí)現(xiàn)了在 GitHub 代碼倉(cāng)庫(kù)中從問題理解到解決的一站式代碼修復(fù)。
單元測(cè)試結(jié)果示例圖
Skywork-SWE-32B 的優(yōu)異表現(xiàn)充分驗(yàn)證了 Skywork-SWE 數(shù)據(jù)集的高質(zhì)量與實(shí)際價(jià)值。
一份數(shù)據(jù)集
撬動(dòng)一個(gè)智能體時(shí)代
在大模型走向智能體時(shí)代的今天,真正稀缺的已不是算力,也不是參數(shù),而是經(jīng)得起驗(yàn)證、貼近真實(shí)、具備閉環(huán)反饋的數(shù)據(jù)。
Skywork-SWE 的意義,恰恰在于此。它不僅僅代表了一個(gè)模型,而是一套系統(tǒng)化構(gòu)建真實(shí)工程數(shù)據(jù)的范式,其中收集的不是孤立的函數(shù)調(diào)用或代碼段,而是成千上萬(wàn)個(gè)來(lái)自 GitHub 倉(cāng)庫(kù)的實(shí)際修復(fù)任務(wù) —— 每一條都能在環(huán)境中復(fù)現(xiàn)、通過測(cè)試、形成可追蹤的智能體交互軌跡。
這份數(shù)據(jù)集不僅讓 Skywork-SWE-32B 成為當(dāng)前 32B 參數(shù)規(guī)模下最強(qiáng)的開源軟件工程模型之一,更重要的是,它揭示了 LLM 在 SWE 任務(wù)中持續(xù)增長(zhǎng)的性能與數(shù)據(jù)之間的強(qiáng)相關(guān)性,首次系統(tǒng)性驗(yàn)證了數(shù)據(jù) Scaling Law 在復(fù)雜工程任務(wù)上的適用性,堪稱軟件工程智能體的「ImageNet」。
昆侖萬(wàn)維表示,未來(lái) Skywork-SWE 數(shù)據(jù)集還將向更多編程語(yǔ)言擴(kuò)展;另外,其在運(yùn)行時(shí)環(huán)境中執(zhí)行并驗(yàn)證單元測(cè)試的設(shè)置也有助于近期 LLM 社區(qū)對(duì)在線強(qiáng)化學(xué)習(xí)方法的探索。
這背后,折射出昆侖萬(wàn)維對(duì)行業(yè)趨勢(shì)的清醒判斷:大模型走得再遠(yuǎn),最終也要落到真實(shí)任務(wù)中;開源要想站穩(wěn)腳跟,必須在「數(shù)據(jù)+系統(tǒng)+執(zhí)行力」上全面補(bǔ)強(qiáng)。
過去一年里,昆侖萬(wàn)維圍繞 Skywork 系列已布局從 MoE 架構(gòu)、預(yù)訓(xùn)練模型到智能體框架與垂直場(chǎng)景的全鏈條。我們看到了多模態(tài)推理模型 Skywork-R1V 以及超越 Suno V4 的音樂模型 Mureka O1,甚至還有國(guó)內(nèi)首個(gè)短劇創(chuàng)作大模型 Skyreels-V1、可交互視頻生成世界模型 Matrix-Game 和 Matrix-Zero 以及堪稱智能體界的全能型選手的天工超級(jí)智能體(Skywork Super Agent)。而更妙的是,以上這些模型大都是開源的!(可點(diǎn)擊對(duì)應(yīng)鏈接了解詳情。)
Skywork-SWE 的推出,標(biāo)志著這一體系進(jìn)一步落地,也是昆侖萬(wàn)維在代碼、內(nèi)容、辦公等智能體任務(wù)場(chǎng)景長(zhǎng)期探索的延續(xù)。在這個(gè)探索中,他們不僅造模型,更造數(shù)據(jù);不僅做生成,還進(jìn)行驗(yàn)證。而放眼未來(lái),這種以高質(zhì)量任務(wù)型數(shù)據(jù)為基礎(chǔ)的智能體訓(xùn)練范式,或?qū)⒊蔀榇a、軟件工程乃至通用多模態(tài)智能體的「標(biāo)準(zhǔn)工藝」。
天工再起,從數(shù)據(jù)開始。Skywork-SWE 是對(duì)「工程智能體」時(shí)代最扎實(shí)的回答,也是昆侖萬(wàn)維寫下的一份面向行業(yè)的「天工開物」。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(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.