中文

$\mathcal{B}$-Coder:基于价值的深度强化学习用于程序合成

计算与语言 2024-03-20 v2

摘要

程序合成旨在根据问题规约(具体而言在本文语境下为自然语言描述)生成准确且可执行的程序。近期研究将强化学习(RL)与大语言模型(LLMs)结合,显著增强了代码生成能力。RL的应用聚焦于直接优化功能正确性,相较于传统监督方法具有优势。尽管基于策略的RL方法在程序合成RL文献中占主导,程序合成任务的性质暗示其与基于价值的方法存在天然契合:这源于丰富的离屏策略程序集合(包括人类程序员开发的程序与历史样本),以及通过自动化单元测试即可直接验证生成程序,意味着奖励易于获取。不同于占主导的基于策略算法,本研究探索基于价值方法的可行性,并由此开发了我们的B\mathcal{B}-Coder(读作Bellman coder)。然而,由于程序合成固有的巨大搜索空间,训练基于价值的方法面临挑战。为此,我们引入一种利用预训练LM初始化RL智能体的协议,以及一种保守Bellman算子以降低训练复杂度。此外,我们展示了如何将学到的价值函数作为双重策略用于对生成程序进行后处理。实证评估表明,B\mathcal{B}-Coder相较基于策略的方法取得了最先进(SOTA)性能。值得注意的是,这一成果以极小的奖励工程代价达成,凸显了基于价值的RL独立于奖励设计的有效性。

关键词

引用

@article{arxiv.2310.03173,
  title  = {$\mathcal{B}$-Coder: Value-Based Deep Reinforcement Learning for Program Synthesis},
  author = {Zishun Yu and Yunzhe Tao and Liyu Chen and Tao Sun and Hongxia Yang},
  journal= {arXiv preprint arXiv:2310.03173},
  year   = {2024}
}