×

图形代码BERT

swMATH ID: 40146
软件作者: 大亚·郭、朔仁、帅路、张银峰、杜玉堂、刘淑杰、龙舟、南端、阿列克谢·斯维亚特科夫斯基、傅胜瑜、米歇尔·图法诺、邵坤登、科林·克莱门特、黎明排水沟、内尔·桑德雷桑、建银、大新江、明州
描述: GraphCodeBERT:用数据流预先训练代码表示。编程语言的预训练模型在代码搜索、代码完成、代码摘要等各种与代码相关的任务上取得了显著的经验改进。然而,现有的预训练模式将代码片段视为一系列标记,而忽略了代码的固有结构,它提供了关键的代码语义,并将增强代码理解过程。我们提出了GraphCodeBERT,这是一种编程语言的预训练模型,它考虑了代码的固有结构。我们在预培训阶段使用数据流,而不是采用类似于抽象语法树(AST)的代码的语法级结构,这是一种语义级的代码结构,编码变量之间的“值从何处来”关系。这样的语义级结构很整洁,不会带来不必要的AST深层层次结构,其特性使模型更高效。我们基于Transformer开发了GraphCodeBERT。除了使用屏蔽语言建模任务外,我们还介绍了两个结构软件预训练任务。一个是预测代码结构边缘,另一个是在源代码和代码结构之间对齐表示。我们以一种有效的方式实现了该模型,并使用了一个图形引导的屏蔽注意函数来合并代码结构。我们在四个任务上评估我们的模型,包括代码搜索、克隆检测、代码翻译和代码优化。结果表明,代码结构和新引入的预训练任务可以提高GraphCodeBERT,并在四个下游任务上实现最先进的性能。我们进一步表明,在代码搜索任务中,该模型更倾向于结构级关注,而非标记级关注。
主页: https://arxiv.org/abs/2009.08366
源代码:  https://github.com/microsoft/CodeBERT/tree/master/GraphCodeBERT
相关软件: 代码XGLUE设计代码BLEUBLEU公司代码搜索网代码BERTBERT(误码率)PLBART公司塔伯特CoTexT公司XLNet公司捷运局大查询SciBERT公司BioBERT公司GPT-3级MISIM公司StaQC公司CoCoSUM公司Bugram(错误)
引用于: 0个文档