CodeBERT公司

CodeBERT:编程和自然语言的预先训练模型。我们提出了CodeBERT,一个用于编程语言(PL)和自然语言(NL)的双模预训练模型。CodeBERT学习支持下游NL-PL应用的通用表示,如自然语言代码搜索、代码文档生成等。我们使用基于变换器的神经结构开发CodeBERT,并使用混合目标函数对其进行训练,该函数包含替换令牌检测的预训练任务,这是为了检测从发电机中取样的合理的替代品。这使我们能够利用NL-PL对的双峰数据和单峰数据,前者为模型训练提供输入标记,而后者有助于学习更好的生成器。我们通过微调模型参数来评估两个NL-PL应用程序上的CodeBERT。结果表明,CodeBERT在自然语言代码搜索和代码文档生成任务上都达到了最先进的性能。此外,为了研究在CodeBERT中学习到什么类型的知识,我们构建了一个NL-PL探测的数据集,并在预先训练的模型参数固定的情况下,在零触发设置下进行评估。与之前训练的CodeBERT-PL模型相比,该模型的性能更好。