CodeEvo: Interaction-Driven Synthesis of Code-centric Data through Hybrid and Iterative Feedback
Idea
CodeEvo 通过 Coder 与 Reviewer 的交互生成代码训练数据:以 Schema 规划题目变化,再同时使用代码执行反馈和语义审查,逐轮保留有效 instruction-code pairs。数据难度演化与可执行验证绑定,而非仅要求语言模型把原题改得更复杂。
Research Problem
现有 instruction evolution 常依赖固定改写规则,生成题目可能与代码约束不一致;纯 execution feedback 又受自生成测试覆盖限制,错误实现也可能全部通过。研究目标是在仅有自然语言种子任务与概念关键词、没有 gold code 和人工测试的条件下,持续合成有用且较可靠的代码数据。
Insight
编译器能识别具体执行错误,但难以判断题意是否完整实现;Reviewer 能检查约束、边界条件和测试合理性,却缺乏运行证据。二者互补后,Schema 可以把反馈变成受控的难度和概念调整,使演化过程产生连续、可验证的学习样本。
Method
- Reviewer 从关键词集合采样概念,构造包含目标、复杂度和相关知识的 Schema,再依此生成或演化 instruction;可添加概念提高难度,也可删减条件形成较简单的问题。
- Coder 为当前 instruction 生成候选代码及测试,通过 compiler 执行得到 pass/fail 和运行信息;Reviewer 联合读取题目、代码、测试与执行输出,审查语义一致性、约束和边界情况。
- Interaction-Driven Synthesis 按最大迭代数推进:通过 hybrid feedback 的题目代码对进入数据集,并继续演化新题;失败时尝试以新 Schema 简化任务,经再次验证后决定是否保留并终止该分支。
- 汇集得到 CodeEvo-100K,并用通过验证的 instruction-code pairs 微调不同规模的通用和代码模型;通过 HumanEval、MBPP、增强测试集及更复杂代码基准考察合成数据的训练价值。
Sources & Reading Scope
阅读依据:官方 PDF 正文。核读页码按 PDF 页序计数,可能与 proceedings 页码不同。
核读章节:Preliminary · Schema-Guided Instruction Generation · Hybrid Feedback for Validation and Refinement · Interaction-Driven Synthesis · Algorithm 1
核读 Schema、双代理反馈及 Algorithm 1 的分支控制。正文验证结合自生成测试与模型审查,本笔记不将通过验证等同于程序正确性证明;实验名称依据正文设置。