论文
ZeroCoder:LLM 能否在没有 真值 监督的情况下改进代码生成?
ZeroCoder: Can LLMs Improve Code Generation Without Ground-Truth Supervision?
摘要
代码生成在软件工程中非常重要,而带有可验证奖励的强化学习 (RLVR) 是一种强大的范例,可以通过基于执行的反馈来改进它。然而,大多数 RLVR 流程都依赖于人工测试,这使得进展因缺乏监督且成本高昂而受到阻碍。现有的工作试图使用自我生成的测试来获得奖励,但由于模型在测试生成方面的性能次优,缺乏区分性测试限制了效果。我们的目标是通过共同进化代码和测试生成来改进没有 真值 监督的代码生成,以便它们的交互逐渐产生更多信息的监督。为此,我们提出了 ZeroCoder,这是一个完全无标签的协同进化框架,它使用来自自生成的代码测试交互的执行反馈来联合训练编码器和测试器。对于每个问题,ZeroCoder 针对采样测试执行采样解决方案以形成通过矩阵,通过可插入选择算法识别可能正确的解决方案和一致测试的共识子集,并获得特定于角色的奖励。为了确保奖励质量,ZeroCoder 通过基于排名的预过滤来过滤低信息实例,并通过平衡有效性和突变驱动的辨别力的课程来训练测试人员。我们进一步识别了选择器漂移,即共同进化过程中固定选择规则的逐步错误校准,并引入了 DyB4,这是一种贝叶斯选择器,它使用少至 10 个标记实例来动态重新校准其先验。在三个模型和六个基准测试中,ZeroCoder 持续改进代码生成和测试生成。在完全无标签的设置中,与 Qwen2.5-Coder-7B-Instruct 上的基本模型相比,它的代码生成速度提高了高达 14.5%。使用 DyB4,增益达到 21.6%,而测试生成提高了 24.3%,接近预言机监督的性能。