当前位置: 首页 » 资讯 » 科技头条 » 正文

南京大学团队让大模型在编程竞赛中越战越勇的秘密武器

IP属地 中国·北京 科技行者 时间:2026-05-22 22:16:20


这项由南京大学牵头,联合清华大学等机构共同完成的研究,于2026年5月发表,论文编号为arXiv:2605.15301v1。研究团队提出了一个名为Solvita的全新框架,让大型语言模型在面对编程竞赛这类高难度推理任务时,能够像人类选手一样积累经验、越战越勇。有兴趣深入了解的读者,可以通过这个编号查询完整论文。

要理解这项研究的价值,得先从一个困扰AI圈很久的问题说起。如今的大语言模型在写代码这件事上已经相当厉害,但一旦碰到那种需要严密推理的编程竞赛题——也就是程序员圈子里俗称的"算法题"——它们就会暴露出一个致命弱点:每次解题都像是失忆症患者第一次面对世界,之前犯过的错、踩过的坑、学到的技巧,全都不记得了。这就好比一个厨师,每天上班都要从"什么是煎蛋"开始重新学起,永远无法成为大厨。

研究团队想做的事情,本质上就是给这些AI厨师配备一本会自动更新的"私房菜谱",让它们每解决一道题、每犯一次错、每发现一个新技巧,都能把经验沉淀下来,下次遇到类似情况时直接调用。而且最妙的地方在于,整个过程不需要重新训练那个庞大的AI模型本身——就像不需要给厨师重新做脑部手术,只需要给他配一本越用越聪明的笔记本就行。

一、四位侦探联手破案的故事

要理解Solvita是如何运作的,可以把整个系统想象成一个四人侦探团,专门破解编程谜题。每位侦探都有自己独特的本领,而且他们手里都拿着一本会自动记录线索的特殊笔记本。

第一位侦探叫"策划者"(Planner),他的工作是接到案子后,先把那些花里胡哨的故事背景剥掉,把问题翻译成最纯粹的数学语言。考虑这样一个场景:题目可能说"小明在迷宫里找糖果",但策划者会立刻识破伪装,看出这其实是"在一个二维网格中寻找最短路径"。识别出本质后,他还要推测这道题大概率会用到哪些算法工具——是动态规划?还是图论搜索?这就像老侦探一眼看出案子属于哪种类型,需要调用哪些办案经验。

接下来是"求解者"(Solver),他是真正动手写代码的那位。但他有个独特的工作方式:第一次写出代码后,如果发现有bug,他不会把整段代码推倒重来,而是采用一种叫做"搜索-替换补丁"的修复方式,精准地找到出错的那几行,只修改有问题的部分。这种做法的妙处在于,那些已经写对的部分能够保留下来,避免出现"修好一个bug,弄出三个新bug"的尴尬局面。

第三位侦探"神谕者"(Oracle)的任务最为关键也最为微妙。他要给求解者写出的代码做一个严格的内部考试——不仅要生成测试题,还要确保这些测试题本身是可靠的。考虑这样一种情形:如果一个老师出的题目本身就有错,那再聪明的学生也会被误导。神谕者通过一套四步流程来确保测试的质量,包括独立编写参考解答、交叉验证答案、以及只有当认证通过率达到一定门槛后才接受这套测试。

最后一位是"破解者"(Hacker),他扮演的角色相当于反派——专门寻找代码中的漏洞。当前三位侦探合作做出一份看似完美的解答后,破解者会启动他的攻击程序,尝试用三种不同的策略撕开代码的弱点:构造刁钻的边界情况、用极限规模的输入进行压力测试、或者针对哈希算法生成碰撞攻击。这就像产品质检员故意用各种奇葩方式使用产品,看看到底哪里会坏。

这四位侦探最巧妙的地方在于,他们彼此联动。破解者一旦发现漏洞,这个失败信号会同时传递给其他三位——策划者知道了某种策略不靠谱,求解者记下了这类bug的特征,神谕者也学会了生成更有针对性的测试。一次发现,全员受益。

二、会自动学习的智能记忆系统

