Transformer 模型对于源代码的学习
本文提出了一个名为 SG-Trans 的新颖方法,通过将本地符号信息和全局句法结构注入到 Transformer 的自注意模块作为归纳偏置,并设计能够分布在 Transformer 的较低层和高层的注意头中,进一步捕捉代码的层次特征,将其有效地集成到 Transformer 来实现深度学习自动生成代码摘要,经过广泛评估,SG-Trans 相对于最佳基准测试结果在两个基准数据集上分别提高了 1.4%和 2.0%的 METEOR 得分,这是一种广泛用于测量生成质量的指标。
Apr, 2021
本文探讨使用 Transformer 模型和自注意力机制来生成代码表示以进行源代码概述的任务,并提出其相对编码表现显著优于绝对编码,并通过实验验证其在处理长距离依赖性方面的有效性,实现了领先于现有技术的性能表现。
May, 2020
此篇论文分析了预训练语言模型,尤其是 CodeBERT 和 GraphCodeBERT 对源代码的结构性质,通过对注意力分析,词嵌入的探索和语法树归纳等方面进行全面分析,揭示出了一些深入的发现,为今后的相关研究提供了启示。
Feb, 2022
该研究提出了一种结构相对位置引导的 Transformer 模型,名为 SCRIPT,通过解析源代码的抽象语法树来获得词汇之间的结构相对位置,以更好地捕捉源代码的语义表示,实验结果表明,与现有技术相比,SCRIPT 性能更好。
Feb, 2022
本文研究了如何使用 Transformers 提取和利用源代码中的句法信息,完成代码自动补全、函数命名和 bug 修复等任务,实现了更好的模型性能。
Oct, 2020
基于 Transformer 的模型在软件工程中的源代码建模任务中展示了相当大的潜力,但其仅依赖于自动自注意权重学习机制的限制。我们引入了 SyntaGuid,一种新颖的方法,利用细调的语言模型中注意权重倾向于特定源代码语法标记和抽象语法树元素的观察,以改进模型在各种软件工程任务中的性能。我们评估了 SyntaGuid 的有效性,并证明其在整体性能上优于现有的最先进模型,而无需额外的数据。实验结果显示,SyntaGuid 可以提高整体性能最多 3.25%,并纠正最多 28.3% 的错误预测。我们的工作是第一次尝试在细调过程中引导基于 Transformer 的模型注意关键的源代码标记,突显了提升软件工程中基于 Transformer 的模型的潜力。
Feb, 2024
GraphCodeBERT 是一种基于 Transformer 的预训练模型,通过使用数据流而不是抽象语法树的句法级别结构,可以更有效地编码代码的语义结构,从而提高代码理解过程。其结构感知的预训练任务可以改善 GraphCodeBERT,并在代码搜索,克隆检测,代码翻译和代码优化等方面实现了最先进的性能。
Sep, 2020
本文提出了基于结构感知 (Transformers) 的新自注意力机制和子图表示方法,以提高图表示学习和预测的性能,相关模型在五个图预测基准测试中达到了最优结果。
Feb, 2022
通过分析 CodeBERT 中的注意力分布和转换表示,本研究发现除了注意力权重之外,输入的缩放变换规范更好地捕捉到语法结构,从而揭示了 CodeBERT 嵌入语法代码属性的特征,为深入理解神经代码模型以及在程序分析中开发更具解释性的模型和有效使用注意力机制奠定了基础。
Nov, 2023