北大、字節(jié)跳動(dòng)聯(lián)手發(fā)布SWE-Swiss:一把修復(fù)代碼Bug的「瑞士軍刀」,完整配方直指開源SOTA

圖 1: SWE-bench Verified 上的性能與模型尺寸對(duì)比。該研究的 32B 模型 SWE-Swiss,取得了 60.2% 的頂級(jí)分?jǐn)?shù),與更大的模型如 Kimi-Dev, DeepSeek-R1-0528 處于同一梯隊(duì)。這證明了該研究的訓(xùn)練配方能讓一個(gè)小得多的模型達(dá)到同樣的 SOTA 性能級(jí)別,凸顯了其卓越的效率。
近日,一項(xiàng)由北京大學(xué)、字節(jié)跳動(dòng) Seed 團(tuán)隊(duì)及香港大學(xué)聯(lián)合進(jìn)行的研究,提出了一種名為「SWE-Swiss」的完整「配方」,旨在高效訓(xùn)練用于解決軟件工程問(wèn)題的 AI 模型。研究團(tuán)隊(duì)推出的 32B 參數(shù)模型 SWE-Swiss-32B,在權(quán)威基準(zhǔn) SWE-bench Verified 上取得了 60.2% 的準(zhǔn)確率,在同尺寸級(jí)別中達(dá)到了新的 SOTA。該工作證明,通過(guò)精巧的方法論設(shè)計(jì),中等規(guī)模的模型完全有能力實(shí)現(xiàn)頂級(jí)性能,為 AI 在軟件工程領(lǐng)域的應(yīng)用提供了新的思路。為促進(jìn)社區(qū)發(fā)展,該研究的模型、數(shù)據(jù)集將全部開源。

- GitHub 地址: https://github.com/zhenyuhe00/SWE-Swiss
- Hugging Face 模型和數(shù)據(jù): https://huggingface.co/SWE-Swiss
引言:軟件工程 AI 的挑戰(zhàn)與機(jī)遇
自動(dòng)化解決真實(shí)世界的軟件問(wèn)題,是大型語(yǔ)言模型(LLM)面臨的一項(xiàng)艱巨挑戰(zhàn)。相較于純粹的代碼生成,這項(xiàng)任務(wù)要求模型具備理解復(fù)雜上下文、定位問(wèn)題、生成修復(fù)并進(jìn)行驗(yàn)證的綜合能力?,F(xiàn)有框架(如 Agentless)已證明,將此復(fù)雜任務(wù)分解為結(jié)構(gòu)化工作流是一條可行的路徑。然而,如何高效地訓(xùn)練一個(gè)模型以精通所有環(huán)節(jié),是當(dāng)前研究的核心問(wèn)題。
本項(xiàng)工作提出的 SWE-Swiss 配方,正是為了解決這一問(wèn)題。其核心原則是,通過(guò)對(duì)軟件工程中的核心能力進(jìn)行顯式建模和訓(xùn)練,來(lái)構(gòu)建一個(gè)功能強(qiáng)大且高效的問(wèn)題解決模型。
方法概覽:結(jié)構(gòu)化的「SWE-Swiss 配方」