那本"自动更新的菜谱"到底是什么?这才是Solvita最核心的创新。研究团队没有采用传统的"文档检索"方式——也就是把过去的解题经验当成一本字典,每次查找最相似的条目然后照抄。这种方式有个根本问题:相似不等于有用,硬塞进提示词里反而可能误导AI。

研究团队设计的方案是一个图结构的知识网络,每位侦探都有自己专属的一个。可以把它想象成一张不断生长的关系网,上面有三层节点。最上层是"问题节点"(Q节点),存放着以前遇到过的题目;中间层是"方法节点"(M节点),记录着解题思路的拆解,特别是把正确解法和错误解法配对放在一起,标出它们的分歧点在哪里;最底层是"技能节点"(S节点),存储着可复用的算法模板和代码片段。

这些节点之间用带权重的边连接起来,权重大小代表"这条路走通的可能性"。当AI接到一道新题时,系统会先找到结构最相似的几个老题目,然后顺着边的方向"激活"相关的方法和技能,根据每条路径的权重综合打分,决定调用哪些经验。

最关键的是,这些边的权重不是固定的——它们会根据每次解题的结果自动调整。如果某条路径帮助AI成功解题,相关的边就会变粗;如果误导了AI,边就会变细甚至断开。这个学习过程用的是强化学习中的REINFORCE算法,但有个精妙的变种:研究团队会让AI对同一道题解两次,一次用知识网络辅助,一次完全靠自己,然后用两次结果的差异作为奖励信号。这种"对照实验"的方式能够准确分辨出知识网络到底有没有帮上忙,避免那种"AI自己就能做对,但功劳被错误地归给了知识网络"的情况。

更有意思的是,这个知识网络会自己长大。当AI两次都解对了,说明这道题它已经会了,不需要新增节点;当AI两次都解错了,系统会生成一个新的"对比方法节点",把这次的错误解法和语料库里最接近的正确解法配对存进去;当两次结果一边对一边错,那就直接把正确和错误的两种思路配对保存。这种生长方式确保了知识网络的扩张精准地发生在AI当前能力的薄弱环节,而不是无脑地存储所有信息。

三、神谕者与破解者的攻防互补

研究团队发现了一个很有趣的现象:神谕者和破解者虽然都和测试有关,但它们关注的算法领域呈现出鲜明的互补性。

神谕者的策略主要集中在那些能够提供可靠监督的路径上——它擅长用动态规划、搜索、枚举等方法独立计算出标准答案,然后和待测代码进行比对。它的强项在动态规划、图论、数学、字符串这类有明确正确答案的领域。

而破解者的策略则集中在揭露潜在bug的路径上——它擅长复杂度攻击、构造结构性陷阱、寻找边界条件破绽。它在压力测试、检验器设计、图论、动态规划、字符串这些容易隐藏边角问题的领域大放异彩。

打个比方,神谕者像一位严谨的数学老师,专门检查学生的标准答案是否正确;而破解者更像是一位老练的考官,专门设计那些能区分真懂和假懂的偏题怪题。两者各司其职,又互相补充。

四、补丁修复vs完全重写的较量

研究团队特别比较了两种修复代码的方式。传统做法是发现bug后让AI整个重写一遍,听起来很彻底,但实际上问题很多——每次重写都可能引入新的错误,而且消耗大量计算资源。

Solvita采用的补丁修复方式则像是给代码做微创手术。当某个测试用例失败时,系统会先分析失败的根本原因,然后只针对出问题的那几行代码生成"搜索-替换"指令。这个补丁必须满足一个严格条件:所有之前通过的测试用例在打补丁后必须仍然通过,否则补丁就会被拒绝。

实验数据相当说明问题。在CodeContests这个权威基准测试上,使用GPT-5.4作为底层模型时,完全重写方式的解题率是75.76%,平均迭代5.18次;而补丁修复方式达到了82.42%的解题率,平均只需要3.74次迭代。更关键的是,补丁方式节省了高达91.2%的token消耗。在APPS和AetherCode两个更大规模的测试集上,补丁方式同样保持了全面领先。

五、令人瞩目的实验成绩

