繁體
  • 简体中文
  • 繁體中文

熱門資訊> 正文

不靠Agent,4步修復真Bug,螞蟻CGM登頂SWE-Bench開源榜

2025-06-27 19:28

Agentless+開源模型,也能高質量完成倉庫級代碼修復任務,效果媲美業界 SOTA 。

一、Agentless 、44% 與 NO.1

説到 AI 寫代碼的實力,大家最關心的還是一個問題:能不能真修 bug ?

首個全自動 AI 軟件工程師 Devin 一出場就引爆了技術圈,其江湖地位也在權威基準 SWE-Bench 上被進一步坐實——

獨立解決了 13.86% 的問題,遠遠甩開 GPT-4 僅有的 1.7% ,Claude2 也不過 4.8% 。

沒過多久,Genie 又在同一測試中直接將得分拉昇至 30.08% ,曾一度登頂全球最強 AI 程序員。

SWE-Bench 為何能贏得工業界、學術界和創業團隊廣泛關注?因為,它夠真實。

這套由普林斯頓大學提出的測試集,任務全部來自真實的 GitHub 項目——

問題要麼是開發者在生產環境中遇到的 bug ,要麼是功能開發中的典型需求,難度大、上下文複雜,最大程度地還原了程序員在真實開發中的工作狀態。

換句話説,能在 SWE-Bench 上拿高分的模型,必須具備一個經驗豐富軟件工程師的複雜技能和經驗,而這些恰恰是傳統代碼生成 benchmark 中很難覆蓋的。

考慮到 SWE-Bench 難度太高,團隊也提出了稍微簡單些的子集 SWE-Bench Lite ,即便如此,難度仍舊很高。

現有業界 SOTA 全部基於閉源模型,排行榜上的主力選手也大多是「豪華組合」:

閉源大模型(如 GPT-4o、Claude3.5 )+ Agent 架構(如 SWE-Agent ),靠大體量和複雜調度系統「堆」出來能力。

近日,螞蟻集團另闢蹊徑,給出一個完全不同的新解法:代碼圖模型 CGM( Code Graph Model ),基於開源模型實現了能與閉源媲美的性能——

在 SWE-BenchLite 公開排行榜上,CGM 能成功解決 44% 的問題,秒殺所有開源模型,位列第一;開源系統排名第六。

秒殺所有開源模型,位列第一

開源系統排名第六。

SWE-BenchLite測試平臺上的結果

具體而言,此次開源的 CGM 在 SWE-Bench 上實現了三項突破——

首先,打破閉源壟斷。首次使用開源的千問大模型,就能做到媲美 SOTA 的性能,並同步開放訓練用的代碼圖數據。

其次,摒棄了複雜 Agent 架構,僅用 4 步輕量級 GraphRAG 流程,即可完成高效問題定位與修復。

第三,首創性地讓大模型能直接讀懂倉庫級的代碼圖結構,鏈接了代碼和圖兩個模態,讓模型充分理解倉庫級上下文。

目前,CGM 已正式開源,模型、代碼、數據集均可在 HuggingFace 與 GitHub 獲取:

論文:https://arxiv.org/abs/2505.16901

模型:https://huggingface.co/codefuse-ai/CodeFuse-CGM-72B

代碼:https://github.com/codefuse-ai/CodeFuse-CGM

數據:https://huggingface.co/datasets/codefuse-ai/CodeGraph

事實上,CGM 的戰績從來不輸強敵。

早在 2024 年 10 月,它就以 35.67% 的問題解決率拿下 SWE-Bench Lite 開源榜首;

兩個月后再度登頂,解決率升至 41.67% 。

而這次最新版本再次刷新紀錄,解決率來到 44%,實現了對開源賽道的「連續三殺」。

二、LLM+Agent 架構?看起來很美

寫代碼,可以説是 AI 大模型的「天賦技能」。ChatGPT 大火后,各種 AI 代碼助手加速融入程序員的日常工作。

2023 年 9 月,螞蟻推出 AI 代碼助手 CodeFuse ,稱要支持整個軟件開發生命周期,涵蓋設計、需求、編碼、測試、部署、運維等關鍵階段。

