Switch Transformer
Switch Transformer 深度学习页
3 秒看懂
Switch Transformer = 每个 token 只路由到 1 个专家(top-1 gating)的稀疏 MoE 架构,用更少的计算量撬动万亿级参数量,实现训练速度数量级跃升。
一句话定位:它不是”更大的 Transformer”,而是”用稀疏激活让参数量与计算量脱钩”的范式开创者。
3 分钟产业解释
它解决什么问题?
传统 Dense Transformer 的参数量和计算量(FLOPs)是线性绑定的——模型大一倍,推理/训练计算也大一倍。这使得超大模型的训练成本呈平方级攀升。
Switch Transformer 的核心洞察:如果我们允许每个 token 只激活模型中一小部分参数(稀疏激活),就可以将参数量推到万亿级别,而每个 token 的实际计算量仍然可控。
类比
想象一所拥有 128 个科室的大型医院(128 个专家)。传统”稠密”模型要求每位患者同时看所有 128 个科室——荒谬且昂贵。Switch Transformer 的做法是:每位患者进入大厅后,前台(路由器)根据症状直接分配到唯一一个最匹配的科室。单个患者花的钱少了,但医院总体接待能力大幅增加。
产业意义
- Google Brain 团队 2021 年发布,论文发表于 JMLR 2022
- 首次系统验证了 top-1 路由在 MoE 中的可行性与效率优势
- 直接影响了后续一系列稀疏/混合架构:GShard → Switch → ST-MoE → Mixtral → DeepSeek-MoE
- 论文标题本身即宣言:“Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity”
15 分钟专家深入
核心架构改动
Switch Transformer 的改动极其克制——仅将 Transformer 的 FFN(前馈网络)层替换为 MoE 层,其余结构(注意力、归一化、残差连接)完全不变。
标准 Transformer Block:
Input → LayerNorm → Self-Attention → Residual → LayerNorm → FFN → Residual → Output
Switch Transformer Block:
Input → LayerNorm → Self-Attention → Residual → LayerNorm → MoE-FFN → Residual → Output
↑
路由器 + N 个专家FFN
Top-1 路由机制
这是 Switch Transformer 最核心的贡献。设输入 token 的隐藏状态为 \mathbf{x},路由器是一个简单的线性层加 softmax:
G(\mathbf{x}) = \text{Softmax}(\mathbf{W}_r \cdot \mathbf{x})
其中 \mathbf{W}_r \in \mathbb{R}^{N \times d},$N$ 为专家数,$d$ 为隐藏维度。
关键决策:取 \text{argmax},选择概率最高的唯一一个专家:
i^* = \arg\max_i G(\mathbf{x})_i
\text{MoE-FFN}(\mathbf{x}) = G(\mathbf{x})_{i^*} \cdot \text{FFN}_{i^*}(\mathbf{x})
注意:输出仍乘以门控权重 G(\mathbf{x})_{i^*},这是一个连续值,保留了专家输出的”置信度”缩放。
与 Top-2 路由的关键区别
| 维度 | Top-2(GShard 等) | Top-1(Switch) |
|---|---|---|
| 每 token 激活专家数 | 2 | 1 |
| FFN 前向计算量/token | 2× 单专家 FFN | 1× 单专家 FFN |
| All-to-All 通信量 | 较高(需分发到 2 个专家) | 较低 |
| 实现复杂度 | 需要 combine 步骤 | 更简单 |
| 质量 | 略优 | 接近(损失很小) |
论文实验证实:top-1 在相同计算预算下性能接近 top-2,但吞吐量显著更高——这是工程上的关键胜利。
容量因子(Capacity Factor)
这是防止负载不均衡导致 token 被丢弃的关键超参数。
-
每个专家被分配一个 buffer 容量 $C$,定义为:
C = \text{CF} \times \frac{T}{N}其中 $T$ 是序列中的 token 总数,$N$ 是专家数,\text{CF}是容量因子。 -
CF = 1.0:每个专家恰好分到平均数量的 token(理想均匀时刚好够)
-
CF > 1.0(如 1.2、1.5):给每个专家额外余量,容纳不均匀分配
-
CF < 1.0:强制丢弃部分 token(token dropping),节省计算但损失信息
工程权衡:CF 越大越稳定但计算浪费越多;CF 越小越高效但丢 token 的风险越高。论文中推荐 CF 在 1.0–1.5 范围内调节。
辅助负载均衡损失
为避免”赢者通吃”(少数专家被过度使用,其余闲置),Switch Transformer 引入辅助损失 \mathcal{L}_{\text{aux}}:
\mathcal{L}_{\text{aux}} = \alpha \cdot N \sum_{i=1}^{N} f_i \cdot P_i
其中:
f_i= 被路由到专家 $i$ 的 token 比例P_i= 路由器分配给专家 $i$ 的平均概率\alpha= 辅助损失系数(论文中常设为10^{-2}量级)- $N$ = 专家数量
该项在 f_i = P_i = 1/N(完美均匀)时取最小值,激励均匀分配。
选择性精度训练(Selective Precision)
一个关键的工程细节:路由器中的 softmax 操作必须在 fp32 精度下进行,即使模型其余部分使用 bf16/fp16 混合精度。路由器的线性变换 \mathbf{W}_r \cdot \mathbf{x} 通常可以保留在 bf16 计算,仅 softmax 提升至 fp32 以保证数值稳定性。
原因:softmax 输出是细粒度概率分布,低精度下容易出现数值不稳定(如 softmax 饱和、梯度消失),导致路由坍缩到少数专家。
┌─────────────────────────────────────┐
│ Switch Transformer Block │
│ │
│ Token x (bf16) │
│ │ │
│ ├──→ Expert FFNs (bf16) │
│ │ │
│ └──→ Router W_r (bf16) │
│ │ │
│ ↓ │
│ Softmax (fp32) │
│ │ │
│ ↓ │
│ argmax → 选择专家 i* │
│ │ │
│ ↓ │
│ 输出 = gate × FFN_i*(x) │
└─────────────────────────────────────┘
技术原理(最深一层)
完整前向传播流程
输入序列: x ∈ R^{seq_len × d_model}
│
▼
┌─ Self-Attention ─┐
│ (标准 MHA/MQA) │
└────────┬─────────┘
│ residual
▼
LayerNorm
│
▼
┌─ Switch MoE Layer ─────────────────────────┐
│ │
│ 1. 路由计算: │
│ S = Softmax(x · W_r^T) ∈ R^{seq_len×N}│
│ (W_r ∈ R^{N × d}, fp32) │
│ │
│ 2. Top-1 分派: │
│ expert_id = argmax(S, dim=-1) │
│ gate = max(S, dim=-1) │
│ │
│ 3. Token 重排 (Permutation): │
│ 按 expert_id 对 token 分组/排序 │
│ 形成 N 个 token bucket │
│ │
│ 4. 容量截断: │
│ 每个 bucket 只保留前 C 个 token │
│ 超出部分被丢弃 (dropped tokens) │
│ │
│ 5. 并行专家计算: │
│ 每个专家 FFN_i 独立处理其 bucket │
│ FFN_i: x → W_up · GELU(x) · W_down │
│ (bf16, 与标准 Transformer FFN 结构相同) │
│ │
│ 6. 门控缩放 + 反排列: │
│ output_j = gate_j × FFN_{id_j}(x_j) │
│ 恢复原始 token 顺序 │
│ │
└──────────────────────────────────────────────┘
│ residual
▼
输出
通信模式
在分布式训练中,MoE 层引入 All-to-All 通信:
Step 1 - Dispatch (All-to-All):
Device 0 持有的 token → 需要发送给 Device 1, 2, 3 上的专家
Device 1 持有的 token → 需要发送给 Device 0, 2, 3 上的专家
...以此类推
Step 2 - Expert Computation:
每个设备上的专家处理收到的 token
Step 3 - Combine (All-to-All):
处理结果发送回原始设备
通信量与专家并行度和 token 数量成正比。Switch Transformer 的 top-1 路由相比 top-2 路由,每个 token 只需访问一个设备的专家,因此 combine 通信量减半。
关键参数量级估算
以论文中描述的 Switch-Base 配置为参考(注意:以下为基于论文描述的定性估算,具体数值请参阅原论文 Table):
- 隐藏维度 $d$:768(与 T5-Base 对齐)
- 注意力头数:12
- 层数:12(encoder)+ 12(decoder)
- 专家数 $N$:典型为 128(Switch-Base-128 变体)
- 单个专家 FFN 参数量 ≈ 标准 T5-Base FFN 参数量 / 128 × 128… 等等,这里需要澄清
澄清:专家数量增加时,每个专家的 FFN 大小不变(与原始 Dense FFN 相同),因此 MoE 层的 FFN 总参数量 = N × 单个 FFN 参数量。模型总参数量因专家数线性增长,但每个 token 的 FLOPs 只取决于 1 个 FFN(top-1)。
论文中最大的变体参数量达到万亿级别(~1.6T),专家数为 2048,但每个 token 的计算量仅相当于一个较小的 Dense 模型。
技术演进史
| 时间 | 里程碑 | 关键进展 |
|---|---|---|
| 2017 | Shazeer et al. Outrageously Large Neural Networks | 首次将 MoE 引入 LSTM/GRU,top-k 路由 + 噪声探索 |
| 2020 | GShard(Lepikhin et al.) | MoE 引入 Transformer,encoder 中使用 top-2 路由,扩展到 600B 参数 |
| 2021 | Switch Transformer(Fedus, Zoph, Shazeer) | Top-1 路由、简化 MoE、系统性 scaling 研究 |
| 2021 | MoE 分布式训练优化(Various) | Megablocks(Stanford/Databricks)优化稀疏计算 kernel |
| 2022 | ST-MoE(Zoph et al., Google) | 稳定训练的 MoE(encoder-decoder),训练稳定性与迁移能力研究 |
| 2023 | Mixtral 8×7B(Mistral AI) | MoE 落地开源大语言模型,decoder-only,实际部署 |
| 2024 | DeepSeek-MoE / DeepSeek-V2 | 共享专家 + 细粒度路由专家,进一步优化专家利用率 |
| 2024 | Mixtral 8×22B、DBRX(Databricks) | MoE 架构成为开源大模型的主流路线之一 |
技术路线对比
| 维度 | Dense Transformer (T5/GPT) | Switch Transformer | DeepSeek-V2 MoE | Mixtral 8×7B |
|---|---|---|---|---|
| 路由策略 | N/A(全参数激活) | Top-1, 所有 token | Top-K + 共享专家 | Top-2 |
| 每 token FLOPs | 全部 FFN 参数 | 1/N × FFN 参数 | 可配置 | 2/N × FFN 参数 |
| 总参数量级 | 受计算预算约束 | 可大幅超越计算预算 | 同左 | 同左 |
| 通信模式 | AllReduce(张量并行) | All-to-All(专家并行) | All-to-All | All-to-All |
| 训练稳定性 | 成熟 | 需要选择性精度 + 辅助损失 | 进一步改进 | 相对稳定 |
| 推理友好度 | 高(参数全部驻留显存) | 低(需 All-to-All) | 中等 | 中等 |
| 适用架构 | Encoder / Decoder / Enc-Dec | Enc-Dec(原论文) | Decoder-only | Decoder-only |
上下游
上游依赖
数据与基础设施层
├── 训练数据:C4(Colossal Clean Crawled Corpus)等大规模语料
├── 训算硬件:Google TPU(论文基于 TPU Pod 训练)
├── 框架:Mesh TensorFlow / JAX(Google 内部生态)
└── 基础架构:T5 Encoder-Decoder 骨架
关键技术输入层
├── MoE 路由理论:Shazeer 2017, GShard 2020
├── Transformer 架构:Vaswani et al. 2017
├── 稀疏计算思想:条件计算 (Conditional Computation)
└── 负载均衡理论:最优传输 / 均匀分配
下游影响
直接后继架构
├── ST-MoE (Google, 2022) —— 稳定化训练
├── Mixtral 8×7B / 8×22B (Mistral, 2023-2024) —— 开源 MoE LLM
├── DeepSeek-MoE / V2 / V3 (DeepSeek, 2024-2025) —— 细粒度路由
├── DBRX (Databricks, 2024) —— 企业级 MoE
└── Qwen-MoE / Grok-1 等
工程生态影响
├── Megablocks (Databricks) —— 稀疏计算 CUDA kernel
├── Tutel (Microsoft) —— MoE 通信优化
├── vLLM / TensorRT-LLM —— MoE 推理优化
└── HuggingFace Transformers —— Switch Transformer 集成
关键指标
| 指标 | 含义 | Switch Transformer 典型值/范围 |
|---|---|---|
| 专家数 $N$ | MoE 层中并行 FFN 的数量 | 8–2048(论文覆盖范围) |
| 容量因子 CF | 每个专家 buffer 相对平均分配的倍数 | 1.0–1.5 |
辅助损失系数 \alpha | 负载均衡损失的权重 | ~0.01 量级 |
| Token dropping rate | 因容量不足被丢弃的 token 比例 | 取决于 CF 和均匀度 |
| FLOPs 相对加速 | 相同质量下相比 Dense 的训练速度 | 论文报告约 7×(Switch-Base vs T5-Base) |
| 参数效率比 | 总参数量 / 每 token 激活参数量 | N 倍(N=专家数) |
供需与市场数据
⚠️ 注意:Switch Transformer 本身是 Google Research 的学术成果,无独立商业化产品。以下为 MoE 架构在产业中的市场映射。
MoE 模型的训练计算需求(估算)
| 模型 | 架构 | 总参数量 | 训练硬件(公开信息) |
|---|---|---|---|
| Switch-C(最大变体) | Enc-Dec MoE | ~1.6T [论文] | Google TPU Pod(具体规格未充分披露) |
| Mixtral 8×7B | Dec-only MoE | ~46.7B(激活 ~12.9B)[Mistral] | 未充分披露,估算数百至千卡集群 |
| DeepSeek-V3 | Dec-only MoE | ~671B(激活 ~37B)[DeepSeek] | 2048 H800 [DeepSeek 技术报告] |
| Grok-1 | Dec-only MoE | ~314B(公开)[xAI] | 未充分披露 |
市场趋势判断
MoE 架构已从学术概念快速过渡为产业主流:
- 训练侧:MoE 降低同等质量下的训练 FLOPs,但引入通信开销,对网络带宽要求更高
- 推理侧:MoE 模型的总参数量大但激活参数少,显存占用仍需容纳全部专家参数,但每 token 计算量低——形成”显存墙 + 计算效率”的独特约束
- 硬件适配:MoE 推动了对高带宽互联(NVLink/NVSwitch, TPU ICI)和大显存(HBM3/3e)的需求
代表公司与资本映射
| 公司/机构 | 与 Switch Transformer / MoE 的关系 | 资本映射 |
|---|---|---|
| Google (Alphabet) | Switch Transformer 原研团队所在;PaLM-2 使用 MoE 变体 | GOOGL |
| Mistral AI | Mixtral 系列——最成功的开源 MoE LLM | 未上市(估值~$6B, 2024) |
| DeepSeek (幻方量化) | DeepSeek-V2/V3——创新的 MoE 路由设计 | 非上市(母公司幻方) |
| NVIDIA | MoE 模型训练和推理高度依赖 GPU + NVLink 互联 | NVDA |
| Databricks | DBRX MoE 模型 + Megablocks 开源框架 | 未上市(估值~$43B, 2023) |
| xAI | Grok-1 采用 MoE 架构 | 未上市 |
| HuggingFace | Transformers 库集成 Switch/Mixtral 等 MoE 模型 | 未上市 |
投资逻辑
核心论点
-
MoE 已成为大模型 Scaling 的确定性路线之一
- Switch Transformer 证明了稀疏激活的可行性,Mixtral/DeepSeek-V3 验证了产业落地性
- 在同等训练预算下,MoE 能达到更高质量——这意味着算力效率提升 = 成本下降 = 谁先掌握谁受益
-
MoE 对基础设施的需求是”不同”而非”更少”
- 训练 MoE 需要更高带宽的互联(All-to-All 通信模式)→ 利好 NVLink/NVSwitch 生态
- 推理 MoE 需要更大显存容纳全部专家参数 → 利好 HBM 供应商
- MoE 不是”省算力”,而是”重塑算力结构”
-
开源 MoE 模型降低准入门槛
- Mixtral 8×7B 在普通 A100 集群上可部署 → 加速下游应用爆发
- DeepSeek 开源权重 → 中国 AI 生态的 MoE 研究加速
风险点
- MoE 推理的通信开销使其在边缘/端侧部署困难(当前主流仍是 Dense 小模型)
- 负载不均衡问题在实际生产中仍是未完全解决的工程挑战
- 如果硬件架构(如存算一体)根本性改变计算范式,MoE 的优势可能被重新评估
常见误读纠偏
❌ 误读 1:“Switch Transformer 的每个专家参数更少,所以模型更小”
纠正:这是最常见的误解。Switch Transformer 的总参数量 = N × 单个专家FFN参数量 + 共享参数(注意力层等),远大于同尺寸 Dense 模型。每个 token 只激活一个专家,所以单 token 计算量小,但模型总参数量可以非常大(论文中到 1.6T)。区分清楚:激活参数 ≠ 总参数。
❌ 误读 2:“Switch Transformer 的 top-1 路由是 GShard top-2 的简化版,效果更差”
纠正:论文实验表明,在相同计算预算(FLOPs)下,top-1 路由的训练效率接近甚至有时优于 top-2。top-2 确实在某些指标上有微弱优势,但 top-1 的吞吐量显著更高(只需一半的 FFN 计算和更少的通信),综合收益更大。这不是”简化降级”,而是”减法设计的工程胜利”。
❌ 误读 3:“MoE 模型推理更快因为激活参数少”
纠正:部分正确但容易误导。MoE 模型的每 token FLOPs 确实更少(只激活 1/N 个专家的 FFN),但:
- 推理时仍需将全部专家参数加载到显存中
- All-to-All 通信引入延迟(尤其在多 GPU 推理时)
- 批处理效率可能因 token 路由到不同专家而降低
- 实际吞吐量提升取决于具体实现、批大小、硬件拓扑
❌ 误读 4:“Switch Transformer 是 encoder-decoder,跟现在的 LLM 没关系”
纠正:Switch Transformer 的核心机制(top-1 路由、容量因子、辅助损失、选择性精度)是架构无关的。后续 Mixtral、DeepSeek-V2/V3、Grok-1 等 decoder-only LLM 全面采用了 Switch 提出的稀疏 MoE 范式。encoder-decoder 只是原论文选择的实验平台。
学习路径
入门(1–2 小时)
- 阅读论文 Abstract + Introduction + Section 3(Switch Routing)—— arXiv:2101.03961
- HuggingFace 博客:“Mixture of Experts Explained”(可视化讲解 MoE 基本概念)
进阶(半天)
- 论文完整阅读,重点关注 Section 4(训练稳定性)和 Section 5(Scaling Results)
- 对照阅读 GShard 论文(Lepikhin et al., 2020),理解 top-2 vs top-1 的设计取舍
- 阅读 ST-MoE 论文(Zoph et al., 2022),了解后续改进
工程实践
- HuggingFace Transformers 中运行 Switch Transformer 示例代码(
switch-base-8等小变体) - 阅读 Megablocks 代码库(Databricks),理解稀疏计算的 CUDA kernel 实现
- 阅读 Mixtral 8×7B 技术博客,理解 MoE 在 decoder-only LLM 中的实际部署
前沿追踪
- DeepSeek-V2 技术报告——理解共享专家 + 细粒度路由的创新
- DeepSeek-V3 技术报告——了解大规模 MoE 的工程实践(负载均衡策略、通信优化等)
- 关注 MoE 推理优化:vLLM 的 Expert Parallelism 支持、TensorRT-LLM 的 MoE 优化
一句话总结
Switch Transformer 用”每个 token 只走一条路”的极简路由,证明了稀疏 MoE 可以高效扩展到万亿参数,奠定了此后所有 MoE 大模型的工程范式基础。
延伸阅读与来源
一手论文
- Fedus, Zoph, Shazeer. Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. JMLR, 2022. arXiv:2101.03961
- Shazeer et al. Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer. ICLR 2017. arXiv:1701.06538
- Lepikhin et al. GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding. ICLR 2021. arXiv:2006.16668
后续重要工作
- Zoph et al. ST-MoE: Designing Stable and Transferable Sparse Expert Models. 2022. arXiv:2202.08906
- Jiang et al. Mixtral of Experts. 2024. arXiv:2401.04088
- DeepSeek-AI. DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. 2024. arXiv:2405.04434
工程资源
- HuggingFace Transformers MoE 文档:https://huggingface.co/docs/transformers/moe
- Megablocks (Databricks):https://github.com/databricks/megablocks
- Tutel (Microsoft):https://github