MoE 发展史概述
学习: https://github.com/chenzomi12/AISystem
没想到最早在90年代就提出了
- 设计多个独立(Experts)网络模块,处理数据中不同的子集
- 由门控网络选择模块
2017年,最早使用MoE思想结合LSTM设计了当时最大的模型 (确实能和GRU、LSTM联系)
- 通过路由只激活少数的 Experts,(首次提出稀疏MoE)实现成本与规模分离
- Top_k Gate,选择前k个Experts
- 负载均衡,通过辅助lost函数实现
2020 年,GShard, Google 将MoE与transformer结合 核心思想:
- 提出 MoE+transformer,替换传统了FFN层
- 引入了随机路由与Experts容量概念,优化分布式训练与负载均衡(transformer和RNN在负责均衡上存在区别)
- 提出GShard架构 (支持更多参数的分布式框架),应该并行通讯相关
2021.1 Switch transformers 核心思想:
- 简化路由机制(Gate),只选择一个Experts
- 大模型 scaling 与 蒸馏 的探索
2021.12 GLaM 核心思想:
- 稀疏激活机制。每个input动态选择2个Experts激活计算
- 实现条件计算,根据输入动态调整计算路径
- 更多的Experts,并实现跨设备扩展(多experts展示了多任务与多语言优势)
2022.2 ST-MoE 核心思想:
- 引入梯度裁剪、噪声注入、路由限制,缓解MoE训练不稳定问题
- 优化微调策略,提高MoE微调、迁移学习的能力。适配下游任务 (对后续微调可以尝试微调策略入手)
2024.1 DeepSeek MoE 核心思想:
- experts共享机制。多了一个共享专家参与计算,而不是experts间信息合并融合
- MLA缓存(以存代算)
同一层设计更多的FFN模块,通过Gate选择模型与Input计算
为什么是在 FFN 上,而不是 selfattention,或者都使用
Gate 对 专家 不只是简单的选择(只是其中一种策略),还有其他选择策略