跳到正文
ARCHITECTURE SYNTHESIS · SPARSE MOE

别只比较 Top-k:同一个数字,可能对应完全不同的专家工作量

稀疏 Mixture of Experts(MoE,混合专家)让每个 token 只执行少量 FFN 专家,却没有让其余专家权重消失。要比较两个 MoE,必须同时核对专家有多宽、怎样选与合并、是否存在常开共享路径、过载 token 怎样处理,以及专家究竟放在哪些设备上。

01 · 先拆五份合同

MoE 不是“专家数 + Top-k”两个字段

常见 Transformer MoE 用多个 Feed-Forward Network(FFN,前馈网络)专家替换部分 Dense FFN。稀疏只表示每个 token 不执行全部路由专家;Attention、Embedding、归一化、Dense 层、共享专家和 Router 仍有自己的参数与计算。横向比较前,先把五份合同逐项对齐。

合同必须问什么混淆后的典型误判
专家粒度每个 routed/shared expert 的 FFN 宽度是多少?哪些层是 MoE?把 Top-8 直接当成 Top-2 的 4 倍专家计算
评分、选择、合并Softmax 还是 Sigmoid?bias 是否只影响 Top-k?入选输出怎样归一化?以为“选中分数”必然就是最终 merge weight
共享路径是否有 always-on shared experts?每 token 执行几个、宽度多大?把 DeepSeek 的共享专家画成所有 MoE 的固定组件
平衡与溢出辅助损失、动态 bias、capacity、drop/reroute/dropless 分别怎样定义?把训练目标、选择校正和执行容量当成同一机制
放置与通信专家在哪些 rank/node?dispatcher 是 All-to-All、AllGather 还是 Flex?看到 Expert Parallel 就断言每个 assignment 都跨卡
TOTAL

总参数:模型拥有多少权重

它影响 checkpoint、加载与集群总驻留。即使某 token 没选到 E17,部署仍要在某处保存 E17,除非采用 offload、裁剪或按需加载等另一个系统方案。

ACTIVE

激活参数:一条前向路径经过多少参数

不同报告是否计入 Embedding、Attention、共享层与输出头并不总一致。“A3B”是模型口径,不自动等于每 token 3B 次乘加。

MEASURED

实测成本:硬件真正付了多少

FLOPs、权重读取、Router、permute、padding、collective、kernel 形状与并发共同决定延迟和吞吐,不能从 active parameters 单独推出。

正确基线

MoE 稀疏激活节省的是“相对执行全部同形专家”的专家 FFN 工作量;它不保证比任意更小的 Dense checkpoint 更快,也不把整个 block 的计算按总参/激活参比例缩小。比较必须固定模型质量目标、序列形状、batch、精度、硬件拓扑与 runtime。

02 · 选择与执行

评分、Top-k、合并权重和实际执行是四个连续但不同的步骤

Router(路由器)通常把每个 token 的 hidden state 映射为专家 affinity。选出专家 ID 后,runtime 还要 permute/dispatch,把同一专家的 assignments 聚成 batch;专家算完,再 unpermute 并合并。共享专家只有在架构明确声明时才是额外的常开分支。

MoE 一层合同图:token 经 Router 评分后生成 Top-k 专家 ID 与合并权重,再按专家重排、执行选中的路由专家并加权恢复;共享专家是可选且由架构声明的常开支路。下方区分辅助平衡损失、DeepSeek-V3 式选择偏置与 capacity 或 dropless 执行策略,并用 9、4、2、1 次 assignments 展示失衡。
主数据流是评分 → 选择 → 重排 → 专家执行 → 加权合并;共享分支并非默认组件。辅助损失改变梯度,动态 bias 可只改变入选 ID,capacity/dropless 则决定过载 assignment 是否执行。 查看原图 ↗

Score · 为每个 token 计算各专家 affinity

Switch 与 Mixtral 的公开公式使用 Softmax 路由;DeepSeek-V3 使用 Sigmoid affinity。这个投影参数相对专家通常很小,但其输出控制后续选择、训练信号和数据移动。

Select · Top-k 决定 routed assignments

