术语解构系列·MoE路由

文中模型参数数据查证于2026年7月,主要来自官方模型卡片、GitHub仓库或官方博客。模型规格和API价格都可能变化,具体以厂商最新发布为准。

消费级显卡到底能不能拿来做点正经AI的活?

这个问题不能只看显卡型号,也不能只看模型名字里那个很吓人的参数量。真正要拆成两件事:模型能不能装下,以及装下以后每生成一个token要算多少

很多人看到DeepSeekV3标着671B参数,Qwen3-235B-A22B标着235B参数,Qwen3-Coder-480B-A35B标着480B参数,第一反应是:这肯定不是消费级设备能碰的东西。

但真实情况没这么简单。

这些模型名字里还有一个更容易被忽略的后缀:A3B、A22B、A35B。它说的不是模型下载包有多大,而是每个token大约激活多少参数。

这篇文章要讲的不是“消费级显卡能不能挑战大厂机房”,而是把这笔账拆清楚:为什么有些大模型看起来很大,跑起来却没那么夸张;为什么有些模型激活参数很小,本地还是很难装下。

一、消费级显卡先看两笔账:装不装得下,跑不跑得动

把几个真实模型摆在一起看:

模型架构总参数激活参数每token激活比例
DeepSeekV3/R1MoE671B37B约5.5%
Qwen3-235B-A22BMoE235B22B约9.4%
Qwen3-Coder-480B-A35BMoE480B35B约7.3%
Qwen3-30B-A3BMoE30.5B3.3B约10.8%
Qwen3-32B(对照)稠密32B32B100%

最后一行放了一个稠密模型做对照。Qwen3-32B没有专家、没有路由,32B参数每次都参与计算,激活比例就是100%。

这才是很多人习惯里的“参数量≈计算量”。

但MoE模型不一样。上面几个MoE模型每次真正参与计算的参数,只占总参数的大约5%到11%。

如果DeepSeekV3是一个671B的稠密模型,不管是显存占用还是算力消耗,都会是另一种级别。仅按FP16权重粗略算,671B参数就需要超过1TB空间。可它每个token激活的是37B参数,粗略看主要前馈计算量,更接近一个几十B激活规模的模型,而不是完整671B稠密模型。

这就是消费级显卡选本地模型时最容易混淆的地方:总参数决定你要准备多大的显存/内存去装它,激活参数影响它每个token大概要算多少。

消费级显卡先看两笔账
消费级显卡先看两笔账

MoE(Mixture-of-Experts,混合专家)架构做的就是这件事:模型可以有很大的参数池,但每次只用其中一部分。

二、一个类比:医院不需要让全体医生会诊

理解MoE,最直接的类比是医院分诊。

一家大医院可能有几百名医生,覆盖内科、外科、儿科、皮肤科、精神科等几十个科室。这是医院的规模,对应模型的总参数量

但病人来了,医院不会让所有医生一起会诊。分诊台会先判断这个病人的情况,再派几个对口医生处理。这对应模型的激活参数量

MoE路由机制:不是所有专家都上场
MoE路由机制:不是所有专家都上场

医院的规模决定了它能覆盖多广的问题;但看一个病人要花多少医疗资源,主要取决于实际出诊的那几位医生,而不是医院挂牌的医生总数。

这套机制翻译回模型架构,对应两个部件:

  • 专家(Experts):模型里的一组前馈网络模块,可以理解成一批科室。Qwen3-30B-A3B有128个专家,Qwen3-Coder-480B-A35B有160个专家,DeepSeekV3的专家规模更大,还额外设置了所有token都会用到的共享专家。
  • 路由器(Router/Gating Network):一个很小的判断网络,负责给每个token打分,决定它该交给哪几个专家处理。它就是模型里的分诊台。

路由不是人工写死的规则。不是程序员规定“中文交给1号专家,代码交给2号专家”,而是模型在训练过程中自己学出来的。它会逐渐学会什么样的token该送去哪些专家。

