Redian新闻
>
国内团队提出全新RLTF框架,刷新SOTA!大模型生成代码质量更高bug更少

国内团队提出全新RLTF框架,刷新SOTA!大模型生成代码质量更高bug更少

公众号新闻



  新智元报道  

编辑:LRS 好困
【新智元导读】最近,来自国内的研究团队提出了一种全新的RLTF技术,可以利用程序的单元测试反馈信号,无需基于人工的人类反馈(RLHF),来自动化提升LLM的代码生成能力。

「程序合成」或「代码生成」任务的目标是根据给定的描述生成可执行代码,最近有越来越多的研究采用强化学习(RL)来提高大语言模型(简称大模型)(LLM)在代码方面的性能。


不过,这些RL方法仅使用离线框架,限制了它们对新样本空间的探索。此外,当前利用单元测试信号的方法相当简单,没有考虑到代码中特定错误位置。


而国内团队最近发布的新型在线RL框架RLTF(即基于单元测试反馈的强化学习),可以将代码的多粒度单元测试反馈结果用于优化code LLM,在训练过程中实时生成数据,并同时利用细粒度反馈信号引导模型生成更高质量的代码。


有趣的是,小编发现这篇论文的作者,和曾经称霸王者峡谷的腾讯绝悟AI的作者,有所重叠。


论文地址:https://arxiv.org/pdf/2307.04349.pdf


具体来说,在线框架RLTF通过细粒度的单元测试反馈来增强预训练的LLM在程序合成任务中的性能,允许模型在训练过程中实时生成新样本,并利用单元测试结果作为反馈信号,从而改善整体模型性能。


此方法使模型能够学习代码错误的具体细节,并相应地提高性能。


大语言模型(LLM)在程序合成任务中表现出色,如Codex、AlphaCode、InCoder等,现有的LLMs在处理更具挑战性的问题(如程序竞赛)方面仍有进展空间且预训练的代码模型在生成代码时可能存在语法和功能上的错误。


基于此,研究人员提出了基于强化学习(RL)的算法来改进代码LLMs的性能,如CodeRL和PPOCoder,但现有的RL方法大多是离线的,而在线RL训练更稳定,能更好地探索环境并得到更优的策略;


且现有的RL方法对单元测试结果的反馈信号较为简单和粗粒度,无法捕捉到代码中具体错误的细节。


RLTF方法引入了多粒度的单元测试反馈(Fine-grained Feedback根据代码的错误类型和错误具体位置,惩罚代码中出现错误的特定部分,Adaptive Feedback根据通过的测试用例比例分配不同的惩罚),并通过实时生成样本和提供多样化的训练样本,提高了模型性能。


RLTF在程序合成任务中取得了APPS和MBPP基准测试的最新成果,并通过消融研究证明了方法的有效性。


方法


论文中提出的任务可以形式化为一个条件概率优化问题,即在给定自然语音描述D和模型可优化参数θ的情况下,最大化正确程序W的概率:



在线RL训练框架


为了更好地探索样本空间,研究人员使用在线学习的方式进行RL训练。



两个LLM共享权重,一个负责梯度回传更新模型,另一个负责在线生成训练样本。


训练样本经过编译器,分配好标签,进而更新online buffer中的数据。


Online buffer负责存储在线训练所用的数据,它在内部维护一个队列,会删除过旧的数据,buffer的更新频率是50个step。


多粒度反馈的强化学习


RL训练的loss可以定义为:


其中,R代表奖励系数,S和E代表代码的起点和终点。


研究人员将编译器的反馈分为3类,eg. Error, Failure, Pass,然后根据不同的编译器反馈,制定了不同粒度的模型奖励。


粗粒度反馈:该反馈的级别建立在上述3类反馈上,和CodeRL,PPoCoder设置相同;



细粒度反馈:粗粒度的反馈只告诉模型「错了」,却没有将具体「哪里错了」告知模型。


而细粒度反馈的目的就是为了解决这一问题,使得模型能更加明确错误产生的原因和位置。为此,研究人员将Error中不同的错误子类型分为U_global,U_line,U_ignore,具体分类见下表;



根据不同的错误子类型,我们有不同的R值和起点终点:



自适应反馈:针对未能通过全部测试样例的数据,我们根据其通过的比率设定了自适应的反馈,这一设置是为了模型能够生成通过尽可能多的测试样例的程序。



如下两个消融实验也验证了「在线训练框架 」和「多粒度反馈」的有效性:


实验


研究人员使用了两个最先进的基于强化学习和code LLMs的方法作为基准,并在相同的基准和设置下进行评估。作者使用了两个不同的编程问题数据集进行评估,分别是APPS和MBPP。


在APPS数据集上,作者使用了RLTF框架对预训练的CodeT5模型进行微调,并取得了优于其他方法的结果。在MBPP数据集上,作者展示了RLTF方法在零样本设置下的性能,取得了新的最优结果。


APPS:使用CodeT5 770M作为基础模型,在APPS数据集上进行评估。与其他基于CodeT5的方法(CodeRL、PPOCoder),和其他更大的模型(Codex、AlphaCode、GPT2、GPT3、GPT-Neo等进行了比较)。