研究团队在多个权威基准测试上对Solvita进行了考核,结果可以说相当亮眼。在CodeContests这个公认的高难度编程竞赛测试集上,使用GPT-5.4作为底层模型,单次生成的基础解题率只有40.0%,而Solvita把这个数字推到了82.4%——几乎翻了一倍。在更大规模的APPS测试集上,从37.9%提升到了67.7%;在最近发布的AetherCode这个更具挑战性的测试集上,从18.0%提升到了49.25%。

换用其他主流大模型作为底层时,提升幅度同样可观。Claude Opus 4.6从44.85%提升到80.61%,Qwen3.6从33.94%提升到69.70%,DeepSeek V4 Pro从47.27%提升到89.09%,Grok从38.18%提升到78.18%。这种跨模型的稳定提升说明Solvita不是依赖某个特定模型的怪招,而是一套真正有效的方法论。

在和现有的多智能体编程框架对比中,Solvita也保持了优势。相比AlphaCodium、MapCoder这些开源框架,以及Codex CLI、Claude Code这些商业产品,Solvita在15个测试组合(5个模型×3个基准)中赢得了14个第一,唯一的例外出现在AetherCode上使用Claude Opus 4.6时——而这正好是Claude Code的"主场"。

更值得关注的是计算成本。Solvita的token消耗水平与开源框架相当,远低于商业CLI工具。在GPT-5.4模型下,Codex CLI平均每题消耗21万个token,Claude Code消耗19.8万个,而Solvita只用了15.1万个,相当于在性能领先的同时还省了钱。

六、Codeforces真实战场的检验

为了让评估更接近真实场景,研究团队还让Solvita参加了实际的Codeforces编程竞赛轮次。这是全球最权威的编程竞赛平台之一,规则极为严格:在官方时间限制内完成解题,时间一到就不能再提交,和人类选手的待遇完全一样。

研究团队选择了Solvita训练截止时间之后的12场连续比赛,涵盖76道题目。结果显示,使用三种不同底层模型(GPT-5.4、DeepSeek V4 Pro、Claude Opus 4.6)的Solvita版本,都在12轮比赛内达到了3000分以上的"传奇大师"级别。而同样的三个模型在没有Solvita加持时,最高只能停留在2700-2850分的"大师"级别。

更令人印象深刻的是稳定性。三个Solvita版本在第6轮后的分数差距控制在80分以内,而裸模型版本的差距高达140分。这意味着Solvita的提升不依赖于特定模型,而是一种可以广泛迁移的能力增强方法。

七、组件拆解:到底是哪部分在起作用

研究团队做了详细的组件消融实验,想搞清楚到底是哪些设计在贡献价值。结果显示,单单从单次生成升级到多智能体协作框架(即使知识网络是空的),就已经把GPT-5.4在CodeContests上的解题率从40.0%提升到了67.7%。这说明那个由四位侦探组成的协作架构本身就是巨大的进步。

接下来,他们在5318道训练题上分三个阶段(1.5k、3k、4.5k题)观察知识网络的成长效果。求解者的知识网络贡献最大,单独加入后能再带来约8个百分点的提升;破解者和神谕者的知识网络各贡献2-4个百分点。当三个知识网络全部启用并完成训练后,最终能达到82.4%的解题率。

特别有意思的是,每个知识网络在三个训练阶段之间的得分都是稳步上升的——这证明了AI确实在持续学习,而不是一次性掌握所有技能。完整系统的最终得分超过任何单个网络的贡献之和,说明这些组件之间存在协同效应,是真正的"1+1>2"。

八、诊断能力的精细分析

研究团队还专门评估了神谕者和破解者的诊断能力。他们用一批已知正确性标签的代码作为测试对象,看这两个组件能否准确识别出错误代码并保留正确代码。

单独的神谕者比较保守,能完好保留96%以上的正确代码,但只能识别出76-82%的错误代码——它会漏掉一些只有靠对抗性输入才能暴露的隐蔽bug。单独的破解者更激进,能识别出83-88%的错误代码,但会误伤9-10%的正确代码。两者联合使用时达到了最佳平衡:88-93%的错误识别率,配合94-96%的正确保留率。

