研究人员提出了 Anchored Self-Play (ASP),这是一种通过强化学习训练单个模型来生成错误并修复它们,从而扩展语言模型代码修复监督的方法。团队推出了 BugSourceBench,一个涵盖包括人类编写代码和语言模型生成代码在内的真实错误来源的基准测试。
- 标准的生成器-修复器自博弈会偏向于困难但不真实的错误,在合成数据上提高性能,但在人工编写的代码上性能下降。
- ASP通过为生成添加代码嵌入相似度奖励并将参考错误混合到修复器训练中,用少量参考集锚定该过程。
- 在所有错误来源中,ASP实现了最佳的修复率,与标准自博弈相比,平均修复率提高了+24%相对值/+7.0 pp绝对值。
作者认为这很重要,因为它通过创建对来自人类和语言模型的真实错误具有更好泛化能力的自动课程,解决了代码修复数据有限的问题。