
A Geometric Diagnostic for Routing Discontinuity in Released Weights
这是 DeepSeek V4 与流形撕裂 的姊妹篇。那一篇是论点——loss spike 是几何撕裂,不是优化爆掉。这一篇是测量:我做了一个诊断工具,把它对准已发布的 MoE 权重,问一句:它到底被撕到什么程度。
在 DeepSeek 那篇里,我用了一个跟 Max Ma 聊天时聊出来的词:MoE 层不是在弯折表示,它会撕裂表示。(这个词本身比那次聊天更老——它出自 Lee 和 Verleysen 的流形学习工作,讲的是把拓扑上非平凡的数据流形撕开;Max Ma 和 Gen-Hua Shi 的 Deep Manifold 论文提供的是神经网络流形视角这个动机。)弯折是连续的、无害的;撕裂是离散的,是病灶。当时文章里比喻讲得不错。但比喻之后,总要把撕裂亮出来,说清它有多大,再老实承认它会、和不会造成什么。
所以这篇是一篇被压进博客的测量论文:一个几何诊断,跑在已发布的 OLMoE 和 Qwen 权重上,带负对照和 known-answer 自检。
一个欠了测量的比喻
一个 MoE 层把每个 token 路由到一小撮 top- 专家。这个离散选择让层间映射变成 不连续:两个任意接近、却落在路由边界两侧的隐藏态会被发往不同的专家——于是块输出可以跳变 。这个跳变就是撕裂。
已有工作从两个方向逼近它,却都没在真实模型上把它量出来:
- 连续化路由修法——ReMoE 明确把 top- 刻画成一次 jump discontinuity,并用 ReLU 路由替代它;Soft MoE、sparsemax/α-entmax 是它的亲戚。这些是把不连续消掉,而不是去量已发布权重里那一个。
- 路由翻转率——R3 router-replay 研究报告:训练引擎与推理引擎之间,约 10% 的 router、94% 的 token 至少翻转一个专家。那测的是专家集合多久变一次,不是这变化诱发的输出跳变。
没有人去测那个真正支配真实模型传输映射的量:已发布 LLM-MoE 权重上的输出跳变几何——跳变有多大、坐在哪、由哪个方向触发。这就是缺口。
撕裂到底是什么
一个 MoE 块把 映为
其中路由 logit 为 ,top- 取最大的若干个, 是在全部路由 logit 上的 softmax,并在 top- slot 上不再重归一化地取出(已发布的 OLMoE 与 Qwen1.5-MoE 均为 norm_topk_prob=false)。把 logit 排序 , 活跃集边界就是
一个法向为 的超平面。越过它,你就换掉了第 个专家,块输出跳变 ,其中 是边界 slot 取出的路由权重——所以未加权的 (也就是下文的 M2 悬崖)只是上界,真正决定大小的是这个 加权跳变,也就是下文那个每块跳变。这是一次货真价实的 不连续——对照一个 ReLU MLP,它是 连续的、只带 折角。
那怎么把真撕裂和又陡又光滑的斜坡分开?放大来看。 沿一条越界的短路径走,测输出每走一步动多少——差商 ——然后看得更近、再更近(我在路径上采 500、2000、8000 个点)。光滑的斜坡会随放大变平:步子更细,跳变成比例地更小。真撕裂正相反——你凑得再近,它都是一堵垂直的墙,于是测到的陡度随放大同步往上爬。
这是个干脆的是/否判据,但它给出的那个数极容易误读,这里先把情况说明一下。我放大了 16 倍(从 500 到 8000 个采样点),所以真撕裂的陡度恰好涨 16×,而光滑映射几乎不动。把这个增长叫 hardG。要点在于:这个 16 只是放大倍数。任何真撕裂——任意层、任意 、任意模型——都会落在 16×,因为 。所以 16× 不告诉你撕裂有多严重,它只告诉你撕裂是真的——是墙,不是坡。 有多严重,要看另一个数(跳变的大小,见下)。两个天生光滑的对照替判据把关——一个 tied-expert 换专家(no-op),一个连续性有保证的 soft 门控——它俩都回到 (不增长),本该如此。
概念上,这个测试很简单:光滑映射在网格变细时仍停在 附近;真跳变会跟着放大倍数一起涨。在一个带精确已知撕裂的小MoE模型块上做一次 sanity check,把这条定律钉死:一放大,陡度就完美地跟着放大倍数走——一条干净的线性律(),横跨 64 倍的分辨率范围——而光滑对照保持平坦。正是这个 known-answer 自检告诉我们:在真实权重上看到的 16× 是撕裂的指纹,不是探针的怪癖。

