中文

CodeBERT:一种用于编程语言与自然语言的预训练模型

计算与语言 2020-09-21 v4 编程语言

摘要

我们提出CodeBERT,一种用于编程语言(PL)和自然语言(NL)的双模态预训练模型。CodeBERT学习支持下游NL-PL应用(如自然语言代码搜索、代码文档生成等)的通用表示。我们基于Transformer神经网络架构开发CodeBERT,并使用融合替换令牌检测预训练任务(即检测从生成器采样的合理替代项)的混合目标函数进行训练。这使我们能够同时利用NL-PL对的双模态数据和单模态数据,前者为模型训练提供输入令牌,后者有助于学习更好的生成器。我们通过微调模型参数在两种NL-PL应用上评估CodeBERT。结果表明,CodeBERT在自然语言代码搜索和代码文档生成任务上均达到了最先进(SOTA)性能。此外,为探究CodeBERT学习了何种知识,我们构建了NL-PL探测数据集,并在预训练模型参数固定的零样本设置下评估。结果表明,CodeBERT在NL-PL探测上优于先前的预训练模型。

关键词

引用

@article{arxiv.2002.08155,
  title  = {CodeBERT: A Pre-Trained Model for Programming and Natural Languages},
  author = {Zhangyin Feng and Daya Guo and Duyu Tang and Nan Duan and Xiaocheng Feng and Ming Gong and Linjun Shou and Bing Qin and Ting Liu and Daxin Jiang and Ming Zhou},
  journal= {arXiv preprint arXiv:2002.08155},
  year   = {2020}
}

备注

Accepted to Findings of EMNLP 2020. 12 pages