作者:Hung Le, Yue Wang, Akhilesh Deepak Gotmare,等
简介:程序合成或代码生成旨在生成满足问题规范的程序。最近使用大规模预训练语言模型(LMs)的方法显示了有希望的结果,但它们有一些关键的局限性。特别是,它们通常遵循标准的有监督微调过程,仅从自然语言问题描述和基本真理程序对中训练代码生成模型。这种范式在很大程度上忽略了问题规范中一些重要但潜在有用的信号,例如单元测试,因此在解决复杂的看不见的编码任务时,往往会导致性能不佳。为了解决这些局限性,作者提出了“CodeRL”,这是一种通过预训练LMs和深度强化学习(RL)实现程序合成任务的新框架。具体来说,在训练期间,作者将代码生成LM视为参与者网络,并引入一个经过训练的批评网络来预测生成程序的功能正确性,并向参与者提供密集的反馈信号。在推理过程中,作者引入了一种新的生成过程,该过程具有关键采样策略,允许模型根据示例单元测试和评论家分数的反馈自动重新生成程序。对于模型主干,作者扩展了CodeT5的编码器-解码器架构,具有增强的学习目标、更大的模型尺寸和更好的预训练数据。作者的方法不仅在具有挑战性的应用程序基准上获得了新的SOTA结果,而且在更简单的MBPP基准上显示了强大的零样本迁移能力。
论文下载:https://arxiv.org/pdf/2207.01780
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