經過兩年發展, CodeFuse 已逐步構建起較為完整的生態體系,其中,用於處理倉庫級別任務的 CGM( Code Graph Model )成為關鍵支點之一。

現實開發中,真正考驗代碼模型的不是寫幾個函數,而是像 Issue 修復、代碼審查這類倉庫級任務。一個大型項目動輒成千上萬行代碼,上千個文件、成百上千個函數,類與模塊之間繼承、調用關係錯綜複雜——動一行,可能牽一片。看似只改一個函數,實則要理清一整片森林。

爲了解決這類複雜任務,當前業內主流路徑是基於 LLM Agent 架構。

例如,用户問「如何增加刪除按鈕」、「密碼驗證邏輯在哪個函數中」,系統會自動調度多個 Agent 各司其職,同時對倉庫內的代碼進行切片、embedding 計算、語義檢索等操作,最終召回相關代碼並生成響應或修改建議。

但這種方案,除了模型的可獲取性受限,在真實場景中卻暴露出不少「隱藏 bug 」。

首先,軟件開發任務往往比較複雜。

「如何添加一個刪除按鈕」這一看似簡單的需求,背后包含多個 agent(「節點」)。節點越多,越不可控。任何一個出錯(例如錯判了文件位置、召回了無關代碼)都會影響后續流程,造成誤差積累。

而且,agent 越多,執行路徑越長,通信與計算成本也水漲船高。

其次,訓練數據跟不上系統複雜度。

像 SWE-bench 這樣的評測數據集,雖然真實、權威,但提供的是端到端的樣本——只標註了起點(問題)和終點(修復),中間 agent 們「怎麼拆解任務、怎麼協作」的路徑信息往往缺失。

換句話説,任務精細化了,但數據卻仍是粗粒度的,訓練難度反而上升。

再者,語言模型「線性讀代碼」的方式本身就存在侷限。

傳統做法通常把整個文件「鋪平」為一長串 token ,忽略了代碼天然的結構性。而代碼倉庫本質上更像一張圖——函數之間調用、類之間繼承、模塊之間依賴,結構複雜但規律明確。

想讓大模型真正具備倉庫級別的理解力,一個可行的技術路徑就是把結構直接喂進去。

三、「結構感知」的 Agentless 路線

是否可以在不依賴 agent 的情況下,使用開源大模型高效完成倉庫級代碼任務?螞蟻全模態代碼算法團隊找到了答案,提出 CGM( Code Graph Model )架構——

不依賴繁複的 agent 調度,而是首創將代碼倉庫圖結構作為模態輸入,直接融入大模型中,一舉捕獲函數調用、模塊依賴、類繼承等複雜關係。

這相當於給大模型戴上一副「工程眼鏡」,讓原本隱而不顯的代碼實體(文件、類、函數、變量等)的各種關係,立刻清晰可見。

而這一能力的實現,離不開三個關鍵突破。

1、多粒度代碼圖譜建模,捕捉結構信息

CGM 會將代碼倉庫建模為圖數據結構。為捕捉倉庫圖結構信息,團隊首先利用程序分析技術將整個代碼倉庫轉換為對應代碼圖(如圖1)。代碼圖中的節點類型和邊類型如下:

節點類型:涵蓋 7 類代碼實體( REPO / PACKAGE / FILE / TEXTFILE/ CLASS / FUNCTION / ATTRIBUTE )

邊類型:包含 5 種依賴關係( contains / calls / imports / extends /implements )

圖1倉庫代碼圖

在代碼圖中,contains 邊捕捉了代碼實體之間的層次依賴,其余邊類型則捕捉了代碼實體之間的語義依賴。在構建代碼圖時,也包含對複雜依賴的處理。

繼承:支持解析多重繼承(基於 CHA 算法)。

調用:保守解析動態調用,確保語義依賴完整。

這一建模方式目前已支持 Python 和 Java 。

