模型层 开放阅读

Top-k 路由

Top-k Routing

概念 ID
top-k-routing
更新时间
2026-05-29
来源数量
待补

Top-k 路由(Top-k Routing)

3 秒看懂

一句话:在稀疏混合专家(MoE)模型中,每个 token 只激活 k 个专家而非全部,由一个可学习的门控网络决定“谁负责谁”——这就是 Top-k 路由。

类比:医院分诊台——病人(token)到了,护士(门控网络)看一眼症状,把病人分配给最对症的 k 位专家医生,而不是让所有科室同时会诊。

3 分钟产业解释

为什么需要 Top-k 路由?

大模型的核心矛盾是:参数越多能力越强,但推理/训练成本线性甚至超线性增长。MoE 架构的核心承诺是——把模型总参数做大,但每次推理只用其中一小部分。Top-k 路由正是实现“稀疏激活”的调度机制。

产业位置

[模型架构层]
  └── Transformer Block
        ├── Attention
        └── FFN / MoE Layer
              ├── Gate (门控网络) ← Top-k 路由发生在这里
              ├── Expert_0
              ├── Expert_1
              ├── ...
              └── Expert_N

关键产品/模型中的使用情况(据公开论文/技术报告):

模型路由策略k 值专家总数备注
GShard (Google, 2020)Top-k22048早期大规模 MoE
Switch Transformer (Google, 2021)Top-k1128–数千简化为 Top-1
Mixtral 8×7B (Mistral, 2024)Top-k28小专家数 + Top-2
DeepSeek-V2/V3 (DeepSeek, 2024)Top-kV2: Top-6 + 2 共享;V3: Top-8 + 1 共享256–数百路由专家 + 共享专家混合设计
Qwen-MoE 系列Top-k 变体公开论文中可见可变具体以官方论文为准

⚠️ 上表中 DeepSeek-V3 的具体专家数/激活专家数以官方技术报告为准,此处为定性描述其“共享专家 + 路由专家”的混合架构特征。


15 分钟专家深入

核心问题:为什么不是“全部专家都看一遍”?

在稠密 Transformer(Dense Transformer)中,每个 token 经过同一个 FFN。MoE 的思想是把 FFN 复制 N 份,每份成为一个“专家”,然后让门控网络(Router/Gate)为每个 token 挑选最相关的 k 个。

这带来两个核心收益:

  1. 计算稀疏性:前向 FLOPs ≈ k/N × 全量计算(k ≪ N 时显著节省)
  2. 容量可扩展:总参数量 = N × 单专家参数,可以做得很大

Top-k 路由的完整生命周期

输入 token x ∈ R^d
    │
    ▼
┌──────────────────────────┐
│  Gate Network:            │
│  logits = W_g · x        │  ← W_g ∈ R^{N×d}, N=专家数
│  scores = softmax(logits)│
│  top_k_indices = argtopk │  ← 选得分最高的 k 个专家
│  top_k_scores = ...      │  ← 对选中专家的得分做归一化
└──────────────────────────┘
    │
    ▼
┌──────────────────────────────────────────┐
│  Dispatch:                                │
│  将 token 发送给 top_k_indices 指定的专家  │
│  (跨设备时需 All-to-All 通信)             │
└──────────────────────────────────────────┘
    │
    ▼
┌──────────────────────────────────────────┐
│  Expert Compute:                          │
│  y_i = Expert_i(x)  (标准 FFN/MLP)       │
└──────────────────────────────────────────┘
    │
    ▼
┌──────────────────────────────────────────┐
│  Combine:                                 │
│  output = Σ (gate_score_i × y_i)         │
│         for i in top_k_indices            │
└──────────────────────────────────────────┘

门控函数的数学形式

设输入 token 表征为 \mathbf{x} \in \mathbb{R}^d,专家数量为 $N$:

Step 1 — 计算原始分数(logits)

s = W_g \cdot \mathbf{x}, \quad W_g \in \mathbb{R}^{N \times d}

Step 2 — 归一化(通常对选中专家的子集做 softmax):

g_i = \frac{e^{s_i}}{\sum_{j \in \text{Top-}k} e^{s_j}}, \quad i \in \text{Top-}k(\mathbf{s})

注意:这里有两种常见做法——(a) 先 softmax 再 top-k;(b) 先 top-k 再在 k 个专家上 softmax。不同论文实现略有差异。Switch Transformer 采用 (a) 先 softmax 再 top-1,直接使用 softmax 值作为门控权重,未在选中专家子集上再执行 softmax。

