
深度学习
文章平均质量分 94
呆呆象呆呆
这个作者很懒,什么都没留下…
展开
-
大模型训练(4):AllReduce详解
分布式深度学习里的通信严重依赖于规则的集群通信,诸如 all-reduce, reduce-scatter, all-gather 等,因此,实现高度优化的集群通信,以及根据任务特点和通信拓扑选择合适的集群通信算法至关重要。如上图所示,一共4个设备,每个设备上有一个矩阵(为简单起见,特意让每一行就一个元素),All-Reduce 操作的目的是,让每个设备上的矩阵里的每一个位置的数值都是所有设备上对应位置的数值之和。当然,冗余量和通信量之间的等价关系不是偶然的,正是因为这些通信才造成了设备之间数据的冗余。原创 2025-01-14 01:58:46 · 2770 阅读 · 0 评论 -
大模型训练(3):数据并行(1)-DP、DDP、All-Reduce
在DP中,每个GPU上都拷贝一份完整的模型,每个GPU上处理batch的一部分数据,所有GPU算出来的梯度进行累加后,再传回各GPU用于更新参数DP多采用参数服务器这一编程框架,一般由若个计算Worker和1个梯度聚合Server组成。Server与每个Worker通讯,Worker间并不通讯。因此Server承担了系统所有的通讯压力。基于此DP常用于单机多卡场景。异步梯度更新是提升计算通讯比的一种方法,延迟更新的步数大小决定了模型的收敛速度。原创 2025-01-12 22:57:47 · 1125 阅读 · 0 评论 -
大模型训练(2):内存开销
首先,在大模型训练的过程中,GPU都需要存什么内容:存储主要分为两大块:Model States和Residual StatesGW。原创 2025-01-12 22:54:44 · 993 阅读 · 0 评论 -
大模型训练(1):流水线并行
Gpipe的方法是,在训练时计算和运用的是micro-batch里的均值和方差,但同时持续追踪全部mini-batch的移动平均和方差,以便在测试阶段进行使用。流水线并行的核心思想是:在模型并行的基础上,进一步引入数据并行的办法,即把原先的数据再划分成若干个更小的batch,分批送入GPU进行训练,算一部分就让下一个GPU动起来。从实验结果可知,在关掉NVlinks的情况下,Gpipe一样也能实现随着GPU数量的增加,训练速度也增加的效果。前文说过,随着模型的增加,每块GPU中存储的中间结果也会越大。原创 2024-12-29 18:14:27 · 1159 阅读 · 0 评论