论文来源:EMNLP-2020
论文链接:https://arxiv.org/abs/2002.08155
⭐相关预训练模型在hugging face官网可以搜到,论文也公布了相应github链接。
传统的bert是面向自然语言的预训练模型,而codebert则是一个双模态的新型预训练模型,也是基于transformer的网络架构,它是面向自然语言和编程语言(包含6种编程语言)。预训练则是通过一个混合目标函数进行优化,结合了MLM任务和RTD任务(replaced token detection)。
【注:RTD 使用从生成器采样的合理替代 token 来替换部分输入 token 从而破坏输入,然后训练一个判别器来预测受损输入中的每个 token 是否被生成器样本替换。】
训练数据有双模态的NL-PL pairs数据,也有单模态的代码数据。单模态数据有助于学习到更好的token表示。
【注:双模态数据是function-leve级的自然语言文档和对应代码。codebert预训练数据是6种编程语言,其模型配置和Mul