Step 3 — 加权求和

\text{output} = \sum_{i \in \text{Top-}k} g_i \cdot E_i(\mathbf{x})

其中 E_i 是第 $i$ 个专家的前馈网络。

负载均衡:Top-k 路由的“阿喀琉斯之踵”

Top-k 路由面临一个严重问题:专家崩塌(Expert Collapse)。如果训练早期某些专家略微领先,梯度会强化这种优势,最终几乎所有 token 涌向少数专家,其余专家“饿死”。

解决方案——辅助负载均衡损失(Auxiliary Load Balancing Loss)

\mathcal{L}_{\text{balance}} = \alpha \cdot N \cdot \sum_{i=1}^{N} f_i \cdot P_i

其中:

  • f_i = 被路由到专家 $i$ 的 token 占比(真实负载)
  • P_i = 门控网络对专家 $i$ 的平均路由概率
  • \alpha = 平衡系数(通常较小,如 10^{-2} 量级)
  • 两者相乘的含义:当 f_iP_i 都高时(某个专家垄断),损失增大

这个损失由 Switch Transformer 系统化提出,已成为 MoE 训练的标准组件。

Token-Choice vs Expert-Choice

维度Token-Choice (主流)Expert-Choice
决策方每个 token 选 k 个专家每个专家选 top-C 个 token
负载均衡需辅助损失保证天然均衡(每专家固定容量)
延迟确定性有负载不均风险更确定
代表Switch, Mixtral, DeepSeekGoogle Expert-Choice (2022)

容量因子(Capacity Factor)

为防止个别专家过载,通常设定每个专家的缓冲容量

\text{Expert Buffer} = \text{CF} \times \frac{\text{tokens per batch}}{N} \times k

CF > 1 提供冗余,但浪费内存;CF 过小会导致 token 被丢弃(overflow)。实践中 CF 通常设在 1.0–1.5 之间


技术原理(最深)

门控网络的梯度流

门控网络 W_g 的可微性是一个关键设计点。Top-k 的 argmax/argtopk 操作不可微,但实践中通过以下方式绕过:

  1. Straight-Through Estimator (STE):前向做离散选择,反向时梯度直通(假设选择不变)
  2. Soft Top-k:使用 softmax 温度退火或 Gumbel-Softmax 近似离散采样
  3. 实际主流做法:对选中的 k 个专家的 gate score 做 softmax 归一化,梯度自然流过这些 score;未被选中的专家梯度为零——这本身就是一种稀疏梯度传播
前向:  scores = softmax(W_g · x)  →  top_k_mask  →  masked_softmax
反向:  ∂L/∂W_g = Σ_{i∈Top-k} (∂L/∂g_i · ∂g_i/∂s_i · ∂s_i/∂W_g)
       未选中专家: ∂g_j/∂s_j = 0 (被 mask 截断)

通信拓扑:All-to-All

当专家分布在不同 GPU/NPU 上时,Top-k 路由需要 All-to-All 通信:

GPU 0 (有 token A, B)     GPU 1 (有 token C, D)
    │                          │
    │  token A → Expert_2      │
    │  token B → Expert_5      │  ← All-to-All
    │  ← Expert_3(token C)     │
    │  ← Expert_7(token D)     │
    ▼                          ▼
Expert_0,1,2,3             Expert_4,5,6,7

⚠️ 注意区分:MoE 的 Token Dispatch/Combine 使用 All-to-All;而张量并行(Tensor Parallelism)中 Transformer 层内通信使用 AllReduce/ReduceScatter。两者不可混淆。

All-to-All 通信量:

\text{Volume} \approx 2 \times k \times \frac{B \cdot S}{1} \times d \times \text{sizeof(dtype)}

(前向一次 dispatch + 一次 combine,B \cdot S 为总 token 数,$d$ 为隐层维度)

Top-k 与 Soft MoE 的对比

Google 2023 年提出的 Soft MoE 完全绕过了离散路由:将 token 通过与一组可学习的 slot 权重做 soft attention 组合,再分发给专家。这消除了负载均衡问题,但改变了 MoE 的稀疏计算本质——每个专家实际上看到所有 token 的加权组合,不再是严格的 Top-k 稀疏。


技术演进史

