做 MoE Pruning 需要的知识体系可以分成几个层次:
一、基础前置知识
Transformer 架构
- Attention 机制、FFN 结构、残差连接
- 理解 token 如何在层间流动
MoE 核心机制
- Expert 的结构(通常是 FFN 的替代)
- Router/Gating 机制:Top-K routing、softmax gating
- Load balancing loss(auxiliary loss)
- Token dispatching 与 expert capacity
- 代表模型:Switch Transformer、GLaM、Mixtral、DeepSeek-MoE
二、Pruning 基础知识
经典 Pruning 方法
- Unstructured vs Structured pruning
- Magnitude pruning、gradient-based pruning
- 重要性评估指标:weight norm、activation、gradient × weight
Pruning 的核心问题
- 如何衡量”重要性”(saliency)
- 一次性剪枝 vs 迭代剪枝
- Post-training pruning vs pruning during training
- Pruning 后的 recovery:fine-tuning / distillation
LLM Pruning 相关工作(先读这些)
- SparseGPT(OBS 框架,layer-wise pruning)
- Wanda(activation-aware weight pruning)
- LLM-Pruner(结构化剪枝)
三、MoE-specific Pruning 的核心挑战
这是难点所在,需要重点理解:
| 挑战 | 说明 |
|---|---|
| Expert-level granularity | 可以剪整个 expert,也可以剪 expert 内的 weights |
| Router 的处理 | 剪掉 expert 后 router logits 需要重新 normalize |
| Load imbalance | 某些 expert 本来就很少被激活,是否该优先剪? |
| Expert 合并(merging) | 相似的 expert 可以合并而非直接删除 |
| Activated vs total params | MoE 的稀疏性使得”参数量”和”计算量”需要分开考虑 |
直接相关论文(建议按顺序读)
- MC-SMoE:expert merging + pruning
- EEP(Expert-level Early Pruning)
- MoE-Pruner / Sparse Upcycling 相关
- DeepSeek-MoE 论文中关于 expert 设计的分析
- Not All Experts are Equal:expert 重要性分析
四、工程实现能力
- 框架:PyTorch(必须)、HuggingFace Transformers、可选 DeepSpeed/Megatron
- MoE 实现细节:了解
megablocks、tutel、或 HF 的 MoE 实现 - 评估:perplexity、downstream task accuracy、latency benchmark
- 显存管理:MoE 模型通常很大,需要 model parallel 或 offloading 经验
五、推荐学习路径
Transformer 基础
↓
MoE 论文(Switch Transformer → Mixtral)
↓
经典 Pruning(SparseGPT / Wanda)
↓
MoE Pruning 论文(MC-SMoE / EEP)
↓
复现一个小实验(在小模型上做 expert pruning)
有没有特定方向想深入?比如:inference 加速、专注 expert merging、还是结合量化做压缩?