MoE 的三个旋钮 · 专家数、激活数、共享专家
同样是 MoE,DeepSeek 的「多而小 + 共享专家」、Llama 4 的「少而大」、Qwen3 的「砍掉共享专家」为什么差这么多?拆开三个可调旋钮——专家总数与粒度、每 token 激活几个、要不要一个万金油共享专家——看各家的取舍逻辑。
MoE 的三个旋钮 · 专家数、激活数、共享专家
「把前馈换成一堆专家」只是一句口号。真正把各家 MoE 区分开的,是三个可调的旋钮。把它们拧到不同位置,就得到 DeepSeek、Llama 4、Qwen3 那几种截然不同的风格。这一章,一个旋钮一个旋钮地拧。
旋钮一:专家「多而小」还是「少而大」
同样是 MoE 层,你可以拆成很多个小专家,也可以拆成几个大专家。两种极端并存:
| 模型 | 路由专家总数 | 单个专家的中间维度 | 风格 |
|---|---|---|---|
| DeepSeek-V3 | 256 | 2048(小) | 多而小(细粒度) |
| Qwen3 235B | 128 | 中等 | 偏多 |
| Llama 4 Maverick | 8 | 8192(大) | 少而大 |
DeepSeek 走的是细粒度(fine-grained)路线:把前馈切成 256 个小专家。Llama 4 走的是经典路线:8 个大专家。
为什么 DeepSeek 偏爱「多而小」?DeepSeekMoE 论文的论证很妙:专家越多、越小,能组合出的「专家搭配」就越多。8 选 2,只有 28 种组合;256 选 8,组合数是个天文数字。组合空间越大,不同 token 越能被路由到更贴合自己的专家子集,专家也越能各自深度专精(一个管代码缩进、一个管化学式、一个管古文……),而不是每个都被迫当「样样通样样松」的万金油。代价是:小专家更多,路由和工程调度更复杂。
旋钮二:每个 token 激活几个(top-k)
选出总专家后,还要定每个 token 实际激活几个。这个数直接决定「每步算多少」:
| 模型 | 每 token 激活(路由专家) | 备注 |
|---|---|---|
| Switch Transformer | 1 | 最省,top-1 |
| Llama 4 Maverick | 2 | |
| DeepSeek-V3 | 8 | + 1 个共享(见旋钮三)= 实际 9 个 |
| Qwen3 235B | 8 |
激活越多,每个 token 能调用的「脑力」越多、表达越强,但每步计算也越大。这就是上一章那张「总参数 vs 激活参数」表背后的旋钮:DeepSeek-V3 的 37B 激活,正是「256 里激活 8+1、每个 2048 维」乘出来的结果。
旋钮一和旋钮二要一起看。DeepSeek 的「256 个小专家、激活 8+1」和 Llama 4 的「8 个大专家、激活 2」,可能激活参数量相近,但风格迥异:前者是「从一大群专才里点几个」,后者是「从几个通才里点一两个」。前者赌的是「专精 + 组合」,后者赌的是「简单 + 稳健」。
旋钮三:要不要一个「万金油」共享专家
这是最能体现设计哲学分歧的一个旋钮。
共享专家(shared expert)是一个永远激活、每个 token 都过的专家,叠在路由选出的那几个之上。DeepSeek、GLM-4.5、Kimi K2 都留了共享专家(通常 1 个)。
它的道理是:语言里有大量「谁都用得到」的通用知识(基本语法、常见搭配)。如果没有共享专家,那这些通用能力就得在每个路由专家里各学一遍——冗余、浪费。给一个专家「专门负责通用」,常驻在线,就把通用知识从路由专家身上卸下来,让路由专家腾出手去专精。分工更干净。
可 Qwen3 偏偏把共享专家砍了。Qwen 团队在其报告里说得很坦诚:他们没观察到共享专家带来足够明显的收益,对它在优化上的好处「拿不准」,于是干脆去掉、图个简单。Llama 4 同样没有共享专家。
同一个设计,DeepSeek 视为提升专精的关键,Qwen3 觉得可有可无——这正是「本质差异」最生动的地方:不是谁对谁错,而是在各自的训练配方和规模下,这个零件的边际收益不一样。这类「一家坚持、一家放弃」的分歧,恰恰是读架构最有意思的信号。
三个旋钮,拧出三种性格
把三个旋钮并到一张表,各家的「性格」就跃然纸上:
| 模型 | 专家(总/激活) | 粒度 | 共享专家 | 一句话性格 |
|---|---|---|---|---|
| DeepSeek-V3 | 256 / 8 | 小(细粒度) | 有(1) | 多而小 + 共享:极致专精与组合 |
| Llama 4 Maverick | 8 / 2 | 大 | 无 | 少而大:经典、稳健、好实现 |
| Qwen3 235B | 128 / 8 | 中 | 无(主动砍掉) | 偏多但从简,不赌共享专家 |
| GLM-4.5 | 多 | —— | 有 | 借鉴 DeepSeek 路线 |
读到这儿,你应该有个体会:「用不用 MoE」只是第一层;真正见功力的是这三个旋钮怎么拧。 而拧法背后,是各家对「专精 vs 简单」「组合能力 vs 工程复杂度」的不同下注。
还差一块:拧完旋钮,怎么让它训得起来
三个旋钮定了 MoE 的「形状」,但 MoE 有个众所周知的老大难:训练时,路由器很容易「偏心」——把绝大多数 token 都塞给少数几个热门专家,剩下的专家「饿死」、学不到东西,几百个专家白设。这叫负载不均衡,是 MoE 能不能训好的命门。各家(尤其 DeepSeek)为此发明了一整套招数,包括一个漂亮的「无辅助损失」方案。这是下一章。👉 让 MoE 训得稳、又均衡
参考文献
- [1] Dai et al. “DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models.” 2024. arXiv:2401.06066. —— 细粒度专家 + 共享专家的论证。
- [2] DeepSeek-AI. “DeepSeek-V3 Technical Report.” 2024. arXiv:2412.19437. —— 256 专家、激活 8+1 的具体配置。
- [3] Fedus et al. “Switch Transformers.” JMLR 2022. arXiv:2101.03961. —— top-1 路由。
- [4] Qwen Team. “Qwen3 Technical Report.” 2025. arXiv:2505.09388. —— 去掉共享专家的说明。
- [5] Raschka, S. “The Big LLM Architecture Comparison.” 2025. https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison —— 各模型专家配置的横向对比。