Command Palette
Search for a command to run...
Haoze Wu Yunzhi Yao Wenhao Yu Huajun Chen Ningyu Zhang

摘要
大型语言模型(LLMs)展现出卓越的代码生成能力,但在适应外部库API频繁更新时表现不佳。这一关键局限性源于其训练数据中的过时API知识,即使能够访问当前文档,也阻碍了在动态环境中的可靠代码生成。为了解决这一问题,我们提出了一种新的框架——ReCode(基于规则的强化学习代码更新),该框架模拟人类程序员对API变更的适应过程。具体而言,我们构建了一个包含约2,000个数据条目的数据集,用于训练LLMs根据更新的信息进行版本迁移。随后,我们引入了一种改进的字符串相似度度量方法作为强化学习的奖励机制来进行代码评估。实验结果表明,ReCode显著提升了LLMs在动态API场景下的代码生成性能,特别是在未见过的CodeUpdateArena任务上表现出色。重要的是,与监督微调相比,ReCode对LLMs的一般代码生成能力影响较小。我们在多种LLMs和强化学习算法(GRPO和DAPO)上应用了ReCode,均取得了显著的一致改进。值得注意的是,经过训练后,Qwen2.5-Coder-7B的表现超过了32亿参数的代码指令微调模型以及具有相同架构的推理模型。代码可在https://github.com/zjunlp/ReCode 获取。
代码仓库
zjunlp/recode
官方
pytorch
GitHub 中提及