# 给神经网络的连线按长度收费，MIT 博士生用一台 MacBook 把黑箱拆成了看得懂的模块

> Cognitive Revolution No. 39 中文精读

- 原标题：E39: Seeing is Believing with MIT’s Ziming Liu
- 发布日期：2023-06-27
- 主持：Nathan Labenz
- 网页版：https://cogrev.1mmt.com/ep/039-e39-seeing-is-believing-with-mits-ziming-liu-VKxwlx.html
- 精读字数：约 4872 字（阅读约 11 分钟）

> 本文为 cogrev.1mmt.com 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

先报一组数字：这篇论文的全部实验，跑在一台没有 GPU 的 MacBook M1 上。模加法任务 20 分钟出结果，符号回归不到 1 分钟，最费时的 transformer 例子也就一两个小时。

而它碰的是 AI 安全里最硬的骨头之一，黑箱问题，用最朴素的话说就是，我们不知道 AI 为什么这么做。2023 年 6 月，MIT 物理系博士生刘子鸣（Ziming Liu）发表了一作论文《Seeing is Believing: Brain-Inspired Modular Training for Mechanistic Interpretability》，提出一套叫 BIMT 的训练方法，让网络自己长出模块化结构。导师是 Max Tegmark，写过《生命 3.0》的宇宙学家，这几年把整个组的重心转向了 AI 安全。

播客 Cognitive Revolution 的主持人 Nathan Labenz 把机制可解释性（mech interp）视为通往 AI 安全最有希望的路径之一，他读完这篇论文的反应是：2023 年到目前为止，最让他想拍大腿的工作。论文动画贴在 GitHub 上，他建议先花五分钟看图再听讨论，理解成本直线下降。看完动画的人多半只想问一句，这么简单的招，怎么没人早点想到。

## 大脑是模块化的，神经网络不是

人脑是分区的，这块管视觉，那块管语言。生物学的解释很朴素：模块化的大脑省能量。神经元拉长线要耗能，要维护，信号传得还慢，进化于是偏爱就近连接，就近连接自然长出一块块功能区。

人工神经网络没有这股压力。训练时损失函数只关心预测准不准，没人管哪根连线长哪根短。两个神经元挨不挨着，数学上根本无所谓，网络被当成一个拓扑对象处理，只有连与不连，没有距离的概念。于是训练出来的网络长成一团意大利面。

刘子鸣的出发点就一句话：**想让神经网络可解释，就得在训练里明确鼓励它可解释。**生物大脑靠进化压力长出模块，人工网络没有压力，那就人为补一个。

具体做法分两步。第一步，把网络从拓扑空间搬进几何空间，给每个神经元一个坐标，连线从此有了长度。第二步，在损失函数里加一项，惩罚正比于连线长度，长连接罚得重，短连接罚得轻，顶替进化里能量成本的角色。生物学的教训浓缩成一句话：局域性催生模块性。

## 方法简单到只多一个超参数

拆开看，BIMT 几乎没有新零件。L1 正则是训练里的常规操作，把权重往零压，压得够狠，没用的连线就死掉，网络变稀疏。BIMT 做的事，是在 L1 的基础上乘上距离：从这层最近的神经元笔直连过去，罚 1；斜着走，罚 2；再偏一点，罚 3。整个方法只比原来多一个超参数，把它设成零，就退回普通的 L1 正则。

顺带记两个工程细节。L2 正则只会整体缩小所有权重，不会把单个权重压到零，真想做剪枝还得靠 L1；代价是 L1 在零点附近容易来回震荡，L2 只要步长够小就能稳稳收敛。两个各有取舍，真在乎剪枝就都试试。

第二个技巧是交换神经元，背后有个插曲。刘子鸣最早跑实验，网络长成了三维双螺旋投影到二维的样子，连线绕来绕去又交叉回来。他本来的思路是让神经元的坐标也变成可训练参数，去问导师 Tegmark，得到的建议是：先试试最简单的方案。

最简单的方案就是字面意思：每隔若干步，在同一层里挑两个神经元，连同它们进出的所有权重一起对调。对调之后网络在数学上完全等价，预测损失分毫不变，但几何上连线可能变短。只对重要性排名前 10 的神经元动手，交换频率设成每 200 步一次，或者干脆一直开着。

交换的价值远不止让图好看。**没有交换，网络会卡在双螺旋那种别扭的局部最优里，背着一大笔长度惩罚，只能牺牲预测精度来还债；交换帮它解开死结，省下的惩罚预算直接换成更低的训练损失。**至于交换是不是训练早期更有用，刘子鸣只给了个猜想：早期像买彩票，网络正要决定钻进哪个盆地，交换能帮它选路；进了盆地，交换就没那么重要了。这有待在大模型上验证。

