HyperAIHyperAI

Command Palette

Search for a command to run...

CodeT5: 考虑标识符的统一预训练编码器-解码器模型用于代码理解和生成

Yue Wang Weishi Wang Shafiq Joty Steven C.H. Hoi

摘要

近期研究表明,像BERT和GPT这样的自然语言(NL)预训练模型可以很好地迁移到编程语言(PL),并在广泛的代码相关任务中带来显著的好处。尽管这些模型取得了成功,但大多数当前的方法要么依赖于仅编码器(或仅解码器)的预训练,这种预训练对于生成任务(或理解任务)来说并不理想,要么以与自然语言相同的方式处理代码片段,忽略了编程语言特有的属性,如标记类型。我们提出了CodeT5,这是一种统一的预训练编码器-解码器Transformer模型,能够更好地利用开发者指定的标识符所传达的代码语义。我们的模型采用了一种统一框架,无缝支持代码理解和生成任务,并允许进行多任务学习。此外,我们提出了一种新的标识符感知预训练任务,使模型能够区分哪些代码标记是标识符,并在它们被遮掩时恢复它们。我们还建议利用用户编写的代码注释,通过双模态双重生成任务来实现更好的自然语言-编程语言对齐。全面的实验表明,CodeT5在诸如代码缺陷检测和克隆检测等理解任务上显著优于先前的方法,并且在包括PL-NL、NL-PL和PL-PL在内的多个方向上的生成任务中也表现出色。进一步分析显示,我们的模型能够更好地捕捉代码中的语义信息。我们的代码和预训练模型已发布在https://github.com/salesforce/CodeT5


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供