分布式训练基础入门

news2025/1/15 16:40:11

1.单节点训练

在这里插入图片描述

单节点训练也会转换为等价的并行训练,如在GPU内同一wrap内的32个Thread执行同一指令,但处理不同的数据。
训练程序往往实现了一个多层神经网络的执行过程。该神经网络的执行由一个计算图(Computational Graph)表示。这个图有多个相互连接的算子(Operator),每个算子会拥有计算参数。每个算子往往会实现一个神经网络层(Neural Network Layer),而参数则代表了这个层在训练中所更新的的权重(Weights)。
为了更新参数,计算图的执行分为前向计算和反向计算两个阶段。前向计算的第一步会将数据读入第一个算子,该算子会根据当前的参数,计算出给下一个算子的数据。反向计算中,每个算子依次计算出梯度,并利用梯度更新本地的参数。反向计算的结束也标志本次数据小批次的结束,系统随之读取下一个数据小批次,继续更新模型。

2.分布式训练

2.1 数据并行DP

解决单卡算力不足
在这里插入图片描述

数据进行分区,共享训练程序,反向计算时不同设备根据各自的训练样本生成局部梯度Gi,之后不同设备对应的局部梯度进行聚合得到平均梯度,用平均梯度修正模型参数,完成小批次的训练。这个聚合的过程往往由集合通信的AllReduce操作完成。

2.2 模型并行MP

解决单卡内存不足

2.2.1 算子内并行 、张量并行TP

场景:假设某个算子具有𝑃个参数,而系统拥有𝑁个设备,那么可以将𝑃个参数平均分配给𝑁个设备(每个设备分配𝑃/𝑁个参数),从而让每个设备负责更少的计算量,能够在内存容量的限制下完成前向计算和反向计算。也被称为算子内并行(Intra-operator Parallelism)。
在这里插入图片描述

将算子1的参数平均分区,设备1和设备2各负责其中部分算子1的参数。

2.2.2 算子间并行

场景:模型的总内存需求超过了单设备的内存容量。在这种场景下,假设总共有𝑁个算子和𝑀个设备,可以将算子平摊给这𝑀个设备,让每个设备仅需负责𝑁/𝑀个算子的前向和反向计算,降低设备的内存开销。这种并行方式是模型并行的另一种应用,被称为算子间并行(Inter-operator Parallelism)
在这里插入图片描述

将算子进行分开,设备1和设备2各负责一个算子。

2.3 流水线并行PP

2.3.1 并行气泡

大型模型并行采用算子内并行+算子间并行解决单设备内存不足,这种情况下,计算中的下游设备(Downstream Device)需要长期持续处于空闲状态,等待上游设备(Upstream Device)的计算完成,才可以开始计算,这极大降低了设备的平均使用率。这种现象称为模型并行气泡。因此采用流水线并行减少气泡(可以类比CPU设计中的指令流水线,提升设备使用率)。

2.3.2 微批次

在这里插入图片描述

将训练数据中的每一个小批次划分为多个微批次(Micro-Batch)。假设一个小批次有𝐷个训练样本,将其划分为𝑀个微批次,那么一个微批次就有𝐷/𝑀个数据样本。每个微批次依次进入训练系统,完成前向计算和反向计算,计算出梯度。每个微批次对应的梯度将会缓存,等到全部微批次完成,缓存的梯度会被加和,算出平均梯度(等同于整个小批次的梯度),完成模型参数的更新。

2.3.3流水线并行优化-1F1B模式

1F1B(One Forward pass followed by One Backward pass)模式,一种前向计算和反向计算交叉进行的方式。

如上图为字节万卡集群论文中的1F1B模式
在流水线并行中,MegaScale使用交错1F1B调度方法,以实现通信的重叠。在热身阶段,前向传递仅依赖于其先前的接收。我们解耦了通常一起实现的发送和接收,通过打破这种依赖关系,使得发送操作能够与计算重叠。在张量/序列并行中,介绍了融合通信和计算等优化策略,以及将GEMM内核分成小块并与通信进行流水线执行。

2.3.4 流水线并行性能

