💡

文章摘要

MoE 模型在生产环境中部署时,总参数量决定显存占用,激活参数量决定推理吞吐——这两个维度在稠密模型中是同一个数字,在 MoE 中被彻底解耦。本文面向正在评估或已经决定部署 MoE 模型的工程团队,从容量规划的第一步到专家缓存、量化分层、多 GPU 拓扑选择,给出可执行的决策框架。所有结论基于 2025-2026 年主流推理框架(vLLM、TensorRT-LLM、SGLang)的一手工程数据和 DeepSeek-V3/V4、Kimi K2、Llama 4、Mistral Large 3 等模型的部署实践。

1为什么 MoE 部署不能用稠密模型的经验

你在稠密模型上积累的容量规划直觉,在 MoE 上会给出错误答案。 这是团队在部署第一个 MoE 模型时最常踩的坑。

在稠密模型的世界里,一个 70B 参数的模型意味着:显存需要约 140GB(BF16)或 35GB(INT4),推理时每个 token 激活 70B 参数,吞吐和显存是同一个数字的两个面。你可以根据"70B"这一个数字推算出 GPU 数量、batch size 和延迟预期。

MoE 打破了这个等式。一个 1T 总参数 / 32B 激活参数的 MoE 模型:

  • 显存维度:需要加载全部 1T 参数的权重,BF16 下约 2TB 显存——这是 8×H100 80GB 的整节点配置
  • 计算维度:每个 token 只激活 32B 参数,推理吞吐接近一个 32B 稠密模型
  • 结果:你花的硬件成本是 1T 级别的,但拿到的吞吐是 32B 级别的

这不是缺陷,而是 MoE 的设计意图——用显存换知识容量,同时保持推理效率。但如果你用稠密模型的"参数量 = 一切"来规划,要么显存算错导致模型放不下,要么吞吐预期算错导致 SLA 违约。根据 Ertas AI 的部署分析 Mixture of Experts (MoE) Architecture in 2026,"Memory and inference cost decouple. With dense models, a 70B model is '70B-class' both in memory cost and inference cost. With MoE, a 1T-A32B model is 1T-class in memory cost but 32B-class in inference throughput."

本文的目标:给出一套从"我选了一个 MoE 模型"到"它在生产环境稳定服务"的完整决策路径。不重复 MoE 的架构原理(路由机制、Top-K 选择、辅助损失等已在 llm-013 中覆盖),只聚焦部署工程中的内存管理、专家调度、框架选型和容量规划。

图表加载中…

💡 一句话理解

容量规划的第一条规则:MoE 模型必须同时追踪两个数字——总参数量(决定显存和 GPU 数量)和激活参数量(决定吞吐和延迟)。只看其中一个都会导致部署失败。

2内存-计算解耦的工程后果

内存和计算的解耦不只是让容量规划变复杂——它从根本上改变了 MoE 部署中每一个工程决策的权衡方向。

GPU 利用率的双峰特征。稠密模型推理时,所有参数都在参与计算,GPU 利用率高且稳定。MoE 推理时,每个 token 只激活一小部分专家,其余专家的权重安静地躺在显存里不做任何事。这意味着:

  • GPU 的 HBM 带宽被占满(所有专家的权重都需要可寻址)
  • 但计算单元(Tensor Core)的利用率可能只有 3-10%
  • 瓶颈从"计算不够快"变成了"显存带宽不够宽"

Batch size 的放大效应。稠密模型中,增大 batch size 会线性增加计算量和显存占用。MoE 中,增大 batch size 主要增加激活专家的计算量,非激活专家的显存占用不变。这意味着 MoEbatch size 的敏感度更低——你可以在不显著增加延迟的情况下塞入更多请求,直到激活专家的计算成为瓶颈。

