当大脑成为路由器:为什么 Transformer 的层序是假的?
你的大脑不会把这道题送进"视觉皮层 → 颞叶 → 顶叶 → 前额叶 → 运动皮层"的固定流水线。它会走捷径——视觉识别数字、工作记忆暂存、提取乘法规则、输出答案。整个过程中,大部分皮层区域根本没被激活。
一个尴尬的发现
你在做一道数学题。题目很简单:23 × 17 = ?
你的大脑不会把这道题送进"视觉皮层 → 颞叶 → 顶叶 → 前额叶 → 运动皮层"的固定流水线。它会走捷径——视觉识别数字、工作记忆暂存、提取乘法规则、输出答案。整个过程中,大部分皮层区域根本没被激活。
现在看 Transformer。无论你问它"1+1"还是"证明黎曼猜想",它都会把你的问题塞进全部 36 层,一层不少,顺序不变。每一层都是一个函数 \(f_i\),执行顺序固定为 \(f_{35} \circ f_{34} \circ \cdots \circ f_0\)。这就像一家餐厅不管你点什么菜,都走同一条 36 步的流水线——哪怕你只是要一杯水。
Li et al. 在 2026 年提出了一个叫 PoLar(Program-of-Layers) 的方案:把 Transformer 的层当作"函数库"而非"固定序列"。对每个输入,你可以 跳过(skip)某些层、保留(keep)某些层、重复(repeat)某些层。用蒙特卡洛树搜索(MCTS)找到每个输入的最佳"执行程序",再训练一个轻量级路由器来预测它。
想法很美。但本文作者(Bern 大学和 DFKS 的团队)复现时撞上了一堵墙:路由器永远预测"什么都不改,走标准前向传播"。
不是偶尔,不是大多数时候——是每一次、每一个模型、每一个难度级别。
MCTS 明明找到了更好的程序,路由器就是不肯用它。
大脑怎么做的
要理解为什么这很奇怪,先看大脑怎么处理信息。
大脑的皮层分为约几十个功能区域(视觉皮层、听觉皮层、前额叶等等),每个区域由"皮层柱"组成——一种垂直排列的神经元群体,结构和连接模式在整个皮层中高度保守。这和 Transformer 的层很像:每一层做同样的计算,只是权重不同。
但关键区别在于路由。信息不是按固定顺序流过所有皮层区域的。丘脑(thalamus)扮演了一个中央路由器的角色:它决定哪些信息送到哪些皮层区域,哪些区域此刻该被激活,哪些该被抑制。你可以把它想象成一个交通指挥员,根据当前任务把车流导向不同的高速公路。
Larkum (2013) 的研究表明,皮层柱的架构及其与丘脑的交互,让大脑能够将上下文信息整合到局部计算中,并把上下文敏感的输出分发给整个皮层。这和 Transformer 中注意力机制对 token 嵌入的调制作用如出一辙。
更有意思的是,Cox et al. (2026) 最近发现,经过充分任务训练后,大脑会重塑神经回路以逃离一个默认的、费力的"前额叶瓶颈"——这进一步证明,选择性路由的路径,而非固定回路,才是生物计算的常态。
PoLar 的形式化
PoLar 的核心想法可以这样理解:
把一个有 \(D\) 层的 Transformer 看作一个函数库 \(\{f_0, f_1, \ldots, f_{D-1}\}\)。标准前向传播是恒等程序 \(\text{id} = (0, 1, 2, \ldots, D-1)\)。但你可以定义任意程序 \(\pi = (i_1, i_2, \ldots, i_K)\),只要 \(F_\pi = f_{i_K} \circ \cdots \circ f_{i_1}\) 能给出正确答案。
为了让搜索空间可控,PoLar 把层分成连续段(每段最多 4 层),每段执行三种操作之一:
- skip:跳过这段
- keep:正常执行
- repeat:执行两次
五个被证实的发现
本文用 5 个模型(Qwen1.5-MoE-A2.7B 到 Qwen3-32B)在 DART-Math 五个难度级别上复现了 Li et al. 的核心发现:
发现 1(✓):skip + repeat 组合打败任何单一操作。在所有模型、所有难度上成立。
发现 2(✓ Occam 剃刀):大多数有效程序比标准前向传播更短。也就是说,跳过一些层反而能提升准确率。这和直觉相悖——你以为更多层 = 更多推理能力,但实际上很多层对特定输入是"噪音"。
发现 3(✓ 难度依赖):越难的题目越依赖 skip/repeat。简单题用短程序就能解决,难题需要更长的程序和更多重复。这和大脑的模式一致——困难任务会激活更多循环处理。
发现 4(↯ 部分偏离):程序段的长度没有 Li et al. 报告的那么短。4/5 模型的段长度低于他们的阈值。
发现 5(★ 全新):菜单行为——少数几个固定程序就能覆盖大部分题目。Identity 永远是覆盖率最高的程序,其他每个程序都是"更窄的特化"。就像餐厅菜单上,80% 的顾客只点 5 道菜。
身份坍塌:路由器的"躺平"
然后是最戏剧性的发现。
Li et al. 声称路由器在 pass@1 上实现了 41.6% → 43.2% 的提升。本文完全无法复现这个结果。
在每一个模型、每一个难度级别、每一种训练数据处理方式下,路由器的 top-1 预测永远是恒等程序——也就是"什么都不改,走标准前向传播"。
这不是训练数据的多数类偏差——identity 只占训练样本的 2.4%–7.0%。他们试遍了所有反坍塌手段:类别加权损失、焦点损失、把 identity 的训练损失降到零、长度偏好重加权、keep 概率惩罚……没有一个能打破坍塌,且不损失准确率。
pass@5 的增益确实复现了,但进一步分析发现它来自 beam search 的多样性,而非路由器真正学到了"哪个程序适合哪个输入"。路由器从未把正确的非恒等程序放在第一位,只是"碰巧"在 top-5 里有。
身份坍塌不是调参不够好的产物,而是这个设置本身的鲁棒性质。
为什么会坍塌?碎裂的误差曲面
作者的结论是:误差曲面在程序空间上是高度碎裂的。
想象一座山脉,不是一座平滑的山峰,而是喜马拉雅山脉——无数尖锐的山峰挤在一起,每个山峰之间是深谷。MCTS 能找到某个山峰(因为它做的是搜索),但路由器要做的是单次确定性预测——站在山脚下,根据输入特征猜"哪个山峰最高"。当山峰极度碎裂时,这几乎不可能。
这和大脑的计算模式形成鲜明对比。大脑面对困难计算时,不是提前选定一条路径,而是同时激活多条通路,让它们竞争和整合,最终收敛到答案。论文作者指出,这指向一个具体的改进方向:让路由器同时考虑多个候选程序,而非承诺于一个。
位置而非内容:最令人不安的发现
最后一个发现(F10)可能最令人不安。
在 MMLU-Pro 上,作者做了一个简单的变换测试:把选择题的选项顺序打乱(内容不变,只是 A 变成 B、B 变成 C)。结果发现:MCTS 发现的"救援程序"严重过拟合于答案的位置,而非答案的内容。
打乱选项顺序后,救援准确率跌到 identity 以下。而 identity 本身对选项顺序几乎是 shuffle-invariant 的。
这意味着什么?MCTS 搜索到的"更好的程序"可能并没有真正理解题目内容——它只是碰巧找到了一个对"答案在位置 C"有效的层路由模式。就像一个学生发现"这套试卷的答案总是 C",而不是真的学会了知识。
工程洞察
这篇论文对 AI 从业者有几个实际启示:
1. "搜索有效"不等于"可学习"。 MCTS 能找到更好的层程序,但路由器学不会预测它。在考虑任何"搜索发现 → 学习预测"的范式时,必须检查误差曲面是否足够平滑。
2. pass@k 是一个会骗人的指标。 pass@5 的增益来自 beam search 多样性,而非真正的输入-程序匹配。评估路由器时,必须报告 pass@1 和 top-1 程序分布,而非只看 pass@k。
3. 菜单行为意味着特化。 少数固定程序覆盖大部分输入,说明每个非恒等程序都是"窄特化"——它只对某类输入有效。这和 MoE(Mixture of Experts)的直觉一致:专家数量不需要太多,关键是路由。
4. 位置过拟合是评估盲区。 如果你的评估集是固定选项顺序的多选题,MCTS 发现的"改进"可能只是位置过拟合。打乱选项顺序是一个简单但必要的鲁棒性测试。
5. 大脑的启示:并行而非串行。 面对碎裂的误差曲面,单次预测注定失败。大脑的方案是并行激活多条通路。对 PoLar 来说,这可能意味着让路由器输出一个程序分布,而非单个程序。
开源代码
论文代码已开源:https://datexis.github.io/RE-PoLar/
包含完整的 MCTS 搜索实现、路由器训练代码、以及所有 5 个模型的实验复现脚本。
个人思考
这篇论文让我想到一个更深的模式:"搜索能找到的东西,学习不一定能学到"。
AlphaGo 的 MCTS 能找到胜率最高的棋步,但如果你想训练一个策略网络直接预测它……你大概率会得到一个"保守"的策略。因为最优棋步的分布是极度多峰的——同一个棋盘状态下,可能有多个 equally good 的棋步,它们之间没有可学习的映射关系。
PoLar 的身份坍塌是同一个模式在层路由上的重现。MCTS 找到的"救援程序"不是输入特征的平滑函数——它是碎裂误差曲面上的一个尖锐峰值。路由器试图学一个从输入到程序的平滑映射,但这个映射不存在。
这也许解释了为什么大脑选择了并行处理而非串行预测。当你面对一个极度复杂、多峰的决策空间时,与其花时间预测"最优路径",不如同时激活多条路径,让它们竞争。这不是效率上的妥协,而是对问题结构本身的适应。
PoLar 的故事还在继续。作者指出了几个方向:把 attention 和 MLP 拆成独立操作子、从"每输入一程序"扩展到"每 token 一程序"、加入并行层执行操作子。但最根本的启示可能是:Transformer 的层序是假的——但找到真正的层序,比我们想象的难得多。