- 简介代码理解和生成已经成为语言模型(LM)最受欢迎的应用之一。然而,关于代码语言模型(即用于代码生成的LM)的多语言方面的研究,例如不同编程语言之间的跨语言转移、语言特定的数据增强和后期LM适应,以及利用原始文本内容以外的数据来源,远远不如自然语言模型的研究。特别是,大多数主流的代码语言模型都是仅在源代码文件上进行预训练的。在这项工作中,我们研究了利用现成的编译器中间表示来提高代码语言模型的多语言能力,促进跨语言转移的前景。为此,我们首先编译了一个名为SLTrans的平行数据集,其中包括近400万个自包含源代码文件以及相应的中间表示。接下来,从各种基本的代码语言模型(大小从11亿到73亿个参数不等)开始,我们在SLTrans上进行持续的因果语言建模训练,强制代码语言模型(1)学习IR语言和(2)将IR构造与各种编程语言的相应构造对齐。我们得到的模型被称为IRCoder,在各种代码生成任务和指标(包括提示鲁棒性、多语言代码完成、代码理解和指令跟随)中显示出相当大且一致的收益。
- 图表
- 解决问题论文试图通过利用编译器中间表示来提高多语言代码生成的能力,并促进跨语言转移。该研究是否是一个新问题?
- 关键思路论文中的关键思路是利用编译器中间表示来改进多语言代码生成,并在SLTrans数据集上对基础Code-LMs进行持续因果语言建模训练,从而迫使Code-LMs学习IR语言并将IR结构与各种编程语言的相应结构对齐。
- 其它亮点论文编译了一个名为SLTrans的平行数据集,其中包含近400万个自包含源代码文件及其相应的中间表示。通过在SLTrans上进行持续因果语言建模训练,IRCoder模型在各种代码生成任务和指标中显示出可观且一致的增益,包括提示鲁棒性、多语言代码完成、代码理解和指令遵循。
- 最近在这个领域中,还有一些相关的研究,如CodeBERT、GPTCode、TreeSitter等。
沙发等你来抢
去评论
评论
沙发等你来抢