而且这个决策是逐层、逐token做的。同一句话里的不同字词,甚至同一个词在不同层,都可能被路由到不同的专家组合。

三、路由器怎么决定派谁出诊?

路由器的工作可以拆成三步。

第一步,打分。每个token经过路由器时,路由器会对全部专家各算出一个分数,表示这个专家有多适合处理当前token。

第二步,选择Top-K。模型只保留分数最高的K个专家,其余专家不参与这次计算。模型名里的A3B、A22B、A35B,说的就是每个token大约会激活多少参数。

第三步,加权合并。被选中的几个专家分别处理这个token,再按路由分数把结果加权合并,作为这一层的输出。

几个真实模型的Top-K配置如下:

模型专家总数每次激活
Qwen3-30B-A3B1288
Qwen3-235B-A22B1288
Qwen3-Coder-480B-A35B1608
DeepSeekV3256个路由专家+1个共享专家8个路由专家+共享专家

这里有个容易误解的地方:A22B不是说这个模型只有22B参数,也不是说下载包只有22B大小。它说的是每个token大约激活22B参数。

四、回到显卡:总参数和激活参数,分别决定什么

看懂路由机制后,模型名字里的两个数字就可以拆开看。

数字主要影响什么典型场景
总参数量权重能不能装下本地部署、下载包大小、显存/内存需求
激活参数量每个token大概要算多少本地推理吞吐、服务成本结构、云端定价空间

如果只做一个很粗的数量级估算,可以把主要权重乘加量近似看成:

生成1个token的主要计算量≈2×激活参数量

这个公式不是完整推理成本公式。真实推理还要看注意力计算、KV Cache、上下文长度、batch大小、量化方式、显存带宽和推理框架。但它能帮我们先抓住一个方向:MoE模型的每token计算量,不能简单按总参数估。

如果错把总参数当成稠密模型的计算量来估,和按激活参数估出来的差距大概是:

模型若按总参数当稠密模型估按激活参数粗略估数量级差距
DeepSeekV3671B级37B级约18倍
Qwen3-Coder-480B-A35B480B级35B级约13.7倍
Qwen3-235B-A22B235B级22B级约10.7倍
Qwen3-30B-A3B30.5B级3.3B级约9.2倍

这张表不是说某张显卡上吞吐一定能快这么多倍。它只是在比较两个估算口径:把总参数当稠密模型算,和按激活参数算,差别会有多大。

真实速度还要看显存带宽、量化方式、上下文长度、KV Cache、batch大小和推理框架。但方向是清楚的:MoE让几百B模型的每token主要计算量,落到了几十B甚至几B这个量级。

所以消费级显卡不是完全没有机会。它真正怕的不是“这个模型总参数听起来很大”,而是两个具体限制:量化后权重能不能装进显存/内存,推理框架能不能把激活专家这部分算得足够顺。

五、MoE帮你省计算量,但不会自动帮你省显存

MoE省的是计算量,不是自动省显存
MoE省的是计算量,不是自动省显存

到这里,MoE听起来很像免费午餐:参数很多,算得却很少。

但对本地部署用户来说,真正的痛点在另一边:

MoE主要省的是每token计算量,不会自动省掉加载完整权重所需的显存和内存。

原因很简单。路由器要临时决定每个token交给哪几个专家,所以专家权重通常需要提前处在可访问状态。哪怕这一次某个专家没有被选中,它的权重仍然是模型的一部分。

回到医院的类比:医院不会因为今天骨科暂时没有病人,就把骨科医生和设备全部撤走。所有科室都要保持可用,才能应对下一秒来的病人。

所以DeepSeekV3那671B参数,哪怕每个token只激活37B,本地部署仍然要面对671B主模型权重。Qwen3-Coder-480B-A35B同理,480B的下载包和权重加载需求,不会因为激活参数只有35B就变成35B模型。

这也是很多人用消费级显卡跑MoE模型时最容易踩的坑:模型看起来激活参数不大,但下载包巨大;推理计算量还好,但装载权重很吃内存;单卡可能算得动激活部分,却放不下完整模型。

