题目: CodeBERT: A Pre-Trained Model for Programming and Natural Languages

摘 要:

本文提出了一种用于编程语言(PL)和自然语言(NL)的预训练模型CodeBERT。CodeBERT学习了支持下游NL-PL应用程序(如自然语言代码研究、代码文档生成等)的通用表示形式。我们使用基于变压器的神经结构来开发CodeBERT,并使用混合目标函数来训练它,该混合目标函数合并了替换令牌检测的训练前任务,即检测从生成器中采样的可信替代。这使我们能够利用NL-PL对的双峰数据和单峰数据,前者为模型训练提供输入标记,而后者有助于更好地学习生成器。我们通过微调模型参数来评估CodeBERT在两个NL-PL应用程序上的性能。结果表明,CodeBERT在自然语言代码搜索和代码文档生成任务方面都实现了最先进的性能。此外,为了研究在CodeBERT中学习的知识的类型,我们构造了一个用于NL-PL探测的数据集,并在一个预先训练的模型的参数固定的零距离设置中进行评估。结果表明,CodeBERT在NL-PL探测方面的性能优于之前的预训练模型。

成为VIP会员查看完整内容
31

相关内容

预训练模型是深度学习架构,已经过训练以执行大量数据上的特定任务(例如,识别图片中的分类问题)。这种训练不容易执行,并且通常需要大量资源,超出许多可用于深度学习模型的人可用的资源。
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
ACL 2019 | 多语言BERT的语言表征探索
AI科技评论
20+阅读 · 2019年9月6日
3分钟看懂史上最强NLP模型BERT
新智元
23+阅读 · 2019年2月27日
Facebook开源增强版LASER库,包含93种语言工具包
机器之心
5+阅读 · 2019年1月23日
ELMo的朋友圈:预训练语言模型真的一枝独秀吗?
Arxiv
3+阅读 · 2019年9月5日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
8+阅读 · 2019年3月21日
Arxiv
5+阅读 · 2018年1月18日
VIP会员
相关VIP内容
微信扫码咨询专知VIP会员