今年 8 月,DeepSeek 发布了 DeepSeek-V4-Pro 的正式版:1.6 万亿参数,权重开放,谁都可以下载。月之暗面的 Kimi K3 更是达到 2.8 万亿。这种规模的模型,看起来根本搬不动。可是,V4-Pro 每写一个词,只用 490 亿参数:3%。
这不是特例。2026 年几乎所有大型开放模型都是这样工作的:DeepSeek、Kimi、通义千问(Qwen)、Llama 4、OpenAI 的 gpt-oss,还有谷歌中等尺寸的 Gemma 4。它们叫作混合专家模型(Mixture of Experts,简称 MoE)。于是,这个傻问题非问不可:既然只用 3%,剩下的 97% 留着干什么?
先说明一点:语言模型读的不是词,而是 token,也就是词的片段。为了不绕晕大家,下文一律说“词”。
一间有专科厨师的厨房
传统的大语言模型,也就是技术人员说的稠密模型,就像一个超大厨师包办所有菜。它每写一个词,整个模型都要干活:所有参数,每一次都用上。
MoE 则是一间有很多厨师和一位厨师长的厨房。订单(也就是词)进来,厨师长看一眼是什么,交给两三位厨师。其余的人休息。
从这个比喻里,能得出本文的两个要点:
- 每道菜只花两位厨师的工夫,而不是全体员工的。所以可以多请很多厨师,每道菜却不会变贵。厨师越多,模型里存的知识就越多。
- 厨房得给所有人都留位置,不管他们干不干活。这个位置就是电脑的内存。休息的厨师不拿工钱,但照样占地方。
换成技术名词:干活的厨师是激活参数,全体员工是总参数。
里面发生了什么
大语言模型是一层层叠起来的,每一层有两部分。第一部分是注意力:每个词看看其他词,理解上下文。第二部分是一个网络,单独处理每个词,模型的大部分参数都在这里。MoE 只改第二部分:把它拆成许多小网络,也就是专家,再加一个路由器,充当厨师长。
路由器给所有专家打分,留下得分最高的几个(Mixtral 是 8 选 2,DeepSeek-V3 是 256 选 8,Kimi K3 是 896 选 16),再按权重把它们的结果混合起来。这个选择对每个词、在每一层都要做一次:同一句话里,每个词可能交给不同的厨师,到了下一层又换一批。
提醒一句,因为这个名字很容易误导:“专家”不是说一个懂医学、另一个懂诗歌。Mixtral 的作者查看了生物、哲学和科学论文这几类文本分别交给了哪些专家,结果没有发现按话题分工。它们真正的分工更奇怪,也更有意思,详见《MoE 的误解》。
为什么大家都在用
因为学习变便宜了。同样的计算预算,MoE 可以拥有多得多的参数,而训练充分的参数越多,模型就越好。谷歌在 2021 年用 Switch Transformer 测过:资源相同的情况下,它的训练速度最高是对应稠密模型的 7 倍,是最大的 T5 的 4 倍。2023 年,Mixtral 8x7B 在论文的所有测试中都追平或超过了 Llama 2 70B(一个 700 亿参数的稠密模型),而它每个词只用 130 亿参数。
这个想法并不新:1991 年就有一篇论文提出了它,作者之一是杰弗里·辛顿。但直到几年前,它都很难训练,动不动就失控。如今它已经是常规做法:
那闭源模型呢,比如 Claude、GPT 或 Gemini?这些公司不公开架构,外人无从得知。例外是 Gemini 1.5 Pro,它的技术报告写明是 MoE。
小字条款:算起来像小模型,占起来像大模型
陷阱就在这里,也是想在自己电脑上跑这些模型的人最容易搞混的地方:
- 计算量取决于激活参数。算得少,每个词就出得快、成本低。
- 占用的内存取决于总参数。所有专家都得装进显卡内存,因为下一个词路由器可能要用到任何一个。
最清楚的例子是 OpenAI 的开放模型 gpt-oss-120b:每个词用 51 亿参数,但总共有 1170 亿。算起来像小模型,占起来像大模型。它能放进一块 80 GB 的服务器 GPU,是因为它的专家权重压缩到了每个参数约 4 位,而不是因为它是 MoE。
试试这个计算器:选一个模型,或者拖动滑块,看看放在哪里才装得下。
有两组值得对比,因为它们出自同一个家族:Qwen3-32B(稠密)对比 Qwen3-30B-A3B(MoE),以及 Gemma 4 31B 对比 Gemma 4 26B A4B。每组占的内存差不多,但 MoE 每个词的计算量少 8 到 10 倍。谷歌介绍自家的 MoE 时说,它几乎和 40 亿参数的模型一样快。
要是有人说他的模型“只用 5B”,你就问问它占多少内存。这就像炫耀自家厨房很省煤气,却不提它占了一整个工业区。
还是没看明白?看看厨师长怎么分配
什么时候用哪种
如果你用的是 ChatGPT、Claude 或者任何 API,就什么都不用选:你按词付费,MoE 省下的钱(如果有的话)已经体现在价格里了。只有模型要你自己来跑时,这个问题才重要。
| 如果… | 更合适 | 原因 |
|---|---|---|
| 只有一块显卡,内存不多 | 稠密模型 | 内存相同时,稠密模型每个词都能用上全部参数 |
| 用户少,希望每次回答的耗时都一样 | 稠密模型 | 没有路由器,就没有意外:每个词的成本都一样 |
| 要用少量数据再训练(微调) | 稠密模型 | MoE 更早过拟合,调起来也更麻烦 |
| 同时在用的用户多,内存充足 | MoE | 这时每个词省下的计算量就变成了真金白银 |
| 想让每一份计算预算换来最高的质量 | MoE | 存下更多知识,却不用每个词都为它付费 |
三个常见的误解
- “它每个词只用 5B,所以 5B 模型放得下的地方,它也放得下。” 不对:内存由总参数决定。gpt-oss-120b 得给 1170 亿参数都留位置,对话本身的内存还要另算。
- “每个专家精通一个话题。” 不对:在 Mixtral 里,生物、哲学和科学论文这几类文本分给各个专家的比例几乎一样。它们实际在做什么,详见《MoE 的误解》。
- “MoE 总是更快。” 它算得少,没错。但用户一多,每个词要找的专家各不相同,几乎每个专家都得读一遍,而最忙的那个专家决定了速度。请用自己的场景实测,别只看模型卡。
三句话总结
- 稠密模型每个词都用上它的全部;MoE 存得多,用得少。
- 激活参数 → 计算量。总参数 → 内存。 两个数字都要问清楚。
- 内存少、用户少,用稠密模型。内存多、访问量大,或者中间隔着 API,用 MoE。
如果你还不清楚参数或神经元是什么,可以先看这节课:逻辑回归还是神经网络?
现在你知道了:为什么 Kimi K3 有 896 位厨师,每个词却只有十六位干活。其余的都在内存里等着,把 GPU 吃得满满的。
参考资料
查阅于 2026 年 10 月 5 日。计算器的算式是我自己列的:内存 = 总参数 × 位数 ÷ 8;计算量 ≈ 每个词、每个激活参数 2 次运算(Kaplan 等人,公式 2.2)。
- 起源:Jacobs、Jordan、Nowlan 和 Hinton,Neural Computation 3, 79 (1991),doi:10.1162/neco.1991.3.1.79。稀疏门控:Shazeer 等人,arXiv:1701.06538。
- Switch Transformer(4 倍和 7 倍):Fedus、Zoph 和 Shazeer,arXiv:2101.03961。微调时的过拟合:Zoph 等人,ST-MoE,arXiv:2202.08906,第 4 节。
- Mixtral(470 亿和 130 亿,对比 Llama 2 70B;第 5 节:不按话题分工):Jiang 等人,arXiv:2401.04088。
- DeepSeek-V3(6710 亿和 370 亿;256 选 8):arXiv:2412.19437。Gemini 1.5 Pro 是 MoE:arXiv:2403.05530。
- 每个词的计算量:Kaplan 等人,arXiv:2001.08361。
- 官方模型卡:DeepSeek-V4-Pro 和 V4-Flash(以及发布日期)、Kimi K3、Kimi K2、gpt-oss、Qwen3-235B-A22B、Qwen3-30B-A3B、Qwen3-32B、Llama 4、Gemma 4 26B A4B 和 Gemma 4 31B。
**本文是怎么写的:**根据我的笔记,由 Claude 协助调研和撰写。数字来自上面的模型卡和论文。模型更新很快,所以这张表很快就会过时。插图都是原创的。中文版由 Claude 从西班牙语翻译。