混合专家:稀疏激活的大模型
Mixture of Experts — Sparsely Activated Large Models
2023 年 12 月,Mistral AI 放出 Mixtral 8×7B 的开放权重:总参数约 467 亿,但每个 token 只激活约 129 亿。它在多数公开基准上匹配或超过 Llama 2 70B,推理成本却按“激活参数”而不是总参数来付。2024 年 12 月,DeepSeek-V3 技术报告把同一逻辑推到 6710 亿总参数、每个 token 激活约 370 亿,并写明训练时用无辅助损失的负载均衡。
开放问题不是“专家要不要多”,而是:路由能否既不把流量塌缩到少数专家,又不靠一项和主损失打架的辅助项来硬拉平。 稀疏把参数预算从计算预算里拆出来;拆开之后,新的失败模式全部长在路由器上。
破除误解:总参数不是“有效规模”的同义词
把 MoE 理解成“八个小模型投票”,会写错两笔账。
第一笔是计算。稀疏 MoE 的前馈层有许多专家,路由器只把每个 token 送到其中 $k$ 个。注意力层通常仍是全体共享的。因此一次前向看到的参数量 ≈ 共享部分 + $k$ 个专家,不是专家数乘以单专家大小。Mixtral 不是 8 个完整的 7B 模型并排——注意力只存一份,8×7B 的叫法是历史命名,不是算术。
第二笔是容量。总参数决定你能记住多少模式,激活参数决定你每步付多少算力。两者解耦之后,出现一种新的夸大方式:用总参数对标稠密模型,却用激活参数报延迟。比较必须同时报两列。GPT-4 是否为 MoE 从未被官方确认,不能把坊间传闻写进规模表。
另一句口号是“专家会自动分工,有的懂数学、有的懂代码”。路由是按 token、按层选择前馈块,不是按用户意图分诊。有的层会表现出粗粒度的领域偏好,这是观察,不是保证。把 MoE 说成“内部已经请好了专科医生”,是把门控网络误读成职业介绍所。
现场:从顶层门控到细粒度专家
Jacobs 等人 1991 年的自适应混合专家,是监督学习里的局部专家。2017 年 Shazeer 等人把稀疏门控 MoE 接到 LSTM 上,证明可以在不按比例增加计算的前提下堆参数。真正改写语言模型的,是把它接到 Transformer 的前馈块上。
GShard(Lepikhin 等,2020)用 top-2 路由与专家并行,在翻译上把专家铺到许多设备。Switch Transformer(Fedus、Zoph、Shazeer,JMLR 2022)把路由简化成 top-1,并报到约 1.6 万亿参数的稀疏模型。他们同时把辅助负载均衡损失写成标准配件:惩罚“少数专家吃掉几乎所有 token”的塌缩。没有这项,路由器很快学会只信任最早碰巧分到梯度的那几个专家,其余专家空转,总参数变成摆设。
| 系统 | 路由 | 公开规模画像 | 负载怎么拉平 |
|---|---|---|---|
| Switch | top-1 | 约 1.6T 稀疏 | 辅助损失 + 容量因子 |
| Mixtral 8×7B | top-2 / 8 专家 | 约 47B 总 / 13B 激活 | 辅助损失一类机制 |
| DeepSeek-V3 | 细粒度 + 共享专家 | 671B 总 / 37B 激活 | 无辅助损失的偏置调节 |
DeepSeekMoE(Dai 等,2024)把专家切细,并留下始终激活的共享专家,让公共模式不必挤进路由。V3 报告进一步:用每个专家上的偏置项去跟踪利用率,欠载的专家被抬高、过载的被压低,更新不走进反向传播。目的是让均衡不再和主损失抢梯度。这是论文里的设计陈述,不是对所有工作负载的保证。
通信是现场的另一半。专家往往住在不同设备上,token 必须按路由结果搬动。设备间的 all-to-all 一旦成为瓶颈,稀疏省下的计算会被网络吃回去。于是 MoE 从“模型结构”变成“拓扑上的放置问题”:一个节点能放几个专家、跨节点路由要不要限制、冗余专家要不要复制。这些选择不出现在基准表的“总参数”列里,却决定训练能不能稳住。
容量因子是另一条被论文写进脚注、却在训练日志里咬人的旋钮。每个专家每个批次只能吃下大约“平均负载 × 容量因子”那么多 token;超出的被丢掉或改送到次优专家。Switch 把这件事写成可训练的稳定性条件:没有容量上限,辅助损失拉不平物理上已经打满的专家;上限太紧,又等于在前向里随机丢上下文。DeepSeek-V3 报告强调训练与推理都可以做到不丢 token,靠的是偏置调节与放置,而不是把丢弃当成正常损耗。外部尚未在同一套公开实现上把“零丢弃”做成可复现的对照实验,所以它仍是报告中的设计目标,不是社区默认。
还有一条 2022 年起被反复对比的变体:专家选择路由(expert-choice)——不是 token 选专家,而是专家在容量内选 token。它从机制上避免了某些塌缩,却改变了序列里“每个位置都保证被 k 个专家处理”的语义,对自回归解码不友好。因此它更多出现在编码器或研究原型里,没有取代 Mixtral 一类 token 选择的解码器默认。
谁在做,做到了哪一步
Google 的 GShard / Switch / GLaM 证明了万亿参数稀疏模型可以训练,但长期不开放权重,外部无法复核路由是否真的在用。Mixtral 把可运行的稀疏 MoE 变成社区默认基线:Apache 2.0、标准推理栈接得上。xAI 在 2024 年开放 Grok-1 权重,称约 3140 亿参数、8 专家、top-2——又一个可下载的对照物,不是对闭源系统内部的证明。
DeepSeek-V2/V3 把细粒度专家、多头潜在注意力与训练成本写进技术报告,使“激活远小于总数”成为 2024–2025 年开放权重前沿的常见形状。它没有结束路由研究:无辅助损失是否在别的数据配比下同样稳、细粒度是否只是把塌缩推迟到更小的专家上,都还需要独立复现。
推理侧的未解问题同样具体。稀疏模型的延迟取决于最慢的那个被选中的专家和路由引起的负载不均,而不是平均值。批越大,越容易把专家打满;在线、小批量场景里,稀疏的理论加速可能消失。开放问题是:为训练设计的路由,能否在服务约束下不改写模型行为。
Mixtral 8×22B(2024)把同一套 top-2 / 8 专家结构放大,公开数字约为 1410 亿总参数、每 token 约 390 亿激活。它没有新的路由哲学,只是把“开放权重 + 可跑的稀疏解码器”从 7B 专家档推到更大一档,让人可以在同一套推理栈上量延迟随专家变大如何涨。Qwen 的 MoE 变体走的是另一条公开路线:更少的激活、宣称相对稠密 7B 更低的训练成本。这些数字全部绑定在各自的数据与训练配方上,不能加总成一条普遍的稀疏定律。能加总的只有会计恒等式:总参数、激活参数、专家数、$k$、以及 all-to-all 的拓扑,五件套必须一起报。
代价与争议
辅助损失会扭曲学习。 它让专家被用得更均匀,也可能迫使路由器把本该集中的 token 拆散。V3 用偏置去解耦这件事,等于承认:均衡是系统约束,不该是另一个要优化的任务损失。争议在于,偏置是否只是把超参数从损失系数换成了步长,塌缩会不会以更慢的形式回来。
专家特化被过度叙事。 可视化常常显示某些专家偏爱某些语言或领域,但这不等于模块化可解释性。关掉一个专家很少等于关掉一种能力;能力是跨层、跨专家叠加的。把 MoE 当成可拆卸的技能插件,目前没有经得起迁移测试的证据。
评测口径容易作弊。 只报总参数,MoE 显得更大;只报激活参数,它显得更便宜。正当的比较是:给定训练与推理预算,稀疏与稠密各自把损失打到哪。GLaM 一类工作曾报过相对稠密模型的能耗下降,但数字绑定在特定硬件与实现上,不能外推成“稀疏天然绿”。
稀疏并不自动等于可解释。 即使用户在某一层看到某个专家偏爱某种语言,下一层的混合会把这点痕迹冲掉。试图用“关掉专家 i”来做安全或版权热修补,目前没有公开、可迁移的成功标准。它更像在没有模块边界的网络上做消融,而不是拆掉一个插件。若目标是可拆的能力,需要另外的结构(工具、检索、显式技能路由),不能从 MoE 的门控里免费得到。
未知的边界
- 无辅助损失的均衡,在万亿参数、多模态、或专家数再翻几倍时是否仍稳?
- 路由能否从 token 级走到序列级或任务级,而不把训练动态重新变成塌缩?
- 训练时的稀疏模式,与推理时的批大小、前缀缓存是否兼容?
- 专家并行的通信,会不会在以太网与专用互连上画出两条完全不同的可行边界?
- 稀疏节约的训练算力,会不会被更长的采样或工具循环从另一头花掉?这与推理时扩展是同一笔总账的两列。
跨域连接
- 组合数学:每个 token 在每一层从 $n$ 个专家里选 $k$ 个,搜索空间是组合的,训练却只走一条被门控网络参数化的路径。容量因子再把“选中”改写成“选中且还坐得下”。于是稀疏模型的有效假设空间,不是专家集合的幂集,而是路由器在负载约束下能稳定走到的那一小片组合。塌缩就是这片区域皱缩成几个点。
- 纳什均衡:负载均衡可以读成一场博弈——每个专家想要有用的梯度,路由器想要立刻降低损失,两者的短视最优常常是“全去已经最强的专家”。辅助损失或偏置相当于外加的转移支付。均衡若只靠惩罚来维持,它就不是模型自己找到的分工,而是规则强加的均摊;一旦推理时拿掉这些规则,流量会不会重新塌缩,是一个经验问题。
- 图论:专家放置是图上的割:点是设备,边是 token 要走的 all-to-all。跨节点边一贵,可行路由就被图的割容量卡住。稀疏省下的是点上的浮点,可能全部花在边上的搬运;所以 MoE 的规模定律必须把互联图写进去,不能只写专家个数。
- 概率论:门控是一个离散分布,训练用的是它的连续松弛。辅助损失惩罚的是经验频率与门控概率的错位。路由器学的不是“这个 token 属于哪一类”的真分布,而是一个在批统计上可微、且被容量截断过的代理。把门控概率读成语义后验,是把采样方案误当成世界模型。
- 信息不对称:每个专家只看见被送到自己的 token,路由器看见全场却只输出下标。这种不对称节省计算,也制造了监督缺口——专家无法根据“自己没被选上”来更新。梯度因此是经路由器筛选的偏置样本,不是对数据分布的无偏切片。特化与空洞,往往是同一种筛选的两面。
参考文献
- Shazeer, N. et al. Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer. ICLR 2017. arXiv:1701.06538.
- Fedus, W., Zoph, B. & Shazeer, N. Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. JMLR 23(120), 2022.
- Jiang, A. Q. et al. Mixtral of Experts. arXiv:2401.04088 (2024).
- DeepSeek-AI. DeepSeek-V3 Technical Report. arXiv:2412.19437 (2024).
- Dai, D. et al. DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models. arXiv:2401.06066 (2024).
延伸阅读
- Lepikhin, D. et al. GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding. ICLR 2021.
- Du, N. et al. GLaM: Efficient Scaling of Language Models with Mixture-of-Experts. ICML 2022.