Top-1 表示每 token 选择一个路由专家,Top-2 产生两个 assignments。DeepSeek-V3 在 affinity 上加入按负载更新的 expert bias 来选择 Top-8;该 bias 不进入最终合并权重。

Merge · 入选专家输出按模型规则合并

Mixtral 对选中的两个专家做加权和。DeepSeek-V3 用原始 affinity(不含 selection bias)生成入选专家的归一化权重。不能看到 Router score 就假设所有实现都按同一种重归一化。

Execute · dispatcher 与容量策略决定谁真正计算

运行时要按专家聚合 assignments,再用 Grouped General Matrix Multiplication(Grouped GEMM,分组矩阵乘)等方式执行。是否采用固定 capacity 并 padding 空槽、overflow 是 drop/reroute 还是 dropless 完整执行,以及 assignment 是否跨卡,都是执行合同。

共享专家不是“保底答案”

DeepSeekMoE 的设计意图是让共享专家承载共通知识、减少 routed experts 的冗余;其消融证据来自特定规模与数据设置,不能外推成“所有模型都更好”。Mixtral 与 Qwen3 MoE 没有共享专家,仍是完整的 MoE 架构。

03 · 工作量手算

先数 assignments,再把专家宽度放回公式

设本层有 T 个 token、每 token 选择 k_r 个 routed experts;若另有 k_s 个常开 shared experts,且单个 routed/shared expert 的近似 FFN 工作分别为 F_rF_s,要先把名义分配、真实执行与 kernel 槽位拆开:

Anominal=Tkr,Aexec=AnominalAdropA_{\mathrm{nominal}}=T\,k_r,\qquad A_{\mathrm{exec}}=A_{\mathrm{nominal}}-A_{\mathrm{drop}}
Wkernel  FrAslots+TksFs,AslotsAexecW_{\mathrm{kernel}}\ \propto\ F_rA_{\mathrm{slots}}+T\,k_sF_s,\qquad A_{\mathrm{slots}}\ge A_{\mathrm{exec}}

A_nominal 是 Router 选出的 routed assignments;capacity drop 会产生 A_dropA_slots 是 kernel 真正计算的槽位:dropless 且不补齐时等于 A_exec,固定 capacity 的 padded kernel 则可能更大,因为空槽也占工作。式子仍不含 Attention、Router、重排、通信与利用率;跨模型专家宽度不同,原始 k 不能直接代表 FLOPs。

负载手算 · 8 tokens / Top-2 / 4 experts

16 次 routed assignments,理想平均是每专家 4 次

若计数为 [9,4,2,1],总和仍是 16;E0 的负载/理想均值为 9/4=2.25。这里数的是 assignments,不是 16 个独立 token:同一个 token 在 Top-2 下会出现两次。2.25 只是失衡比,不是精确延迟倍数,因为通信、并行执行和 GEMM 效率尚未计入。

粒度手算 · DeepSeekMoE 16B

“2 shared + Top-6 routed”不能按 8 个标准 FFN 来算

该模型每个 fine-grained expert 的中间维度是原 Dense FFN 的 1/4。每 token 执行 2 个共享专家和 6 个路由专家,共 8 个细专家,粗略专家工作量相当于 8×1/4=2 条标准 FFN 路径。这个等价只比较论文里的 FFN 宽度,不等于整层或整模型 FLOPs 恰好翻倍。

16.4B / 2.8B

DeepSeekMoE 16B

论文报告约 16.4B 总参数、约 2.8B 激活参数;2 shared + 64 routed,每 token 走 2 shared + 6 routed。

47B / 13B

Mixtral 8×7B

论文报告约 47B 总参数、约 13B active parameters;“8×7B”不是每 token 执行 56B 参数。

口径先行

Active 不是统一测量协议

Qwen1.5 官方还同时给出 2.7B activated 与 2.0B non-embedding activated。比较表必须保留原报告口径,不能悄悄拼成同一列。

04 · 平衡与溢出

辅助损失、选择 bias、capacity 与 dropless 分别回答不同问题

