中文

Transformer 学到了源代码的什么?

软件工程 2022-07-19 v1 人工智能

摘要

在源代码处理领域,基于 Transformer 的表示模型已展现出强大能力,并在许多任务中取得了最先进(SOTA)性能。尽管 Transformer 模型处理序列化的源代码,但有证据表明它们也可能捕获结构信息(例如,在语法树、数据流、控制流等中)。我们提出聚合注意力分数(aggregated attention score),一种用于探究 Transformer 所学到的结构信息的方法。我们还提出了聚合注意力图(aggregated attention graph),一种从预训练模型中自动提取程序图的新方式。我们从多个角度度量我们的方法。此外,基于我们的经验发现,我们使用自动提取的图来替换变量误用(Variable Misuse)任务中那些精巧的手动设计图。实验结果表明,我们自动提取的语义图非常有意义且有效,这为我们理解并利用模型所含信息提供了新视角。

关键词

引用

@article{arxiv.2207.08466,
  title  = {What does Transformer learn about source code?},
  author = {Kechi Zhang and Ge Li and Zhi Jin},
  journal= {arXiv preprint arXiv:2207.08466},
  year   = {2022}
}

备注

First submitted to NeurIPS 2021 and rejected