从中长出三个核心测量:
- M1 边界占比: margin 的分布,以及贴近边界的 token 比例。
- M2 专家悬崖: 归一化的 ,外加被换专家对的余弦。cos ≈ 1 是冗余(没有真撕裂);cos ≈ 0 是非冗余、停在 基线;cos < 0 才是真专精。这把"过度专精"和"仅仅非冗余"分开了。
- M3 连续性签名: 上面那个放大判据——陡度随放大往上爬(撕裂)还是变平(光滑)?——概括为 hardG,带它的两个对照。

所以严重度不在连续性签名里。它由每块跳变和 M2 承载——下文都请记住这个区分。
结果:已发布的 router 每一层都被撕开
撕裂不是玩具LLM模型的产物。在 OLMoE-1B-7B(16 层、64 专家、)上,放大判据在每一层都是阳性——陡度随放大同步涨 16×(hardG ,区间 15.93–16.01),而两个光滑对照保持平坦()。就是下面这张测量图。还是那句提醒:这个 16× 只意味着"每层都是真撕裂",它不是大小的度量。大小是另外两个数。第一,跳变本身 ——一个 token 越过边界时,约 MoE 子层输出的 24% 发生位移(一个块级几何量,不是模型最终答案、logits 或任务精度的变化;作为加到残差流上的扰动,它还要更小,这与下文很小的下游 KL 一致)。第二,专家悬崖 M2 ——余弦 ,正好在两个无关向量的基线上,所以被换的专家确实不同,但并非高度专精。而且几乎每个 token 都贴在边界一线之间(margin 中位数 )。

表 1 — OLMoE-1B-7B 逐层诊断(24 条文本)。hardG 是放大判据的增长(8000 处陡度 ÷ 500 处陡度);对真撕裂它等于放大倍数 16,所以它逐层的平稳是判据的属性,不是模型的。块跳变列是每块输出跳变(占块输出范数的比例)。hardG、块跳变与两个对照是 8 条越界路径的中位数;margin、M2、cos 是层内逐 token 中位数。跨层来看:hardG 中位数 15.99×、M2 0.704、cos 0.025;块跳变均值 0.239;soft/tied 对照 ≈1.00。
| 层 | margin | M2 悬崖 | cos | hardG | 块跳变 | soft 对照 | tied 对照 |
|---|---|---|---|---|---|---|---|
| 0 | 0.0012 | 0.694 | 0.056 | 16.00 | 0.238 | 1.005 | 1.001 |
| 1 | 0.0009 | 0.701 | 0.033 | 15.98 | 0.309 | 1.003 | 1.002 |
| 2 | 0.0010 | 0.702 | 0.028 | 15.99 | 0.246 | 1.004 | 1.001 |
| 3 | 0.0011 | 0.704 | 0.022 | 16.00 | 0.248 | 1.004 | 1.002 |
| 4 | 0.0011 | 0.703 | 0.025 | 15.99 | 0.282 | 1.003 | 1.002 |
| 5 | 0.0012 | 0.702 | 0.030 | 16.00 | 0.288 | 1.004 | 1.002 |
| 6 | 0.0011 | 0.704 | 0.023 | 15.99 | 0.284 | 1.002 | 1.003 |
| 7 | 0.0014 | 0.704 | 0.026 | 16.01 | 0.233 | 1.003 | 1.002 |
| 8 | 0.0015 | 0.704 | 0.025 | 16.00 | 0.249 | 1.003 | 1.002 |
| 9 | 0.0019 | 0.703 | 0.026 | 16.01 | 0.266 | 1.003 | 1.002 |
| 10 | 0.0019 | 0.708 | 0.015 | 15.99 | 0.212 | 1.003 | 1.002 |
| 11 | 0.0021 | 0.709 | 0.012 | 15.98 | 0.244 | 1.003 | 1.002 |
| 12 | 0.0026 | 0.707 | 0.021 | 15.97 | 0.226 | 1.003 | 1.002 |
| 13 | 0.0023 | 0.709 | 0.015 | 15.99 | 0.157 | 1.003 | 1.002 |
| 14 | 0.0023 | 0.703 | 0.035 | 15.96 | 0.222 | 1.003 | 1.002 |
| 15 | 0.0028 | 0.600 | 0.301 | 15.93 | 0.123 | 1.003 | 1.002 |
第 15 层(末块)是唯一的轻微离群——悬崖更低(M2 0.60)、余弦更高(0.30 → 专家更冗余)——但它的不连续(hardG 15.93×)毫不减弱。
这不是 OLMoE 的怪癖。Qwen1.5-MoE-A2.7B(24 层、60 个路由专家、)复现了同一套模式:
| 指标 | OLMoE | Qwen1.5-MoE |
|---|---|---|
| hardG(连续性签名) | ≈16× 全层 | 15.99×(15.96–16.02) |
| M2 专家悬崖 | ≈0.70 | 0.710 |
| ≈0.025 | 0.010 | |
| 近边界比例(margin < 0.05) | ≈100% | 98.2% |
| 整块跳变 | ≈0.239 | 0.368 |
| tied / soft 对照 | ≈1.0× | 1.002× / 1.003× |

