大模型并行计算全解析:从数据并行到专家并行,程序员收藏指南
好啦,以上就是关于DP、PP、TP、EP等并行训练方式的介绍。大家都看懂了没?并行计算方式其实非常复杂,刚才我们只是做了最简单的介绍。但在真实工作中,开发者无需了解具体的实现细节,因为业界提供了例如DeepSpeed(微软开源,支持3D并行+ZeRO内存优化)、Megatron-LM(NVIDIA开源,3D并行的标杆)、FSDP等开源软件,能够让开发者直接进行大语言模型训练。
本文详细介绍了大模型训练中的五种主要并行计算方式:数据并行(DP)、流水线并行(PP)、张量并行(TP)、专家并行(EP)和混合并行(如3D并行)。每种方式的工作原理、优缺点和应用场景均有说明,并提及了ZeRO优化技术和DeepSpeed等开源框架。理解这些并行方式有助于深入掌握算力集群架构和网络设计,是AI开发者必备知识。
1、DP(数据并行)
首先看看DP,数据并行(Data Parallelism)。
AI训练使用的并行,总的来说,分为数据并行和模型并行两类。刚才说的PP(流水线并行)、TP(张量并行)和EP(专家并行),都属于模型并行,待会再介绍。

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

1、前向传播:输入一批训练数据,计算得到预测结果。
2、计算损失:通过损失函数比较预测结果与真实标签的差距。
3、反向传播:将损失值反向传播,计算网络中每个参数的梯度。
4、梯度更新:优化器使用这些梯度来更新所有的权重和偏置(更新参数)。
以上过程循环往复,直到模型的性能达到令人满意的水平。训练就完成了。
我们回到数据并行。
数据并行是大模型训练中最为常见的一种并行方式(当然,也适用于推理过程)。
它的核心思想很简单,就是每个GPU都拥有完整的模型副本,然后,将训练数据划分成多个小批次(mini-batch),每个批次分配给不同的GPU进行处理。
数据并行的情况下,大模型训练的过程是这样的:

1、对数据进行均匀切割,发给不同的、并行工作的GPU(Worker);
2、各GPU都拥有一样的模型以及模型参数,它们各自独立进行前向传播、反向传播,计算得到各自的梯度;
3、各GPU通过卡间通信,以All-Reduce的通信方式,将梯度推给一个类似管理者的GPU(Server);
4、Server GPU对所有梯度进行求和或者平均,得到全局梯度;
5、Server GPU将全局梯度回传(broadcast广播)到每个Worker GPU,进行参数更新(更新本地模型权重)。更新后,所有worker GPU模型参数保持一致。
然后,再继续重复这样的过程,直至完成所有的训练。
再来一张图,帮助理解:

从下往上看
这里提到的All-Reduce,也是一个AI领域的常见概念,字面意思是“全(All)-规约(Reduce)”,即:对所有节点的数据进行聚合(如求和、求最大值),并将最终结果分发到所有节点。
数据并行的优点,在于实现过程比较简单,能够显著加速大规模数据的训练过程,尤其适用于数据量远大于模型参数的场景。
数据并行的缺点,在于显存的限制。因为每个GPU上都有完整的模型副本,而当模型的规模和参数越大,所需要的显存就越大,很可能超过单个GPU的显存大小。
数据并行的通信开销也比较大。不同GPU之间需要频繁通信,以同步模型参数或梯度。而且,模型参数规模越大,GPU数量越多,这个通信开销就越大。例如,对于千亿参数模型,单次梯度同步需传输约2TB数据(FP16精度下)。
2、ZeRO
这里要插播介绍一个概念——ZeRO(Zero Redundancy Optimizer,零冗余优化器)。
在数据并行策略中,每个GPU的内存都保存一个完整的模型副本,很占内存空间。那么,能否每个GPU只存放模型副本的一部分呢?
没错,这就是ZeRo——通过对模型副本中的优化器状态、梯度和参数进行切分,来实现减少对内存的占用。
ZeRO有3个阶段,分别是:
ZeRO-1:对优化器状态进行划分。
ZeRO-2:对优化器状态和梯度进行划分
ZeRO-3:对优化器状态、梯度和参数进行划分。(最节省显存)
通过下面的图和表,可以看得更明白些:


根据实测数据显示,ZeRO-3在1024块GPU上训练万亿参数模型时,显存占用从7.5TB降至7.3GB/卡。
值得一提的是,DP还有一个DDP(分布式数据并行)。传统DP一般用于单机多卡场景。而DDP能多机也能单机。这依赖于Ring-AllReduce,它由百度最先提出,可以有效解决数据并行中通信负载不均(Server存在瓶颈)的问题。

