中文

IRCoCo:面向代码补全的即时奖励引导深度强化学习框架

软件工程 2024-02-23 v3

摘要

代码补全旨在通过基于当前编程上下文预测潜在代码来提高编程效率。近年来,预训练语言模型(LMs)在该领域已占据主导地位。已有多种方法被提出,利用监督微调(SFT)技术对语言模型进行微调以用于代码补全。然而,这些模型固有的曝光偏差可能导致错误在序列补全的早期累积,进而引发后续补全中更多的错误。为解决此问题,深度强化学习(DRL)是一种对语言模型进行微调以用于代码补全的替代技术,它可以提升模型的泛化能力和整体性能。尽管如此,将基于深度强化学习的策略整合到代码补全中面临两大挑战:1) 代码上下文的动态特性要求补全模型能快速适应变化,这对专注于最终代码状态延迟奖励的传统深度强化学习策略构成了困难。2) 评估部分代码的正确性十分困难,因此基于奖励重分配的策略无法适用于代码补全。为应对这些挑战,我们提出了 IRCoCo,一个专为代码补全设计的基于深度强化学习的微调框架。该框架旨在提供即时奖励作为反馈,以检测代码补全过程中由持续编辑引起的动态上下文变化。借助即时反馈,微调后的语言模型能更精确地理解当前上下文,从而有效调整语言模型,并以更精细的方式优化代码补全。实验结果表明,使用 IRCoCo 微调预训练语言模型在代码补全任务上带来了显著提升,优于基于监督微调和其他基于深度强化学习的基线方法。

关键词

引用

@article{arxiv.2401.16637,
  title  = {IRCoCo: Immediate Rewards-Guided Deep Reinforcement Learning for Code Completion},
  author = {Bolun Li and Zhihong Sun and Tao Huang and Hongyu Zhang and Yao Wan and Ge Li and Zhi Jin and Chen Lyu},
  journal= {arXiv preprint arXiv:2401.16637},
  year   = {2024}
}

备注

Accepted for the 32nd ACM Symposium on the Foundations of Software Engineering (FSE 2024)