中文

面向神经代码模型解释的一个因果推断理论

软件工程 2024-03-29 v5 人工智能 机器学习 统计方法学

摘要

代码神经语言模型,或称神经代码模型(NCMs),正迅速从研究原型发展为商业开发者工具。因此,理解此类模型的能力与局限变得至关重要。然而,这些模型的能力通常通过自动化指标衡量,而这些指标往往仅揭示其真实性能的一部分。尽管总体上 NCMs 性能看似前景良好,目前对其如何得出决策仍知之甚少。为此,本文提出 docodedo_{code},一种专门针对 NCMs 的事后可解释性方法,能够解释模型预测。docodedo_{code} 基于因果推断,以提供面向编程语言的解释。虽然 docodedo_{code} 的理论基础可扩展至探索不同模型属性,我们给出了一个具体实现,旨在通过将该模型行为的解释扎根于编程语言属性来减轻虚假相关的影响。为展示 docodedo_{code} 的实际益处,我们对两种流行深度学习架构和十个 NCMs 进行案例研究,阐明了我们框架可提供的洞察。该案例研究结果表明,我们所研究的 NCMs 对代码语法变化敏感。除类 BERT 模型外,所有 NCMs 在统计上学习预测与代码块相关的词元(如括号、圆括号、分号)时,相较于其他编程语言结构具有更小的混淆偏差。这些洞察证明了 docodedo_{code} 作为一种有用方法,可检测并助力消除 NCMs 中混淆偏差的潜力。

关键词

引用

@article{arxiv.2302.03788,
  title  = {Toward a Theory of Causation for Interpreting Neural Code Models},
  author = {David N. Palacio and Alejandro Velasco and Nathan Cooper and Alvaro Rodriguez and Kevin Moran and Denys Poshyvanyk},
  journal= {arXiv preprint arXiv:2302.03788},
  year   = {2024}
}

备注

Accepted to appear in IEEE Transactions on Software Engineering