中文

CSA-Trans:面向 AST 的代码结构感知 Transformer

软件工程 2024-04-10 v1 人工智能

摘要

在将 Transformer 架构应用于源代码时,设计良好的自注意力机制至关重要,因为它影响着如何从源代码的抽象语法树(AST)中提取节点关系。我们提出了代码结构感知 Transformer(CSA-Trans),它使用代码结构嵌入器(CSE)为 AST 中的每个节点生成特定的位置编码(PE)。CSE 使用解耦注意力生成节点位置编码(PE)。为了进一步扩展自注意力能力,我们采用了随机块模型(SBM)注意力。我们的评估表明,与其他图相关 PE 技术相比,我们的 PE 能更好地捕获 AST 节点之间的关系。我们还通过定量和定性分析表明,SBM 注意力能够生成更具节点特异性的注意力系数。我们证明,CSA-Trans 在 Python 和 Java 的代码摘要任务中均优于 14 个基线,并且在 Java 数据集上分别比 AST-Trans 和 SG-Trans 速度提升 41.92%,内存效率提升 25.31%。

关键词

引用

@article{arxiv.2404.05767,
  title  = {CSA-Trans: Code Structure Aware Transformer for AST},
  author = {Saeyoon Oh and Shin Yoo},
  journal= {arXiv preprint arXiv:2404.05767},
  year   = {2024}
}