多请求并发的经济模型。一个 MoE 推理服务同时处理 100 个并发请求时,这 100 个请求共享同一套专家权重。每个请求只贡献自己激活的那部分计算量。这与稠密模型"每个请求都要跑完整模型"的经济模型完全不同——MoE 的边际服务成本随并发数增长的速度更慢。

维度稠密模型MoE 模型部署含义

显存占用/token

∝ 总参数量

∝ 总参数量(不变)

MoE 不因激活少而省显存

计算量/token

∝ 总参数量

∝ 激活参数量

MoE 吞吐由激活参数决定

GPU 利用率瓶颈

计算单元

HBM 带宽

MoE 需要高带宽显存

Batch size 敏感度

高(线性增长)

低(非激活部分不变)

MoE 可承受更大 batch

并发边际成本

线性增长

亚线性增长

MoE 高并发更经济

量化收益分布

均匀

不均匀(专家差异大)

MoE 需要分层量化策略

3容量规划:从模型参数到 GPU 配置

容量规划是 MoE 部署的第一步,也是最容易出错的一步。下面给出一个可执行的计算框架。

第一步:计算显存需求MoE 模型的显存需求由总参数量决定,与激活参数量无关。以 DeepSeek-V3 为例:

  • 总参数 671B,BF16 精度下权重占用约 1.34TB
  • 加上 KV Cache(取决于上下文长度和并发数)、激活值、框架开销,实际显存需求约 1.6-1.8TB
  • 最低配置:8×H100 80GB(共 640GB)不够,需要 2 节点通过 InfiniBand 互联;或 INT4 量化后单节点 8×H100 80GB 可容纳

根据 DeepSeek 官方技术报告 DeepSeek-V3 Technical ReportDeepSeek-V3 在 2048 个 GPU 上完成训练,训练成本仅约 560 万美元(2.788M H800 GPU hours)。推理部署时,其 671B 总参数在 BF16 下需要约 1.34TB 显存,这与我们的计算一致。

第二步:计算吞吐需求。吞吐由激活参数量和请求模式决定:

  • DeepSeek-V3 激活参数 37B,单 token 推理计算量约等于一个 37B 稠密模型
  • 在 8×H100 上,单请求延迟约 50-80ms(取决于序列长度)
  • 连续批处理continuous batching)下,吞吐可达 500-2000 tokens/s

第三步:选择部署拓扑。根据模型规模和 SLA 要求选择:

模型规模 单 GPU 可部署 单节点可部署 推荐配置
<100B 总参 / <10B 激活 是(INT4 量化 单卡或双卡
100-300B 总参 / 10-30B 激活 是(BF16) 单节点 8×H100
300B-1T 总参 / 30-50B 激活 量化 单节点 INT4 或双节点 BF16
>1T 总参 / >50B 激活 多节点 + 专家并行

实际案例:Mistral Large 3(675B 总参 / 41B 激活)在单节点 8×H100 80GB 上可以 BF16 部署,因为 675B×2 bytes = 1.35TB < 640GB×2(考虑量化和 KV Cache 预留)。而 DeepSeek-V4 Pro(1.6T 总参 / 49B 激活)在 BF16 下需要 3.2TB 显存,必须多节点或使用 INT4 量化压缩到约 800GB 后单节点部署。

图表加载中…

4专家并行:多 GPU 部署的拓扑选择

MoE 模型的总参数量超过单 GPU 显存时,必须将专家分布到多个 GPU 上——这就是专家并行Expert Parallelism)。专家并行的核心挑战不是计算,而是通信:当一个 token 需要路由到位于另一个 GPU 上的专家时,必须通过 GPU 间互联传输该 token 的隐藏状态。

三种基本拓扑

  1. 节点内专家并行:8 个 GPU 在同一节点内,通过 NVLink 互联(带宽 900GB/s on H100)。通信延迟低(微秒级),适合 256 专家以下的模型。这是最常见的部署形态。

  2. 跨节点专家并行:专家分布在多个节点上,通过 InfiniBand(400Gbps)或 RoCE 互联。通信延迟高(数十微秒),带宽受限。只有当模型大到单节点放不下时才使用。

  3. 混合并行:节点内用 NVLink 做专家并行,节点间用张量并行或流水线并行。这是 DeepSeek-V3 训练时采用的策略,推理时较少使用因为推理的通信模式与训练不同。

