2026/4/18 13:17:19
网站建设
项目流程
网站开发的工作方法,wordpress uploads 权限,wordpress+左侧导航,网站做任务 炸金花本文详细介绍了大模型训练中的四种主要并行计算方式#xff1a;数据并行(DP)、流水线并行(PP)、张量并行(TP)和专家并行(EP)。文章分析了各并行方式的工作原理、优缺点及适用场景#xff0c;并介绍了ZeRO优化技术和混合并行策略。这些并行技术能有效解决大模型训练中的算力和…本文详细介绍了大模型训练中的四种主要并行计算方式数据并行(DP)、流水线并行(PP)、张量并行(TP)和专家并行(EP)。文章分析了各并行方式的工作原理、优缺点及适用场景并介绍了ZeRO优化技术和混合并行策略。这些并行技术能有效解决大模型训练中的算力和内存瓶颈是实现高效AI计算的关键架构设计基础。大家都知道AI计算尤其是模型训练和推理主要以并行计算为主。AI计算中涉及到的很多具体算法例如矩阵相乘、卷积、循环层、梯度运算等都需要基于成千上万的GPU以并行任务的方式去完成。这样才能有效缩短计算时间。搭建并行计算框架一般会用到以下几种常见的并行方式Data Parallelism数据并行Pipeline Parallelism流水线并行Tensor Parallelism张量并行Expert Parallelism, 专家并行接下来我们逐一看看这些并行计算方式的工作原理。▉ DP数据并行首先看看DP数据并行Data Parallelism。AI训练使用的并行总的来说分为数据并行和模型并行两类。刚才说的PP流水线并行、TP张量并行和EP专家并行都属于模型并行待会再介绍。这里我们需要先大概了解一下神经网络的训练过程。简单来说包括以下主要步骤1、前向传播输入一批训练数据计算得到预测结果。2、计算损失通过损失函数比较预测结果与真实标签的差距。3、反向传播将损失值反向传播计算网络中每个参数的梯度。4、梯度更新优化器使用这些梯度来更新所有的权重和偏置更新参数。以上过程循环往复直到模型的性能达到令人满意的水平。训练就完成了。我们回到数据并行。数据并行是大模型训练中最为常见的一种并行方式当然也适用于推理过程。它的核心思想很简单就是每个GPU都拥有完整的模型副本然后将训练数据划分成多个小批次mini-batch每个批次分配给不同的GPU进行处理。数据并行的情况下大模型训练的过程是这样的1、对数据进行均匀切割发给不同的、并行工作的GPUWorker2、各GPU都拥有一样的模型以及模型参数它们各自独立进行前向传播、反向传播计算得到各自的梯度3、各GPU通过卡间通信以All-Reduce的通信方式将梯度推给一个类似管理者的GPUServer4、Server GPU对所有梯度进行求和或者平均得到全局梯度5、Server GPU将全局梯度回传broadcast广播到每个Worker GPU进行参数更新更新本地模型权重。更新后所有worker GPU模型参数保持一致。然后再继续重复这样的过程直至完成所有的训练。再来一张图帮助理解从下往上看这里提到的All-Reduce也是一个AI领域的常见概念字面意思是“全All-规约Reduce”即对所有节点的数据进行聚合如求和、求最大值并将最终结果分发到所有节点。参考到底什么是All-Reduce、All-to-All数据并行的优点在于实现过程比较简单能够显著加速大规模数据的训练过程尤其适用于数据量远大于模型参数的场景。数据并行的缺点在于显存的限制。因为每个GPU上都有完整的模型副本而当模型的规模和参数越大所需要的显存就越大很可能超过单个GPU的显存大小。数据并行的通信开销也比较大。不同GPU之间需要频繁通信以同步模型参数或梯度。而且模型参数规模越大GPU数量越多这个通信开销就越大。例如对于千亿参数模型单次梯度同步需传输约2TB数据FP16精度下。▉ ZeRO这里要插播介绍一个概念——ZeROZero 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存在瓶颈的问题。▉ 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时间。▉ TP张量并行模型并行的另外一种是张量并行。如果说流水线并行是将一个模型按层「垂直」分割那么张量并行则是在一个层内「横向」分割某些操作。具体来说张量并行是将模型的张量如权重矩阵按维度切分到不同的GPU上运行的并行方式。张量切分方式分为按行进行切分和按列进行切分分别对应行并行Row Parallelism权重矩阵按行分割与列并行Column Parallelism权重矩阵按列分割。每个节点处理切分后的子张量。最后通过集合通信操作如All-Gather或All-Reduce来合并结果。张量并行的优点是适合单个张量过大的情况可以显著减少单个节点的内存占用。张量并行的缺点是当切分维度较多的时候通信开销比较大。而且张量并行的实现过程较为复杂需要仔细设计切分方式和通信策略。放一张数据并行、流水线并行、张量并行的简单对比▉ 专家并行2025年初DeepSeek爆红的时候有一个词也跟着火了那就是MoEMixture of Experts混合专家模型。MoE模型的核心是“多个专家层路由网络门控网络”。专家层的每个专家负责处理特定类型的token如语法、语义相关。路由网络根据输入token的特征选择少数专家处理这个token其他专家不激活。MoE实现了任务分工、按需分配算力因此大幅提升了模型效率。专家并行Expert Parallelism是MoE混合专家模型中的一种并行计算策略。它通过将专家子模型分配到不同的GPU上实现计算负载的分布式处理提高计算效率。专家并行与之前所有的并行相比最大的不同在于输入数据需要通过一个动态的路由选择机制分发给相应专家此处会涉及到一个所有节点上的数据重分配的动作。然后在所有专家处理完成后又需要将分散在不同节点上的数据按原来的次序整合起来。这样的跨片通信模式称为All-to-All。专家并行可能存在负载不均衡的问题。某个专家所接收到的输入数据大于了其所能接收的范围就可能导致Tokens不被处理或不能被按时处理成为瓶颈。所以设计合理的门控机制和专家选择策略是部署专家并行的关键。▉ 混合并行在实际应用中尤其是训练万亿参数级别的超大模型时几乎不会只使用单一的并行策略而是采用多维度的混合并行结合使用多种并行策略。例如数据并行张量并行数据并行处理批量样本张量并行处理单样本的大矩阵计算。流水线并行专家并行流水线并行划分模型层专家并行划分层内专家模块。更高级的是3D并行通过“数据并行张量并行流水线并行”实现三重拆分是超大模型训练的主流方案。3D并行▉ 最后的话好啦以上就是关于DP、PP、TP、EP等并行训练方式的介绍。大家都看懂了没并行计算方式其实非常复杂刚才我们只是做了最简单的介绍。但在真实工作中开发者无需了解具体的实现细节因为业界提供了例如DeepSpeed微软开源支持3D并行ZeRO内存优化、Megatron-LMNVIDIA开源3D并行的标杆、FSDP等开源软件能够让开发者直接进行大语言模型训练。小枣君之所以要专门介绍并行训练方式其实更多是为了帮助大家深入地理解算力集群架构和网络的设计。大家可以看到不同的并行训练方式有着不同的通信流量特点。算力集群整体架构和网络设计需要尽量去适配这些并行计算方式的流量特点才能满足模型训推任务的要求实现更高的工作效率。比如说数据并行由于需要频繁同步梯度信息对网络带宽要求较高需要确保网络带宽能够满足大量梯度数据快速传输的需求避免因带宽不足导致通信延迟影响训练效率。流水线并行大模型的每一段在不同的服务器上以流水线的方式逐步计算涉及到多个服务器“串起来”就建议部署在比较靠近的服务器上尽量部署在叶脊网络的同一个leaf叶下。张量并行通信数据量大就建议部署在一台服务器的多个GPU上进行计算。专家并行中不同专家分配在不同GPU上GPU间需要交换中间计算结果等信息其通信流量特点取决于专家的数量以及数据交互的频率等也需要合理规划GPU间的连接方式和通信路径。总之在GPU算卡性能越来越难以提升的背景下深入研究并行计算的设计从架构和网络上挖掘潜力是业界的必然选择。随着AI浪潮的继续发展以后是否还会出现其它的并行训练方式呢让我们拭目以待吧如何学习AI大模型如果你对AI大模型入门感兴趣那么你需要的话可以点击这里大模型重磅福利入门进阶全套104G学习资源包免费分享这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】这是一份大模型从零基础到进阶的学习路线大纲全览小伙伴们记得点个收藏第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。100套AI大模型商业化落地方案大模型全套视频教程200本大模型PDF书籍学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。LLM面试题合集大模型产品经理资源合集大模型项目实战合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】