伯克利最強代碼Agent屠榜SWE-Bench!用Scaling RL打造,配方全公開
AI編程領(lǐng)域競爭激烈,但多被閉源模型主導(dǎo)。
如今,一款開源軟件工程模型DeepSWE橫空出世,以59%的準(zhǔn)確率大幅刷新了SOTA。
DeepSWE基于Qwen3-32B打造,并且只使用強了化學(xué)習(xí)進行訓(xùn)練。
地址:https://github.com/agentica-project/rllm
模型:https://huggingface.co/agentica-org/DeepSWE-Preview
Agentica的項目負責(zé)人Michael Luo感嘆道,「那個過度定價、黑箱式的編碼助手時代要終結(jié)了!」
另外一個好消息是,Agentica團隊也慷慨解囊,開源了所有內(nèi)容。
除了模型,還包括訓(xùn)練代碼(rLLM)、數(shù)據(jù)集(R2EGym)以及實現(xiàn)完全可復(fù)現(xiàn)的訓(xùn)練配方。
訓(xùn)練方法
DeepSWE最大亮點是,相較于之前許多依賴「老師模型」(如 GPT-4)進行模仿學(xué)習(xí)(SFT或蒸餾)的路徑不同。
它僅用強化學(xué)習(xí)(RL)就能從零開始將一個基礎(chǔ)模型訓(xùn)練成性能亮眼的智能體。
據(jù)官方介紹,DeepSWE是在模塊化RL后訓(xùn)練框架rLLM上訓(xùn)練的。
rLLM有一個好處,說白了,就是讓你自己動手攢一個用強化學(xué)習(xí)訓(xùn)練出來的AI小能手,從頭到尾都不再那么費勁了,直接拿去干活兒就行。
使用R2E-Gym進行可擴展數(shù)據(jù)集管理
訓(xùn)練環(huán)境方面,DeepSWE是在R2E-Gym訓(xùn)練環(huán)境中(一個現(xiàn)有的Gym環(huán)境)訓(xùn)練,用于高質(zhì)量可執(zhí)行SWE環(huán)境的可擴展管理。
狀態(tài)與動作
R2E-Gym定義了一組四個工具作為動作空間的一部分:
1. 執(zhí)行Bash:輸出LLM生成的bash命令的stdout和stderr。
2. 搜索:搜索并返回目錄或單個文件中所有符合LLM定義的查詢的結(jié)果。
3. 文件編輯器:允許查看、創(chuàng)建、替換字符串、插入以及撤銷對特定文件的編輯。
4. 完成/提交:LLM已決定解決了該拉取請求,這將終止軌跡生成。
獎勵模型
獎勵函數(shù)采用了一種稀疏的結(jié)果獎勵模型(ORM)。
研究人員驚喜的發(fā)現(xiàn),僅僅通過簡單的「成功/失敗」獎勵信號,DeepSWE自發(fā)地學(xué)會了高級程序員才具備的復(fù)雜行為,例如:
- 主動思考邊緣案例和回歸測試。
- 根據(jù)任務(wù)的復(fù)雜程度,自適應(yīng)地調(diào)整「思考」的深度。
通過擴展RL訓(xùn)練SWE智能體
算法方面,DeepSWE僅僅使用了強化學(xué)習(xí)來直接訓(xùn)練,沒有使用蒸餾方法。
更值得關(guān)注的是,研發(fā)人員使用了獨家改良的GRPO++算法,這個算法在之前的基礎(chǔ)上做了增強。
為了提升模型訓(xùn)練的穩(wěn)定性和性能的提升,研發(fā)人員整合7個算法:
1. Clip High (DAPO):提高GRPO/PPO替代損失的上限可以鼓勵探索并穩(wěn)定熵。
2. 無KL損失(DAPO):消除KL損失可以防止LLM受限于原始SFT模型的信任區(qū)域。
3. 無獎勵標(biāo)準(zhǔn)差(Dr.GRPO):去除獎勵標(biāo)準(zhǔn)差可消除GRPO損失中的難度偏差,從而更好地區(qū)分難易問題。
4. 長度歸一化(Dr.GRPO):將替代損失除以最大上下文長度,可以消除GRPO中存在的長度偏差,這種偏差會增加錯誤響應(yīng)的長度。
5. 一法(Loop/RLOO):在優(yōu)勢估計中移除一個樣本,可以在不引入偏差的情況下降低策略梯度的方差。
6. 緊湊過濾:受DAPO啟發(fā),對達到最大上下文長度、生成過程中超時(20分鐘)或達到最大步數(shù)的軌跡進行損失屏蔽。
7. 無熵損失:熵損失會引入更高的不穩(wěn)定性,最終導(dǎo)致熵呈指數(shù)增長,從而使訓(xùn)練崩潰。如果基礎(chǔ)模型的令牌級熵在0.3到1之間,則不需要熵損失。
針對其中一個算法「緊湊過濾」,研發(fā)人員強調(diào)了其對模型訓(xùn)練優(yōu)勢:
好處1:防止或延緩訓(xùn)練過程中的獎勵崩潰(上圖)
好處2:減少了每一步的過度思考,并鼓勵跨步驟的長篇推理(下圖)
挑戰(zhàn)
當(dāng)然,在訓(xùn)練過程中也遇到了挑戰(zhàn)——擴展SWE-Bench環(huán)境。
研發(fā)人員指出,你可以想象下,在最后的訓(xùn)練過程中,需要同時啟動好幾百個Docker容器。
因為跑得太多、太猛,一瞬間搞出了幾千個,直接把Docker給整崩潰了。
為了解決這個問題,研發(fā)人員將Kubernetes支持集成到了R2E-Gym環(huán)境中,使編排器能夠在節(jié)點池中調(diào)度容器。
研發(fā)人員,給每個干活的服務(wù)器都配了頂配裝備:
差不多200核的CPU,還有6T多的超高速固態(tài)硬盤。
為了讓程序跑得飛快,研究員提前把所有要用的軟件(鏡像)都下載好存到本地硬盤里了。
這樣一來,每次啟動程序就跟打開桌面軟件一樣秒開,根本不用再吭哧吭哧地去網(wǎng)上下載了。
研究人員指出,該集群可以擴展到超過1000個CPU核心,并依賴Kubernetes集群自動縮放器來自動添加或移除節(jié)點。
當(dāng)Pod在短時間內(nèi)無法調(diào)度時,自動縮放器會配置額外的工作節(jié)點;相反,它會移除那些大約二十分鐘內(nèi)利用率較低的節(jié)點。
這種彈性設(shè)置能夠可靠地收集數(shù)百萬條軌跡,同時保持計算成本與負載成比例。
評估策略(TTS)
除了強大的模型本身,DeepSWE還采用了「測試時擴展 (TTS)」這一評估策略。
該策略通過「多方案生成 + 智能驗證」的方式,將性能推向了新的高度。
為了提升其模型的Pass@1性能,研發(fā)人員在「測試時」想到了兩種方法:
方法一:擴展上下文長度(見上圖):
將最大上下文從16K擴展到128K個標(biāo)記,性能有所提升。在超過32K時收益約為2%,達到42.2%的Pass@1。
方法二:擴展代理部署(見下圖):
使用最佳選擇策略為每個問題生成了多個代理部署。采用結(jié)合基于執(zhí)行和免執(zhí)行方法的混合驗證器,以選擇最佳的代理軌跡。
兩種方法確實帶來了性能的提升,在SWE-Bench Verified上達到59%,在開放權(quán)重的SWE-Agent中實現(xiàn)新的SOTA。
作者簡介
Michael Luo
Michael Luo,加州大學(xué)伯克利分校電氣工程與計算機科學(xué)系博士生,研究興趣聚焦人工智能和系統(tǒng)領(lǐng)域。
碩士和本科研究主要集中在強化學(xué)習(xí)(RL)的實際問題和應(yīng)用,包括自然語言處理(NLP)、數(shù)據(jù)庫查詢優(yōu)化以及視頻流。
Sijun Tan
Sijun Tan,目前是加州大學(xué)伯克利分校計算機科學(xué)系在校三年級的博士生,本科畢業(yè)于弗吉尼亞大學(xué),獲得了計算機科學(xué)和數(shù)學(xué)雙學(xué)士學(xué)位。
研究重點是LLM后訓(xùn)練和代理 AI。曾在Facebook人工智能研究(FAIR)實習(xí),并在螞蟻集團擔(dān)任過高級算法工程師。