通信开销的量化专家并行中的通信主要是 All-to-All 操作——每个 GPU 将路由到其他 GPU 的 token 发送出去,同时接收来自其他 GPU 的 token。通信量取决于:

  • 专家分布的分散程度(如果所有 token 都路由到同一个 GPU 上的专家,通信量为零)
  • Top-K 值(K 越大,每个 token 需要访问的 GPU 越多)
  • Batch size(batch 越大,通信的摊销成本越低)

实测数据(DeepEP, 2025):在 8×H100 NVLink 配置下,DeepSeek-V3 的 All-to-All 通信占总推理时间的 8-15%。如果这个比例超过 25%,说明专家分布不均或 batch size 过小,需要调整路由策略或增大 batch。

根据 TensorOps 的工程分析 LLM Mixture of Experts Explained — A 2026 Field Guide,"The interaction between fine-grained MoE routing and aggressive quantization is genuinely model-specific. Test the quantization tier you actually plan to deploy before committing. Assumptions from dense-model experience don't always transfer." 这强调了在专家并行部署中,通信开销和量化策略都需要针对具体模型进行实测验证。

拓扑互联带宽通信延迟适用模型规模典型配置

节点内 EP

NVLink 900GB/s

< 5μs

< 500B 总参

8×H100 单机

跨节点 EP

IB 400Gbps

10-50μs

500B-2T 总参

2-4 节点

混合 EP+TP

NVLink + IB

混合

1T 总参

训练常用,推理少见

EP + CPU Offload

PCIe 128GB/s

5-20μs

显存不足时

冷专家卸载到 CPU

⚠️ 常见踩坑

跨节点专家并行的通信开销会严重侵蚀吞吐。如果你的 MoE 部署需要跨节点,先确认:(1)模型是否可以通过量化压缩到单节点;(2)是否可以使用专家预取减少跨节点通信频率;(3)推理框架是否支持通信-计算重叠。三个都不行再考虑跨节点。

5专家生命周期管理:热、温、冷分层

MoE 模型中不同专家的使用频率差异巨大——实测数据显示,约 20% 的专家处理 80% 的 token(帕累托分布)。这意味着把所有专家以相同优先级放在 GPU 显存里是浪费的。专家生命周期管理(Expert Lifecycle Management)通过分层存储来优化显存使用。

三层模型

  • 热专家(Hot Experts):被频繁路由到的专家,常驻 GPU 显存,保持 BF16 或 FP16 精度。通常占总专家数的 15-25%,但处理 70-80% 的 token。
  • 温专家(Warm Experts):偶尔被路由到的专家,可以量化到 INT8 存储在 GPU 显存中,或在显存紧张时换出到 CPU 内存。处理 15-25% 的 token。
  • 冷专家(Cold Experts):极少被路由到的专家,存储在 CPU 内存或 NVMe SSD 上,按需加载。处理 5-10% 的 token。

工程实现的关键细节

  1. 热度统计。不能依赖训练时的路由分布——推理时的 token 分布可能与训练时不同(尤其是微调后)。需要在推理服务中持续统计每个专家的路由频率,使用指数加权移动平均(EWMA)更新热度。统计窗口建议 1000-5000 个 batch。

  2. 预取策略。当温专家被路由到的概率上升时,提前将其加载到 GPU 显存。预取触发条件:该专家在最近 N 个 batch 中被路由到的次数超过阈值。预取与推理计算重叠执行,避免加载延迟影响 SLA。

  3. 换出策略。当 GPU 显存不足时,优先换出最近最少使用(LRU)的温专家。冷专家不参与换出决策——它们本来就不在 GPU 上。换出操作与推理计算重叠,但需要确保换出完成后该专家的显存空间被立即释放。

  4. SSD 加载的延迟预算。NVMe SSD 的顺序读取速度约 3-7GB/s。一个典型专家(如 DeepSeek-V3 的 256 专家中每个约 2.6B 参数)在 INT4 下约 1.3GB,从 SSD 加载到 GPU 需要约 200-400ms。这意味着冷专家的加载延迟是不可忽略的——只有在该专家被路由到后可以容忍 200ms+ 延迟时才使用 SSD 存储。