## 四个实验，一张比一张能说明问题

第一个实验是符号回归。四个输入，两个输出，目标函数一个是 x2² + sin(πx4)，另一个是 (x1+x3)²。两个输出各只依赖两个输入，理论上网络应该分裂成两条互不干扰的通路。刘子鸣还故意使坏，让输入按 1、2、3、4 排列，而第一个输出偏偏依赖 1 和 3，就为测试交换机制够不够灵。结果输入被自动重新分组，两条通路干干净净各走各的。最终损失约 0.0074，预测值对真值的 R² 达到 0.999。图上看不见的连线也不是视觉把戏，他做过剪枝测试，把小权重全部置零，输出纹丝不动。

第二个实验是双月分类，二维平面上两片交错的月牙形数据。这里网络露了一手让刘子鸣自己都吃惊的操作：二分类本来要给两个类各算一个 logit，网络发现根本不用，把其中一个类的 logit 永远固定为零，只学另一个类，正值判 B 类，负值判 A 类。训练过程里还能看到一次相变：先是对称的双通路，剪着剪着突然倒向非对称的省钱方案。最后整个网络只剩 7 条权重、6 个活跃神经元。稀疏到这个程度，逐个权重做干预实验才变得可行，论文附录里就有。顺带一提，这个任务换个随机数种子，图就长得完全不一样；到了模加法，不管什么种子，三个并联模块几乎总是出现。任务里有没有稳定结构，一试便知。碰到只有部分种子能找到结构的情况也不慌，并行跑 100 个模型，挑解释性最好的那个接着分析。

第三个实验是模加法，mech interp 社区的经典考题，DeepMind 的 Neel Nanda 等人 2022 年研究过。embedding 层的结论一致：网络用傅里叶基表示数字。但内部算法不一样了。Nanda 那边叫时钟算法，吃的是模运算的循环性，转多少圈无所谓，只看最后停在哪；刘子鸣发现了新算法，叫披萨算法，把圆盘切成扇区，看结果落在哪一片上。时钟更准但更费资源，披萨稍糙但更省。BIMT 训出来的是三个并联的不完美披萨，每个都会在部分样本上出错，但三个聚合起来，每个样本至少有一个给出正确答案，最终全对。这套机制借了信息论里重复码的思路，不过刘子鸣强调，投票只是比喻，实际是最后一层做线性聚合，三个模块在训练里互相协调分工，更像合作。

这项分析还带出一篇后续论文，合作者包括 MIT 的 Zichen Zhong、Jacob Andreas 和 Tegmark。核心发现是：训出时钟还是披萨，取决于架构和超参数，中间还有相变。用 Nanda 的原始指标根本分不出这两种算法，得设计新指标。**每个解释指标都是一次粗粒化，粗粒化过头，不同的东西看起来就是同一个。**刘子鸣的结论是，mech interp 比想象的还要微妙，这个领域才刚开了个头。

主持人 Labenz 打了个比方：这套惩罚像给网络套上收缩膜，持续抽走多余的空气，最后整团乱麻「啪」地收缩贴合到该有的形状。刘子鸣说，他贴在 GitHub 上的训练动画就是这个效果，建议大家去看视频。

中间还有个漂亮的插曲：S4 置换群任务上，Nanda 此前靠探测手段找到网络学出了群的 9 维表示；BIMT 训练后，这 9 维表示直接对齐到神经元上，恰好 9 个活跃神经元，外加一个符号神经元，也就是那个神奇的第 22 号神经元，其余神经元都能用凯莱图解释。用刘子鸣的话说，别的方法你得先懂任务才知道往哪看，BIMT 不需要懂任务，看图就知道该往哪看。

第四个实验把网络嵌进三维空间跑 MNIST 手写数字。这里冒出一个没人完全搞懂的现象：**第一层到第二层的权重几乎全是负的，第二层到输出全是正的，先做模式反匹配，再做模式匹配。**按人的直觉，图像识别应该拿着狗的模板扫图片，问「有没有狗」；网络反着来，先判断「这张图没有狗」。一层、两层、三层隐藏层都试了，这个模式稳定出现。刘子鸣自己承认还没完全理解，但感觉背后有点根本性的东西。

## 几个值得记下的反直觉细节

为什么这么少的神经元就能凑出平方函数？刘子鸣的解释带着物理学的味道：物理学家迷恋数学的不合理有效性，他则被平滑激活函数的不合理有效性击中。他用的是 SiLU 这类处处可导的光滑曲线，而光滑函数用光滑基去逼近，误差随阶数指数下降。有个细节能说明他的执念：主持人问他试过 ReLU 没有，他承认压根没试过。