平衡机制试图避免少数专家吞掉大多数 assignments;容量合同则说明是否使用固定槽位并 padding 欠填部分,溢出策略回答“真实 assignments 超过容量后怎么办”。前者可能影响 Router 学习或选择;overflow 才涉及跳过、重路由或 dropless 完整执行。

机制作用位置准确边界代表实例
Auxiliary balance loss训练目标 / Router 梯度鼓励更均衡;系数过大会与语义路由竞争Switch;Qwen3 global-batch loss
Dynamic expert biasTop-k 选择DeepSeek-V3 的 bias 只参与选择,不参与 merge weightDeepSeek-V3
Capacity + overflow执行队列padding 可补固定 capacity 的空槽;Switch 的 overflow token 跳过该专家计算,并经残差把表示传到下一层Switch Transformer
Droplesskernel / 调度不丢 assignment;过载仍可能造成不规则形状与尾延迟MegaBlocks;DeepSeek-V3 no-token-drop
Group/node limited候选专家集合缩小跨设备域,也缩小可选专家集合;V2 是 device-limited,V3 是 node-limitedDeepSeek-V2 / V3

Switch 的“dropped token”不是把整条 token 从网络删除

在论文描述的 capacity overflow 中,该 token 跳过溢出专家的 FFN 计算,表示经残差路径继续到下一层。论文还试过 No-Token-Left-Behind(NTLB,重路由到后续专家),但在其设置中没有观察到收益;不能把 reroute 写成通用默认。

DeepSeek-V3 不是字面意义上的“零辅助损失”

其 expert-level balance 主要通过动态 selection bias 实现,因此报告称 auxiliary-loss-free balancing;最终训练仍保留系数 0.0001 的极小 sequence-wise auxiliary loss。准确说法是“专家级主要平衡不靠辅助损失”,不是“训练目标完全没有平衡项”。

DeepSeek-V3 的 node-limited routing 限制通信域

报告中 256 个 routed experts 均匀放在 64 张 GPU、8 个节点;每 token 的 Top-8 routed assignments 最多涉及 4 个节点,并且不丢 token。该数字属于 V3 的训练布局,不是任意部署的固有属性。

监控至少要覆盖分布、容量与网络

逐层记录每专家 assignment 数、max/mean 与 P95/P99、overflow/drop/padding、Router entropy、每目的节点字节、Grouped GEMM 形状和端到端等待。只看全局平均会掩盖最慢专家。

05 · 通信与拓扑

两次 All-to-All 是常见 dispatcher 的前向合同,不是 Expert Parallel 的定义

Expert Parallelism(EP,专家并行)定义的是专家权重怎样分到 ranks。若 assignment 的目标专家在远端,典型 token-choice All-to-All dispatcher 会先 dispatch 激活、专家计算后再 combine 回原 rank;若专家本地或复制,则该 assignment 可没有远端载荷。Megatron Core 还提供 AllGather 与 Flex dispatcher,交换算法并不唯一。

常见 All-to-All Expert Parallel 前向图:专家按四张 GPU 归属,远端 assignments 先 dispatch 到专家所在 GPU,Grouped GEMM 执行后再 combine 回原 token rank。图中同时标出本地或复制专家、AllGather dispatcher 与 Flex DeepEP HybridEP 等替代合同,并给出 8 token、Top-2、hidden 4096、BF16 在全部远端时 dispatch 128 KiB、combine 128 KiB 的逻辑载荷。
图示只代表常见 token-choice All-to-All 前向路径。EP 负责专家归属;dispatcher、远端比例、拓扑与复制策略共同决定真实通信。 查看原图 ↗
Bforward  2TkrHsbytesrremoteB_{\mathrm{forward}}\ \approx\ 2\,T\,k_r\,H\,s_{\mathrm{bytes}}\,r_{\mathrm{remote}}

T 是本次计量范围内的 token 数,k_r 是 routed Top-k,H 是 hidden size,s_bytes 是激活每元素字节,r_remote 是需要远端发送的 assignment 比例;系数 2 表示前向 dispatch + combine。它是逻辑 payload 估算,不含 metadata、padding、collective 算法的链路放大、反向通信与并发重叠。

通信手算 · 全部 assignment 远端

8 tokens × Top-2 × hidden 4096 × BF16

单次 dispatch 为 8×2×4096×2 = 131,072 bytes = 128 KiB;combine 返回同样大小,因此前向逻辑 payload 约 256 KiB。若只有一半 assignments 需要跨 rank,按这个简化口径约为 128 KiB。这不是交换机端口的实测 wire bytes,也没有计反向。

ALL-TO-ALL

按目标专家发送

常见 token-choice dispatcher:只把 assignment 发往拥有目标专家的 rank,再把结果送回。适合较大 EP,但对拓扑和负载敏感。

ALLGATHER

聚合 token 后,按既有 routing map 筛本地项

Router 已经完成选择;dispatcher 在 TP×EP 域聚合 token,各 rank 按 routing map 取出本地 experts 的 assignments,结果再经 Reduce-Scatter 合并返回。Megatron Core 将其列为适合 TP-only、较小 EP 或较大 Top-k 等场景的另一合同。

FLEX

融合与拓扑感知传输

当前文档提供 FlexDispatcher,并可配 DeepEP/HybridEP。是否更快取决于安装、硬件、并行布局与 workload,必须用 trace 与 SLO 验收。

不要只调 EP

专家放置、Tensor/Pipeline/Data/Context Parallel、共享专家复制、Sequence Parallel、通信重叠与 batch 共同改变瓶颈。原则不是“EP 越小越好”或“越大越省”,而是在能驻留权重的约束下,用真实拓扑最小化关键路径并保证每专家有足够大的 GEMM。

06 · 模型横评

同样叫 MoE,六个家族给出了不同答案

下表只还原公开架构合同,不做质量或速度排行。训练数据、层数、MoE 层频率、专家宽度、精度、硬件与 runtime 均不相同;total/active 是各报告的模型级口径,不是统一 benchmark。

模型 / 家族每个 MoE 层的专家合同每 token 路径选择 / 合并平衡、容量与通信边界报告参数口径
Switch Transformer路由专家;基础架构无 always-on shared expertTop-1 routedSoftmax router,选 1 个专家aux loss + capacity;overflow 跳过专家,经残差继续;典型实现两次 A2A家族多种规模,不用一个数字概括
Mixtral 8×7B8 routed,0 sharedTop-2 routedSoftmax(TopK) 后加权合并短报告未完整公开生产平衡/溢出合同;不能补写成 DeepSeek 机制约 47B total / 13B active
DeepSeekMoE 16B64 routed + 2 shared;每专家约 1/4 标准 FFN 宽度Top-6 routed + 2 sharedrouted gate + shared direct path16B 实验中整层专家同设备、无 token drop;有 expert-level balance,未用 device-level loss16.4B total / 约 2.8B active
DeepSeek-V3256 routed + 1 shared;前 3 层 Dense,后 58 层 MoETop-8 routed + 1 sharedSigmoid affinity;bias 只选 expert,原 affinity 归一化合并动态 bias + 极小 seq aux 0.0001;最多 4 nodes;no token drop671B total / 37B active
Qwen1.5-MoE-A2.7B60 routed + 4 sharedTop-4 routed + 4 shared官方博客给出细粒度/共享结构博客未完整公开可横向复刻的平衡、容量与 dispatcher 合同14.3B total / 2.7B activated;2.0B non-embedding activated
Qwen3 MoE128 routed,0 sharedTop-8 routed细粒度 routed expertsglobal-batch load-balancing loss;系统实现需结合 checkpoint/runtime30B-A3B;235B-A22B
共享不是代际方向

Qwen3 主动不设 shared experts

Qwen1.5 与 DeepSeek 使用共享路径,Qwen3 技术报告明确不使用。架构取舍来自训练与系统整体,不是新模型必然累加旧零件。

k 不是算力单位

细专家允许更大的组合数

DeepSeekMoE 通过切细专家,让 Top-6 routed + 2 shared 的单专家矩阵远小于标准 FFN。比较必须同时写 k 与 expert intermediate size。