更引人注目的是"更强测试"率这个指标——也就是Solvita拒绝了某些被官方判为正确的代码,但经过严格的人工验证后确认Solvita发现的其实是隐藏问题。在最强的Claude Opus 4.6上,这个比例达到了19.6%,意味着Solvita的诊断能力在某些情况下甚至超过了官方测试用例。

九、错误类型分析揭示的真相

通过细致的错误分类分析,研究团队展示了Solvita在哪些方面带来了最大改善。在CodeContests上,算法错误率从24.8%降到6.7%,边界情况错误从11.5%降到4.2%,超时错误从9.1%降到3.0%,内存超限从4.8%降到1.2%,运行时错误从9.7%降到2.4%。

这种全方位的提升说明Solvita不是在某个特定弱点上做了优化,而是系统性地提升了AI的代码质量。无论是算法层面的根本性错误、对题目要求的理解偏差、还是各种性能和稳定性问题,都得到了不同程度的改善。

十、关于这项研究的局限

研究团队也坦诚地承认了Solvita的几个局限。首先是冷启动成本——这个系统在初期需要大约5000道训练题来积累足够的经验,之前的单题成本会比直接生成更高。其次是破解者的能力边界——对于那些涉及深度数学推理的问题,比如数论恒等式、几何精度问题,破解者经常会因为底层模型的推理能力限制而找不到漏洞。第三是补丁修复的"漂移"风险——在某些代码存在系统性缺陷的情况下,AI可能会误判为局部问题,然后通过一连串的小补丁累积出不一致的状态。

不过这些局限也指明了未来的研究方向。研究团队提出,可以用开源的编程经验语料库(比如官方题解、被接受的提交、调试记录)来给知识网络做"热启动",缩短冷启动期;同样的四智能体架构有潜力迁移到形式化定理证明、数学奥林匹克竞赛、科学计算等其他可验证的推理领域;此外,破解者产生的精细对抗信号也许可以作为微调底层模型的训练信号,把当前停留在知识网络层面的学习提升到模型参数层面。

说到底,这项研究最让人着迷的地方在于它打开了一种全新的可能性:让AI在不修改自身大脑的前提下,通过外部的"经验本"实现持续学习。这种思路如果能推广开来,意味着我们或许不需要每隔几个月就花费天文数字训练一个新模型,而是可以让现有的模型在使用过程中越来越聪明。归根结底,这更接近人类学习的方式——我们的大脑结构基本不变,但我们积累的经验和技能在持续增长。如果你对AI如何模拟人类学习过程感兴趣,这篇论文绝对值得一读,记得搜索arXiv:2605.15301v1这个编号就能找到完整版本。

Q&A

Q1:Solvita框架是什么,它和传统的AI编程方式有什么不同?

A:Solvita是南京大学等机构开发的一个让大模型解决编程竞赛问题的多智能体框架。它由策划者、求解者、神谕者、破解者四个AI智能体组成,每个都配有可学习的知识网络。和传统单次生成方式不同,Solvita能够积累解题经验,把每次成功和失败都转化为知识网络的权重更新,让AI越用越聪明。在CodeContests测试中,它把GPT-5.4的解题率从40%提升到了82.4%,几乎翻了一倍。

Q2:Solvita里的破解者智能体是做什么的,为什么需要它?

A:破解者扮演反派角色,专门寻找其他智能体写出的代码中的漏洞。它通过三种攻击策略工作:构造刁钻的边界情况、生成极限规模的压力测试、针对哈希算法的碰撞攻击。需要它的原因在于,仅靠正面验证不足以保证代码质量,必须有人主动尝试破坏才能暴露隐藏bug。破解者发现的每个漏洞都会同时传递给其他三个智能体,让整个系统从一次失败中获得多重学习。

Q3:Solvita采用的补丁修复方式相比完全重写代码有什么优势?

A:补丁修复就像给代码做微创手术,只修改有问题的几行;完全重写则是推倒重来。实验数据显示,在GPT-5.4和CodeContests上,补丁方式解题率82.42%、平均迭代3.74次;重写方式只有75.76%、需要5.18次。补丁方式还节省了91.2%的token消耗。核心优势在于它能保留已经写对的部分,避免"修好一个bug、弄出三个新bug"的问题,每次修改都必须通过所有之前通过的测试才被接受。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。