← 最新论文
💬 NLP

CodeEvo: Interaction-Driven Synthesis of Code-centric Data through Hybrid and Iterative Feedback

本文介绍了 CodeEvo,这是一个通过迭代式混合反馈来合成高质量、逻辑复杂的指令-代码对的双智能体框架,由此产生的 CodeEvo-100K 数据集显著提升了代码生成模型的性能。

原作者: Qiushi Sun, Jinyang Gong, Lei Li, Qipeng Guo, Fei Yuan

发布于 2026-07-28
📖 1 分钟阅读☕ 轻松阅读

原作者: Qiushi Sun, Jinyang Gong, Lei Li, Qipeng Guo, Fei Yuan

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正试图教一个机器人如何成为一名出色的程序员。你不能只是坐下来手写一百万个编程问题;那太慢了,而且你会枯竭。所以,科学家们开始使用其他更聪明的机器人(称为大语言模型)来为这个学生机器人编写练习题。但问题在于,当这些 AI 老师尝试编写新题目时,它们经常出错。它们可能会写出一个没有答案的数学题,或者一个一旦运行就会导致计算机崩溃的编程任务。这就像一位老师发出的试卷上,有一半的问题都是胡言乱语。这篇名为 CodeEvo 的论文解决了这个棘手的难题,它发明了一种全新的方法,让 AI 能够在不需要人类逐一检查的情况下,学会如何编写完美且可解的编程挑战。

其核心理念依赖于两个主要概念。首先是指令(instruction),即问题陈述(例如“编写一个对列表进行排序的函数”)。其次是代码(code),即解决方案。目标是生成不仅正确,而且难度和趣味性能够循序渐进提升的“指令-代码”对。作者指出,旧的方法——仅仅要求 AI “把它变难”——过于模糊,会导致结果出错。相反,他们提出了一个系统,让 AI 扮演两个角色:一个尝试解决问题的编码者(Coder),以及一个负责评分并设计下一个挑战的评审员(Reviewer)

双智能体之舞:编码者与评审员

作者构建了一个名为 CodeEв 的框架,这本质上是一个高科技的自动化工作坊,其中两个 AI 智能体在一个循环中协同工作。你可以把它想象成一个电子游戏,其中一名玩家(编码者)试图通过关卡,而第二名玩家(评审员)既充当关卡设计师,又充当裁判。

在旧的方法中,“关卡设计师”只会大喊一声:“把这个关卡变难!”然后听天由命。结果往往是产生了一个无法通关或毫无逻辑的关卡。CodeEvo 改变了游戏规则。在评审员编写新问题之前,它会先创建一个模式(Schema)。把这想象成一份蓝图或一张食谱卡。评审员观察当前的问题,并挑选特定的“原料”(如关键词:矩阵递归大整数)进行混合。这个“模式”是一个计划,它会说:“好吧,我们要提取当前的逻辑,并加入一个矩阵乘法步骤来增加难度,但我们必须保证它是可解的。”这确保了新问题是基于真实逻辑的,而不是随机的词汇堆砌。

一旦评审员设计好了蓝图,编码者就会尝试编写代码来解决它。但精彩之处在于:系统并不会直接接受这段代码。它会将代码放入一个**混合反馈(Hybrid Feedback)**循环中。

双重检查系统

通常,当 AI 编写代码时,代码看起来可能正确,但在实际运行时会失败。为了解决这个问题,CodeEvo 使用了一个两步验证过程。首先,它将代码通过编译器(一种检查代码是否符合编程语言严格规则的工具)进行运行。如果代码崩溃或有语法错误,编译器会说“不”。但有时,代码运行起来没有崩溃,却给出了错误的答案。

于是,评审员再次介入。这一次,它扮演人类裁判的角色,阅读代码和问题描述,以查看逻辑是否真正匹配。它会问:“你真的解决了问题,还是只是碰巧对了?”通过将编译器的严格、无情的检查与 AI 评审员聪明、具备上下文理解能力的检查相结合,该系统过滤掉了错误数据。如果代码失败,编码者会收到一份关于哪里出错的详细报告,并尝试再次编写。这个过程会不断重复,直到代码完美无缺。

构建数据之山

利用这种方法,作者创建了一个庞大的数据集,名为 CodeEvo-100K。这不仅仅是随机堆砌的 10 万个问题,而是一个经过精心策划、具有“阶梯式难度”的收藏集。他们从简单的种子问题开始,让智能体对其进行演化。有些问题保持简单,有些变成了中等难度,而通过让智能体进行三轮或更多轮次的精炼,则创造了一个特殊的“困难”集合。

结果令人印象深刻。当他们使用这个新数据集训练其他 AI 模型时,这些模型在解决编程问题方面的表现明显优于使用其他合成数据训练的模型。事实上,使用少量高质量的 CodeEvo 数据(约 17,000 个困难问题)的效果,实际上比使用由旧方法生成的更大规模数据集(75,000 个问题)还要好。这表明,训练数据的质量比单纯拥有巨大的数量更为重要。

为什么这很重要

该论文明确反对仅仅使用简单、僵化的规则(启发式算法)来生成优质编程数据的观点。他们证明了,如果没有结构化的计划(模式)和严密的检查系统(混合反馈),生成的数据往往充满了错误或无法完成的任务。他们还发现,虽然这个过程比直接要求 AI 吐出一段代码要慢,但生成的数据质量要高得多。

简而言之,CodeEvo 表明,如果你想构建一个聪明的编程 AI,你不应该只是喂给它一百万个随机问题。相反,你应该建立一个系统,让 AI 智能体互相教学,仔细规划它们的课程,并用放大镜般细致的标准互相批改作业。其结果是一个不仅规模宏大,而且逻辑严密、可执行,并已准备好训练下一代代码生成机器人的数据集。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →