Top-1 路由(Top-1 Routing)
3 秒看懂
一句话: 在混合专家模型(MoE)中,每个 token 只被分配到 一个 专家网络计算——用最少的专家激活换取最大的模型容量扩展。Google 的 Switch Transformer 是这一策略的标志性实践。
3 分钟产业解释
为什么需要 Top-1 路由?
大模型的训练与推理成本随参数量线性增长。MoE(Mixture-of-Experts)的核心思想是:模型总参数可以很大,但每次前向传播只激活其中一小部分。Top-1 路由是实现这一目标的最激进策略——每个 token 仅激活 1 个专家,理论上将专家部分的计算量压缩到总专家的 1/N(N 为专家总数)。
产业位置
稠密模型 (Dense) → 全参数激活,算力成本高
↓
MoE + Top-2 路由 → 每 token 激活 2 个专家(如 GShard、Mixtral)
↓
MoE + Top-1 路由 → 每 token 激活 1 个专家(如 Switch Transformer)
→ 推理效率最高,但对路由质量、负载均衡的要求最苛刻
在实际产业链中,Top-1 路由影响的是 模型架构层:它决定了算力利用率、通信开销(All-to-All dispatch)和显存占用模式。对下游推理服务商而言,Top-1 意味着更低的单 token 推理 FLOPs;对芯片设计者而言,它意味着更不规则的计算模式和更频繁的集合通信。
15 分钟专家深入
核心机制
Top-1 路由的完整流程可分解为三步:
① 路由评分(Gating)
对输入 token 的隐藏状态 x \in \mathbb{R}^d,通过可学习的门控矩阵 W_g \in \mathbb{R}^{N \times d} 计算各专家的得分:
score = softmax(W_g · x) // N 维概率向量
② Top-1 选择 取得分最高的专家:
expert_id = argmax(score) // 标量,范围 [0, N-1]
gate_value = score[expert_id] // 该专家的路由权重
③ 专家计算与输出
在 Switch Transformer 的实现中,输出直接为选中专家的原始输出,不乘以门控概率:
y = Expert[expert_id](x)
这意味着 gate_value 仅用于路由决策(以及辅助损失计算),但不参与专家输出的加权。其他某些 Top‑1 实现可选择保留加权步骤(y = gate_value × Expert[expert_id](x)),但 Switch Transformer 明确省略了这一加权,将其视为不必要的额外操作。
负载均衡:Top-1 的命门
Top-1 路由最大的工程挑战是 负载不均衡。由于每次只选 1 个专家,如果路由策略放任不管,大部分 token 会坍缩到少数”强势”专家上,导致:
- 部分专家过载(计算瓶颈 + 显存峰值)
- 部分专家闲置(模型容量浪费)
解决方案——辅助负载均衡损失(Auxiliary Load-Balancing Loss):
Switch Transformer 中引入的经典形式为:
L_aux = N × Σᵢ (fᵢ × Pᵢ)
其中:
N:专家总数fᵢ:在当前 batch 中被路由到专家 i 的 token 占比(实际负载分布)Pᵢ:所有 token 对专家 i 的平均门控概率(期望负载分布)
该损失项乘以一个超参数系数(通常量级在 10^{-2})后加入主损失函数。其数学本质是让实际分配比例与门控概率的期望对齐——如果某个专家的门控概率很高但实际分配比例也很高,损失项会比较大,梯度会引导模型更均匀地分配。
路由策略的细微变体
| 变体 | 描述 | 典型出处 |
|---|---|---|
| Token Choice | 每个 token 选择 Top-K 专家 | 最常见范式 |
| Expert Choice | 每个专家选择 Top-K token(天然负载均衡) | Zhou et al., 2022 |
| Soft Top-1 | 不硬选 1 个,而是用 softmax 权重加权所有专家(近似稠密) | 部分研究方向 |
| Hash Routing | 用哈希函数确定性分配,无可学习路由参数 | Roller et al., 2021 |
Top-1 路由严格来说属于 Token Choice, K=1 范式。
技术原理(最深)
MoE 层在 Transformer 中的位置
┌─────────────────────────────────────────┐
│ Transformer Block │
│ │
│ Input x │
│ │ │
│ ▼ │
│ [Self-Attention] │
│ │ │
│ ▼ │
│ [Layer Norm] │
│ │ │
│ ▼ │
│ ┌─────────────────────────────┐ │
│ │ MoE Layer (FFN 替换) │ │
│ │ │ │
│ │ ┌──────────┐ │ │
│ │ │ Gate (Wg)│──→ softmax │ │
│ │ └──────────┘ │ │ │
│ │ ▼ │ │
│ │ argmax → expert_id │ │
│ │ │ │ │
│ │ ┌──┬──┬──┬──┬──┬──┐ │ │
│ │ │E0│E1│E2│E3│..│EN│ │ │
│ │ └──┴──┴↑─┴──┴──┴──┘ │ │
│ │ │ only this one │ │
│ │ │ fires │ │
│ │ ▼ │ │
│ │ y = E_s(x) │ │
│ └─────────────────────────────┘ │
│ │ │
│ ▼ │
│ [Layer Norm + Residual] │
└─────────────────────────────────────────┘
关键参数与计算量分析
设模型维度为 d_ff(FFN 中间层维度),专家数为 N,输入维度为 d_model:
- 单个专家参数量:约
2 × d_model × d_ff(两层 FFN,忽略 bias) - MoE 层总参数量:约
2 × N × d_model × d_ff + N × d_model(含 Gate 矩阵) - Top-1 实际激活参数:约
2 × d_model × d_ff + N × d_model(1 个专家 + 整个 Gate 矩阵)
即:参数量膨胀 N 倍,但计算量基本不变(仅增加 Gate 的 O(N×d) 计算和 All-to-All 通信)。
通信拓扑
在多设备并行训练中,Top-1 路由引入关键的集合通信操作:
Step 1: 本地 Gate 计算 → 每个 token 得到 expert_id
Step 2: All-to-All Dispatch → 将 token 发送到对应专家所在的设备
Step 3: 专家 FFN 计算
Step 4: All-to-All Combine → 将计算结果发回原始设备
All-to-All 是 MoE 路由通信的核心原语。与 Megatron 张量并行中的 AllReduce 不同,All-to-All 是将数据按路由结果重新分配到不同设备,通信模式更不规则。
在 Top-1 vs Top-2 的对比中:
- Top-1:每个 token 发送 1 次,通信量更小
- Top-2:每个 token 发送 2 次,通信量翻倍,且需要额外的加权合并逻辑
路由坍缩的数学直觉
假设 N 个专家的初始权重接近,softmax 输出接近均匀分布 $1/N$。但由于初始化微小差异和梯度反馈的正反馈效应:
初始: P(Ei) ≈ 1/N for all i
↓ 训练若干 step
P(E0) 略高 → E0 获得更多梯度更新 → E0 权重更优
↓ 正反馈循环
P(E0) >> 1/N → 绝大部分 token 涌入 E0
↓ 结果
N-1 个专家近乎废弃,模型等效退化为稠密小模型
这就是为什么负载均衡损失不是”锦上添花”,而是 Top-1 路由能用的前提条件。
Token Dropping
Top-1 路由中还有一个工程细节:当某个专家的 buffer 已满(容量因子 capacity factor 的限制),多余的 token 会被 丢弃(token dropping),直接通过残差连接跳过该 MoE 层。Switch Transformer 论文中提到,在合适的容量因子下(通常 1.0~1.5),token dropping 率可以很低,但容量因子过大会导致显存浪费。
capacity_per_expert = capacity_factor × (total_tokens / N)
// 如果某专家接收的 token 数 > capacity_per_expert
// 多余的 token 被丢弃(不经过该专家)
技术演进史
| 时间 | 里程碑 | 路由策略 | 关键创新 |
|---|---|---|---|
| 2017 | Sparsely-Gated MoE Layer (Shazeer et al., Google) | Top-K(通常 K=2) | 首次在 LSTM 时代引入稀疏 MoE,证明稀疏扩展可行性 |
| 2020 | GShard (Lepikhin et al., Google) | Top-2 | 将 MoE 扩展到 6000 亿参数,引入容量因子、辅助损失等工程手段 |
| 2021 | Switch Transformer (Fedus et al., Google) | Top-1 | 首次证明 Top-1 路由在简化 MoE 的同时性能可比 Top-2,1.6T 参数 |
| 2022 | ST-MoE (Zoph et al., Google) | Top-2(Top-1 仅作为对比) | 系统性研究 MoE 的稳定性与路由设计,主要工作基于 Top-2 路由 |
| 2022 | Expert Choice Routing (Zhou et al.) | Expert Choice | 从”token 选专家”翻转为”专家选 token”,天然均衡 |
| 2023 | Mixtral 8x7B (Mistral AI) | Top-2 | 开源 MoE 大模型,激活参数约 13B/47B,推动 MoE 民主化 |
| 2024 | DeepSeek-V2/V3 | Top-K + 共享专家 | 引入共享专家(shared expert)承载通用知识,路由专家承载特化知识 |
趋势判断: 纯 Top-1 路由在产业界逐渐被更复杂的路由策略取代(如 Top-K + 共享专家),但 Top-1 的”极简激活”思想仍是 MoE 设计的基线参考。
技术路线对比
| 维度 | Top-1 路由 | Top-2 路由 | Expert Choice | Soft MoE(全部专家加权) |
|---|---|---|---|---|
| 每 token 激活专家数 | 1 | 2 | 大于 1(一个 token 可被多个专家选中,取决于 K 与专家总数) | 所有(近似稠密) |
| 计算效率 | ★★★★★ | ★★★★ | ★★★★★ | ★★ |
| 负载均衡难度 | 高(需辅助损失) | 中 | 天然均衡 | 无(全参与) |
| 通信开销 | 低 | 中(2×) | 中 | 高(N×) |
| 模型质量 | 略低于 Top-2 | 基线 | 与 Top-2 可比 | 最高(但计算代价也最高) |
| 实现复杂度 | 低 | 中 | 中 | 高 |
| Token Dropping 风险 | 高 | 中 | 低 | 无 |
| 代表模型 | Switch Transformer | GShard, Mixtral | Zhou et al. 2022 | Pu et al. 2023 |
关键取舍: Top-1 在推理端最有吸引力——最少的专家激活意味着最低的计算延迟和显存峰值。但在训练端,其对负载均衡的苛刻要求和更高的 token dropping 风险使其调试成本上升。
上下游
上游依赖
| 层级 | 要素 | 说明 |
|---|---|---|
| 算法层 | 门控网络设计 | Softmax/Sigmoid/线性层的组合 |
| 框架层 | All-to-All 通信 | PyTorch DTensor、MegaBlocks、GShard 等框架的 MoE 支持 |
| 硬件层 | 高带宽互联 | NVLink/NVSwitch 的 All-to-All 吞吐直接制约 MoE 效率 |
| 系统层 | 容量因子 & 调度器 | 控制 token batching、buffer 大小、负载均衡超参 |
下游影响
| 受影响方向 | 影响机制 |
|---|---|
| 推理系统 | 需要高效的 Expert Offloading / Prefetching(稀疏访问模式) |
| 芯片设计 | 存储访问模式不规则,对缓存和片上网络提出更高要求 |
| 训练框架 | 需要支持动态路由的分布式训练框架(Expert Parallelism) |
| 模型压缩 | MoE 的稀疏性天然适合剪枝未激活专家 |
关键指标
| 指标 | 含义 | Top-1 典型值域 |
|---|---|---|
| 激活率 | 每 token 激活的专家占比 | 1/N(如 N=128 则 ~0.8%) |
| 负载均衡度 | 各专家接收 token 的方差 | 越低越好,辅助损失可将标准差控制在合理范围 |
| Token Dropping Rate | 被丢弃(未经过任何专家)的 token 比例 | 容量因子 1.2 时通常较低;设为 1.0 时风险更高 [Switch Transformer 论文] |
| 路由熵 | 门控概率分布的信息熵 | 高熵 → 分散路由(期望);低熵 → 路由坍缩(异常) |
| All-to-All 通信量 | MoE 引入的额外通信开销 | 取决于专家并行度和 token 数量,通常为 O(batch_size × d_model) |
| 辅助损失系数 | 负载均衡损失的权重 | 典型范围 10^{-3} ~ 10^{-1} [定性描述,因模型而异] |
供需与市场数据
MoE 模型的产业渗透
- 采用 Top-1 或其变体的代表性模型:Switch Transformer(Google);部分内部 MoE 模型 [具体归属未充分披露]
- 采用 Top-2 的代表性模型:Mixtral 8x7B / 8x22B(Mistral AI)、GShard(Google)
- 采用混合策略的模型:DeepSeek-V2/V3(共享专家 + Top-K 路由专家,K 值 ≥ 6 [DeepSeek 技术报告])
算力影响估算
MoE(无论 Top-1 还是 Top-2)对算力市场的影响体现在:
- 训练侧:总 FLOPs 与稠密模型可比(因为每次前向只激活部分参数),但通信开销更大,且需要更多显存存储全部专家参数 → 需要更大显存带宽的 GPU/加速器
- 推理侧:激活参数远小于总参数 → 推理 FLOPs 低于等参数稠密模型,但 All-to-All 通信和显存加载全部专家参数是瓶颈
具体市场数字因模型规模和部署规模差异巨大,暂无统一公开数据。[未充分披露]
代表公司与资本映射
| 公司/机构 | 与 Top-1 路由 / MoE 的关系 | 资本标的逻辑 |
|---|---|---|
| Switch Transformer 发明者,MoE 路由研究先驱 | TPU 生态受益于 MoE 的高效训练 | |
| Mistral AI | Mixtral 8x7B 采用 Top-2 路由,推动开源 MoE | MoE 模型商业化先驱 |
| DeepSeek (幻方) | DeepSeek-V2/V3 使用混合路由策略(共享专家 + Top-K) | 证明 MoE 在国产算力生态的可行性 |
| Meta | 内部多个 MoE 项目(具体路由策略未充分披露) | PyTorch + 开源 MoE 框架的推动者 |
| NVIDIA | NVLink/NVSwitch 的 All-to-All 性能直接影响 MoE 训练效率 | 高带宽互联是 MoE 训练的硬件基座 |
| MegaBlocks (Databricks) | 提供高效的 MoE 训练内核 | MoE 训练框架的开源基础设施 |
投资逻辑
看多逻辑
- MoE 是大模型扩展的主流方向之一:从 DeepSeek-V3 到 Mixtral,MoE 路线已证明可行性。Top-1/Top-K 路由是 MoE 的核心算法组件。
- 推理成本敏感:MoE 的稀疏激活天然降低推理 FLOPs,在成本敏感的部署场景(如大规模 API 服务)有结构性优势。
- 芯片机会:MoE 的 All-to-All 通信模式和不规则访存对互联带宽和显存容量提出更高要求,利好高端 GPU 和高带宽互联方案。
风险 / 看空逻辑
- 路由设计仍在快速迭代:Top-1 → Top-2 → 共享专家 + 路由专家,技术路线未收敛,单一方案的投资窗口可能短暂。
- 工程复杂度高:MoE 的训练调参难度显著高于稠密模型,负载均衡、token dropping、路由坍缩等问题增加研发风险。
- Dense 模型持续进步:如 Llama 系列稠密模型在推理优化(如 KV Cache 量化、Speculative Decoding)方面的进展可能削弱 MoE 的成本优势。
产业链关键观察点
- MoE 模型在开源社区的采用率趋势
- All-to-All 通信效率的硬件/软件改进
- 共享专家 + 路由专家的混合方案是否成为新标准
常见误读纠偏
❌ 误读 1:「Top-1 路由意味着 MoE 模型推理时只用了 1/N 的参数,所以计算量是稠密模型的 1/N」
纠偏: Top-1 路由只缩减了 专家 FFN 部分 的计算量。Transformer 中的 Self-Attention 层、LayerNorm、Embedding、LM Head 等是所有 token 共享的稠密计算,不受 MoE 稀疏化影响。实际推理 FLOPs 的节省比例取决于 MoE 层在总计算量中的占比。对于典型 Transformer 架构,FFN 部分约占总计算量的 2/3,因此推理 FLOPs 的实际节省比例约为 2/3 × (1 - 1/N),并非简单的 1/N。
❌ 误读 2:「Top-1 路由比 Top-2 路由差,因为信息利用不充分」
纠偏: Switch Transformer 论文的实验表明,在合理设置容量因子和负载均衡损失的前提下,Top-1 路由的下游任务性能与 Top-2 路由非常接近,但训练效率更高(更少的专家计算、更少的通信)。Top-1 并非”劣化版 Top-2”,而是在 效率-质量帕累托前沿 上的一个有竞争力的点。不过,后续工作(如 Mixtral、DeepSeek)选择 Top-K (K>1) 或混合策略,一定程度上说明纯 Top-1 在超大规模模型中的能力天花板可能较低。
❌ 误读 3:「All-to-All 通信是 Top-1 路由特有的问题」
纠偏: All-to-All 是 所有基于 Expert Parallelism 的 MoE 模型 共有的通信原语,无论路由策略是 Top-1、Top-2 还是 Expert Choice。区别在于 Top-1 每个 token 只发送到 1 个专家,All-to-All 的数据量相对更小;Top-2 需要发送到 2 个专家,数据量翻倍。
学习路径
入门(2-4 小时)
- 阅读:Shazeer et al., “Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer” (2017)——理解 MoE 的基本概念
- 阅读:Hugging Face Blog, “Mixture of Experts Explained”——直观理解路由机制
- 运行一个小型 MoE demo(如 Hugging Face Transformers 中的 Mixtral 推理)
进阶(1-2 天)
- 精读:Fedus et al., “Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity” (2021)——Top-1 路由的完整阐述
- 对比阅读:Lepikhin et al., “GShard: Scaling Giant Models with Conditional Computation” (2020)——理解 Top-2 路由的设计差异
- 阅读:Zhou et al., “Mixture-of-Experts with Expert Choice Routing” (2022)——理解路由范式的创新方向
专家级(1-2 周)
- 阅读:Zoph et al., “ST-MoE: Designing Stable and Transferable Sparse Expert Models” (2022)——工程实践深度
- 研读 DeepSeek-V2/V3 技术报告中关于路由策略的部分
- 在 MegaBlocks 或 FairScale 框架中实现 Top-1 MoE 训练,亲身体验负载均衡调参
一句话总结
Top-1 路由是 MoE 模型中最简洁的稀疏激活策略——每个 token 仅激活一个专家,用最小的计算代价撬动最大的参数容量扩展,其工程可行性的关键在于负载均衡机制的设计质量。
延伸阅读与来源
| 来源 | 说明 |
|---|---|
| Fedus et al., “Switch Transformers” (2021), JMLR | Top-1 路由的奠基论文 [论文原文] |
| Shazeer et al., “Sparsely-Gated MoE Layer” (2017), ICLR | MoE 在深度学习中的开创性工作 [论文原文] |
| Lepikhin et al., “GShard” (2020) | Top-2 路由、容量因子等关键工程手段 [论文原文] |
| Zhou et al., “Expert Choice Routing” (2022), NeurIPS | 路由范式翻转 [论文原文] |
| DeepSeek-V2 Technical Report, DeepSeek AI (2024) | 共享专家 + 路由专家的混合策略 [厂商技术报告] |
| Mixtral of Experts, Mistral AI (2024) | 开源 Top-2 MoE 模型 [厂商技术报告] |
| Zoph et al., “ST-MoE” (2022) | MoE 训练稳定性与工程最佳实践 [论文原文] |
| Hugging Face, “Mixture of Experts Explained” | 社区教程,入门友好 [社区文档] |
标注说明: 本文中未标注具体数值的参数范围、阈值均为定性描述或基于公开论文的一般性总结,具体数字因模型规模、训练配置和硬件环境而异。市场相关数据以各公司财报及公开披露为准。