结果表明,RLTF方法在APPS数据集上取得了优于其他方法的结果。


MBPP:论文在MBPP数据集上评估了CodeT5模型在APPS数据集上使用RLTF方法训练的零样本性能,RLTF方法在MBPP数据集上取得了优于不同大小的GPT模型的结果,并达到了新的最优性能。



不同的基座模型:为了展示RLTF方法的鲁棒性,除了使用CodeT5外,论文还使用另一个基础模型CodeGen 2.7B进行实验。


结果表明,在CodeGen 2.7B上应用RLTF方法也取得了令人印象深刻的性能,使得pass@10的提高接近1%。


值得注意的是,研究人员发现,基础模型越大,RLTF提供的性能提升越大,表明RLTF方法可以有效地发挥不同基础模型生成更好代码的潜力,当基础模型大小更大时,影响更为明显。


结论及未来工作


本文提出了RLTF(Reinforcement Learning from unit Test Feedback),一个具有多粒度单元测试反馈的新型在线RL框架,用于优化程序合成任务中的大语言模型。


与现有工作相比,该方法在训练过程中实时生成数据,并同时利用更细粒度的反馈信号引导模型生成更高质量的代码。


大量实验表明,RLTF超越了现有基于RL的方法,并可以应用于各种code LLM,包括CodeT5和CodeGen。此外,它在广泛使用的benchmark(如APPS和MBPP)上实现了最先进的性能。


在未来,有几个方向可以进一步改进RLTF:


例如,现有基准测试中的输入输出示例可能不够多样化,使用隐藏的输入输出示例生成的程序可能不是正确的最终代码版本,这种限制可能会影响RLTF的性能,因此,使用LLM创建更多样化和准确的输入输出示例集是一个值得探讨的潜在研究方向。


此外,是否更细粒度的反馈信号(如来自静态代码分析器的信号)可以进一步提高RLTF的性能,也是另一个可能的研究方向。


参考资料:
https://arxiv.org/pdf/2307.04349.pdf




微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Jupyter大升级:各种大模型都能连,聊天就能生成代码、错误修改ICLR 2023|节省95%训练开销,清华黄隆波团队提出强化学习专用稀疏训练框架回国散记(1)- 中招之旅北大团队用Diffusion升级DragGAN,泛化更强生成质量更高,点一点「大山拔地而起」大模型写代码能力突飞猛进,北大团队提出结构化思维链SCoT贾佳亚团队提出LISA大模型:理解人话「分割一切」,在线可玩我为什么要活到老学到老?就不!碾压Llama2!微软13亿参数phi-1.5,单个A100训练,刷新SOTAC919大型客机内部画面完整呈现 见证国产大飞机商业首航!谈一谈开发团队代码质量如何管控与提升对话中国大模型的最早推行者黄铁军:全球可能只需要三个大模型生态认识bug,理解bug,爱上debug!大二科研小白,发论文啦!bug怎样算修完?浅谈团队分布式bug管理 —— git-poison简单易用的bug管理工具GPT-4变笨引爆舆论!文本代码质量都下降,OpenAI刚刚回应了降本减料质疑AIGC 生成代码正流行,对程序员是好还是坏?7B LLaMA模型接近ChatGPT 95%的能力!港科大提出全新对抗蒸馏框架Lion给大模型生成文本发身份证:针对大模型生成文本的可编码水印技术GPT-4最强平替更新!UC伯克利发布Vicuna v1.5,支持4K和16K上下文,刷新SOTA,LeCun转赞最新ReWOO框架直指Auto-GPT和LangChain代理的冗杂性,提出轻量级LLM与工具的交互范式最新RLHF拯救语言模型「胡说八道」!微调效果比ChatGPT更好,两名华人共同一作AIGC 生成代码正流行,对程序员是好还是坏?|直播推广刘知远团队提出:如何通过扩大高质量指导性对话数据集,来提高模型的性能和效率Transformer后继有模!MSRA提出全新大模型基础架构:推理速度8倍提升,内存占用减少70%华为盘古大模型3.0正式发布!一句对话生成代码,还能解决世界难题...不用LLM,遗传编程可控Python代码!谷歌DeepMind等提出全新ARZ框架|IROS 2023清华王建民、龙明盛团队提出全球自动气象站预报的统一深度大模型AI提升编程效率,但过快过多生成代码并不是好事推荐 5 款 IDEA 插件,堪称代码质量检查利器!字节团队提出猞猁Lynx模型:多模态LLMs理解认知生成类榜单SoTACostco公寓和健康美食, 喜欢吗?CVPR 2023|无需标注数据,「3D理解」进入多模态预训练时代!ULIP系列全面开源,刷新SOTA北大用Diffusion升级DragGAN!泛化更强生成质量更高,点一点「大山拔地而起」CVPR 2023 | 小红书提出OvarNet模型:开集预测的新SOTA,“万物识别”有了新玩法陶哲轩用大模型辅助解决数学问题:生成代码、编辑LaTeX公式都很好用2023回国---悲愤跳楼的地方+南京美食
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。