MoE 模型硬件要求:显存按总参数算,速度按激活参数算
更新于 2026-09-10 · 核实于 2026-09-10
MoE(混合专家)模型的模型卡里永远有两个参数数字:总参数和激活参数。新手最常见的错误是拿错数字——用激活参数算显存,买完卡发现装不下;或者用总参数估速度,以为会慢得没法用。两个数字各管一件事:容量看总参数,速度看激活参数。本文用 Qwen3-30B-A3B、gpt-oss-120b、DeepSeek-R1 三个代表,把这条规则算到具体数字。所有显存与速度数字均按我们显存计算器的同一套公式:权重 = 参数量 × 每参数字节数,加 KV 缓存和约 1.5GB 运行时开销;速度数字一律是理论估算,实际受框架和驱动影响,误差 ±30%。
MoE 是什么:60 秒版本
稠密模型的每个 token 都经过全部参数。MoE 模型把前馈层换成几十上百个「专家」,每个 token 由一个路由器挑出其中几个参与计算:
| 模型 | 总参数 | 激活参数 | 专家结构 |
|---|---|---|---|
| Qwen3-30B-A3B | 30.5B | 3.3B | 128 专家,每 token 激活 8 |
| gpt-oss-20b | 20.9B | 3.6B | 32 专家,每 token 激活 4 |
| gpt-oss-120b | 116.8B | 5.1B | 128 专家,每 token 激活 4 |
| DeepSeek-R1 | 671B | 37B | 256 路由专家 + 1 共享,激活 8 |
这个设计的目的是把「知识容量」和「每 token 计算量」解耦:总参数决定模型知道多少,激活参数决定每个 token 花多少算力和带宽。硬件上的两条推论,正是本文的标题。
规则一:显存按总参数算
为什么激活 3.3B 的 Qwen3-30B-A3B 不能装进 8GB 显卡?因为下一个 token 会路由到哪 8 个专家,是生成时才决定的。你不知道谁会出场,就得让全部 128 个专家随时待命——30.5B 参数一个都不能少地驻留在显存里。「只加载激活参数」在现有推理框架里不成立。
按公式跑一遍(总量 = 权重 + 8K 上下文 KV + 1.5GB 开销):
| 模型 | Q8_0 | Q4_K_M | Q3_K_M | Q2_K |
|---|---|---|---|---|
| Qwen3-30B-A3B | 34.7GB | 21.0GB | 17.6GB | 14.4GB |
| gpt-oss-20b | 24.1GB | 14.7GB | 12.4GB | 10.2GB |
| gpt-oss-120b | 126.3GB | 73.6GB | 60.5GB | 48.4GB |
| DeepSeek-R1 | 715.9GB | 413.1GB | 337.6GB | 268.0GB |
| 对比:Qwen3-32B(稠密) | 38.5GB | 23.7GB | 20.0GB | 16.6GB |
对照可用显存(独显取标称,Mac 统一内存 ×0.75)逐档过一遍:
- gpt-oss-20b:Q4 总量 14.7GB,16GB 显卡(RTX 4070 Ti Super)刚好 tight;OpenAI 官方的原生 MXFP4 版本更小,官方口径是 16GB 内存即可运行。12GB 显卡只能 Q2(10.2GB,tight),质量损失明显。
- Qwen3-30B-A3B:Q4 总量 21.0GB,单张 24GB(3090/4090)tight;16GB 要降到 Q2(14.4GB);32GB 的 RTX 5090 可以舒适跑 Q5_K_M(24.1GB)。Mac mini M4 Pro 48GB(可用 36GB)连 Q8 都装得下。
- gpt-oss-120b:这是 GSC 上被问得最多的一个。Q4_K_M 总量 73.6GB——4×24GB(96GB)舒适,单张 A100/H100 80GB 刚好 tight,96GB Mac Studio(可用 72GB)差 1.6GB 装不下 Q4,只能 Q3(60.5GB,tight)。OpenAI 官方的原生 MXFP4 版本权重约 60GB,所以官方敢说「单张 80GB 显卡可跑」——两条路线数字都对,别混着比。Q2_K 约 48.4GB,96GB Mac 舒适,双 24GB(48GB)仍差一口气。
- DeepSeek-R1:Q4 约 413GB,18× 3090 或 6× A100 80GB——这属于另一个量级的工程,细节有专文。
注意最后一行:同为「30B 档」,MoE 的 Qwen3-30B-A3B 显存只比稠密 32B 省 2.7GB。MoE 不解决容量问题,它解决的是速度问题。
规则二:速度按激活参数算
生成是带宽受限的:每产出一个 token,硬件要把参与计算的权重从显存里读一遍。理论上限 ≈ 带宽 × 0.75 ÷ 每 token 读取的权重字节数。稠密模型读全部,MoE 只读激活的那部分——Q4 下:
| 模型 | 每 token 读取 | RTX 4090 | RTX 3060 | M3 Ultra 96GB |
|---|---|---|---|---|
| Qwen3-30B-A3B | 2.0GB | 约 374 tok/s | 约 134 tok/s | 约 304 tok/s |
| gpt-oss-20b | 2.2GB | 约 343 tok/s | 约 122 tok/s | 约 279 tok/s |
| gpt-oss-120b | 3.1GB | 约 242 tok/s | 约 86 tok/s | 约 197 tok/s |
| DeepSeek-R1 | 22.7GB | 约 33 tok/s¹ | 约 12 tok/s¹ | 约 27 tok/s¹ |
| 对比:Qwen3-32B(稠密) | 20.1GB | 约 38 tok/s | 约 13 tok/s | 约 31 tok/s |
(理论估算 ±30%;¹ R1 的列只有数学意义——这些卡装不下它,见下文。)
两组对比值得记住:
- 同档对决:Qwen3-30B-A3B 和稠密 Qwen3-32B 占用显存几乎一样,但每 token 读取量差 10 倍,同卡理论速度也差 10 倍。这就是 MoE 的全部意义。
- 跨档反差:gpt-oss-120b 是个 117B 的模型,在 Mac Studio M3 Ultra 上理论约 197 tok/s——比 32B 稠密模型在 RTX 4090 上还快 5 倍。「百亿参数」和「跑不动」之间没有必然联系,前提是你付得起 74GB 的容量门票。
为什么 MoE 对带宽友好
把上面的公式倒过来看:生成速度 = 带宽 ÷ 每 token 字节数。提升速度只有两条路——加带宽(贵),或者减每 token 字节数(MoE 干的就是这个)。
这对三类硬件尤其重要:
- Mac 统一内存。苹果芯片的带宽只有同价位显卡的三分之一到一半,稠密大模型在 Mac 上普遍偏慢;但 MoE 把每 token 读取量压到 2–3GB,273–819GB/s 的带宽突然就够用了。gpt-oss-120b 几乎是 M3 Ultra 的绝配:96GB 刚好装下 Q3/MXFP4,819GB/s 理论能跑约 197 tok/s(±30%)。
- CPU 卸载。部分卸载到内存时,等效带宽塌缩到系统内存那一档(按 80GB/s 口径)。稠密 32B 在这里理论只有约 3 tok/s,没法用;而 gpt-oss-120b 卸载后理论约 19 tok/s,Qwen3-30B-A3B 约 30 tok/s(±30%)——大内存主机跑 MoE 是「穷人 120B」的经典玩法,详细取舍见 CPU 卸载值不值。
- 多卡。多卡等效带宽叠加(×0.85 损耗),MoE 让这份带宽只服务激活参数。但注意:MoE 每 token 要跨卡路由,通信开销比稠密张量并行更敏感,实际速度会比理论值再多打一截折扣。
三个只针对 MoE 的坑
坑一:拿激活参数算显存。「30B-A3B 只用 3B,8GB 够了」——错,装的是 30.5B。这是 MoE 相关问答里出现率最高的错误,买卡前先用显卡检查器按总参数核一遍。
坑二:以为 MoE 的 KV 缓存也「激活」。 KV 缓存跟专家无关,由层数、KV 头数、上下文长度决定。好消息是这三个 MoE 代表的 KV 都很小:gpt-oss-120b 标准公式 8K 上下文只占 0.6GB(它一半层用滑窗注意力,实际更小),128K 也就约 9.7GB;Qwen3-30B-A3B 开满 32K 上下文约 3.2GB;R1 靠 MLA 把 128K 压到约 9.2GB。MoE 的显存压力几乎全在权重,上下文规划很宽松——细节见 KV 缓存详解。
坑三:把理论速度当承诺。 带宽公式给的是上限,±30% 是对稠密模型的口径。MoE 还要再扣三笔:路由器本身的计算、在显存里跳读不同专家导致的访存局部性下降、以及框架对 MoE 优化的成熟度。gpt-oss-120b 理论 242 tok/s(4090)不代表你能看到 242——把它当排序依据,别当验收标准。
按显卡快速选型
- 12GB(RTX 3060):gpt-oss-20b Q2(10.2GB,tight)。这个档位的 MoE 体验一般,不如老老实实跑 8B 稠密 Q4。
- 16GB(4070 Ti Super):gpt-oss-20b Q4(14.7GB,tight)——16GB 卡第一次能跑「20B 档」模型且速度很快,这是 MoE 带来的新甜点。
- 24GB(3090/4090):Qwen3-30B-A3B Q4(21.0GB,tight),理论 350+ tok/s,单卡体验的天花板级别;gpt-oss-120b 想都别想。
- 32GB(RTX 5090):Qwen3-30B-A3B Q5 舒适,或开满 32K 上下文跑 Q4。
- 48–96GB:gpt-oss-120b 的门票区。4×24GB、A100 80GB、96GB Mac Studio(Q3/MXFP4)各是一条路,预算差异巨大,用成本计算器和 API 价格对比后再决定。
- 更大:DeepSeek-R1 请直接读专文,结论不变:蒸馏版或 API。
一句话结论
MoE 的硬件账要拆成两笔:显存一分钱不少,按总参数付;速度捡到便宜,按激活参数跑。所以它不适合帮你「省钱装下大模型」,而是让「装得下大模型的硬件」跑出 3–10 倍的速度——Mac Studio 跑 gpt-oss-120b 比显卡跑 32B 稠密还快,就是这条规则最直观的证明。
常见问题
gpt-oss-120b 需要多少显存?
按本站公式,Q4_K_M 总量约 74GB(权重 71.5GB + KV 缓存与开销),需要 4×24GB 显卡或一张 A100/H100 80GB(tight)。OpenAI 官方的原生 MXFP4 版本权重约 60GB,单张 80GB 卡即可运行。Q2_K 约 48GB,96GB Mac Studio 勉强进入可用区。
MoE 模型可以只把激活参数装进显存吗?
不能。每个 token 路由到哪几个专家是生成时动态决定的,无法预知,所以全部专家必须常驻显存。激活参数决定的是速度,不是容量——gpt-oss-120b 显存按 117B 算,速度按 5.1B 算。
Qwen3-30B-A3B 和 Qwen3-32B(稠密)硬件上差多少?
Q4 总量约 21GB 对 24GB,差距不大;但每 token 读取量 2.0GB 对 20.1GB,理论速度差约 10 倍(同一张 RTX 4090 上约 374 tok/s 对 38 tok/s,理论估算 ±30%)。硬件层面 MoE 几乎全面占优。
MoE 模型适合 CPU 卸载吗?
比稠密模型友好得多。卸载后瓶颈是系统内存带宽(按 80GB/s 口径),gpt-oss-120b 理论约 19 tok/s,Qwen3-30B-A3B 约 30 tok/s——还能用;而 32B 稠密模型同样条件下只有约 3 tok/s(理论估算 ±30%)。
为什么 MoE 的实际速度常低于理论值?
带宽公式给的是上限(±30%)。MoE 还有额外损耗:专家路由的计算开销、在显存中跳读不同专家权重的访存局部性变差,多卡时每个 token 都要跨卡路由激活值。实际速度往往比同激活参数的稠密模型再低一截。