2017  Shazeer et al. "Outrageously Large Neural Networks"
      └── 提出 Sparsely-Gated MoE, Top-k (k=2-4) + 噪声扰动
          首次在 LSTM 语言模型上应用

2020  GShard (Google)
      └── 扩展到 600B 参数, Top-2 路由
      └── 引入容量因子 (Capacity Factor) 概念

2021  Switch Transformer (Google)
      └── 简化为 Top-1 (只选1个专家)
      └── 系统化负载均衡辅助损失
      └── 证明 k=1 也能取得优异性能

2021  Hash Routing
      └── 探索确定性/无学习路由的替代方案

2022  Expert Choice Routing
      └── 专家选择 token 的路由方式

2022  ST-MoE (Google)
      └── 稳定训练技巧: router z-loss (抑制路由 logits 过大)

2023  Mixtral 8×7B (Mistral AI)
      └── Top-2, 8 experts, 证明 MoE 在开源社区的可行性

2024  DeepSeek-MoE / DeepSeek-V2 / DeepSeek-V3
      └── "共享专家 + 路由专家"混合设计
      └── Top-6~8 路由(激活) + 全局共享专家
      └── 更细粒度的专家划分策略

2024  Qwen-MoE, DBRX (Databricks), Grok-1 (xAI)
      └── Top-k 路由成为主流 MoE 模型的标准组件

技术路线对比

维度Top-k 路由 (学习型)Hash RoutingExpert-ChoiceSoft MoEDense FFN
是否学习路由✅ 是 (W_g 可训练)❌ 否 (哈希函数)✅ 是✅ 是 (隐式)N/A
稀疏性✅ 严格稀疏✅ 严格稀疏✅ 严格稀疏❌ 软稀疏❌ 不稀疏
负载均衡挑战⚠️ 高 (需辅助损失)✅ 天然均衡✅ 天然均衡✅ 低N/A
通信模式All-to-AllAll-to-AllAll-to-AllAll-to-All (soft)AllReduce (TP)
训练稳定性⚠️ 需要技巧✅ 稳定✅ 较稳定✅ 稳定✅ 最稳定
表达能力✅ 高 (可学到复杂模式)⚠️ 有限✅ 高✅ 高全参数参与
代表模型Switch, Mixtral, DeepSeekHash Layer (2021)Expert Choice (2022)Soft MoE (2023)GPT, LLaMA

上下游

上游依赖

[算力硬件层]
  ├── GPU/NPU (NVIDIA H100/H200, 华为 Ascend 910B 等)
  ├── 高带宽互联 (NVLink/NVSwitch, InfiniBand, HCCS)
  │     └── All-to-All 通信对互联带宽极其敏感
  └── 大显存 (存放多份专家参数, 如 HBM3/HBM3e)

[框架层]
  ├── Megablocks (Databricks) — 专门为 MoE 优化的 CUDA kernel
  ├── Tutel (Microsoft) — MoE 调度与通信优化
  ├── FasterMoE / DeepSpeed-MoE — 微软 MoE 训练框架
  ├── GShard / Switch Transformer 框架 (Google/JAX)
  └── vLLM / TensorRT-LLM — MoE 推理优化

下游影响

[MoE 模型架构]
  ├── 训练:决定哪些专家被更新、梯度如何分配
  ├── 推理:决定推理 FLOPs 和延迟
  └── 系统:决定显存占用、通信量、专家并行策略

[系统优化]
  ├── Expert Parallelism (EP) — 专家放在不同设备
  ├── Expert Offloading — 不活跃专家卸载到 CPU/SSD
  └── Dynamic Batching — 按路由结果优化 batch 组织

关键指标

指标含义典型范围/影响
k (激活专家数)每 token 选几个专家1–8(常见 1 或 2)
N (专家总数)MoE 层专家个数8–数千
激活比 (k/N)稀疏程度通常 < 5%
Load Balance Loss负载均衡程度0 = 完美均衡;越大越不均衡
Router z-loss路由 logits 的量级控制防止训练不稳定
Expert Utilization各专家被激活的均匀程度理想 = 1/N 每个专家
Capacity Factor (CF)每专家缓冲大小系数1.0–1.5(过小丢 token,过大浪费显存)
All-to-All 通信量路由引起的通信开销与 k × 隐层维度 × token 数成正比
路由准确率 (Routing Accuracy)训练后期路由决策的稳定性随训练趋于稳定