公开缺口也是结论

未说明就标“未完整公开”

短论文或博客没有给出 capacity、drop policy、dispatcher 时,应把它留作未知项,不能拿另一个模型或框架的默认值代填。

07 · 选型边界

MoE 是模型容量与集群系统的联合设计,不是单独的省算开关

模型能力账 · 固定质量目标再比较

确认 Dense 与 MoE 是否使用相近训练 token、数据、后训练与评测协议。论文里“相近表现、较少 FLOPs”只在其对照实验范围内成立,不能直接外推到你的领域和 SLO。

参数驻留账 · 总权重必须在某处可用

记录 checkpoint、量化后权重、单 rank 分片、共享/复制参数、临时 workspace 与加载时间。active parameters 不能替代容量规划。

专家工作账 · 用 assignments × 专家宽度

按层复算 T×k、shared paths、capacity/padding 和实际 GEMM 形状。Decode 的小 token batch 可能让专家矩阵过小;连续批处理能改善,但幅度要实测。

通信账 · 只数真正远端的 assignments

按 hidden、dtype、remote fraction、节点边界和 dispatcher 估逻辑 payload,再用 profiler 看 wire bytes、重叠和尾延迟。不要把“2×A2A”无条件乘到所有 EP 配置。

SLO 账 · 同时看 P50/P95 与 Goodput

低并发时 Dense 可能更规则,MoE 也可能因较少激活计算获益;没有通用胜负。固定输入/输出长度分布、并发、TTFT/TPOT 门槛和成本后做端到端对照。

可解释性账 · 专家 ID 不是人工科室标签

专家可能呈现领域、语法或位置偏好,也可能只是分布式特征组合。要把 E17 命名为“数学专家”,至少需要跨数据统计、干预、替换与消融证据。

最小验收单

一次 MoE 横评至少交付八个字段

MoE 层位置、routed/shared 专家数与宽度、Top-k 与 merge 规则、balance/overflow 合同、total/active 口径、专家放置、dispatcher 与 remote fraction、端到端质量/吞吐/尾延迟。缺一项就把它标成未知,不用营销名称替代。

RESEARCH LEDGER

一手来源与证据边界

优先使用论文、官方文档、官方模型卡和代码仓库。页面中的数字只代表来源所述设置,不自动外推到其他模型与数据。

R01
Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts LayerShazeer et al. · 2017

稀疏门控 MoE、专家容量与负载均衡的早期系统化定义。

R02
Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient SparsityFedus et al. · 2021

Top-1 路由、capacity、token overflow、辅助平衡损失与两次 All-to-All 的典型实现。

R03
Mixtral of ExpertsMistral AI · 2024

8 个路由专家、Top-2 加权合并,以及总参数、激活参数与部署内存边界。

R04
DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language ModelsDeepSeek-AI · 2024

细粒度专家、共享专家隔离、专家/设备级平衡,以及 16B 配置与实验范围。

R05
DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language ModelDeepSeek-AI · 2024

device-limited routing 与共享/路由专家的系统协同背景。

R06
DeepSeek-V3 Technical ReportDeepSeek-AI · 2024

选择 bias、原始 affinity 合并、极小序列级辅助损失、node-limited routing 与 no-token-drop。

R07
Qwen1.5-MoE: Matching 7B Model Performance with 1/3 Activated ParametersQwen Team · 2024

Qwen1.5-MoE-A2.7B 的总/激活参数、细粒度路由专家与共享专家。

R08
Qwen3 Technical ReportQwen Team · 2025

128 个路由专家、Top-8、无共享专家与 global-batch balance loss。

R09
MegaBlocks: Efficient Sparse Training with Mixture-of-ExpertsGale et al. · 2022

用 block-sparse kernels 实现 dropless MoE,区分 token dropping 与 padding 浪费。

R10
Megatron Core: Mixture of ExpertsNVIDIA 官方文档 · 核查于 2026-07-14

All-to-All、AllGather、Flex dispatcher、Grouped GEMM、DeepEP/HybridEP 与通信重叠的当前实现边界。