这个 16× 会不会只是 的产物? 不会——而且现在有三重直接证据。干净的理由:16 是放大倍数(8000/500),所以任何真撕裂都会落在它上面,与 无关。交叉验证:Qwen 路由 ,却落在与 OLMoE 的 相同的 16× 上。直接测试:我在同一个模型上把 从 1、2、4 拨到 8——这个数纹丝不动(每次 hardG 都是 16.00,总区间 15.92–16.03)。它跟着放大倍数走,不跟 走。

一句话总结:训练并不会把这道缝补上。 已发布的 router 在两个家族、每一层,都带着这道撕裂——放大判据阳性,每块跳变实打实地约 24%,而悬崖 M2 ≈0.70 贴在无关向量基线上。
撕裂是方向性的——而这才是意外之处
直觉在这里栽了。最显然的抗扰动测试是:随机扰动隐藏态,看消掉撕裂会不会让块更稳。答案是一个 null——而且这个 null 很有信息量。
哪怕扰动大到翻掉 67.6% 的 token 的 top- 集合,硬-vs-软的块跳变也只差 2.6%(0.581 vs 0.566)。杀掉撕裂,几乎不改变块对随机噪声的响应。这个 null 不是说专家从不翻——这个幅度下 67.6% 的确翻了——而是说随机翻转在软门控本已产生的平滑响应之上,几乎不增加额外的不连续过量。
原因是几何的:随机扰动几乎总是切向于边界。 改成沿 raw-logit 边界法向扰动,取到撕裂距离的 ,画面就反过来了:
| OLMoE 层 | 法向翻转率 | 切向翻转率 | 法向跳变 | 切向跳变 | 法向 ΔKL | 切向 ΔKL |
|---|---|---|---|---|---|---|
| 0 | 0.915 | 0.009 | 0.098 | 0.0067 | 0.0063 | −0.0003 |
| 8 | 0.945 | 0.004 | 0.179 | 0.0111 | 0.0161 | 0.0050 |
| 15 | 0.944 | 0.004 | 0.084 | 0.0081 | 0.0017 | 0.0001 |
到撕裂的距离极小——中位数只有 的 0.24–0.34%——所以模型就住在边界上。一个不到 1% 相对幅度的法向轻推就翻掉专家( 概率),并产生 的每块输出跳变(占块输出范数的一部分,不是模型输出),带可测的下游 KL;而等幅度的随机/切向轻推几乎什么都不做。撕裂是可被利用的,但只沿一个特定的低维方向。

而且你没法廉价地把它重门控掉。连续化重门控能消除静态撕裂(softG ),但全层在推理期施加,会把困惑度从 10.04 抬到 159.94(15.9×)——还是最温和阈值下的数。单层重门控则温和得多()。所以任何实用缓解要么针对特定层,要么像 DeepSeek-V4 那样并进训练,而不是事后外挂。
训练期:它被分解,而非被引爆
这是诚实的负面结果,也是让比喻不至于过界的那一段。为了探训练,我用了一个受控的从零开始的 GPT-MoE 探针,几何对齐到 OLMoE-近似量级(E=64、k=8、约 308M 参数)——不是那个 7B 模型的预训练。
机制(真实、但不大): 参数空间的差商探针发现硬路由比连续性匹配的软门控更粗糙——2.0× vs 1.4×。方向上与合成的 4.5× 一致,但随着几何变现实而变弱。
结果: 自然训练是多尖峰但收敛的,而撕裂不会自愈。8000 步里有 196 个 >0.3 的尖峰(最大 0.585),却没有发散(终损 3.27)。M2 维持 0.711 → 0.690、hardG 全程 ,而操作性的整块跳变早期就塌(0.431 → ≈0.15),随后进入一条噪声带。训练压住的是撕裂的后果,不是它的拓扑。

