当前位置: 首页 > news >正文

Transformer模型分布式并行通信量浅析

1.数据并行DP(朴素数据并行,Zero数据并行之后补充)

O ( h 2 ∗ l ) O(h^2*l) O(h2l)
每台机器做完自己的梯度后需要做一次All reduce操作来累积梯度,故一个batch计算发送的数据量为每层梯度大小 h 2 h^2 h2乘以层数 l l l

优点:运用简单,效率高,计算和通讯之间可以做异步。
缺点:有时候单个GPU无法容纳下整个大模型做训练。

流水线并行PP(Gpipe)

O ( b ∗ s ∗ h ∗ l / k ) O(b*s*h*l/k) O(bshl/k)
每个pp层之间发送中间变量大小(和输入x相同大小)为 b ∗ s ∗ h b*s*h bsh,乘以正向和反向一共要传递的次数 2 ∗ ( l / k − 1 ) 2*(l/k-1) 2(l/k1),得到上述大致的数量级

优点:通讯量小,数据无关。
缺点:要保证模型能均匀切分,否则会影响性能。需要用到重计算,来支持更大的批量 b b b,从而保证流水能发挥作用。反传之前需要等待所以微批量计算。

张量模型并行TMP

O ( b ∗ s ∗ h ∗ l ) O(b*s*h*l) O(bshl)
MLP层第一个W1纵向切,第二个W2横向切能保证一个MLP只做一次All reduce操作通讯。同理attn根据头数来切分投影层。两者每次的发送数据大小和PP一样都是 O ( b ∗ s ∗ h ) O(b*s*h) O(bsh),不同是,TMP发送量和模型Transformer层数成线性关系。

优点:能切分很大的Transformer模型。
缺点:通讯量大,且通信一般只在节点内部的多卡通讯,不做跨节点通讯。头数需要被GPU整除。

*一般而言 b ∗ s b*s bs略大于 h h h k k k l l l的1/10,故一般而言,通讯量TMP>DP>PP.在实际的工程中,一般TMP和PP都在节点内通讯,只有数据并行会做跨节点通讯。

http://www.lryc.cn/news/310450.html

相关文章:

  • PMP考试之20240304
  • 智慧城市中的公共服务创新:让城市生活更便捷
  • bert 相似度任务训练完整版
  • Ribbon实现Cloud负载均衡
  • 【UE 材质】制作加载图案(2)
  • 为啥要用C艹不用C?
  • Java:JVM基础
  • JavaSec 基础之五大不安全组件
  • python类的属性、方法、静态方法、静态方法类内部的调用、直接调用与实例化调用
  • haproxy集成国密ssl功能[下]
  • C++自学精简实践教程
  • 每日一题——LeetCode1572.矩阵对角线元素的和
  • mysql 常用命令练习
  • QT6 libModbus 用于ModbusTcp客户端读写服务端
  • 飞桨(PaddlePaddle)Tensor使用教程
  • 数据结构c版(3)——排序算法
  • 《Spring Security 简易速速上手小册》第5章 高级认证技术(2024 最新版)
  • 【七】【SQL】自连接
  • C语言while 与 do...while 的区别?
  • RK3568平台开发系列讲解(基础篇)内核错误码
  • 点云从入门到精通技术详解100篇-基于点云网络和 PSO 优化算法的手势估计(续)
  • 设计模式(十一)策略模式
  • Java 计算某年份二月的天数
  • unity 数学 如何计算线和平面的交点
  • Mysql DATETIME与TIMESTAMP的区别
  • hadoop基础
  • 2024目前三种有效加速国内Github
  • 2024高频前端面试题 HTML 和 CSS 篇
  • LeetCode 100231.超过阈值的最少操作数 I
  • Pygame教程01:初识pygame游戏模块