
一个总参数 30B 的模型,为什么每个 token 只激活 3B 参数,却仍能用上大模型的容量?NVIDIA 在技术博客中给出的答案是架构:稠密模型与 MoE 对参数的组织方式不同,而这种差异对吞吐、显存成本和 serving 复杂度的影响,往往比参数总量更大。
机制上的区别很直接。稠密模型在每个 token 的前向计算中激活全部参数,27B 模型的 27B 参数在每个 token 上都要跑一遍,每个解码层只有一个共享的前馈网络。MoE 则把这一层换成多个前馈网络(即专家,常见 8、64 或 128 个),前面加一个学习得到的路由网络,为每个 token 选出得分最高的 top-k 个专家,其余在该层跳过。需要注意的是,注意力机制仍然完整经过,模型卡上写的“3B 激活参数”包含了注意力和嵌入权重,而不只是被选中的专家。
真正的差异在于两个量被解耦。稠密模型的显存与计算同步增长;MoE 让显存对应总参数、计算对应激活参数:所有专家都要装进显存,显存成本是预付的,而每个 token 的计算只随真正触发的专家增长,闲置专家不产生运行开销。代价是 serving 更复杂,且所有专家必须同时驻留 GPU,留给 KV 缓存的空间比同等规模的稠密模型更少。
性能表现要分场景看。batch size 为 1 的解码受显存带宽而非算力限制,MoE 每 token 需要读取的权重字节更少,优势明显;并发升高后,一批 token 合计会用到网络中大部分专家,优势收窄,但每 token 工作量减少这一点仍然成立——MoE 在整个 batch 区间保持吞吐优势,只是相对优化良好的稠密模型,延迟优势在高并发下被压缩。NVIDIA 引用的 Artificial Analysis 数据(10K token 输入,2026 年 8 月 31 日抓取,仅统计 NVIDIA GPU 供应商)显示,同为约 30B 总参数的两类模型,输出速度区间并不重叠。
一个具体的对照是 Nemotron 3.5 Lightning:它采用混合结构,多数层用 Mamba-2 替代注意力,以恒定大小的循环状态取代不断增长的 KV 缓存,长上下文下的显存曲线因此改变。按上述第三方数据,它的输出速度是对方的四到五倍,价格约为十四分之一,但通用能力评分不到对方一半——这对批量执行明确定义步骤的执行层是合适的,对需要一次做对的高难度推理则不合适。
选型还要考虑微调与量化。稠密模型全参微调更简单,梯度流动均匀;MoE 全参微调可能让路由器失衡,某些专家被过度偏好甚至被完全弃用,LoRA/PEFT 或直接冻结路由器可以缓解。量化方面,两种架构对精度敏感的模块并不相同:MoE 是路由器,微小扰动就会翻转离散的路由决策;混合注意力模型则是循环投影。实际压缩比也不能简单按位数折算——若检查点本身已是 FP8,4-bit 只能再省约 1.7 倍,而非 4 倍。
WeChat
Profile