开云(中国大陆官方网站)Kaiyun科技股份有限公司 - 领先的GPU计算与AI算力解决方案

关闭菜单
027-83317177
当前位置: 首页 > 新闻资讯 > 行业新闻

一文看懂AI大模型的并行训练方式(DP、PP、TEP)

2025-11-30 14:20:27 小编

  

一文看懂AI大模型的并行训练方式(DP、PP、TP、EP)

  AI 计算中涉及到的很多具体算法(例如矩阵相乘、卷积、循环层、梯度运算等),都需要基于成千上万的 GPU,以并行任务的方式去完成。这样才能有效缩短计算时间。

  AI 训练使用的并行,总的来说,分为数据并行和模型并行两类。刚才说的 PP(流水线并行)、TP(张量并行)和 EP(专家并行),都属于模型并行,待会再介绍。

  这里,我们需要先大概了解一下神经网络的训练过程。简单来说,包括以下主要步骤:

  2、计算损失:通过损失函数比较预测结果与线、反向传播:将损失值反向传播,计算网络中每个参数的梯度。

  数据并行是大模型训练中最为常见的一种并行方式(当然,也适用于推理过程)。

  它的核心思想很简单,就是每个 GPU 都拥有完整的模型副本,然后,将训练数据划分成多个小批次(mini-batch),每个批次分配给不同的 GPU 进行处理。

  2、各 GPU 都拥有一样的模型以及模型参数,它们各自独立进行前向传播、反向传播,计算得到各自的梯度;

  3、各 GPU 通过卡间通信,以 All-Reduce 的通信方式,将梯度推给一个类似管理者的 GPU(Server);

  5、Server GPU 将全局梯度回传(broadcast 广播)到每个 Worker GPU,进行参数更新(更新本地模型权重)。更新后,所有 worker GPU 模型参数保持一致。

  数据并行的优点,在于实现过程比较简单,能够显著加速大规模数据的训练过程,尤其适用于数据量远大于模型参数的场景。

  数据并行的缺点,在于显存的限制。因为每个 GPU 上都有完整的模型副本,而当模型的规模和参数越大,所需要的显存就越大,很可能超过单个 GPU 的显存大小。

  数据并行的通信开销也比较大。不同 GPU 之间需要频繁通信,以同步模型参数或梯度。而且,模型参数规模越大,GPU 数量越多,这个通信开销就越大。例如,对于千亿参数模型,单次梯度同步需传输约 2TB 数据(FP16 精度下)。

  在数据并行策略中,每个 GPU 的内存都保存一个完整的模型副本,很占内存空间。那么,能否每个 GPU 只存放模型副本的一部分呢?

  没错,这就是 ZeRo—— 通过对模型副本中的优化器状态、梯度和参数进行切分,来实现减少对内存的占用。

  值得一提的是,DP 还有一个 DDP(分布式数据并行)。传统 DP 一般用于单机多卡场景。而 DDP 能多机也能单机。这依赖于 Ring-AllReduce,它由百度最先提出,可以有效解决数据并行中通信负载不均(Server 存在瓶颈)的问题。

  刚才数据并行,是把数据分为好几个部分。模型并行,很显然,就是把模型分为好几个部分。不同的 GPU,运行不同的部分。(注意:业界对模型并行的定义有点混乱。也有的资料会将张量并行等同于模型并行。)

  流水线并行,是将模型的不同层(单层,或连续的多层)分配到不同的 GPU 上,按顺序处理数据,实现流水线式的并行计算。

  乍一看,流水并行有点像串行。每个 GPU 需要等待前一个 GPU 的计算结果,可能会导致大量的 GPU 资源浪费。

  为了解决上述问题,可以将 mini-batch 的数据进一步切分成 micro-batch 数据。当 GPU 0 处理完一个 micro-batch 数据后,紧接着开始处理下一个 micro-batch 数据,以此来减少 GPU 的空闲时间。如下图(b)所示:

  对于流水线并行,需要对任务调度和数据传输进行精确管理,否则可能导致流水线阻塞,以及产生更多的 Bubble 时间。

  如果说流水线并行是将一个模型按层「垂直」分割,那么,张量并行则是在一个层内「横向」分割某些操作。

  张量切分方式分为按行进行切分和按列进行切分,分别对应行并行(Row Parallelism)(权重矩阵按行分割)与列并行(Column Parallelism)(权重矩阵按列分割)。

  张量并行的缺点,是当切分维度较多的时候,通信开销比较大。而且,张量并行的实现过程较为复杂,需要仔细设计切分方式和通信策略。

  专家并行(Expert Parallelism),是 MoE(混合专家模型)中的一种并行计算策略。它通过将专家(子模型)分配到不同的 GPU 上,实现计算负载的分布式处理,提高计算效率。

  专家并行与之前所有的并行相比,最大的不同在于,输入数据需要通过一个动态的路由选择机制分发给相应专家,此处会涉及到一个所有节点上的数据重分配的动作。

  然后,在所有专家处理完成后,又需要将分散在不同节点上的数据按原来的次序整合起来。

  专家并行可能存在负载不均衡的问题。某个专家所接收到的输入数据大于了其所能接收的范围,就可能导致 Tokens 不被处理或不能被按时处理,成为瓶颈。

  在实际应用中,尤其是训练万亿参数级别的超大模型时,几乎不会只使用单一的并行策略,而是采用多维度的混合并行(结合使用多种并行策略)。

  数据并行 + 张量并行:数据并行处理批量样本,张量并行处理单样本的大矩阵计算。

  流水线并行 + 专家并行:流水线并行划分模型层,专家并行划分层内专家模块。

  更高级的,是 3D 并行,通过“数据并行 + 张量并行 + 流水线并行”,实现三重拆分,是超大模型训练的主流方案。

  好啦,以上就是关于 DP、PP、TP、EP 等并行训练方式的介绍。大家都看懂了没?

  并行计算方式其实非常复杂,刚才我们只是做了最简单的介绍。但在真实工作中,开发者无需了解具体的实现细节,因为业界提供了例如 DeepSpeed(微软开源,支持 3D 并行 +ZeRO 内存优化)、Megatron-LM(NVIDIA开源,3D 并行的标杆)、FSDP 等开源软件,能够让开发者直接进行大语言模型训练。

  小枣君之所以要专门介绍并行训练方式,其实更多是为了帮助大家深入地理解算力集群架构和网络的设计。

  比如说,数据并行,由于需要频繁同步梯度信息,对网络带宽要求较高,需要确保网络带宽能够满足大量梯度数据快速传输的需求,避免因带宽不足导致通信延迟,影响训练效率。

  流水线并行,大模型的每一段,在不同的服务器上以流水线的方式逐步计算,涉及到多个服务器“串起来”,就建议部署在比较靠近的服务器上(尽量部署在叶脊网络的同一个 leaf 叶下)。

  张量并行,通信数据量大,就建议部署在一台服务器的多个 GPU 上进行计算。

  专家并行中,不同专家分配在不同 GPU 上,GPU 间需要交换中间计算结果等信息,其通信流量特点取决于专家的数量以及数据交互的频率等,也需要合理规划 GPU 间的连接方式和通信路径。

  随着 AI 浪潮的继续发展,以后是否还会出现其它的并行训练方式呢?让我们拭目以待吧!

联系专业的商务顾问,制定方案,专业设计,一对一咨询及其报价详情
服务热线服务热线 027-83317177
咨询kaiyun全站解决方案 马上咨询
免费获取技术咨询服务
姓名图标
电话图标
QQ图标

联系我们 contact us
027-83317177