我在尝试(并大多失败)理解 Attention Heads 时学到的东西
Source: Dev.to
请提供您想要翻译的完整文本内容,我将按照要求将其翻译为简体中文并保留原有的格式、Markdown 语法以及技术术语。谢谢!
我最初的信念
在深入研究之前,我隐含地相信了以下几点:
- 如果一个注意力头始终关注某个特定的 token,那么该 token 很可能是“重要的”。
- 查看注意力热图可以快速揭示模型的行为。
- 各个注意力头应该对应相对干净、可被人类解释的功能。
这些信念在与哪怕是小型玩具模型接触后都没有得到验证。
第一个惊喜:注意力模式易于观察,却难以解释
生成注意力可视化简直轻而易举。许多工具让人觉得这已经是进步:你可以指着某个头说 “看,它在关注逗号”,或者 “这个头喜欢之前的名词”。
更难的是回答这个问题:“如果这个头消失,模型的行为会有实质性的改变吗?”
没有这一步因果分析,注意力模式更像是 描述 而不是 解释。它们具有暗示性,但并不决定性。
第二个惊喜:头部并非单独行动
我之前的另一个天真的假设是,头部大多是独立的。实际上,即使是小模型也会将功能分布在多个组件上:
- 多个头部可能会部分地共同贡献同一种行为。
- 移除一个头部通常会导致性能逐渐下降,而不是灾难性崩溃。
- 有些头部只有在与特定的 MLP 层组合时才“重要”。
这让我更能理解为什么可解释性论文强调 circuits 而不是单一组件。解释的单位往往大于一个头部,却小于整个模型。
第三惊喜:失败也能提供信息
在少数情况下,我本以为会发现一个明确的模式(例如,一个头部能够可靠地在重复序列之后复制下一个 token),但却没有。要么效果比预期的要弱,要么在不同层之间出现不一致。
起初,这让我觉得是个死胡同。但仔细阅读后,我意识到许多已发表的结果都有以下特点:
- 对架构高度依赖。
- 在特定深度更容易观察到。
- 对训练设置和数据非常敏感。
一次“未成功的复现”并不是对结论的否定,而是关于机制出现的地点和时机的证据。
我的心理模型有什么变化
在这次经历之后,我对注意力头的看法有所不同:
- 注意力权重是 假设,而不是解释。
- 因果干预(消融、补丁)比可视化更重要。
- 干净的机制是例外,而不是常态。
- 玩具模型并不是大模型的简化版本;相反,它们是 不同的对象,能够更清晰地展现某些行为。
这更像是在做生物学研究:混乱、部分且逐步推进。最重要的是,我不再期待可解释性像逆向工程一个干净的系统。
我仍然不理解的地方
明确说明这些空白:
- “分布式”解释何时会变得过于分散而失去用处?
- 已识别的电路在不同随机种子之间有多稳定?
- 哪些可解释性结果真正具有可扩展性,哪些是小模型的伪象?
这些问题现在对我来说比寻找另一幅漂亮的注意力图更重要。
为什么这很重要?
我不认为可解释性进展来源于宣称模型“已被理解”。它来源于逐步缩小 我们能描述的内容 与 我们能因果解释的内容 之间的差距。
即使是对模型进行小规模、令人沮丧的尝试,也让我认识到为何审慎、谦逊的声明是一种优势,而非弱点。
即便没有其他收获,这段经历也让我对那些乍看之下令人信服的解释更加谨慎。
结束语
这篇文章只反映了我学习过程中的一小部分,而不是一个完善的结论。如果你有类似的经历——或者认为我误解了某些基本概念——我真诚地希望听到你的意见。
理解这些系统之所以感觉困难,就是因为它确实很难。这可能是个好兆头。