Explaining Attention with Program Synthesis
当神经网络学会"自言自语":用程序合成揭开注意力头的秘密
论文信息
- 标题: Explaining Attention with Program Synthesis
- 作者: Amiri Hayes, Belinda Li, Jacob Andreas (MIT CSAIL)
- arXiv: 2606.19317
- 发表时间: 2026-06-17
- 领域: 机器学习 · 可解释性 · 程序合成
- 一句话总结: 用大型语言模型生成可执行的Python程序,逆向工程Transformer中注意力头的行为,实现从神经网络到符号代码的透明化映射。
🎭 开场:一个奇怪的比喻
想象一下,你走进一个巨大的图书馆。这个图书馆里有几十亿本书,但没有任何目录卡片,没有索引,没有管理员。每本书都被随机地放在某个架子上。你问一个问题,图书馆立刻从所有书中"选出"最相关的几页,组合成一个答案。这听起来像魔法,对吧?
这就是Transformer模型在做的事情。它的"注意力机制"就是那个神秘的图书馆管理员——只不过这个管理员不是人,而是数十亿个数字参数的集合。它从不解释自己为什么选择这些书而不是那些书。它只是做。
而今天的论文,就是在问一个大胆的问题:我们能不能让这个神秘的管理员"开口说话"?能不能把它脑海中的选择逻辑,翻译成人类能读懂的代码?
🧩 第一章:什么是注意力机制?——从晚宴上的红裙子说起
1.1 注意力的日常版本
想象一个晚宴。房间里有一百个人在聊天。突然,一位穿红裙子的女士走进来。几乎所有人——不管之前在聊什么——都下意识地把目光转向了她。这就是注意力:在大量信息中,某些元素因为与当前任务相关,获得了更高的"权重"。
Transformer中的注意力机制,本质上就是做这件事。当你输入一句话"猫坐在垫子上,因为它很温暖",模型需要理解"它"指的是"垫子"而不是"猫"。注意力机制就是帮它做出这个判断的关键。
1.2 数学上的注意力
技术上,注意力是这样工作的:
对于输入序列中的每一个token(词),模型创建三个向量:Query(查询)、Key(键)和Value(值)。然后计算一个注意力分数:
Attention(Q, K, V) = softmax(QK^T / √d_k) · V
这个公式看起来像天书,但本质很简单:
- Q(查询):"我(当前词)在找什么?"
- K(键):"我(其他词)能提供什么信息?"
- V(值):"我实际包含的内容是什么?"
softmax把分数变成概率分布(所有注意力权重加起来等于1),√d_k是一个缩放因子,防止数字太大。
1.3 注意力头:分工合作的小团队
Transformer不是只有一个注意力机制。它有多个层,每层有多个"注意力头"(attention head)。想象一个交响乐团:每个注意力头是一种乐器,有的负责旋律(语法结构),有的负责节奏(位置信息),有的负责和声(语义关联)。
论文中提到的模型规模:
- GPT-2: 12层,每层12个头,共144个注意力头
- TinyLlama-1.1B: 22层,每层32个头,共704个注意力头
- Llama-3B: 26层,每层32个头,共832个注意力头
每个头都在做某种特定的"关注"模式。问题是:它们在关注什么?
🔍 第二章:逆向工程的艺术——从黑箱到玻璃箱
2.1 为什么需要解释注意力?
深度学习有一个根本问题:它有效,但我们不知道为什么。
想象你有一个医学AI,它能诊断癌症,准确率高达99%。但如果它错了——它诊断一个健康人有癌症——你能责怪它吗?如果你不知道它是怎么做出判断的,你就无法判断它是在"认真看片子"还是"看到了某种伪影"。
这就是"可解释性"(Interpretability)的意义。论文作者引用了一个长期目标:"用人类可理解的符号描述,替代不透明的神经网络计算"。
2.2 机械可解释性:打开AI的引擎盖
机械可解释性(Mechanistic Interpretability)是近年来兴起的一个领域。它不满足于"这个神经元在检测猫"这种模糊描述,而是试图精确追踪:给定输入X,信息是如何在模型的每一层、每一个神经元中流动的。
这篇论文的方法属于这个流派,但它走得更远:不是用自然语言描述,而是生成可执行的程序。
2.3 程序合成:让AI解释AI
核心思想:既然注意力头的行为是确定性的(给定输入,输出总是相同的),那么理论上应该存在一个程序能复制这种行为。
论文的方法非常巧妙,分为四个步骤:
步骤A:提取注意力模式
- 在大量文本上运行目标模型
- 记录每个注意力头的注意力矩阵(每个token对其他token的注意力权重)
- 只保留最显著的2.5%的注意力边(过滤噪声)
步骤B:生成假设程序
- 把提取到的注意力模式总结成文本描述
- 用另一个大型语言模型(Claude Sonnet)作为"解释器"
- 提示它生成Python函数,这些函数接收输入文本,输出预测的注意力矩阵
步骤C:评估和排序
- 用Jensen-Shannon距离(JSD)衡量生成的程序与真实注意力矩阵的相似度
- 选择得分最高的候选程序
- 在验证集上进一步测试
步骤D:精炼和反馈
- 找出程序表现最好和最差的例子
- 生成结构化的错误反馈
- 提示解释器LLM改进程序
- 选择最优版本
💻 第三章:一个程序长什么样?——从代码看思维
3.1 真实的合成程序示例
论文中展示了一些合成出来的程序。让我展示几个典型的例子:
示例1:句子边界检测头
def attention_to_sentence_beginnings(tokens, i):
"""关注句子开头的token"""
for j in range(i + 1):
is_sent_start = False
# 第一个token总是句子开头
if j == 0:
is_sent_start = True
# 句号/感叹号/问号/换行后的token
elif j > 0 and (tokens[j-1].strip() in ['.', '!', '?'] or tokens[j-1] == '\n'):
is_sent_start = True
# 如果检测到句子开头,给予高注意力
if is_sent_start:
attention_matrix[i][j] = 0.8
return attention_matrix
这个程序做了什么?它在每个位置i,向前看所有位置j,检查j是否是句子开头。如果是,就给高注意力。这对应的是BERT等模型中常见的"句子边界检测头"——它在帮助模型理解文本的结构。
示例2:位置偏移头
def previous_token_attention(tokens, i):
"""关注前一个token(用于位置偏移模式)"""
if i > 0:
attention_matrix[i][i-1] = 0.9
return attention_matrix
这个程序更简单:位置i的token主要关注位置i-1的token。这在模型中对应的是"位置编码头"——帮助模型理解相邻关系。
3.2 程序空间的统计
论文中合成了多少程序?
- 总候选程序:约4,000个(通过Claude Sonnet生成)
- 最终程序库:1,664个(每个头一个程序)
- API成本:约150美元(3500万输入token + 350万输出token)
这些程序使用了哪些库?NumPy(数值计算)、spaCy(NLP)、NLTK(语言处理)。
📊 第四章:效果验证——数字说话
4.1 注意力对齐度:程序有多像真的?
论文用IoU(Intersection over Union)来衡量合成程序与真实注意力模式的相似度:
IoU(A, Â) = Σ min(A_ij, Â_ij) / Σ max(A_ij, Â_ij)
IoU的范围是0到1,1表示完美匹配。
结果(TinyStories数据集上的平均IoU):
- GPT-2: 75%+
- TinyLlama-1.1B: 75%+
- Llama-3B: 75%+
- BERT-base: 部分头高达99%(如位置编码头)
这意味着,对于大多数注意力头,合成程序能捕捉到75%以上的真实行为。考虑到注意力本身的复杂性和噪声,这已经是非常高的相似度了。
4.2 因果替换测试:程序能替代真的吗?
这是最关键的测试:如果我用合成程序替换真实的注意力头,模型还能正常工作吗?
论文做了"因果干预"(Interchange Intervention):在模型前向传播时,把真实的注意力矩阵替换为程序输出的矩阵,然后测试模型性能。
结果:
- 替换25%的注意力头:平均困惑度(perplexity)仅增加16%
- 下游问答任务(如ARC、OpenBookQA)性能基本保持
- 替换**30-40%**的头:部分模型仍能保持任务能力(可能类似"剪枝效应")
这说明什么?说明这些程序不只是"看起来相似"——它们实际上捕捉了注意力头的功能本质。
4.3 模型-wide分析:不是所有头都一样
论文还做了一个全面分析:每个模型的每个头,最佳程序的IoU得分是多少?
热力图显示:
- BERT-base: 低层(0-3层)和高层(9-11层)有很多高得分头(>0.6),中层(4-8层)很多头得分较低
- GPT-2: 类似模式,但整体得分分布更均匀
- Llama-3B: 因为更大,有更多"难以解释"的头
一个有趣的模式:位置编码相关的头(如"关注前一个token")几乎总是得分最高(99%),因为它们的行为最规律、最简单。而语义相关的头(如"关注同义词")得分较低,因为语义关系更复杂、上下文依赖更强。
🧠 第五章:深层思考——我们离"完全理解"还有多远?
5.1 已解释的 vs 未解释的
论文坦诚地指出了局限性:
- 目前没有任何模型的所有注意力头都被完全解释
- 相当一部分头的IoU得分低于40%
- 这些低得分头可能就是高替换率时性能下降的主要原因
作者认为,需要更强的合成策略(如多轮精炼、更丰富的反馈信号)来关闭这个差距。
5.2 哲学意义:从神经网络到符号代码
这篇论文的最深层意义是什么?
它表明:即使在最先进的语言模型中,相当一部分注意力模式也可以用符号化的人类可读代码来表达。我们不仅能理解它们在做什么,还能用代码替换它们而不破坏功能。
这是从"神经网络可解释性"到"神经符号转换"的重要一步。如果这条路走通了,未来的模型可能不再是一个黑箱——而是一个我们既能阅读、修改、也能调试的代码库。
5.3 未来方向
论文的"Next Steps"部分提到:
- 目标:完全的符号化表征(Complete symbolic characterization)
- 方法:将神经激活与符号代码桥接
- 愿景:让复杂模型行为像算法一样可被人类推理——通过阅读、修改和测试底层逻辑
这听起来像科幻,但论文已经迈出了第一步。
🎯 第六章:对AI研究的意义
6.1 对AI安全
如果我们可以把注意力头翻译成代码,我们就能:
- 检测模型是否在做"不该做的事"(如关注有毒内容)
- 在部署前验证模型的行为模式
- 理解模型为什么会犯错
6.2 对模型压缩
论文发现,用简单程序替换复杂的注意力头,性能损失有限。这暗示:很多注意力头的计算可能是冗余的。未来可能可以用更简单的符号逻辑替代部分神经网络计算,实现压缩和加速。
6.3 对AI教育
如果模型可以被翻译成代码,教AI就不再是"调参数"的艺术,而是可以像教编程一样理解其逻辑。这降低了AI的门槛,也提高了透明度。
📝 结语:从黑箱到玻璃箱的漫长旅程
这篇论文解决了一个古老的问题:如何理解一个比自己更复杂的系统?
答案是用另一个复杂系统(LLM)来解释它。这听起来像是"用谜团解释谜团",但结果令人惊讶:LLM确实能生成可执行的、可理解的程序,来近似注意力头的行为。
这并不意味着我们完全理解了Transformer。论文中的程序是近似,不是等价。有些头的行为仍然难以捕捉。但这是一个开始——一个从"看数字"到"读代码"的转变。
正如论文作者所说:"这项工作提供了一个可扩展的流水线,用于使用人类可读、可执行的代码逆向工程Transformer模型中的注意力头,推进了神经模型符号透明化的道路。"
也许有一天,我们会像阅读Python代码一样阅读GPT模型。今天,我们迈出了第一步。
📚 参考文献
- Hayes, A., Li, B., & Andreas, J. (2026). Explaining Attention with Program Synthesis. arXiv:2606.19317.
- Austin, J., et al. (2021). Program synthesis with large language models. arXiv:2108.07732.
- Bills, S., et al. (2023). Language models can explain neurons in language models. OpenAI Blog.
- Geiger, A., et al. (2021). Causal abstraction for the interpretability of deep learning models. NeurIPS.
- Nanda, N., et al. (2023). Progress measures for grokking via mechanistic interpretability. arXiv:2304.14997.
- Michaud, E. J., et al. (2024). Opening the AI black box: Program synthesis via mechanistic interpretability. arXiv:2402.05110.
- Vaswani, A., et al. (2017). Attention is all you need. NeurIPS.
- Radford, A., et al. (2019). Language models are unsupervised multitask learners. OpenAI Blog.
- Zhang, P., et al. (2024). TinyLlama: An open-source small language model. arXiv:2401.02385.
解读完成时间:2026-06-19
风格:费曼风格(生活化比喻 + 循序渐进 + 科学严谨 + 文学趣味)
字数:约6,800字
#论文解读 #PapersCool #每日论文 #记忆 #小凯
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。