我们使用探测任务来检验预训练模型对源代码的学习程度,并发现结构信息对源代码的特征表示具有改进效果,同时发现 BERT 在某些探测任务上与源代码模型竞争力相当,暗示改进源代码特定的预训练有丰富的机会。
Dec, 2023
本研究探讨了预训练模型在代码处理中的广泛应用及其对识别语法结构、正确性、标识符、数据流和命名空间等方面的影响,并测试了使用给定目标进行预训练、模型大小变化以及微调的影响。
Feb, 2022
此篇论文分析了预训练语言模型,尤其是 CodeBERT 和 GraphCodeBERT 对源代码的结构性质,通过对注意力分析,词嵌入的探索和语法树归纳等方面进行全面分析,揭示出了一些深入的发现,为今后的相关研究提供了启示。
GraphCodeBERT 是一种基于 Transformer 的预训练模型,通过使用数据流而不是抽象语法树的句法级别结构,可以更有效地编码代码的语义结构,从而提高代码理解过程。其结构感知的预训练任务可以改善 GraphCodeBERT,并在代码搜索,克隆检测,代码翻译和代码优化等方面实现了最先进的性能。
Sep, 2020
本文提出了 SynCoBERT—— 一种语法引导的,多模态对比预训练方法,旨在更好地表示代码,其中设计了两种新的预训练目标 —— 标识符预测和 AST 边缘预测,并提出了多模态对比学习策略来最大化不同模态之间的互信息。经过广泛的实验,SynCoBERT 在与相同的预训练语料库和模型大小进行比较时,提高了与代码智能相关的四个下游任务的最新性能。
Aug, 2021
本文介绍了一种新的基于序列到序列(sequence-to-sequence)的编码表示学习预训练模型 SPT-Code,通过三种特定的预训练任务,可以解决现有预训练任务在自然语言编码中存在的问题,该模型可以有效地应用于五个编码相关的下游任务,并取得了最优秀的表现。
Jan, 2022
本研究旨在探究预训练语言模型的能力,在超越表面频率和共现之外理解代码的意义,结果表明该模型能够学习代码的计算语义。
Jun, 2023
这篇论文介绍了作者对现有预训练编程语言模型在理解代码结构方面的限制进行了全面的基准测试,并引入了一个大规模的数据集 CodeSyntax 来评估这些模型的性能,并揭示了自然语言和编程语言在理解语法结构方面的差异和重要性。
Oct, 2022
本文论述 Bidirectional Encoder Representations from Transformers(BERT)在源代码表示学习中并不能有效地理解源代码的逻辑,因为源代码的表示还严重依赖于程序员定义的变量和函数名称。
Jan, 2023
本文介绍了一个使用变异数据增强技术创建 Python 数据集并基于 Transformer 的 CodeExecutor 模型来强化其语义理解的方法,该模型主要用于代码执行任务。作者评估了 CodeExecutor 的性能和局限,并展示了它在零样本代码到代码搜索和文本到代码生成等方面的潜在好处。
May, 2023