补全llm知识体系的地基:MoE
MoE:专门的人做专门的事
- MoE总体来说是一种设计理念,即用一组“小而准确的模块”+“可训练的专家路由”来替代“大而全的模块”
- 在Transformer中,往往替代的是多个全连接层FFN
门控网络
- 最简单的门控网络是一个FFN,输出维度等于专家数目,接一个softmax来输出“选择某个专家的概率”
- 门控网络的计算结束后,根据结果选择对应的专家进行forward(稀疏MoE往往训练时也这样)
- 为了保证效果,一次通常不止激活一个专家,所以会采用 top-k
- 可以根据任务复杂程度来做动态调整,决定k的大小
专家网络
- 专家网络输出后,根据门控网络的选择概率作为权重,来加权求和得到最后的输出
- 在推理时,所有的专家都会被加载到内存中。如果任务较多,可以做一定的负载均衡策略,让大部分专家都处于活跃状态,不会一直被门控网络冷落
- 在loss中加入每个batch专家调用次数的coefficient of variation(变异系数)
- 给每个专家设定容量上限,当某个周期内调用次数达到上限后,门控网络则去转而激活其他专家,使得对应部分权重得到训练
- 由于门控网络初始化的随机性,一开始训练的可能一直偏向部分专家,会使得其他专家得不到训练。引入一个噪声到输出结果中,来增加专家选择的随机性
Deepseek V3的实践
- 256个expert+1个shared expert
- 路由机制:可学习的专家概率偏置
- 长时间低使用会提升偏置概率,使用后概率下降
- 选择概率 = gate输出 + 偏置
- 加权只使用gate输出
![image]()
https://zhuanlan.zhihu.com/p/22570639120
https://www.zhihu.com/tardis/bd/ans/3364787819


浙公网安备 33010602011771号