在编程竞赛领域,大语言模型正面临着一道关键难题:如何真正理解题目并选择合适的算法。传统模型在应对复杂竞赛题目时,常采用“广撒网”策略,生成大量候选答案后筛选提交。例如,谷歌DeepMind的AlphaCode团队曾让模型为同一题目生成上百万份答案,再层层过滤选出最优解。这种方法虽能勉强达到人类中等水平,却暴露出模型缺乏对问题的真正理解,更多依赖算力堆砌的“蛮力”。
针对这一痛点,一项名为MARS(Multi-Agent Relay of Specialized LLMs,多专家智能体接力系统)的研究提出了新方案。该系统旨在解决AI写代码时“是否知道该用什么算法”的核心问题。竞赛编程的复杂性在于,题目常融合多个算法领域,如图论、动态规划、数论等,且设计隐蔽,需先“诊断”题目本质才能对症下药。这种诊断能力恰是大模型的短板。
此前,多智能体系统是常见解决方案,如MapCoder、CodeSIM等框架通过设置“规划者”“编码者”“调试者”等角色分工合作。然而,这些角色的划分基于工作流程阶段,而非算法领域。例如,无论题目是图论题还是几何题,均由同一“规划者”负责,其算法知识完全依赖底层模型的预训练,系统未提供针对性支持。这类似医院由全科医生接诊所有病例,若患者患心脏病,正确率全凭医生个人知识储备,缺乏专科医生的专业支撑。
MARS的核心创新在于引入算法领域专家机制。系统组建了十一个“专科医生”团队,每个专家对应一个算法领域,如动态规划、图论、字符串处理等。每个专家配备检索增强生成(RAG)系统,可查阅cp-algorithms算法理论语料库中相关领域资料。这一设计使专家不再依赖记忆,而是携带专业参考资料上场,解决了“动态规划该怎么做”等依赖记忆的问题。
在任务分配上,MARS采用自我评估机制。拿到题目后,十一个专家根据专业相关性自我评估,给出置信度分数,系统据此挑选最多三个最匹配的专家组成团队,并指定“首发”专家。这一机制类似项目群中需求发布后,成员根据专长主动认领,系统按意愿和专业度组队。实验表明,若采用更宽松的团队筛选机制,虽团队规模扩大,但正确率未提升,因专家多不等于专业对口,反而降低效率。
任务执行采用“接力”模式。首发专家编写C++代码后,代码进入Execeval沙箱环境运行公开测试样例。专家根据执行报告决定保留、修复或交棒代码。修复后的代码需重新测试,且通过测试数不得减少,否则自动撤销修复。这一设计将修改决策权从AI主观判断转移至客观测试结果,避免“自测通过”的盲区。论文统计显示,在697次自我检查中,4.4%的修复提议因未通过测试被撤销,若无此机制,这些错误修复将被接受,污染后续代码。
专家交接时需提交“交接文档”,提炼关键信息,帮助接手专家快速理解工作进展、剩余任务及潜在风险。接力过程设严格边界:最多轮换三个专家、八个步骤,连续两轮无进展则重新路由,三轮无进展则停止,避免无效空转。
代码接力完成后,MARS设有“基础设施修复”环节,处理输入输出格式、头文件缺失、整数溢出等与算法无关的低级错误。论文统计显示,该环节在完整版MARS运行中仅0.2%的情况发挥作用,说明底层模型已能较好处理基础环节,但一旦用上,常能避免“因格式错误满盘皆输”的遗憾。
在CodeContests测试集上,MARS以谷歌Gemma 4模型为底层引擎,选取165道题目进行实验。结果显示,直接提问的通过率为48%,MARS提升至62.4%,提高14.4个百分点。与表现更强的CodeSIM框架(通过率73.1%)相比,MARS虽正确率略低,但耗时仅为其三分之一,且每题资源消耗更稳定,标准差小约七倍,性价比更高。难度分层实验表明,MARS在中等和困难题上的优势更明显:中等难度通过率72%(直接提问59%),困难题通过率40%(直接提问18%),说明题目越难,专业分工价值越显著。
为验证普适性,研究还测试了跨模型和跨语言场景。将编程语言从C++17换为Python后,MARS通过率为62.2%,直接提问为48.5%,差距与C++17一致,仅Python版本运行速度稍慢(307.6秒 vs 244.3秒)。与依赖商业化文本嵌入模型的PairCoder框架相比,MARS在Python上通过率低8.3个百分点,但耗时为其1.4倍,且全程使用开源组件,更具部署和二次开发优势。
消融实验揭示了MARS各组件的作用。移除RAG检索增强后,通过率下降2个百分点;取消专家“专科”身份设定后,通过率仅降0.9个百分点,但耗时增加31%,调用次数增多。这表明专业分工的价值更多在于效率提升,而非直接提高正确率。若移除执行反馈机制(基础接力版本),通过率骤降7.2个百分点,说明代码测试反馈是MARS的核心支柱。
实际运行中,82.4%的题目动用三个专家团队,1.8%的题目由一个专家完成,平均每个题目有1.35个专家修改代码。数学、构造性算法、数据结构和动态规划专家被选中次数最多,博弈论、几何等细分领域专家仅在相关题目中登场。例如,在Codeforces“矩形上的三角形”题目中,数学专家推导公式并修复计算错误,几何专家优化逻辑,构造性算法专家处理输入输出和溢出问题,三个专家各司其职,最终代码通过所有测试。
MARS的设计思路朴素却有效:为大模型分配专业身份,并提供检验工作成果的机会。其自我举手的团队组建机制采用去中心化协商方式,让专家自主评估任务匹配度,反而实现更精准的分工。这一研究也坦陈局限性,如样本量和覆盖面有限,本地质量校验机制无法拦截隐藏测试发现的漏洞等,为后续研究提供了方向。