要解决的问题
稀疏混合专家模型让每个 token 只激活少数专家。在专家大小与每次激活数量固定时,增加专家总数可以扩大容量,而不让专家部分的每 token 计算量同比增长。但路由、共享层、跨卡通信、批次负载和权重存储仍有成本,不能笼统说每 token 总计算量或实际耗时不变。
核心方法
一个路由器(router)为每个 token 选出得分最高的若干个专家,只计算这些专家的输出并加权合并。工程上的关键点有:
- 容量因子(capacity factor):每个专家最多处理多少个 token。
- 丢弃路由分配(token drop):某条专家路由超出容量时,该 token 在这一专家分支的计算可能被跳过或改派;通常仍沿残差通路继续,并非从原序列中删除整个 token。
- 专家冷热不均:部分专家被频繁选中,部分几乎闲置,需要负载均衡损失等手段调节。
- 专家并行(expert parallel):把不同专家放在不同设备上,token 在设备间分发。
- 计算内核:稀疏计算需要专门的高效实现。
代表工作
- Switch Transformer(2021):每个 token 只路由到一个专家(top-1 路由),大幅简化了混合专家模型的训练。
- MegaBlocks(2022):用块稀疏(block-sparse)计算实现混合专家层,不再需要丢弃 token。
- Mixtral 8x7B(2023):开源的稀疏混合专家模型,性能可以与更大的稠密模型竞争。
- DeepSeek-V2(2024)与 DeepSeek-V3(2024):结合混合专家、多头潜在注意力(MLA)和细粒度专家划分,大幅降低训练和推理成本。
开放问题
- 理论上的稀疏收益,不等于推理服务中真实的成本下降。
- 专家的专门化程度能否控制,能否解释。
参考资料
相关专题
- 分布式训练:专家并行是并行策略的一种。
- KV缓存压缩与注意力变体:DeepSeek 系列同时使用了多头潜在注意力。
- 推理并行与服务调度:混合专家模型给推理服务带来的复杂度。