供需与市场数据

为什么 Top-k 路由成为产业焦点?

  1. MoE 已成为主流大模型架构选择:Mixtral、DeepSeek-V2/V3、Qwen-MoE 等验证了 MoE 在“性价比”上的优势——同等推理 FLOPs 下,MoE 总参数更大、能力更强。

  2. 对算力基础设施的影响

    • MoE 模型虽然推理 FLOPs 低,但显存需求大(需要加载全部专家参数)
    • 通信需求高:All-to-All 对 GPU 互联带宽要求极高,推动 NVLink/NVSwitch/InfiniBand 需求
    • 推理侧催生 Expert OffloadingExpert Parallelism 方案
  3. 市场数据(定性趋势):

    • 据公开报道,DeepSeek-V3 等 MoE 模型在同等能力水平下,训练成本显著低于同参数量稠密模型
    • 路由机制的效率直接影响 GPU 利用率——不均衡路由导致部分 GPU 空转

⚠️ 具体市场规模/GPU 出货量数据需参考各厂商财报及行业报告(如 TrendForce、Semianalysis 等),此处不编造数字。


代表公司与资本映射

公司/机构在 Top-k 路由/MoE 中的角色代表工作
Google DeepMind学术奠基GShard, Switch Transformer, ST-MoE, Expert Choice, Soft MoE
Mistral AI开源 MoE 产品化标杆Mixtral 8×7B / 8×22B
DeepSeek (幻方量化)中国 MoE 旗帜DeepSeek-MoE, DeepSeek-V2, V3 (共享+路由专家设计)
Microsoft训练框架与系统优化DeepSpeed-MoE, Tutel
Databricks推理优化 + 开源Megablocks (MoE CUDA kernel), DBRX
xAI超大规模 MoEGrok-1 (314B, MoE 架构)
Alibaba (通义)国内 MoE 探索Qwen-MoE 系列
NVIDIA硬件 + 通信基础NVLink All-to-All, Transformer Engine 对 MoE 的支持

A 股/港股映射思路

产业链环节相关性逻辑
算力芯片MoE 模型显存需求大 → 推动 HBM 及大显存 GPU 需求
高速互联极高All-to-All 通信是 MoE 瓶颈 → 光模块、交换机、NVLink 需求
存储/HBM全部专家参数需驻留显存
AI 服务器8 卡/N 卡互联拓扑优化需求
推理芯片MoE 稀疏计算对推理芯片的调度能力提出新要求

投资逻辑

核心论点

  1. MoE 是“降本增效”的架构范式:Top-k 路由使 MoE 成为可能,而 MoE 已被证明能在更低推理成本下实现更强模型能力。这意味着 MoE 路线大概率持续扩大份额

  2. 通信成为新瓶颈 → 利好高速互联:Top-k 路由产生的 All-to-All 通信量与专家并行度、隐层维度正相关。随着模型规模扩大,GPU 互联带宽成为核心瓶颈,利好光模块、高速交换、NVLink 等产业链。

  3. 显存需求不降反升:虽然 MoE 稀疏激活节省 FLOPs,但所有专家参数仍需加载到显存中,推动 HBM 容量和带宽 需求持续增长。

  4. 路由算法本身的演进方向

    • 更精细的路由(如 DeepSeek 的细粒度专家 + 共享专家)
    • 路由与硬件协同设计
    • 推理阶段的专家 offloading/缓存策略

风险点

  • 若行业转向 Soft MoE 或其他非离散路由方案,对 All-to-All 通信带宽的需求可能降低
  • 稠密模型持续优化(如 LLaMA 系列)可能削弱 MoE 的性价比优势
  • 路由不均衡导致的训练不稳定仍是工程难题

常见误读纠偏

❌ 误读 1:“Top-k 路由就是简单的 argmax”

纠偏:Top-k 路由远不只是取前 k 大值。完整的路由包含:

  1. 可学习的线性门控网络(不是固定规则)
  2. 选中专家的 gate score 归一化(决定加权融合比例)
  3. 辅助负载均衡损失(防止专家崩塌)
  4. 容量因子控制(防止内存溢出)
  5. 可选的噪声注入(训练时增加探索性)

只看到 argmax 就认为“很简单”是严重低估了工程复杂度。

❌ 误读 2:“k 越大模型越强,应该选更多专家”

