论文

ACE:通过对抗性单元测试生成和偏好优化自我进化 LLM 编码框架

ACE: Self-Evolving LLM Coding Framework via Adversarial Unit Test Generation and Preference Optimization

模型训练偏好优化

摘要

大语言模型 (LLM) 擅长代码生成,但仍然严重依赖大规模带注释的解决方案和基于验证的监督,这限制了可扩展性并阻碍了持续的自我改进。最近的求解器-验证器框架利用程序执行作为自动监督信号,但随着求解器变得中等强度,它们的有效性会下降:验证器生成的测试越来越多地确认语义正确性,而不是暴露剩余的故障模式。我们提出了 \textbf{ACE},这是一种基于求解器-对手架构的自我进化代码生成框架,它通过以执行为中心的监督来优先考虑主动故障发现。单个 LLM 在生成候选程序和生成对抗性单元测试输入之间交替,这些输入经过优化以引发执行级故障,例如运行时错误、异常或不终止。监督仅源自执行结果:为受监督的 微调 选择稳健的程序,而对抗性测试则通过使用源自执行的偏好的 Kahneman-Tversky Optimization 进行优化。值得注意的是,整个训练循环不需要 真值 代码或外部奖励模型。 CodeContests、MBPP 和 LiveCodeBench 上的实验表明,ACE 始终优于强大的求解器-验证器基线,在 pass@1 中实现 3--7\% 的绝对增益,对分布外基准进行较大改进,同时保持竞争力或提高推理效率。