维度MoE模型稠密模型
权重加载主要看总参数主要看总参数
每token主要计算量主要看激活参数主要看总参数
本地部署难点装下完整专家池,并让框架高效调度装下完整模型,并持续高吞吐计算
云端服务优势更容易把单位token计算成本压下来成本和总参数更直接绑定

这也解释了一个看起来矛盾的现象:MoE模型本地部署时不一定更容易装下,但在模型已经装得下、推理框架也能有效处理MoE路由和专家加载的前提下,Decode阶段可能比同等总参数的稠密模型更轻。

关键前提是:装得下,而且框架能跑好。

六、消费级显卡到底该怎么判断

看到MoE,或者模型名里的A3B、A22B、A35B后缀,不需要一上来就研究路由器怎么训练、专家怎么分工。先看三个问题。

第一,量化后的完整权重能不能放进你的显存/内存?

这是本地部署的第一道门槛。MoE不会因为每次只激活少数专家,就只下载或只加载那几个专家。总参数依然决定权重体积的大盘——你要先把完整权重放进显存、统一内存,或者通过CPU offload、多卡切分等方式让它可访问。

第二,你的推理框架对MoE支持得好不好?

同样一张消费级显卡,换不同量化格式、不同上下文长度、不同推理框架,体验可能差很多。MoE模型不是只看参数表就能判断速度,框架能不能高效调度专家很关键。

第三,如果你不是本地跑,而是用云端API,价格按什么算?

云端API不是按你的显卡配置计费。激活参数量影响的是服务商的推理成本结构。你真正付多少钱,还要看模型单价、输入token、输出token、缓存命中、调用平台和服务商定价。所以不能简单说“激活参数决定账单”,更准确的说法是:激活参数给厂商压低每token服务成本创造了空间,但最终价格仍然是商业定价。

厂商发布模型时喜欢强调总参数量,因为这个数字最震撼,也最容易传播。但对使用者来说,还要继续追问那个更小、更关键的数字:

这个模型每个token到底激活多少参数?

总参数告诉你模型有多大的专家池,激活参数告诉你每次实际叫了多少专家来干活。

写在最后

消费级显卡能不能做正经AI的活?

可以,但它适合做的是边界清楚的本地推理、代码辅助、资料整理、离线问答、批量改写这类任务,不是拿来训练几百B模型,也不是指望所有大模型都能无脑塞进去。

MoE把这件事拆得更清楚。它更像一个专家池,池子可以很大,但每次只叫一小部分专家出来处理当前token。

这就是MoE真正改变的地方:它把“总参数”和“每次计算成本”之间的绑定关系松开了。

总参数决定它装不装得下,激活参数影响它跑起来要算多少。理解了这一点,再看到“几百B参数”的发布会数字,就不要只被总参数吓住,也不要只看激活参数就以为本地随便跑。

真正该问的是:量化后权重多大?每token激活多少?我的显卡和内存能不能放下?推理框架能不能把这套MoE结构跑好?


本文是“术语解构”系列的一篇。上一篇聊了不同算力卡一小时能生成多少token,这一篇接着往下问:同样一张消费级显卡,遇到MoE模型,这笔账该怎么重新算。

你现在本地跑模型用的是什么显卡?遇到过“模型看起来不大,但怎么都跑不顺”的情况吗?评论区可以说说你的配置。

参考资料

资料边界说明: 文中DeepSeekV3、Qwen3系列的总参数与激活参数数字,均交叉核对了官方GitHub仓库、模型卡和技术报告,口径一致;“生成1个token的计算量≈2×激活参数量”是忽略注意力计算、KV Cache等因素的粗略近似,仅用于建立数量级直觉,不是精确的推理成本公式。参考资料中的“Qwen官网MoE页面”(qwen.moe)经查证并非阿里官方域名,而是第三方整理的模型总览页面,数字与官方博客、HuggingFace模型卡交叉核对一致,但按来源分级应视为二手信源;DeepSeek官方API的缓存计费细则以其最新公告为准,具体价格可能随时间调整。