机制可解释性:打开大模型的黑箱
探索中首发 #可解释性#SAE#安全
我们每天都在用大模型,但几乎不知道它内部是怎么得出答案的。机制可解释性(mechanistic interpretability)想做的,是像逆向工程一个程序一样,搞清楚神经网络内部的具体计算过程。
为什么难:叠加现象
最直接的想法是看单个神经元:这个神经元激活了,是不是代表“猫”?
实际情况是,大部分神经元是多义的:同一个神经元可能在猫、汽车和某种代码语法上都激活。原因被称为“叠加”(superposition):模型要表示的概念远多于神经元数量,于是把很多概念压缩着叠在同一组神经元上,每个概念对应的是一个方向,而不是一个神经元。
所以单看神经元是读不懂的,需要先把叠加在一起的概念拆开。
稀疏自编码器(SAE)
SAE 是目前拆解叠加最主流的工具:
- 取模型某一层的激活向量
- 训练一个自编码器,把它映射到一个维度大得多的隐空间,再重建回来
- 加稀疏约束:每次只允许少量隐单元激活
训练好之后,隐空间里每个单元(称为一个“特征”)往往对应一个人能理解的概念,比如“DNA 序列”“法律文本”“讽刺语气”,甚至“代码中的安全漏洞”。
Anthropic 在 2023 年的 Towards Monosemanticity 里先在小模型上验证了这一点,2024 年的 Scaling Monosemanticity 把方法扩展到了生产级模型 Claude 3 Sonnet,找到了数百万个可解释特征。
找到特征之后能做什么
观察
看模型处理一段输入时,哪些特征被激活。这能帮助理解模型为什么给出某个回答,比如是否激活了“谄媚”“欺骗”相关的特征。
干预
人为放大或抑制某个特征,观察行为变化。Anthropic 演示过放大“金门大桥”特征后,模型在任何话题上都会扯到金门大桥。这说明特征不只是相关,而是因果性地影响输出。
追踪电路
更进一步,把多个特征之间的连接关系画出来,形成“电路”,解释模型完成一个任务(比如多步推理、押韵)的完整路径。这是目前的研究前沿。
局限
- 重建不完美:SAE 没法百分之百还原原始激活,丢失的部分里可能有重要信息
- 特征不一定是模型“真正”使用的单位:它是一种分解方式,不是唯一正确答案
- 成本高:在大模型上训练 SAE 需要大量算力和存储
- 离实用还有距离:能解释局部现象,但还不能完整审计一个模型
目前的判断
- 可解释性是 AI 安全的长期基础设施。 只靠行为测试无法排除模型在特定条件下做出意外行为,读懂内部机制是更根本的保障。
- 工程价值正在出现。 特征级干预可能成为比提示词和微调更精细的行为控制手段。
- 开源工具链在快速成熟,个人研究者已经可以在中小模型上做有意义的实验。
接下来要做的
- 用开源 SAE 工具在一个小模型(如 GPT-2 small)上训练并浏览特征
- 复现一次特征干预:找到一个情感特征并放大,观察生成文本变化
参考
- Elhage et al. Toy Models of Superposition. 2022
- Bricken et al. Towards Monosemanticity: Decomposing Language Models With Dictionary Learning. 2023
- Templeton et al. Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet. 2024