在使用流水线训练系统中,时常需要调试微批次的大小,从而达到最优的系统性能。当设备完成前向计算后,必须等到全部反向计算开始,在此期间设备会处于空闲状态。在 图11.3.1中,可以看到设备1在完成两个前向计算任务后,要等很长时间才能开始两个反向计算任务。这其中的等待时间即被称为流水线气泡(Pipeline Bubble)。为了减少设备的等待时间,一种常见的做法是尽可能地增加微批次的数量,从而让反向计算尽可能早开始。然而,使用非常小的微批次,可能会造成微批次中的训练样本不足,从而无法充分的利用起来硬件加速器中的海量计算核心。因此最优的微批次数量由多种因素(如流水线深度、微批次大小和加速器计算核心数量等)共同决定。

2.4 混合并行

2.4.1 数据并行+算子间并行

在这里插入图片描述

2.4.2 3D并行DP+PP+TP

在这里插入图片描述

一般业界将数据并行+模型张量并行+流水线并行混合成为3D并行。由于每个维度至少需要 2 个 GPU,因此在这里你至少需要 8 个 GPU 才能实现完整的 3D 并行。
如英伟达开源的Megatron-LM与字节的MegaScale都是3D并行

参考:
https://openmlsys.github.io/chapter_distributed_training/index.html
https://juejin.cn/post/7277799192966578176

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1810666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apple WWDC24的18条总结:从GPT-4o开始集成ChatGPT

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识,包括但不限于AI科普,AI工具测评,AI效率提升,AI行业洞察。关注我,AI之…

【计算机网络基础】OSI七层网络模型 TCPIP四层网络模型

文章目录 ISO介绍网络模型介绍OSI七层模型OSI七层模型介绍OSI七层特点一、TCP/IP四层模型介绍二、TCP/IP四层模型TCP/IP协议簇一次C/S通信 🌈你好呀!我是 山顶风景独好 🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分…

Vue18-列表渲染

一、v-for渲染列表 1-1、遍历数组&#xff08;用的多&#xff09; 1-2、key属性 让每一个<li>都有一个唯一的标识&#xff01; 1、写法一 只有用了遍历的方式(v-for)来生成多个同样结构的数据&#xff0c;必须给每个结构取一个唯一的标识。 2、写法二 或者&#xff1a;…

如何评估pcdn调度算法的优化效果(壹)

评估PCDN&#xff08;Peer-assisted Content Delivery Network&#xff0c;对等网络内容分发网络&#xff09;调度算法的优化效果是一个综合且系统的过程&#xff0c;涉及多个维度的考量。以下是一些建议的步骤和考量因素&#xff0c;以便全面评估优化效果&#xff1a; 一&…

Soap - ScriptableObject 架构模式

厌倦了意大利面代码吗?🍝 Soap提供了无代码解决方案来解决常见的意大利面代码问题,让您可以: 在场景和组件之间共享变量 以简单而强大的方式发送和接收事件 自动将UI和组件绑定到数据 一键保存关键变量 让游戏开发更容易 🎲 Soap使得解耦您的代码变得简单而无缝,使您能…

GaussDB技术解读——GaussDB架构介绍(二)

上篇图文&#xff0c;从GaussDB关键架构目标、GaussDB分布式架构、数据计算路由层&#xff08;Coordinator&#xff09;关键技术方案等三方面对GaussDB架构进行了介绍。本篇将从数据持久化存取层(DataNode)关键技术方案、全局事务管理层&#xff08;GTM&#xff09;关键技术方案…

LeetCode热题 100

两数之和 暴力枚举 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {for(int i0; i<nums.size()-1; i){for(int ji1; j<nums.size(); j){if(target nums[i] nums[j]){return {i,j};}}}return {};} };哈希表 方法一的时…

FlashSequence: SORA视频生成长序列任务训练解决方案

作者&#xff1a;黄奕桐、沈雯婷、艾宝乐、王昂、九丰 摘要 我们提出了长序列训练方案 FlashSequence 并集成在 PAI-TorchAcc &#xff08;阿里云机器学习平台开发的Pytorch上的大模型训练加速框架&#xff09;中&#xff0c;该方案能够支持SORA类超长序列模型的高效训练。在…

解密Prompt系列31. LLM Agent之从经验中不断学习的智能体

前言 Agent智能体的工作流可以简单分成两种&#xff1a;一种是固定的静态工作流&#xff0c;一种是智能体自主决策的动态工作流。 静态流程的Agent举几个例子&#xff0c;例如新闻热点追踪推送Agent&#xff0c;每日新论文摘要总结Agent&#xff0c;它们的优点是可控&#xf…