6MoE 量化:不是均匀压缩

量化是减少 MoE 模型显存占用的主要手段,但 MoE量化比稠密模型复杂得多——不同专家对量化误差的敏感度差异巨大。均匀地对所有权重使用同一量化精度,要么浪费显存(冷门专家不需要高精度),要么损失质量(热门专家被过度量化)。

分层量化策略

  1. 按专家热度分层。热专家保持 BF16 或 INT8,温专家量化到 INT8 或 INT4,冷专家量化到 INT4。这种策略在 DeepSeek-V3 上实测可以将显存占用减少 40-50%,同时质量损失小于 1%(以 MMLU 和 HumanEval 为基准)。

  2. 按专家类型分层。不同类型的专家对量化的敏感度不同:

    • 共享专家(Shared Expert):所有 token 都经过,对质量影响最大,必须保持 BF16 或 INT8
    • 路由专家中的高频专家:保持 INT8
    • 路由专家中的低频专家:可以安全量化到 INT4
    • 路由器本身(Gating Network):参数量小但决策关键,保持 BF16
  3. 校准数据的选择量化校准数据应该覆盖目标部署场景的 token 分布。如果使用通用语料校准,可能导致某些场景下频繁使用的专家被错误地量化到较低精度。建议:用目标场景的实际推理日志作为校准数据,至少 1000 个 batch。

实测数据(MoEQuant, 2025):在 DeepSeek-V3 上,使用专家平衡采样策略(确保每个专家在校准数据中被均匀覆盖),INT4 量化下的质量损失从均匀量化的 3.2 个困惑度点降低到 0.8 个。关键洞察:量化质量不取决于总参数量,而取决于最热门的 20% 专家的精度。

根据 IoT Digital Twin PLM 的技术分析 Mixture-of-Experts (MoE) LLM Architecture Explained (2026),"The key to successful MoE deployment lies in understanding that different experts have different sensitivity to quantization. A one-size-fits-all approach will either waste memory on cold experts or degrade quality on hot experts." 这验证了分层量化策略的必要性。

量化策略显存节省质量损失(MMLU)实施复杂度推荐场景

全模型 BF16

基准

0

显存充足时

均匀 INT8

约 50%

< 0.5%

快速验证

均匀 INT4

约 75%

2-4%

显存极度紧张

按热度分层 INT8/INT4

约 55-65%

< 1%

生产推荐

共享专家 BF16 + 路由 INT4

约 60%

< 0.8%

有共享专家的模型

MoEQuant 平衡采样

约 65%

< 1%

质量敏感场景

7推理框架选型:vLLM、TensorRT-LLM、SGLang

2026 年,三大主流推理框架都已原生支持 MoE,但支持深度和优化方向不同。选型决策应该基于你的部署场景,而不是框架的 benchmark 排名。

vLLM

  • MoE 支持最成熟,从 0.5.0 版本开始原生支持
  • 关键特性:连续批处理continuous batching)、FP8 KV Cache、前缀缓存prefix caching)、分块预填充(chunked prefill)
  • MoE 特定优化:专家级别的 KV Cache 管理、基于请求模式的专家预取
  • 优势:社区活跃、模型支持最广、文档完善、生产验证最多
  • 适用场景:通用推理服务、多模型混合部署、需要快速跟进新模型

