LLM分布式训练---混合并行(2D 3D)

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此,我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。

而利用AI集群,使深度学习算法更好地从大量数据中高效地训练出性能优良的大模型是分布式机器学习的首要目标。为了实现该目标,一般需要根据硬件资源与数据/模型规模的匹配情况,考虑对计算任务、训练数据和模型进行划分,从而进行分布式存储和分布式训练。

因此,分布式训练相关技术值得我们进行深入分析其背后的机理。

但是在进行上百亿/千亿级以上参数规模的超大模型预训练时,通常会组合多种并行技术一起使用。

常见的分布式并行技术组合

1.  DP + PP

下图演示了如何将 DP 与 PP 结合起来使用。

这里重要的是要了解 DP rank 0 是看不见 GPU2 的, 同理,DP rank 1 是看不到 GPU3 的。

对于 DP 而言,只有 GPU 0 和 1,并向它们供给数据。GPU0 使用 PP 将它的一些负载转移到 GPU2。同样地, GPU1 也会将它的一些负载转移到 GPU3 。

由于每个维度至少需要 2 个 GPU;因此,这儿至少需要 4 个 GPU。

2.  3D 并行(DP + PP + TP)

而为了更高效地训练,可以将 PP、TP 和 DP 相结合,被业界称为 3D 并行,如下图所示。

由于每个维度至少需要 2 个 GPU,因此在这里你至少需要 8 个 GPU 才能实现完整的 3D 并行。

3. ZeRO --- DP + PP + TP
作为 DeepSpeed 的主要功能之一,它是 DP 的超级可伸缩增强版,并启发了 PyTorch FSDP 的诞生。通常它是一个独立的功能,不需要 PP 或 TP。但它也可以与 PP、TP 结合使用。

当 ZeRO-DP 与 PP 和 TP 结合使用时,通常只启用 ZeRO 阶段 1(只对优化器状态进行分片)

而 ZeRO 阶段 2 还会对梯度进行分片,ZeRO 阶段 3 还会对模型权重进行分片。

虽然理论上可以将 ZeRO 阶段 2 与 流水线并行PP一起使用,但它会对性能产生不良影响。每个 micro batch 都需要一个额外的 reduce-scatter 通信来在分片之前聚合梯度,这会增加潜在的显著通信开销。根据流水线并行的性质,我们会使用小的 micro batch ,并把重点放在算术强度 (micro batch size) 与最小化流水线气泡 (micro batch 的数量) 两者间折衷。因此,增加的通信开销会损害流水线并行。

此外,由于 PP,层数已经比正常情况下少,因此并不会节省很多内存。PP 已经将梯度大小减少了 1/PP,因此在此基础之上的梯度分片和纯 DP 相比节省不了多少内存。

除此之外,我们也可以采用 DP + TP 进行组合、也可以使用 PP + TP 进行组合,还可以使用 ZeRO3 代替 DP + PP + TP,ZeRO3 本质上是DP+MP的组合,并且无需对模型进行过多改造,使用更方便。

【深度学习】【分布式训练】一文捋顺千亿模型训练技术:流水线并行、张量并行和3D并行 - 知乎 (zhihu.com)

用通俗易懂的方式讲解大模型分布式训练并行技术:多维混合并行-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。

1. 音频接口 音频插座是一种用于连接音频信号线路的电子元件,常见于音频设备(如音响、耳机、话筒等)中。它的主要作用是将电子信号转化为声音信号,以满足人们对于音乐、电影、游戏等方面的需求。 根据插头形状的不同,音…

sql Server2015安装——参考的教程

1.sql Server安装包来自:https://mp.weixin.qq.com/s/Pe_YbWw_MgwjzzZhQWIYfA 2.需要的替换文件和补丁:https://blog.csdn.net/Auspicious_air/article/details/108315154 https://blog.csdn.net/m0_60477996/article/details/126748477 3.安装manger…

postgresql中控制符带来的数据错觉

简介 在数据库字符集中,由于数据质量的控制不够完善,每一个字符集都并不是所有字符的能看见,有些字符的展示可能会出现乱码,甚至出现不同字符展示成同样效果的可能,给开发人员造成分析错觉。 当数据库存入了控制符&am…

关于位操作符的实际应用<C语言>

前言 位操作符在C语言初学阶段相对其他操作符来说,是一种难度比较大的操作符,且运用较少的一类操作符,但是位操作符并不是“一无是处”,合理运用的位操作符,在某些场景下可以优化算法,提高代码的执行效率&a…

GRS认证的优点和缺点是什么?

GRS认证(Global Recycled Standard)的优点主要体现在以下几个方面: 环保性:GRS认证鼓励和保证产品中使用更多的回收材料,从而减少对原始资源的需求和开采,有助于降低环境负荷,促进资源的循环利用…

Python入门到精通,一个月就够了!前字节大佬超详细系统学习路线

毫无疑问,Python 是当下最火的编程语言之一。 对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事。 感觉很迷茫?学了一段时间还是不入流?很大一部分原因是因为你没有一个完整的知识体系&…

python日常消费数据占比分析总结年消费方向

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 整体消费情况 消费趋势 特定领域消费数据

大数据面试题 —— 数据仓库

目录 数据仓库是什么数据仓库和数据库的区别为什么要对数据仓库分层数仓分层,以及每一层的作用维度建模的三种模型范式建模、维度建模维度建模过程,如何确定这些维度 ***维度模型的各个维度之间是怎么聚合的聚合过程的数据倾斜怎么解决?数据质…

pyqt6的安装,使用-1

pyqt6安装的话,在自己所用的环境里安就可以,之前写有yolov5,yolov8的环境配置,python3.8的我安装就没有问题,打开anaconda,激活自己的环境 把这复制进去 pip install pyqt6 pip install pyqt6-tools 这个安装完了之后…

基于stm32的spi从机实验HAL库编程

目录 基于stm32的spi从机实验HAL库编程前言业务场景硬件设计接线配置swd接口配置spi配置DMA配置中断配置系统时钟配置工程生成代码写点从机代码上机现象后记本文使用的测试工程 基于stm32的spi从机实验HAL库编程 前言 在微控制器的世界中,串行外设接口(SPI)是一种…

数智化快速开发平台

助力企业IT规划标准化,实现企业IT生态化 目前市场上有很多面向企业各种业务场景的产品,这些产品给企业管理带来便利性的同时,也带来了一系列问题,例如: 不同系统的后台管理功能基本一致,却需要重复建设&a…

基于Detectron2的计算机视觉实践

书籍:Hands-On Computer Vision with Detectron2: Develop object detection and segmentation models with a code and visualization approach 作者:Van Vung Pham,Tommy Dang 出版:Packt Publishing 书籍下载-《基于Detectr…