再往边界推一把,用一个跨两个种子、贴在稳定边缘的撕裂幅度旋钮:
| 种子 | tear_level | >0.3 尖峰数 | 最大尖峰 | 是否发散 |
|---|---|---|---|---|
| 0 | 0.0 / 0.5 / 1.0 | 3 / 2 / 4 | 0.42 / 0.42 / 4.21 | 否 / 否 / 否 |
| 1 | 0.0 / 0.5 / 1.0 | 7 / 5 / 6 | 0.53 / 0.52 / 5.28 | 否 / 否 / 否 |
没有一次运行发散。 尖峰数甚至不随撕裂幅度单调。但满撕裂会可复现地催生一个罕见的严重但可恢复尖峰(最大 ≈4–5 vs ≈0.5)。诚实的说法:撕裂带来优化粗糙度和罕见的尖峰严重度,但在这个尺度上,单凭它不足以导致崩溃——动量和 Adam 优化器把它吸收了。尺度依赖性仍未解决,而那恰恰是 DeepSeek-V4 的工程开始相关的地方。

用几何读 DeepSeek-V4 的三道防线
这里就接回了 DeepSeek 那篇。关键的提醒是:路由不连续 ≠ loss spike。 不连续只是若干可分因子里的第一个:
- 路由不连续——方向性的,几何入口(上文)。
- 专家离群幅度——跳变随它放大;我测得 与 换专家跳变的相关 +0.437(高范数 token 跳得更多)。
- 时序 backbone/router 失配——我这次未测(未来工作)。
- 跨层传播增益——下游 KL / 注入跳变 (一个非膨胀残差给它封了顶)。
- 优化器吸收——上面那个训练结果。
DeepSeek-V4 的三道干预落在因子 2–4 上——可以读作作用于后果,而非拓扑:SwiGLU clamping(因子 2)、Anticipatory Routing(因子 3)、流形约束的 hyper-connections(因子 4——一个在 Birkhoff polytope 上的残差映射,谱范数 ≤ 1,非膨胀)。这些是对 DeepSeek 自述机制的解读——DeepSeek 并未声称在处理本文定义的这道撕裂。
第一个可以直接验。一个 SwiGLU-clamp 扫描跑在已发布 OLMoE 上,拓扑保持平坦——hardG 16.03 → 16.02、M2 0.705 → 0.701——同时压低绝对幅度(专家悬崖 2.90 → 1.97、绝对 hardJump 0.214 → 0.164);相对跳变保持尺度不变(0.310 → 0.303)。clamp 压的是跳变的幅度,不是它的存在——这是把 DeepSeek 的分解量出来,而不是断言出来。

