GPUFits

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-A3B30.5B3.3B128 专家,每 token 激活 8
gpt-oss-20b20.9B3.6B32 专家,每 token 激活 4
gpt-oss-120b116.8B5.1B128 专家,每 token 激活 4
DeepSeek-R1671B37B256 路由专家 + 1 共享,激活 8

这个设计的目的是把「知识容量」和「每 token 计算量」解耦:总参数决定模型知道多少,激活参数决定每个 token 花多少算力和带宽。硬件上的两条推论,正是本文的标题。

规则一:显存按总参数算

为什么激活 3.3B 的 Qwen3-30B-A3B 不能装进 8GB 显卡?因为下一个 token 会路由到哪 8 个专家,是生成时才决定的。你不知道谁会出场,就得让全部 128 个专家随时待命——30.5B 参数一个都不能少地驻留在显存里。「只加载激活参数」在现有推理框架里不成立。

按公式跑一遍(总量 = 权重 + 8K 上下文 KV + 1.5GB 开销):

模型Q8_0Q4_K_MQ3_K_MQ2_K
Qwen3-30B-A3B34.7GB21.0GB17.6GB14.4GB
gpt-oss-20b24.1GB14.7GB12.4GB10.2GB
gpt-oss-120b126.3GB73.6GB60.5GB48.4GB
DeepSeek-R1715.9GB413.1GB337.6GB268.0GB
对比:Qwen3-32B(稠密)38.5GB23.7GB20.0GB16.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 4090RTX 3060M3 Ultra 96GB
Qwen3-30B-A3B2.0GB约 374 tok/s约 134 tok/s约 304 tok/s
gpt-oss-20b2.2GB约 343 tok/s约 122 tok/s约 279 tok/s
gpt-oss-120b3.1GB约 242 tok/s约 86 tok/s约 197 tok/s
DeepSeek-R122.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 干的就是这个)。

这对三类硬件尤其重要:

  1. Mac 统一内存。苹果芯片的带宽只有同价位显卡的三分之一到一半,稠密大模型在 Mac 上普遍偏慢;但 MoE 把每 token 读取量压到 2–3GB,273–819GB/s 的带宽突然就够用了。gpt-oss-120b 几乎是 M3 Ultra 的绝配:96GB 刚好装下 Q3/MXFP4,819GB/s 理论能跑约 197 tok/s(±30%)。
  2. CPU 卸载。部分卸载到内存时,等效带宽塌缩到系统内存那一档(按 80GB/s 口径)。稠密 32B 在这里理论只有约 3 tok/s,没法用;而 gpt-oss-120b 卸载后理论约 19 tok/s,Qwen3-30B-A3B 约 30 tok/s(±30%)——大内存主机跑 MoE 是「穷人 120B」的经典玩法,详细取舍见 CPU 卸载值不值
  3. 多卡。多卡等效带宽叠加(×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 都要跨卡路由激活值。实际速度往往比同激活参数的稠密模型再低一截。

来源