On Explaining (Large) Language Models For Code Using Global Code-Based Explanations

文章主要内容总结

本文提出了一种名为CodeQ的可解释性方法,旨在通过全局代码解释来分析大型语言模型(LM4Code)的代码生成决策过程。CodeQ通过三个核心步骤实现:

  1. Rationalization:提取影响代码预测的关键输入token子集(rationale),通过贪心算法逐步选择对目标令牌概率贡献最大的token。
  2. Mapping:将token映射到更高层次的代码概念(如语法结构、自然语言元素等),构建可解释性矩阵。
  3. Reduction:通过统计聚合(如平均值、中位数)生成全局可解释性张量,揭示模型在代码生成中的系统性趋势。

通过实验验证,CodeQ能够有效识别模型依赖的代码概念(如if语句、缩进等),并发现模型可能过度依赖无意义token(如标点符号)的问题。用户研究表明,CodeQ的解释具有可读性和实用性,可帮助开发者理解模型行为并促进模型调试。

创新点

  1. 全局代码解释框架:首次提出基于代码概念的全局解释方法,超越传统token级分