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