通過建模,原本零散的代碼會被組織成一個有結構、有方向的網絡。CGM 能像程序員第一次閲讀陌生倉庫時那樣,迅速在腦海中生成一張「代碼依賴圖譜」,看清誰調用誰、誰影響誰。

2、兩階段訓練,結構-語義雙模態對齊

有了圖結構,接下來就要教會 LLM「讀懂」它:不僅理解單個節點的語義,還能在圖結構上進行高效推理,從而實現結構和語義的深度融合。

首先,用 CodeT5+ 編碼每個節點的語義信息,並通過適配器將其映射到大模型輸入空間,確保大模型能讀懂節點文本內容(語義對齊);

其次,將圖的鄰接矩陣轉化為一個圖感知注意力掩碼( Graph-awareAttentionMask ),替換掉 LLM 中處理節點 token 時的標準因果注意力掩碼。

這一改動巧妙地模擬了圖神經網絡中的「消息傳遞」機制,讓注意力計算只關注圖中相鄰節點之間信息流動,從而讓 LLM 能夠直接感知和利用代碼的結構依賴關係。

訓練過程包括預訓練與微調兩階段,分別夯實「理解力」與「泛化能力」:

子圖重構預訓練,是根據輸入子圖重構源代碼,建立從代碼圖到 LLM 語義帶格式的空間的映射,夯實結構與語義融合基礎;

噪聲增強微調,此階段使用真實的 GitHub 問題-修復補丁數據對 CGM 進行微調。爲了提升模型的魯棒性,團隊特意在提示中引入了 10% 的噪聲輸入。例如,提示中可能包含一個實際上無需修改的不相關文件,或者遺漏至少一個本應被修改的關鍵文件。在訓練中引入這種受控的噪聲有助於模型更好地泛化到實際輸入信息不完整或包含干擾的場景。

3、GraphRAG 框架:R4 鏈路高效生成補丁

爲了把能力用起來,團隊還設計了輕量化的 GraphRAG 框架。

相比於現有的 Agentless 框架,GraphRAG 進一步將核心模塊數量從 10 個精簡到 4 個關鍵模塊——

改寫器( Rewriter )、檢索器( Retriever )、重排器( Reranker )和生成器( Reader )。

模塊之間順序執行、高效協同,還原程序員日常修 bug 的思維路徑與操作鏈路,在真實場景中高效、準確地定位問題並生成修復補丁。

當然,對於有 SWE 需求的企業而言,CGM 的吸引力遠不止榜單成績。

在保障核心數據安全可控的同時,CGM 為企業帶來了更大的自由度——

不僅規避了隱私泄露風險,也免去了持續支付高昂 API 費用的負擔。企業可以基於自身業務需求,對模型進行深度定製和優化部署。

像 DeepSeek-V3 這樣的開源高性能大模型已成為不少私有化部署的首選,CGM 架構也會吸引有上述需求企業的注意力。

正如 OpenAI CEO SamAltman 所言:「2025 年底前,軟件工程將發生翻天覆地的變化。」CGM,無疑是這場變革中,擲地有聲的一步。

如果你對螞蟻全模態代碼算法團隊早期提出的代碼大模型與代碼圖研究感興趣,歡迎進一步閲讀:

最全代碼大模型綜述(TMLR):https://github.com/codefuse-ai/Awesome-Code-LLM

代碼圖模型早期研究GALLa(ACL 2025):https://github.com/codefuse-ai/GALLa

多任務代碼微調框架MFTCoder(KDD 2024):https://github.com/codefuse-ai/MFTCoder

高效注意力架構Rodimus*(ICLR 2024):https://github.com/codefuse-ai/rodimus

本文來自微信公眾號 「機器之心」(ID:almosthuman2014),編輯:吳昕,36氪經授權發佈。

風險及免責提示:以上內容僅代表作者的個人立場和觀點,不代表華盛的任何立場,華盛亦無法證實上述內容的真實性、準確性和原創性。投資者在做出任何投資決定前,應結合自身情況,考慮投資產品的風險。必要時,請諮詢專業投資顧問的意見。華盛不提供任何投資建議,對此亦不做任何承諾和保證。