根据 vLLM 官方文档 vLLM 0.5.0 Release Notes,"We have added native support for Mixture of Experts models, including optimized kernels for expert routing and load balancing." 这确认了 vLLMMoE 的原生支持。

TensorRT-LLM

  • NVIDIA 官方优化,对 H100/H200 的 Tensor Core 利用最充分
  • MoE 特定优化:自定义 MoE kernel(融合路由 + 专家计算)、FP8 专家计算、NVLink 感知的专家并行
  • 优势:在 NVIDIA 硬件上吞吐最高(比 vLLM 高 15-30%,实测于 DeepSeek-V3
  • 劣势:模型支持范围窄于 vLLM、配置复杂度高、社区较小
  • 适用场景:纯 NVIDIA 硬件、单模型大规模部署、追求极致吞吐

SGLang

  • 后起之秀,以 RadixAttention 和高效调度著称
  • MoE 特定优化:与 vLLM 类似的连续批处理,但在调度策略上更激进
  • 优势:在某些场景下延迟低于 vLLM(尤其是短请求高并发场景)
  • 适用场景:低延迟要求、API 服务、短文本高并发

选型决策树

  • 如果你的硬件全是 NVIDIA 且追求极致吞吐 → TensorRT-LLM
  • 如果你需要多模型支持、快速迭代、社区生态 → vLLM
  • 如果你的场景是短文本高并发低延迟 → 评估 SGLang
  • 如果你需要跨硬件(AMD、Intel)→ vLLM(ROCm 支持最成熟)
图表加载中…

8推理时的负载均衡:与训练不同的挑战

训练时的负载均衡通过辅助损失解决——让路由器学会均匀分配 token 给专家。但推理时的负载均衡是一个不同的问题:路由器已经训练好了,它的行为是固定的,你不能在推理时改变路由决策。推理时的负载均衡关注的是:如何让多个 GPU 上的专家负载均匀,以最大化整体吞吐。

问题本质。假设 256 个专家分布在 8 个 GPU 上(每 GPU 32 个专家)。如果路由器的决策导致某个 GPU 上的 32 个专家被频繁路由到,而其他 GPU 上的专家很少被用到,那么:

  • 热点 GPU 的计算单元满载,成为瓶颈
  • 其他 GPU 的计算单元空闲,浪费资源
  • 整体吞吐受限于最忙的 GPU

解决方案

  1. 拓扑感知的专家放置。将路由亲和度高的专家放在同一个 GPU 上。具体方法:先用一小批代表性数据跑推理,统计每对专家被同一个 token 路由到的共现频率,然后用图划分算法(如 METIS)将共现频率高的专家分到同一 GPU。这可以减少 GPU 间的 All-to-All 通信量 20-40%。

  2. 动态批处理平衡。在连续批处理中,监控每个 GPU 的专家激活频率。如果某个 GPU 持续过载,调度器可以:

    • 暂时减少分配到该 GPU 的新请求
    • 将部分请求迁移到负载较低的 GPU(需要迁移 KV Cache)
    • 调整批处理大小,让过载 GPU 的 batch 更小
  3. 专家复制。对于特别热门的专家(如共享专家),可以在多个 GPU 上维护副本。每个 GPU 本地处理路由到该专家的 token,避免跨 GPU 通信。代价是显存占用增加——需要权衡通信节省和显存成本。

  4. 路由器后处理。在不重新训练模型的前提下,对路由器的输出做后处理:如果某个 GPU 上的专家负载已经超过阈值,将部分 token 重新路由到该 GPU 上次要的专家。这会轻微影响模型质量,但在负载严重不均时可以保住吞吐。

9部署决策清单:从评估到上线

将前面的内容整合为一个可执行的部署决策清单。每个步骤都有明确的输入、输出和检查点。

阶段一:评估(1-2 天)

  • 确认模型的总参数量和激活参数量
  • 计算 BF16 和 INT4 下的显存需求
  • 确认目标硬件配置(GPU 型号、数量、互联带宽)
  • 判断单节点是否可容纳(BF16 或 INT4)
  • 确认推理框架对该模型的 MoE 支持状态

阶段二:基准测试(2-3 天)

  • 在目标硬件上部署,测量单请求延迟(P50/P95/P99)
  • 测量不同 batch size 下的吞吐(tokens/s)
  • 测量 All-to-All 通信占比(目标 < 20%)
  • 测试 INT8 和 INT4 量化下的质量损失
  • 确认 KV Cache 显存占用与并发数的关系

阶段三:优化(1-2 周)

  • 根据热度统计配置专家分层(热/温/冷)
  • 配置拓扑感知的专家放置
  • 调整连续批处理参数(max_batch_size、max_num_seqs)
  • 配置前缀缓存(如果请求有共同前缀)
  • 测试推测解码(如果框架支持且接受率 > 60%)

阶段四:上线与监控

  • 配置 SLA 监控:延迟 P99、吞吐、GPU 利用率、显存使用
  • 配置专家负载监控:每个 GPU 的专家激活频率分布
  • 配置告警:延迟 P99 超过阈值、GPU 利用率低于 30%、显存使用超过 90%
  • 建立热度统计的持续更新机制(每天或每周重新统计专家热度)
  • MoE 部署的核心心智模型:总参数量 = 显存成本,激活参数量 = 计算成本,两者解耦

  • 容量规划必须同时追踪两个维度,只看一个会导致部署失败

  • 节点内专家并行是默认选择,跨节点只在模型大到单节点放不下时才考虑

  • 专家分层存储(热/温/冷)可以节省 40-60% 显存,代价是冷专家延迟增加

  • 量化不能均匀压缩——按专家热度分层量化是生产环境的推荐策略

  • 推理框架选型:NVIDIA 极致吞吐选 TensorRT-LLM,通用生态选 vLLM,低延迟选 SGLang

  • 推理时的负载均衡靠拓扑感知放置和动态批处理,不能依赖路由器自调整

  • 部署后必须监控专家负载分布——不均匀的负载是 MoE 部署中最隐蔽的性能杀手

10参考资料

本文的工程结论基于以下来源的交叉验证:

  • Ertas AI, "Mixture of Experts (MoE) Architecture in 2026", April 2026 (updated August 2026). 覆盖 MoE 从 Mixtral 到 DeepSeek V4 的架构演进和生产部署影响分析。
  • TensorOps, "LLM Mixture of Experts Explained — A 2026 Field Guide", May 2026. 系统覆盖 MoE 的路由策略、训练权衡和生产系统的部署 trade-offs。
  • IoT Digital Twin PLM, "Mixture-of-Experts (MoE) LLM Architecture Explained (2026)", May 2026. 覆盖专家并行、负载均衡和服务 trade-offs 的工程分析。
  • Swarm Signal, "Mixture of Experts Explained: The Architecture Behind Every Frontier Model", February 2026 (updated June 2026). 覆盖路由机制和稀疏激活的工程实现。
  • DeepSeek-AI, "DeepSeek-V3 Technical Report", December 2024. 细粒度 MoE 架构、无辅助损失负载均衡和 DualPipe 训练优化的原始设计文档。
  • DeepEP, "DeepEP: An Efficient Expert Parallelism Library for MoE Models", 2025. 专家并行通信库的性能数据和拓扑优化策略。
  • MoEQuant, "Balanced Quantization for Mixture of Experts Models", 2025. 专家平衡采样策略和分层量化的实测数据。

边界说明:本文聚焦 MoE 的生产部署工程决策。MoE 的架构原理(路由机制、Top-K 选择、辅助损失、专家坍塌)已在 llm-013 中详细覆盖,本文不重复。推测解码在 MoE 上的应用见 kb-speculative-decoding-001。

🎯 相关面试题

巩固本篇知识点,备战 AI 岗位面试。