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