预训练代码模型的可解释性人工智能:它们学到了什么?当它们不工作时?

摘要:下游软件工程任务中,设计基于深度神经网络的模型来自动化源代码的任务(如代码文档生成、代码搜索和程序修复)引起了广泛关注。尽管这些研究的主要目标是提高下游任务的有效性,但很多研究只是尝试使用下一个最佳神经网络模型,而没有对为什么一个特定的解决方案在特定任务或场景中有效或无效进行适当的深入分析。在本文中,我们使用一个可解释的AI(XAI)方法(注意力机制)来研究两个最近的大型语言模型(CodeBERT和GraphCodeBERT)在一组软件工程下游任务中的表现:代码文档生成(CDG)、代码细化(CR)和代码翻译(CT)。通过定量和定性研究,我们确定了CodeBERT和GraphCodeBERT在这些任务上学到了什么(以源代码记号类型的注意力最高)。我们还展示了模型在预期之外表现不佳时(即使在简单问题上也表现糟糕)的一些常见模式,并提出了可能缓解观察到的挑战的建议。

作者:Ahmad Haji Mohammadkhani, Chakkrit Tantithamthavorn, Hadi Hemmati

论文ID:2211.12821

分类:Software Engineering

分类简称:cs.SE

提交时间:2023-08-30

PDF 下载: 英文版 中文版pdf翻译中