在 DeepSeek 那篇里我画过这张表,论点是 V4 的四个机制在不同位置做着同一种事——承认权重和激活是几何对象:
| 位置 | 机制 | 几何动作 |
|---|---|---|
| 优化器 | Muon | 把更新投影到等距群 |
| 路由 | Anticipatory Routing | 在源点几何里做决定 |
| 前向残差 | mHC | 把残差约束到 Birkhoff polytope(非膨胀) |
| 激活 | SwiGLU clamping | 给曲率封顶 |
这里的测量说:那些机制所尊重的几何是真切在那儿的——在已发布的权重里,每一层都是一道真撕裂——无论优化器在训练时有没有恰好撞上它。
它是什么,不是什么
这是一个测量/分析结果,我想这样定义它的边界:
- 它不提出新门控、不提出新的 分类法、也不声称首次发现这个不连续。那些归 ReMoE、Puigcerver 等人(2022)和样条理论那条线所有。
- 它增加的是:一个能跑在已发布权重上、带负对照和 known-answer 自检的诊断;一个跨模型刻画(OLMoE + Qwen);一个方向性的推理结果外加缓解上界;以及一个诚实的训练期分解,拒绝过度声张:)
底线:MoE 路由撕裂是真实、可测、跨模型的——一次真撕裂(放大判据在每一层都是阳性:陡度随放大往上爬,光滑对照保持平坦),被训练后的路由器一直携带而非缝合。它在跳变本身上是严重的(约为块输出的 24%)——不在那个 16×(那是放大倍数,不是大小),也不在专家有多专精上(M2 贴在无关向量基线上)。它的推理后果是方向性的:随机输入错过它,不到 1% 幅度的边界法向输入命中它,而你没法事后免费把它重门控掉。它的训练期角色是一个分解,而非单一成因——这恰恰是为什么工程手段压的是幅度,而不是移除撕裂。
DeepSeek 那篇说,把网络当几何对象正从哲学立场变成工程默认。这一篇,补上了那个立场一直缺的数字。
几句直说的注意。放大判据只告诉你有没有撕裂、在哪——不告诉你多大;它的 16× 是任意真撕裂都必然给出的放大倍数,不是模型属性,也不是"越大越糟"。这里每个数都是隐藏态上的几何量:约 24% 的块跳变和边界法向脆弱性并不绑定端到端任务精度(GSM8K、MMLU),而且跳变是逐层测的,撕裂如何跨叠层传播、复合则未测。此外:两个模型家族、24 条短文本;一个小规模 308M 训练探针(尖峰严重度信号可能依赖尺度);hardJump 轨迹每步只用一条路径(多路径重采样才能给误差棒);clamp 质量在 hook 路径内部测;时序失配因子点了名但未测。Deep Manifold(Ma & Shi)仅作动机引用——它是外部既有工作,不是我自己的框架。数字的真值来源是一组 result JSON(我都发布在了 GitHub 上);每张定量结果图都用一个仅依赖标准库的 SVG 脚本从中重新生成。
论文与代码: github.com/waylandzhang/moe-tearing
参考文献
- Ziteng Wang, Jun Zhu, Jianfei Chen. ReMoE: Fully Differentiable Mixture-of-Experts with ReLU Routing. ICLR 2025. arXiv:2412.14711
- Joan Puigcerver, Carlos Riquelme, Basil Mustafa, Neil Houlsby. From Sparse to Soft Mixtures of Experts. ICLR 2024. arXiv:2308.00951
- André F. T. Martins, Ramón Fernandez Astudillo. From Softmax to Sparsemax. ICML 2016. arXiv:1602.02068
- Ben Peters, Vlad Niculae, André F. T. Martins. Sparse Sequence-to-Sequence Models. ACL 2019. arXiv:1905.05702
- Joan Puigcerver, Rodolphe Jenatton, Carlos Riquelme, Pranjal Awasthi, Srinadh Bhojanapalli. On the Adversarial Robustness of Mixture of Experts. NeurIPS 2022. arXiv:2210.10253
- Wenhan Ma, Hailin Zhang, Liang Zhao, Yifan Song, Yudong Wang, Zhifang Sui, Fuli Luo. Stabilizing MoE Reinforcement Learning by Aligning Training and Inference Routers (R3). 2025. arXiv:2510.11370
- Boris Hanin, David Rolnick. Complexity of Linear Regions in Deep Networks. ICML 2019. arXiv:1901.09021
- Randall Balestriero, Richard Baraniuk. A Spline Theory of Deep Networks. ICML 2018. arXiv:1805.06576
- Guido Montúfar, Razvan Pascanu, Kyunghyun Cho, Yoshua Bengio. On the Number of Linear Regions of Deep Neural Networks. NeurIPS 2014. arXiv:1402.1869
- William Fedus, Barret Zoph, Noam Shazeer. Switch Transformers. JMLR 2022. arXiv:2101.03961
- Barret Zoph et al. ST-MoE: Designing Stable and Transferable Sparse Expert Models. 2022. arXiv:2202.08906
- Dmitry Lepikhin et al. GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding. ICLR 2021. arXiv:2006.16668
- DeepSeek-AI. DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence. 2026. arXiv:2606.19348
- Max Y. Ma, Gen-Hua Shi. Deep Manifold Part 1: Anatomy of Neural Network Manifold. 2024. arXiv:2409.17592
- Max Y. Ma, Gen-Hua Shi. Deep Manifold Part 2: Neural Network Mathematics. 2025. arXiv:2512.06563
- John A. Lee, Michel Verleysen. Nonlinear Dimensionality Reduction of Data Manifolds with Essential Loops. Neurocomputing 67, 2005. DOI:10.1016/j.neucom.2004.11.042
- Niklas Muennighoff et al. OLMoE: Open Mixture-of-Experts Language Models. 2024. arXiv:2409.02060
- Qwen Team. Qwen1.5-MoE: Matching 7B Model Performance with 1/3 Activated Parameters. 2024. Model blog
延伸阅读:DeepSeek V4 与流形撕裂 · 神经网络的四重境界