SpringSecurity6从入门到实战之初始用户如何存储到内存(依旧源码级别讲解,耐心看完会有收获)

SpringSecurity6从入门到实战之初始用户如何存储到内存 文接上回,根据登录表单的提交最终得知用户相关信息存储在内存中.那么SpringSecurity是如何在项目启动时将用户信息存储到内存中的呢? 这里我们还是先回到SpringBoot加载配置的地方 UserDetailServiceAutoConfigutation 类…

【PowerDesigner】创建和管理CDM之使用实体间关系

目录 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 &#x1f30d;1.2 PowerDesigner使用环境 &#x1f30a;2. 创建和管理CDM &#x1f30d;​​​​​​2.1 新建CDM &#x1f30d;2.2 使用实体间关系 &#x1f30c;a. 使用联系 &#x1f30c;b. …

2024年智能医疗与生物医药国际会议(ICIHB 2024)

2024 International Conference on Intelligent Healthcare and Biopharmaceuticals 【1】大会信息 会议简称&#xff1a;ICIHB 2024 大会地点&#xff1a;中国珠海 会议官网&#xff1a;www.icihb.com 投稿邮箱&#xff1a;icihbsub-paper.com 【2】会议简介 2024年智能医…

CISA网络安全事件应急手册

《Cybersecurity Incident & Vulnerability Response Playbooks》是美国CISA&#xff08;Cybersecurity and Infrastructure Security Agency&#xff0c;网络安全和基础设施安全局&#xff09;于2021年11月份发布的指导手册&#xff0c;是基于FCEB&#xff08;Federal Civ…

硬核新品!M4E EDU民航考培一体无人机

天途上新啦&#xff01; 应我国民用无人机首项强制性国家标准《民用无人驾驶航空器系统安全要求》&#xff0c;天途对现有小型无人机训练机的飞控、电池、感知避障和电子围栏等软硬件全面升级设计&#xff0c;严格按国标GB42590-2023规范生产。 M4E EDU四轴多旋翼无人机是天途…

浅谈word格式:.doc和.docx的优缺点及区别

.doc和.docx是两种最为常见的文档格式&#xff0c;它们在多个方面存在着显著的区别。首先&#xff0c;从版本角度来看&#xff0c;.doc是Microsoft Office Word 2003及之前版本的保存类型&#xff0c;而.docx则是Word 2007及之后版本的保存类型。这一区别直接影响了文档在不同版…

【递归、搜索与回溯】穷举vs暴搜vs深搜vs回溯vs剪枝

穷举vs暴搜vs深搜vs回溯vs剪枝 1.全排列2.子集 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 管他什么深搜、回溯还是剪枝&#xff0c;画出决…

深圳市萨科微半导体有限公司

深圳市萨科微半导体有限公司凭借碳化硅、氮化镓等新材料、功率器件设计加工环节的先进工艺、高效管理和快速扩大生产规模&#xff0c;不断降低产品价格、提高市场的占有率&#xff0c;受到了世界各地客户的认可。萨科微具有高性能高可靠集成电路的独立研发能力和多年技术储备&a…

Craig Federighi 和 John Giannandrea 在 WWDC 上谈论苹果智能技术

WWDC 主题演讲结束后&#xff0c;苹果公司的克雷格-费德里吉&#xff08;Craig Federighi&#xff09;和约翰-吉安南德雷亚&#xff08;John Giannandrea&#xff09;坐下来&#xff0c;更深入地讨论了苹果智能公司在人工智能方面所做的努力&#xff0c;包括该公司是如何训练模…

在AWS上运行的EKS Elastic Kubernetes Service 创建集群Cluster,Node group, Nodes

1. 前提条件 AWS Account: https://aws.amazon.com/free/Installing KubeCtl CLI https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.htmlEKS Cluster RoleIAM Role for Node GroupVPCEC2 Key Pair which can be used to SSH to the worker nodesAWS …

深入理解Vue3.js响应式系统基础逻辑

如果您觉得这篇文章有帮助的话&#xff01;给个点赞和评论支持下吧&#xff0c;感谢~ 作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主 此篇文章是博主于2022年学习《Vue.js设计与实现》时的笔记整理而来 书籍&a…