Transformer 架构对比:Dense、MoE 与 Hybrid-MoE 的优劣分析
1.LLM基础架构类型
- Dense Transformer
- MoE (Mixture of Experts) Transformer
- Hybrid-MoE Transformer
2.Transformer按照编码方式分类 - 单向自回归模型 (如早期GPT系列)
- 双向模型 (如BERT)
- 编码器-解码器模型 (如BART, T5)
Dense Transformer
Dense Transformer的优势是什么
Dense Transformer的主要优势:
-
结构简单直观 - Dense Transformer采用的是原始论文"Attention is All You Need"中描述的传统transformer架构,包含编码器-解码器层的基本结构。
-
模型质量可预期 - 通过增加模型规模(参数量),可以直接提升输出质量。这种关系比较线性和可预测。
-
架构成熟可靠 - 作为最早提出的transformer架构,Dense Transformer已经经过了充分的验证和优化,有大量的实践经验可以参考。
不过文章也指出了Dense Transformer的一个主要限制:由于多头注意力机制的二次方复杂度,在相同参数量下扩展Dense Transformer架构的计算成本会比较高。这也是为什么后来发展出了MoE和Hybrid-MoE这样的改进架构。
从文章最后的实验对比来看,在600M参数规模下,Dense模型的吞吐量(18k tps)确实低于MoE(34k tps)和Hybrid-MoE(27k tps)架构。不过在交叉熵损失和困惑度等指标上,三种架构的表现相差不大。
这说明Dense Transformer虽然计算效率不如新型架构,但其性能表现依然可靠,仍然是一个值得考虑的基础架构选择。
MoE和Hybrid-MoE的改进
MoE和Hybrid-MoE的改进主要围绕两个核心方向:提升计算效率和优化规模扩展能力。让我详细分析一下:
MoE (Mixture of Experts) 的改进方向:
- 稀疏计算策略
- 使用稀疏的前馈网络层(称为experts)替代密集层
- 引入门控网络(router)来决定将哪些token发送给哪些expert
- 只激活top-k个experts来处理每个token,而不是激活所有参数
- 这种设计让MoE在扩大模型规模时,可以在保持计算成本相对固定的情况下提升性能
- 计算经济性
- 相比Dense Transformer激活所有参数,MoE在推理时只激活有限数量的参数
- 这种特性使得它在计算资源利用上更经济
Hybrid-MoE 的改进方向:
- 通信开销优化
- 解决了MoE中专家选择越多导致的all-to-all通信开销问题
- 通过将残差MoE与dense transformer结合的方式,使训练更快
- 批处理能力提升
- 改善了vanilla MoE在小批量时的延迟问题
- 能够处理更大的批量大小,提升推理速度
从文章的实验数据也能看出这些改进的效果:在600M参数规模下,MoE的吞吐量达到34k tps,Hybrid-MoE达到27k tps,而Dense transformer只有18k tps,证明了这些改进在计算效率上的优势。
特别值得注意的是文章提到的Snowflake Arctic案例,它作为一个Hybrid-MoE模型,通过结合10B Dense transformer和残差128x3.36B MoE transformer,在保持高性能的同时实现了17倍的计算节省,这很好地展示了这些改进架构的潜力。
MoE (Mixture of Experts) Transformer
MoE的优势是什么
MoE (Mixture of Experts)模型有以下主要优势:
- 预训练效率更高
- 与相同参数规模的密集模型相比,MoE可以用更少的计算资源和时间完成预训练
- 在固定计算预算下,可以训练更大规模的模型或使用更大的数据集
- 预训练速度可以提升4倍以上(如 Switch Transformers 比 T5-XXL 快4倍)
- 推理速度快
- 虽然模型总参数量大,但推理时只激活部分专家网络
- 对于同等参数规模的密集模型,MoE 推理速度更快
- 例如 Mixtral 8x7B 虽然有47B参数,但推理时计算量相当于12B参数的密集模型
- 节能环保
- 由于计算效率高,训练耗能更少
- 例如 GLaM 模型达到 GPT-3 的性能水平,但能耗仅为后者的1/3
- 灵活性高
- 可以通过调整容量因子(capacity factor)在训练和评估阶段动态调整计算资源使用
- 可以针对不同场景选择激活不同数量的专家
- 知识特化
- 不同专家可以专门处理不同类型的输入
- 编码器专家可以特化于处理特定类型的 token 或浅层概念
- 适合处理知识密集型任务
不过 MoE 也存在一些挑战,比如:
- 需要较大显存来加载所有参数
- 微调时容易过拟合
- 在小规模数据集上表现不如密集模型
- 训练时需要处理负载均衡等问题
MoE的缺点是什么
MoE (Mixture of Experts)模型的主要缺点包括:
- 显存需求大
- 虽然推理时只使用部分专家,但所有参数都需要加载到内存中
- 例如 Mixtral 8x7B 需要足够的显存来容纳47B参数,尽管实际计算量只相当于12B参数模型
- 微调困难
- 比密集模型更容易过拟合,特别是在小规模数据集上
- 在推理任务等需要深度推理的任务上表现较差
- 需要使用不同的超参数设置(如更小的批量大小和更高的学习率)
- 微调时的性能通常不如同等规模的密集模型
- 训练挑战
- 存在负载均衡问题,某些专家可能被过度使用
- 需要额外的辅助损失来确保专家被均匀使用
- 训练不稳定性问题,需要特殊的稳定化技术(如路由器 Z-loss)
- 通信开销
- 在分布式训练时需要大量设备间通信
- 专家并行化会带来额外的通信成本
- 增加容量因子会增加通信成本和激活内存
- 部署复杂性
- 由于模型体积大,本地部署困难
- 需要考虑专家调度和负载均衡的问题
- 可能需要使用特殊的部署技术(如模型蒸馏、专家聚合等)
- 小规模任务表现差
- 在数据集较小的任务上容易过拟合
- 相比之下,在大规模任务上表现更好
- 专家利用不均衡
- 如果没有良好的路由机制,某些专家可能很少被使用
- 训练过程中容易出现专家偏好问题
这些缺点使得 MoE 模型更适合大规模、高吞吐量的场景,而在资源受限或小规模应用场景中,密集模型可能是更好的选择。
#Transformer/思考
我的理解:
姜还是老的辣,Dense Transformer对于个人或者小企业还是友好的,上手难度会更低
但是如果你对吞吐量、训练效率有更高的要求,就可以考虑MoE或者Hybrid-MoE,但是上手难度会更高,比如训练容易过拟合,小数据集表现会不好,过度使用一些专家等挑战是存在的