更绝的是网络自己玩的把戏。单个神经元很难恰好初始化在能凑出抛物线的位置，于是两个神经元各自带一阶项，在后面的层里加权组合，让一阶项互相抵消，只留二阶项活下来。泰勒展开的障眼法，没人教，网络自己发现的。刘子鸣说，某种意义上，神经网络比他聪明。

做复现的人要记一笔：模加法这个任务必须用 64 位双精度浮点才能稳定复现。置换对称性让损失面里有指数多个等价的盆地，32 位浮点的截断误差就足以把训练推进另一个盆地，换个随机数种子，图就完全不一样。图像分类和符号回归没这个毛病。

关于「怎么没人早点想到」，刘子鸣很坦诚。十年前 Jeff Clune 就研究过连接成本，用进化算法在微型网络上复现了生物式的模块化，但那批工作偏生物学叙事，梯度方法也没今天这么普及。BIMT 站在前人肩膀上，用的是现成的机器学习工具，瞄准的是 mech interp。**真正有价值的东西，才会被一遍遍重新发现。**主持人补了一句：一切皆是混搭（everything is a remix）。

## 离大模型还有多远

短板要说清楚。局域性不等于模块性，模块性的严格度量来自图论，刘子鸣想过把 BIMT 惩罚和图论的模块度损失拼起来，又嫌那像工程补丁，想要更优雅的方案。任务太简单也不出模块，双月和 MNIST 整个网络就是一个模块，没有子任务可拆，连线性分类器都能在 MNIST 上拿到 90% 以上的准确率。模块复用同样做不到，同一块积木在网络里复制一千次这种事，连接成本逼不出来，可能得靠超网络之类的技术。

改造 transformer 的坑更多。K、Q、V 三个矩阵被当成无偏置的线性层处理，沿第三维叠在一起；多头注意力里，神经元只能在同层同头内交换，或者整头对调；最麻烦的是残差流，各层的置换被锁死成同一个，想解开某一层的非局部连线，必须全局一起动。LayerNorm 他干脆整个删掉，Anthropic 也吐槽过这东西碍事。所以论文里的 transformer 例子只是原型，他的说法是，BIMT 是个高层思想，只要能把架构嵌进几何空间就能用，剩下的都是待办事项。

方向他想好了。一个是 TinyStories 这类小而完整的数据集，配合组里 Eric Michaud 的神经缩放量子化模型：语言任务能拆成一个个叫 quanta 的子任务，按出现频率排序，网络按容量依次学会。流利说出三岁小孩的英语，大概只要前 10 个 quanta；想角色扮演物理学家，就得啃长尾。TinyStories 用小模型跑出了推理能力，正好和这套假说对上。另一个是直接对预训练好的大模型做轻量微调，希望 token embedding 长出特权基（privileged basis），颜色这类语义直接对应某一个维度，不用再在无穷多个方向里大海捞针。还有 AI for science，科学问题本来就有人在乎可解释性。至于规模化，他唯一担心的是网络太大画不出来，除此之外没看到原则性障碍。

效率上还有个白捡的红利：稀疏网络推理便宜，模加法里三个并联模块可以拆开并行跑，一台机器聚合结果。要是这套并行化能推广到语言模型，推理时间和显存都能省下一大截。

聊到导师转向 AI 安全的原因，刘子鸣转述的是物理学家的老信条：

> 物理学家受的训练是，先彻底理解一个东西，才能彻底控制它。

聊到中美 AI 竞争，这位在清华物理系读完本科、来美国才两年的博士生说得更直接：

> 存在性风险是全人类的共同威胁，不合作谁也活不下来。这件事反而能把中美拉到同一张桌子上，一起做 AI 安全。

## 明天就能动手的三件事

- 代码在 GitHub 上，链接在节目 shownotes 里。从符号回归那个例子玩起，CPU 不到 1 分钟出结果，改改参数马上能看到网络形状的变化，这是理解 BIMT 最快的路径。
- 自己训练模型的话，可以在损失函数里加一个按距离加权的 L1 惩罚，只多一个超参数，设成零就等于没加，试错成本几乎为零。
- 想解释一个训练好的模型，先把它变稀疏、变模块化，再上手分析。BIMT 的核心卖点是：**不需要预先了解任务，看图就知道该往哪里看。**盲人摸象式的探测可以省了。

另外给做实验的人提个醒：碰到置换对称性强的任务，把精度开到 64 位再谈复现。
