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

📄 arXiv: 2507.22080v1 📥 PDF

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

分类: cs.SE, cs.AI, cs.CL

发布日期: 2025-07-25

备注: Work in progress


💡 一句话要点

CodeEvo:通过混合迭代反馈,交互式合成代码中心数据

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 数据合成 大型语言模型 交互式学习 混合反馈

📋 核心要点

  1. 现有代码生成数据合成方法缺乏严格的数据验证,导致数据质量不高,限制了大型语言模型在代码生成方面的性能。
  2. CodeEvo框架通过Coder和Reviewer两个LLM代理的迭代交互,模拟协作编程,生成高质量的代码数据。
  3. 实验结果表明,在CodeEvo数据上微调的模型在代码生成基准测试中显著优于现有基线,验证了该方法的有效性。

📝 摘要(中文)

高质量的指令-代码对对于训练用于代码生成的大型语言模型(LLMs)至关重要。手动管理的数据成本高昂且规模有限,因此需要开发以代码为中心的合成方法。然而,当前的方法要么侧重于扩充现有代码,要么依赖于预定义的启发式方法,两者都缺乏严格的数据验证,导致合成数据缺乏依据、重复或过于简单。受协作编程实践的启发,我们提出了CodeEvo,一个通过两个LLM代理之间的迭代交互来合成代码数据的框架:Coder根据给定的指令生成候选代码和测试用例,而Reviewer通过生成新的指令和反馈来指导合成过程。我们进一步引入了一种混合反馈机制,将编译器的确定性与代理的生成灵活性相结合,从而在整个合成过程中实现自动质量控制。大量的实验表明,在CodeEvo数据上微调的模型在各种难度的代码生成基准测试中显著优于已建立的基线。深入的分析从多个角度提供了对有效代码中心数据合成的见解。

🔬 方法详解

问题定义:论文旨在解决代码生成任务中高质量训练数据匮乏的问题。现有方法,如数据增强或基于启发式规则的合成,往往生成质量不高、缺乏多样性的数据,无法有效提升代码生成模型的性能。这些方法缺乏对生成数据的严格验证,导致数据不准确、重复或过于简单。

核心思路:论文的核心思路是模拟协作编程的过程,利用两个LLM代理(Coder和Reviewer)进行迭代交互,生成高质量的代码数据。Coder负责根据指令生成代码和测试用例,Reviewer负责评估代码质量并提供反馈,指导Coder进行改进。这种交互式的方式能够有效地探索代码空间,生成更具多样性和挑战性的数据。

技术框架:CodeEvo框架包含两个主要模块:Coder和Reviewer。Coder接收指令,生成候选代码和测试用例。Reviewer接收Coder生成的代码和测试用例,并进行评估。Reviewer会生成新的指令和反馈,指导Coder进行改进。此外,框架还引入了一种混合反馈机制,结合了编译器的确定性(例如,代码是否能够成功编译和运行)和Reviewer的生成灵活性(例如,对代码风格、可读性等方面的评价)。整个过程是迭代进行的,直到生成满足要求的代码数据。

关键创新:CodeEvo的关键创新在于其交互式的代码数据合成方式和混合反馈机制。与传统的单向数据生成方法不同,CodeEvo通过Coder和Reviewer之间的迭代交互,能够更有效地探索代码空间,生成更具多样性和挑战性的数据。混合反馈机制结合了编译器的确定性和Reviewer的生成灵活性,能够更全面地评估代码质量,并提供更有效的反馈。

关键设计:在Coder和Reviewer的设计上,论文使用了大型语言模型,并针对代码生成任务进行了微调。Reviewer的反馈包括对代码功能正确性的评估、代码风格的评价以及新的指令。混合反馈机制中,编译器反馈主要用于确保代码能够成功编译和运行,而Reviewer的反馈则用于指导代码的改进和优化。迭代次数和停止条件是重要的参数,需要根据具体任务进行调整。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,在CodeEvo数据上微调的模型在各种代码生成基准测试中显著优于现有基线。例如,在HumanEval基准测试中,使用CodeEvo数据微调的模型取得了显著的性能提升。此外,论文还进行了深入的分析,验证了CodeEvo生成的代码数据的质量和多样性。

🎯 应用场景

CodeEvo具有广泛的应用前景,可以用于生成各种编程语言的代码数据,从而提升代码生成模型的性能。该方法可以应用于软件开发、自动化测试、代码教育等领域,帮助开发者更高效地编写代码,提高软件质量。未来,可以探索将CodeEvo与其他代码生成技术相结合,进一步提升代码生成的效果。

📄 摘要(原文)

Acquiring high-quality instruction-code pairs is essential for training Large Language Models (LLMs) for code generation. Manually curated data is expensive and inherently limited in scale, motivating the development of code-centric synthesis methods. Yet, current approaches either focus on augmenting existing code or rely on predefined heuristics, both lacking rigorous data validation, which results in synthetic data that is ungrounded, repetitive, or overly simplistic. Inspired by collaborative programming practices, we propose CodeEvo, a framework that synthesizes code data through iterative interactions between two LLM agents: a Coder, which generates candidate code and test cases based on given instructions, and a Reviewer, which guides the synthesis process by producing new instructions and feedback. We further introduce a hybrid feedback mechanism that combines compiler determinism with the generative flexibility of agents, enabling automatic quality control throughout synthesis. Extensive experiments demonstrate that models fine-tuned on CodeEvo data significantly outperform established baselines across code generation benchmarks with various difficulties. In-depth analyses further provide insights from multiple perspectives into effective code-centric data synthesis.