#今日论文推荐# 代码表征预训练语言模型学习指南:原理、分析和代码

#今日论文推荐# 代码表征预训练语言模型学习指南:原理、分析和代码

自从 2020 年 CodeBERT 开了代码表征预训练模型(本文称之为 CodePTM)这个新坑后,在短短两年的时间内出现了若干个程序设计语言(Programming Language,称之为 PL,与 Natural Language,也就是 NL 对应)语言模型。它们的共同特点是大部分用于处理 PL(或 Source Code)时所采用的技术是从 NLP 中的 Transformer-based 模型迁移而来,但这些 CodePTMs 又各有特点,从训练的角度出发即不同的预训练/微调策略,从数据的角度出发,比如是否使用了代码的结构信息,即抽象语法树(Abstract Syntax Tree,本文将其简称为 AST)及其变体。
而从架构出发,这些 Code 预训练模型大致可以被分为以下这三类:

  1. encoder-only:CuBERT、CodeBERT、GraphCodeBERT 等。
  2. decoder-only:CodeGPT、GPT-C 等。
  3. encoder-decoder:PLBART、CodeT5 等。

本文对各个 CodePTM 建模编程语言的思想进行回顾,并简要分析了一下它们的特色。对文中提到的所有 CodePTMs 的描述主要从背景、预训练策略、微调策略以及下游任务这几个角度出发进行分析,考虑到这些模型之间都存在一些共性以及文章篇幅原因,文中略去了一些通用的处理手段和细节,因此对各部分的分析讲解详略不一,不过都保留了建模编程语言最核心的思想。阅读前需要对 Transformer 有一定的了解。

论文题目:Learning and Evaluating Contextual Embedding of Source Code. 
详细解读:https://www.aminer.cn/research_report/62d8c9317cb68b460ff02a3eicon-default.png?t=M666https://www.aminer.cn/research_report/62d8c9317cb68b460ff02a3e
AMiner链接:https://www.aminer.cn/?f=cs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值