圖 2: 由三個(gè)核心能力驅(qū)動(dòng)的 LLM 補(bǔ)丁生成流程圖示。模型首先利用問(wèn)題描述和代碼庫(kù)結(jié)構(gòu)進(jìn)行代碼定位和測(cè)試生成,隨后修復(fù)模塊利用定位和檢索到的文件生成補(bǔ)丁,最后所有生成的測(cè)試和已有測(cè)試被用來(lái)過(guò)濾和驗(yàn)證最終的補(bǔ)丁。
SWE-Swiss 配方將問(wèn)題解決流程解構(gòu)為三項(xiàng)核心技能:
- 代碼定位 (Localization): 準(zhǔn)確識(shí)別需要修改的文件。
- 代碼修復(fù) (Repair): 生成能解決問(wèn)題的正確代碼補(bǔ)丁。
- 單元測(cè)試生成 (Unit Test Generation): 創(chuàng)建單元測(cè)試以驗(yàn)證修復(fù)的有效性。
為確保訓(xùn)練數(shù)據(jù)的質(zhì)量,研究團(tuán)隊(duì)采用驗(yàn)證性拒絕采樣的來(lái)構(gòu)建數(shù)據(jù)集。該過(guò)程首先生成大量候選數(shù)據(jù),隨后通過(guò)嚴(yán)格的、基于測(cè)試的自動(dòng)化驗(yàn)證流程進(jìn)行篩選,只保留被成功驗(yàn)證的樣本用于模型微調(diào)
兩階段訓(xùn)練方法
SWE-Swiss 的訓(xùn)練分為兩個(gè)主要階段:
- 第一階段:通過(guò)多任務(wù) SFT 構(gòu)建基礎(chǔ)能力
此階段將上述三種技能共 10,254 個(gè)高質(zhì)量樣本混合,對(duì) Qwen2.5-32B 模型進(jìn)行監(jiān)督微調(diào)。這使得模型能夠?qū)φ麄€(gè)問(wèn)題解決流程建立全面的基礎(chǔ)理解。完成此階段后,模型在未進(jìn)行測(cè)試時(shí)擴(kuò)展的情況下,取得 36.0% 的基準(zhǔn)性能。 - 第二階段:通過(guò)兩階段 RL 精通核心技能在 SFT 模型的基礎(chǔ)上,此階段專注于通過(guò)強(qiáng)化學(xué)習(xí)提升最關(guān)鍵的「修復(fù)」能力。受 POLARIS 的啟發(fā),團(tuán)隊(duì)設(shè)計(jì)了
兩階段 RL 課程:首先,模型在完整數(shù)據(jù)集上訓(xùn)練 200 步以建立廣泛能力;隨后,通過(guò)基于性能的剪枝,移除模型已掌握(準(zhǔn)確率 > 90%)的簡(jiǎn)單樣本,讓模型在接下來(lái)的 90 步訓(xùn)練中專注于更具挑戰(zhàn)性的難題。
這一階段效果顯著,在單補(bǔ)丁生成模式下,模型性能從 36.0% 躍升至 45.0%。

圖 3: 兩階段強(qiáng)化學(xué)習(xí)過(guò)程中的性能提升曲線。第一階段(0-200 步)顯示了在完整數(shù)據(jù)集上訓(xùn)練的穩(wěn)定提升。第二階段(200 步之后)則是在過(guò)濾后更具挑戰(zhàn)性的數(shù)據(jù)集上繼續(xù)訓(xùn)練,帶來(lái)了進(jìn)一步的性能增益。
測(cè)試時(shí)擴(kuò)展
在評(píng)估階段,類似 Agentless 和 Agentless Mini,SWE-Swiss 采用多補(bǔ)丁生成與過(guò)濾的策略。在自我一致性 (self-consistency) 的基礎(chǔ)上,團(tuán)隊(duì)提出了一種「增強(qiáng)自我一致性 (Enhanced Self-consistency)」的最終選擇方法。
傳統(tǒng)的自洽性方法依賴于代碼的「完全一致」匹配,這在語(yǔ)法細(xì)節(jié)多樣的代碼場(chǎng)景下存在漏洞。增強(qiáng)自我一致性則通過(guò)引入相似度度量,不僅獎(jiǎng)勵(lì)與最多數(shù)完全相同的候選者,也獎(jiǎng)勵(lì)那些處在「相似解決方案」密集區(qū)域的候選者。該方法的最終評(píng)分為:

其中,
為精確匹配的頻率計(jì)數(shù),而
為與 top-k 個(gè)最相似鄰居的平均相似度得分。

圖 4: SWE-Swiss-32B 的測(cè)試時(shí)擴(kuò)展性能,增強(qiáng)自我一致性在 120 個(gè)補(bǔ)丁時(shí)達(dá)到了 60.2% 的準(zhǔn)確率。
結(jié)論與開源
本項(xiàng)研究工作的核心貢獻(xiàn)在于提出并驗(yàn)證了一套完整的、高效的 SWE-Swiss「配方」。實(shí)驗(yàn)證明,該配方能夠使一個(gè) 32B 的中等規(guī)模模型和更大的模型相媲美。從 SFT 后的 36.0%,到 RL 后的 45.0%,再到結(jié)合測(cè)試時(shí)擴(kuò)展和增強(qiáng)自洽性的最終 60.2%,這一系列的性能提升清晰地展示了配方中每一個(gè)環(huán)節(jié)的價(jià)值,為業(yè)界提供了一條通過(guò)優(yōu)化大模型軟件工程能力的有效路徑。
該團(tuán)隊(duì)將開源 SWE-Swiss-32B 模型、全部訓(xùn)練數(shù)據(jù),以期為社區(qū)的后續(xù)研究提供支持。

