纠偏

  • k 增大 → 每 token 计算量增大 → 推理延迟上升 → 稀疏收益减少
  • k=1 (Switch Transformer) 已经展现出强大性能;k=2 是多数模型的选择
  • DeepSeek 虽然路由 k 值较大(6–8),但其单个专家被设计得更小、更细粒度,总激活参数并不比 k=2 + 大专家的方案多
  • 关键是激活参数总量,不是 k 的绝对值

❌ 误读 3:“MoE 的 All-to-All 通信和张量并行的 AllReduce 是一回事”

纠偏

  • All-to-All:每个 GPU 向每个其他 GPU 发送不同的 token 子集,通信模式是 全对全 的点对点交换——用于 MoE 的 token dispatch/combine
  • AllReduce/ReduceScatter:所有 GPU 参与规约操作,结果广播——用于张量并行中 Attention/FFN 的部分和合并
  • 两者的通信模式、带宽利用方式、对网络拓扑的要求都不同。MoE 模型的通信开销通常叠加了这两部分。

❌ 误读 4:“负载均衡损失解决了路由不均问题”

纠偏:辅助损失只是软约束,不能完全消除不均衡。实践中仍然需要:

  • 合适的损失系数 α(太小无效,太大影响主损失)
  • 容量因子 CF 兜底(硬限制每专家最大 token 数)
  • Router z-loss 控制 logits 量级
  • 甚至需要在推理时做 routing 持久化(routing caching)等工程手段

学习路径

Level 0: 概念入门
├── 了解 Transformer FFN 层的作用
├── 理解“参数量 ≠ 计算量”的基本概念
└── 阅读: Lilian Weng "Mixture of Experts" 博客

Level 1: 原始论文
├── Shazeer et al. (2017) "Outrageously Large Neural Networks" ← 起源
├── Fedus et al. (2021) "Switch Transformers" ← Top-1 路由 + 负载均衡
└── Lepikhin et al. (2020) "GShard" ← Top-2 + 大规模扩展

Level 2: 工程与系统
├── Megablocks 论文/代码 ← 高效 MoE CUDA kernel
├── DeepSpeed-MoE 文档 ← 训练框架层面理解
└── 亲自跑一个 Mixtral 模型推理,观察路由 pattern

Level 3: 前沿演进
├── DeepSeek-V2 技术报告 ← 共享 + 路由专家
├── Zhou et al. (2022) "Mixture-of-Experts with Expert Choice Routing"
├── Puigcerver et al. (2023) "From Sparse to Soft Mixtures of Experts"
└── 关注 NeurIPS/ICML MoE 相关 workshop

Level 4: 系统协同设计
├── 理解 Expert Parallelism 在 Megatron-LM 中的实现
├── 研究 NVLink/InfiniBand 拓扑对 All-to-All 性能的影响
└── 阅读 Semianalysis 等分析师对 MoE 推理成本的拆解

一句话总结

Top-k 路由是 MoE 模型的“交通调度员”:通过可学习的门控网络为每个 token 精准分配最相关的 k 个专家,实现“总参数大、单次计算少”的稀疏激活范式——它是理解当前主流大模型(Mixtral、DeepSeek-V2/V3 等)如何在推理效率与模型能力之间取得平衡的核心钥匙。


延伸阅读与来源

来源说明
Shazeer et al., 2017MoE + Top-k 路由的起源论文
Fedus, Zoph & Shazeer, 2021, “Switch Transformers”Top-1 路由 + 负载均衡损失的系统化
Lepikhin et al., 2020, “GShard”Top-2 路由的大规模实践
DeepSeek-V2 Technical Report (2024)共享专家 + 路由专家的混合设计
DeepSeek-V3 Technical Report (2024)最新 MoE 路由工程实践
Puigcerver et al., 2023, “From Sparse to Soft MoE”Soft MoE 替代方案
Zhou et al., 2022, “Mixture-of-Experts with Expert Choice”Expert-Choice 路由
Megablocks (https://github.com/databricks/megablocks)开源 MoE 高效实现
Lilian Weng Blog, “Mixture of Experts”优秀的综述性入门博客
Hugging Face Blog on MoE面向实践者的 MoE 介绍

⚠️ 免责声明:本文中涉及的具体模型参数(专家数、k 值等)以各模型官方技术报告/论文为准。搜索受限导致部分数据无法实时验证,标注 [估算] 或 [定性] 处请以原始文献为准。本文不构成投资建议。

source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型