一、模型架构
1.1 高效的模型架构设计:多头潜在注意力 MLA 和 DeepSeekMoE 架构
1.2 创新的负载均衡策略:无辅助损失负载均衡和序列级负载均衡
1. 基本概念 :在MoE大模型训练过程中, 输入数据会根据一定的路由规则分配到不同的专家模型进行处理,这个过程中可能会出现负载不均衡的情况, 即某些专家被频繁调用,而另一些专家则很少被使用 ,这会导致训练效率和模型性能下降;
业界通常采用的负载均衡策略为引入专门的辅助损失函数来强制平衡专家之间的负载,例如通过惩罚专家之间的负载差异来促使模型均匀地使用各个专家, 额外引入的损失函数往往会导致模型复杂度增加、训练不稳定、发生与原本训练目标不一致等问题 ;
除了上述基于单 Token 的负载不均问题外,一个输入序列中的 Token 在专家间的分配情况也容易出现负载不均,即同一序列中的多个 Token 可能会集中分配给某些专家。
1.3 多令牌预测(MTP) 训练目标:提高训练效率和推理速度
1. 基本概念 : MTP 的全称是 Multi - Token Prediction(多令牌预测),与之对应的是 DeepSeek-V3 发布之前业界普遍使用的单令牌预测(Single - Token Prediction,STP),STP 一次仅预测一个Token,而 MTP 可同时预测多个 Token, 这一方案在训练阶段可以提升数据训练效率,在推理阶段可以实现显著加速 。
二、并行策略
2.1 高效的并行策略设计:大量使用 EP、不再使用 TP
2.2 Dualpipe 流水线并行策略:双流并行计算优化与双向流水线调度优化
-
前向传递 :通常按顺序执行 ATTN(计算流)、DISPATCH(通信流)、MLP(计算流)、COMBINE(通信流) 操作。
-
ATTN(计算流): 指注意力机制计算,使大模型能够捕捉文本等数据中的依赖关系,提升模型的性能和泛化能力。 -
DISPATCH(通信流):指数据或任务在不同GPU节点之间的传递,提高整个训练系统的并行度和效率。 -
MLP(计算流):即多层感知机计算,由输入层、输出层和一个或多个隐藏层构成,利用梯度下降法更新权重参数。 -
COMBINE(通信流):指将不同GPU节点上将计算结果进行合并的通信操作。
-
COMBINE(通信流):定义与前向传递相同,此处特指反向传递时的数据汇总,以便进行全局参数更新。 -
MLP_B(计算流):此处的B指的是Bias,指的是反向传播中对于偏执项的计算,以便更新大模型的偏执参数。 -
MLP_W(计算流):此处的W指的是Weight,指的是反向传播中对于权重参数的计算,用于更新权重参数。 -
DISPATCH(通信流):在反向计算中,DISPATCH 的作用仍然是负责数据或任务的分发。 -
ATTN_B(计算流):偏置项也会影响注意力权重的计算和最终的输出,通过计算调整注意力机制中的偏置参数。 -
ATTN_W(计算流):计算损失函数对注意力权重的梯度,通过更新注意力权重捕捉数据中的依赖关系和重要信息。
2.3 ZeRO-1(DP) 数据并行策略:降低内存占用,加速模型训练
三、通信优化
3.1 Moe 路由的All2All优化设计:网络拓扑优化与资源分配优化
1. 基本概念 : 在MoE大模型训练中,需要将训练数据按照数据类型或特征分配给最合适的专家模型进行处理, 此时常用到两种数据路由方案 ,一种是All to All通信方案,另一种是基于 Magetron 实现的All Reduce和Reduce Scatter通信方案,其优缺点大致如下:
四、显存优化
4.1 FP8 低精度训练:混合训练框架和精细量化策略