4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

Agentless+开源模型,也能高质量完成仓库级代码修复任务,效果媲美业界 SOTA 。

一、Agentless 、44% 与 NO.1

AI 写代码的能力备受关注,尤其是在实际修复 bug 方面的表现。首个全自动 AI 软件工程师 Devin 一出场就引起了技术圈的轰动,其在权威基准 SWE-Bench 上的表现也进一步巩固了其凌驾于 GPT-4 和 Claude2 之上的地位。Devin 独立解决了 13.86% 的问题,far 超过 GPT-4 的 1.7% 和 Claude2 的 4.8%。不久后,Genie 在同一测试中更是将得分提升至 30.08%,一度成为全球最强 AI 程序员。

SWE-Bench 为何能赢得工业界、学术界和创业团队的广泛认可?因为它的真实性和复杂性。这套由普林斯顿大学提出的测试集,任务全部来自真实的 GitHub 项目,涵盖了开发者在生产环境中遇到的 bug 和功能开发中的典型需求,难度大、上下文复杂,最大程度地还原了程序员在实际开发中的工作状态。能在 SWE-Bench 上拿高分的模型,必须具备一个经验丰富软件工程师的复杂技能和经验,而这些恰恰是传统代码生成基准测试难以涵盖的内容。考虑到 SWE-Bench 的难度,团队还提出了稍微简单些的子集 SWE-Bench Lite,但即便如此,难度依然很高。

现有的业界 SOTA 模型大多基于闭源模型,排行榜上的主力选手也多为「豪华组合」,例如闭源大模型(如 GPT-4、Claude3.5)加上 Agent 架构(如 SWE-Agent),通过大体量和复杂调度系统「堆」出高性能。然而,近日蚂蚁集团另辟蹊径,提出了一个完全不同的新解法——代码图模型 CGM(Code Graph Model),基于开源模型实现了与闭源模型媲美的性能。

在 SWE-BenchLite 公开排行榜上,CGM 能成功解决 44% 的问题,秒杀所有开源模型,位列第一;开源系统排名第六。

4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

秒杀所有开源模型,位列第一

4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

开源系统排名第六。

4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

SWE-BenchLite测试平台上的结果

具体而言,开源的 CGM 在 SWE-Bench 上实现了三项突破——

  • 打破闭源垄断:首次使用开源的千问大模型,就能做到媲美 SOTA 的性能,并同步开放训练用的代码图数据。
  • 摒弃复杂 Agent 架构:仅用 4 步轻量级 GraphRAG 流程,即可完成高效问题定位与修复。
  • 首创大模型直读仓库级代码图结构:链接了代码和图两个模态,让模型充分理解仓库级上下文。

目前,CGM 已正式开源,模型、代码、数据集均可在 HuggingFace 与 GitHub 获取:

4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

论文: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)

4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

图1仓库代码图

在代码图中,contains 边捕捉了代码实体之间的层次依赖,其余边类型则捕捉了代码实体之间的语义依赖。在构建代码图时,也包含对复杂依赖的处理。

  • 继承:支持解析多重继承(基于 CHA 算法)。
  • 调用:保守解析动态调用,确保语义依赖完整。

这一建模方式目前已支持 Python 和 Java。通过建模,原本零散的代码会被组织成一个有结构、有方向的网络。CGM 能像程序员第一次阅读陌生仓库时那样,迅速在脑海中生成一张「代码依赖图谱」,看清谁调用谁、谁影响谁。

2、两阶段训练,结构-语义双模态对齐

有了图结构,接下来就要教会 LLM「读懂」它:不仅理解单个节点的语义,还能在图结构上进行高效推理,从而实现结构和语义的深度融合。

首先,用 CodeT5+ 编码每个节点的语义信息,并通过适配器将其映射到大模型输入空间,确保大模型能读懂节点文本内容(语义对齐);其次,将图的邻接矩阵转化为一个图感知注意力掩码( Graph-awareAttentionMask ),替换掉 LLM 中处理节点 token 时的标准因果注意力掩码。这一改动巧妙地模拟了图神经网络中的「消息传递」机制,让注意力计算只关注图中相邻节点之间信息流动,从而让 LLM 能够直接感知和利用代码的结构依赖关系。

训练过程包括预训练与微调两阶段,分别夯实「理解力」与「泛化能力」:

  • 子图重构预训练:根据输入子图重构源代码,建立从代码图到 LLM 语义带格式的空间的映射,夯实结构与语义融合基础。
  • 噪声增强微调:此阶段使用真实的 GitHub 问题-修复补丁数据对 CGM 进行微调。为了提升模型的鲁棒性,团队特意在提示中引入了10% 的噪声输入。例如,提示中可能包含一个实际上无需修改的不相关文件,或者遗漏至少一个本应被修改的关键文件。在训练中引入这种受控的噪声有助于模型更好地泛化到实际输入信息不完整或包含干扰的场景。

4步修复真实Bug,蚂蚁CGM领跑SWE-Bench开源榜

3、GraphRAG 框架:R4 链路高效生成补丁

为了把能力用起来,团队还设计了轻量化的 GraphRAG 框架。相比于现有的 Agentless 框架,GraphRAG 进一步将核心模块数量从 10 个精简到 4 个关键模块——改写器(Rewriter)、检索器(Retriever)、重排器(Reranker)和生成器(Reader)。模块之间顺序执行、高效协同,还原程序员日常修 bug 的思维路径与操作链路,在真实场景中高效、准确地定位问题并生成修复补丁。

对于有 SWE 需求的企业而言,CGM 的吸引力远不止榜单成绩。在保障核心数据安全可控的同时,CGM 为企业带来了更大的自由度——不仅规避了隐私泄露风险,也免去了持续支付高昂 API 费用的负担。企业可以基于自身业务需求,对模型进行深度定制和优化部署。像 DeepSeek-V3 这样的开源高性能大模型已成为不少私有化部署的首选,CGM 架构也会吸引有上述需求企业的注意力。

正如 OpenAI CEO Sam Altman 所言:「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

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,可联系本站进行审核删除。
(0)
AI快讯网编辑-青青AI快讯网编辑-青青
上一篇 2025年 6月 27日 下午8:08
下一篇 2025年 6月 27日 下午10:37

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

欢迎来到AI快讯网,开启AI资讯新时代!