MoE(混合专家)是怎样工作的?和参数量相同的 Dense 模型比有什么不同?
先自己想一想,再看参考要点
参考要点
- MoE 把每层的前馈网络换成多个结构相同、参数独立的专家,再加一个路由器为每个专家打分,每个 Token 只交给得分最高的 k 个专家处理,输出按分数加权求和
- 目的是用更多的参数存储知识,而每个 Token 的计算量不随之增加,例如 Qwen3-30B-A3B 每层 128 个专家、每个 Token 选 8 个,总参数 30.5B,每个 Token 实际用到 3.3B
- 计算量取决于激活的参数,接近 3B 的 Dense 模型,显存取决于总参数,所有专家都要加载,BF16 权重约 61 GB
- 训练时需要负载均衡,否则少数专家总被选中、其它专家得不到训练,Switch Transformer 在损失中加辅助损失,DeepSeek-V3 给路由分数加一个只用于选择专家的偏置并按负载调整
- DeepSeekMoE 还设共享专家,每个 Token 都要经过,用于学习通用的知识