896 选 16
Stable LatentMoE 把稀疏度推到 1.8%——专家总数比 DeepSeek-V3 多 3.5 倍,激活率却更低。组合空间、路由代价与「潜空间」这个词的分量。
896 选 16
换一条主线。注意力那边解决的是「历史怎么装下」,MoE 这边解决的是「参数怎么堆上去而算力不跟着爆炸」。
K3 在这条线上给出的数字是:896 个路由专家,每 token 激活 16 个,另加 2 个常驻的共享专家。
先把它放进坐标系
| 模型 | 路由专家 | 每 token 激活 | 共享专家 | 激活率 |
|---|---|---|---|---|
| Switch Transformer | 若干 | 1 | 无 | —— |
| Llama 4 Maverick | 8 | 2 | 无 | 25% |
| Qwen3 235B | 128 | 8 | 无 | 6.3% |
| DeepSeek-V3 | 256 | 8 | 1 | 3.1% |
| Kimi K3 | 896 | 16 | 2 | 1.8% |
一眼可见的两件事:
- 专家数是 DeepSeek-V3 的 3.5 倍,激活数只翻了一倍——稀疏度被推到目前公开模型里最激进的位置。
- 共享专家从 1 个加到 2 个——在「多而小」的路线上,通用知识需要更强的常驻承载。
对照《AI 大模型解构》里的三个旋钮,K3 是把「旋钮一(多而小)」和「旋钮三(保留共享)」都拧到了 DeepSeek 路线的更远处。
为什么「更多、更小」有道理
DeepSeekMoE 论文那套论证在 K3 上被推到了极致:专家越多越小,能组合出的「专家搭配」就越多。
粗算一下组合数:
- 8 选 2: 种;
- 256 选 8:约 种;
- 896 选 16:,量级在 上下。
这个数字本身没有实际意义(模型不会真的用满),但它说明的事情是真的:路由的表达空间极大,每个 token 都能被送到一组高度贴合自己的专家那里。代价是每个专家变得很小、很专——一个可能只管代码缩进,一个只管化学式。
代价:路由本身开始变贵
稀疏度不是免费拧的。896 选 16 至少带来三笔额外开销:
- 路由计算:每层都要对 896 个专家打分再取 top-16。相比 8 选 2,这个 softmax 本身就不便宜。
- 通信:分布式推理时,激活的专家散落在不同设备上,token 要被路由过去、算完再收回来。专家越多越分散,all-to-all 通信量越大。在大规模 MoE 里,通信常常比计算更早成为瓶颈。
- 均衡难度:专家越多,越容易出现「少数热门专家吃掉大部分 token、其余饿死」。这是 MoE 的老大难,下一章专门讲。
所以「896 选 16」不是把旋钮往右一拧就完事——它必须配着一整套让路由算得动、传得动、训得稳的工程。这就是名字里 Stable 那个词的来历。
「Latent」是什么意思
架构全名叫 Stable LatentMoE。Latent(潜空间)这个词在这里的分量,技术报告没有充分展开,本专栏不做过度推断。可以确定的是它与「把专家的表示或路由决策放到一个低维潜空间里处理」这一族思路同源——这正是 MLA 里 Latent 的同一个词根:用低维表示换取存储与计算上的便宜。
中文技术社区已有若干对 K3 的架构拆解文章,提到 SiTU-GLU 激活函数、分位数均衡(Quantile Balancing)等具体机制。这些未见于官方技术报告摘要与模型卡,本专栏将其归入「二手整理、待核」,不作为事实陈述。要确认它们,得去读权重配置与完整论文正文。
104B 激活是怎么来的
回到规格表那行「104B 激活参数」。它由三部分构成:
- 非 MoE 部分——注意力层、归一化、嵌入与输出层,这些每 token 都要全额计算;
- 16 个路由专家的参数;
- 2 个共享专家的参数。
2.8T 里只有 104B 参与每一步前向,比例约 3.7%。这就是 MoE 的全部意义:参数量按存储算,计算量按激活算,两者解耦。 K3 把这个解耦推到了目前的极限。
下一章讲这套极端稀疏怎么才能训得起来。👉 让它训得稳
参考文献
- [1] Moonshot AI. “Kimi K3: Open Frontier Intelligence.” 2026. arXiv:2607.24653. —— 「16 of 896 routed experts」出自摘要。
- [2] Hugging Face 模型卡:moonshotai/Kimi-K3 —— 2 个共享专家。
- [3] Dai et al. “DeepSeekMoE.” 2024. arXiv:2401.06066. —— 细粒度专家 + 共享专家的论证。