3、 PP(流水线并行)
再来看看模型并行。
刚才数据并行,是把数据分为好几个部分。模型并行,很显然,就是把模型分为好几个部分。不同的GPU,运行不同的部分。(注意:业界对模型并行的定义有点混乱。也有的资料会将张量并行等同于模型并行。)
流水线并行,是将模型的不同层(单层,或连续的多层)分配到不同的GPU上,按顺序处理数据,实现流水线式的并行计算。

例如,对于一个包含7层的神经网络,将12层放在第一个GPU上,35层放在第二个GPU上,6~7层放在第三个GPU上。训练时,数据按照顺序,在不同的GPU上进行处理。
乍一看,流水并行有点像串行。每个GPU需要等待前一个GPU的计算结果,可能会导致大量的GPU资源浪费。

上面这个图中,黄色部分就是Bubble (气泡)时间。气泡越多,代表GPU处于等待状态(空闲状态)越长,资源浪费越严重。
为了解决上述问题,可以将mini-batch的数据进一步切分成micro-batch数据。当GPU 0处理完一个micro-batch数据后,紧接着开始处理下一个micro-batch数据,以此来减少GPU的空闲时间。如下图(b)所示:

还有,在一个micro-batch完成前向计算后,提前调度,完成相应的反向计算,这样就能释放部分显存,用以接纳新的数据,提升整体训练性能。如上图(c)所示。
这些方法,都能够显著减少流水线并行的Bubble时间。
对于流水线并行,需要对任务调度和数据传输进行精确管理,否则可能导致流水线阻塞,以及产生更多的Bubble时间。
4、TP(张量并行)
模型并行的另外一种,是张量并行。
如果说流水线并行是将一个模型按层「垂直」分割,那么,张量并行则是在一个层内「横向」分割某些操作。

具体来说,张量并行是将模型的张量(如权重矩阵)按维度切分到不同的GPU上运行的并行方式。
张量切分方式分为按行进行切分和按列进行切分,分别对应行并行(Row Parallelism)(权重矩阵按行分割)与列并行(Column Parallelism)(权重矩阵按列分割)。

每个节点处理切分后的子张量。最后,通过集合通信操作(如All-Gather或All-Reduce)来合并结果。

张量并行的优点,是适合单个张量过大的情况,可以显著减少单个节点的内存占用。
张量并行的缺点,是当切分维度较多的时候,通信开销比较大。而且,张量并行的实现过程较为复杂,需要仔细设计切分方式和通信策略。
放一张数据并行、流水线并行、张量并行的简单对比:

5、专家并行
2025年初DeepSeek爆红的时候,有一个词也跟着火了,那就是MoE(Mixture of Experts,混合专家模型)。
MoE模型的核心是“多个专家层+路由网络(门控网络)”。

专家层的每个专家负责处理特定类型的token(如语法、语义相关)。路由网络根据输入token的特征,选择少数专家处理这个token,其他专家不激活。
MoE实现了任务分工、按需分配算力,因此大幅提升了模型效率。
专家并行(Expert Parallelism),是MoE(混合专家模型)中的一种并行计算策略。它通过将专家(子模型)分配到不同的GPU上,实现计算负载的分布式处理,提高计算效率。
专家并行与之前所有的并行相比,最大的不同在于,输入数据需要通过一个动态的路由选择机制分发给相应专家,此处会涉及到一个所有节点上的数据重分配的动作。
然后,在所有专家处理完成后,又需要将分散在不同节点上的数据按原来的次序整合起来。
这样的跨片通信模式,称为All-to-All。
专家并行可能存在负载不均衡的问题。某个专家所接收到的输入数据大于了其所能接收的范围,就可能导致Tokens不被处理或不能被按时处理,成为瓶颈。
所以,设计合理的门控机制和专家选择策略,是部署专家并行的关键。
6、混合并行
在实际应用中,尤其是训练万亿参数级别的超大模型时,几乎不会只使用单一的并行策略,而是采用多维度的混合并行(结合使用多种并行策略)。
例如:
数据并行+张量并行:数据并行处理批量样本,张量并行处理单样本的大矩阵计算。
流水线并行+专家并行:流水线并行划分模型层,专家并行划分层内专家模块。
更高级的,是3D并行,通过“数据并行+张量并行+流水线并行”,实现三重拆分,是超大模型训练的主流方案。

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

并行计算方式其实非常复杂,刚才我们只是做了最简单的介绍。但在真实工作中,开发者无需了解具体的实现细节,因为业界提供了例如DeepSpeed(微软开源,支持3D并行+ZeRO内存优化)、Megatron-LM(NVIDIA开源,3D并行的标杆)、FSDP等开源软件,能够让开发者直接进行大语言模型训练。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。


👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。

👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!
更多推荐



所有评论(0)