⏶8
ReCode:基于强化学习更新代码API知识
发表
由
Ningyu Zhang 提交
作者: Haoze Wu, Yunzhi Yao, Wenhao Yu, Huajun Chen,
Ningyu Zhang
摘要
大型语言模型(LLM)展现出卓越的代码生成能力,但在适应外部库API的频繁更新时却步履维艰。这一关键限制源于它们训练数据中过时的API知识,即使能够访问最新文档,也阻碍了在动态环境中可靠地生成代码。为解决此问题,我们提出了ReCode(基于规则的代码更新强化学习),这是一个模拟人类程序员适应API变化的新颖框架。具体来说,我们构建了一个包含约2,000个数据条目的数据集,用于训练LLM根据更新信息执行版本迁移。接着,我们引入了一种修改后的字符串相似性度量作为强化学习的代码评估奖励。我们的实验表明,ReCode显著提升了LLM在动态API场景中的代码生成性能,尤其是在未曾见过的CodeUpdateArena任务上。至关重要的是,与监督微调相比,ReCode对LLM的通用代码生成能力影响较小。我们将ReCode应用于各种LLM和强化学习算法(GRPO和DAPO),均取得了持续的改进。值得注意的是,经过训练后,Qwen2.5-Coder-7B的表现优于参数量为320亿的代码指令微调模型以及相同架构的推理模型。代码可在https://github.com/zjunlp/ReCode获取。
我们提出了ReCode(用于代码更新的基于规则的强化学习),这是一个模仿人类程序员适应API变化的新颖框架。