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

网站改版的方式大致有建立购物网站

网站改版的方式大致有,建立购物网站,自己做公众号和小说网站推广,镇平建设局网站深度学习分布式系统 前言1. 数据并行#xff1a;参数服务器2. 流水线并行#xff1a;GPipe3. 张量并行#xff1a;Megatron LM4. 切片并行#xff1a;ZeRO5. 异步分布式#xff1a;PATHWAYS总结参考链接 前言 最近跟着李沐老师的视频学习了深度学习分布式系统的发展。这里… 深度学习分布式系统 前言1. 数据并行参数服务器2. 流水线并行GPipe3. 张量并行Megatron LM4. 切片并行ZeRO5. 异步分布式PATHWAYS总结参考链接 前言 最近跟着李沐老师的视频学习了深度学习分布式系统的发展。这里说是分布式系统其实还是有点勉强准确来说是分布式的框架但是毕竟是系统的文章基于提出的框架也做了很多系统上的优化姑且算是分布式系统吧。深度学习近些年随着Transformer模型的流行呈现出模型越来越大层数越来越深的趋势然而在硬件方面由于成本和技术的限制难以匹配模型容量的快速发展比如现有最新的深度学习专业加速器H100其在容量上也只有80G连LLaMA 7B都训不起来因此单机多卡或者多机多卡已经成为模型训练主流的硬件配置。模型如何在多卡上高效运行不同卡之间如何通信便是本篇学习笔记所关注的重点。 本篇博客主要从数据并行模型并行张量并行和参数切片四个方向对深度学习分布式系统进行介绍分别涉及参数服务器、GPipe、Megatron-LM和Zero四篇文章此外还会提及来自谷歌的Pathways该文章的核心是如何将Jax拓展到上千TPU核上。 1. 数据并行参数服务器 参数服务器这篇工作可谓是李沐老师成名之作发表在OSDI2014。这篇文章提出了一个用于分布式机器学习问题的参数服务器框架。数据和任务都分布在工作节点上而服务器节点维护全局的共享参数表示为密集或稀疏的向量和矩阵。该框架管理节点之间的异步数据通信支持灵活的一致性模型具有弹性可扩展和持续容错特性。 对于大规模机器学习系统一直面临三个方面的问题规模算法和效率如何在大规模的模型下执行高效的分布式算法是业界的痛点。 参数服务器提供了五个关键的特性高效通信灵活一致模型弹性可扩展性容错性和耐久性和易用性。这些特性使得参数服务器可以作为通用的分布式系统处理工业界最大规模的数据。 上图是同时期在不同系统上执行最大监督和无监督学习实验的规模。很明显本文的系统能够在数量级更大的处理器上覆盖数量级更大的数据。下图是参数服务器的架构图 参数服务器节点分组为一个服务器组和多个工作组如上图所示。 对于服务器组 服务器组中的一个服务器节点维护全局共享参数的一个分区。服务器节点之间相互通信以复制或迁移参数以实现可靠性和可扩展性。服务器管理节点维护服务器数据一致性如节点的生命周期。 对于工作组 每个工作组运行一个应用程序。节点通常在本地存储一部分训练数据用来计算局部统计数据如梯度。节点仅与服务器节点之间通信更新和共享参数。每个工作组都有一个调度程序节点分配任务并监控节点。 参数服务器支持独立的参数命令空间这允许工作组将其共享的参数集与其他组分离。当然不同工作组也可以共享命名空间可以用多个工作组并行处理深度学习应用。 参数服务器旨在简化分布式机器学习应用程序。 共享参数表示为(key, value)向量利于线性代数运算。共享参数分布在一组服务器节点上。任何节点都可以上传本地参数并从远程节点拉取参数。默认情况下任务是工作节点执行也可以通过用户定义的函数分配给服务器节点。任务是异步的并且并行运行。参数服务器为算法设计者提供了灵活性可以通过任务依赖图和判断来选择一致性模型传输参数的子集。 方法部分其实有很多精妙的方法和细节的实现包括一致性模型KKT过滤器值缓存压缩零等这些细节可以看这篇博客进行深入的理解。下图是参数服务器和其他分布式机器学习系统的对比 在回归模型收敛速度上系统B优于A因为实现了更好的算法。参数服务器优于系统B因为参数服务器降低了网络流量以及应用了宽松一致性的模型。 上图是逻辑回归期间每个节点在计算和等待上的时间显然参数服务器可以更好提高工作节点的利用率。 在我的这篇博客中我做了针对于参数服务器的总结和个人的一些思考主要分析其前瞻性但是在我看了更多的前沿分布式机器学习系统后我发现参数服务器的本质的工作是数据并行只不过沐神将更多精力放在了节点之间通信开销和模型执行效率上并没有过多提及数据并行的问题。 在大模型飞速发展的今天传统的数据并行方法已经难以支撑大模型在单个工作节点上的运行如何在可控开销范围内将大模型运行起来是当前相关研究人员亟待解决的问题。 2. 流水线并行GPipe 为了解决大模型无法在单张显卡上运行的问题GPipe提出了模型并行的方法这篇工作来自于google团队并中稿于NeurIPS2019。一篇系统的文章中稿于机器学习三大顶会之一的NeurIPS实属罕见也恰恰证明这篇工作在深度学习领域的影响力。 GPipe的核心是模型并行或者说是流水线并行。现有的模型模型并行方法在结构上有限制或要求或者只能针对特定的任务。然而模型并行是大势所趋下面是现有的模型在CV和NLP任务上的表现 可以看到模型的参数越多模型的性能就越好而模型太大现有的硬件难以支持因此一个通用的模型并行的算法可以解燃眉之急。 上图是GPipe的解决方案其核心思想可以分为三点 模型按层进行分组每个组是连续的层序列。提出microbatch的概念。re-materialization方法。 具体来说a中将整个模型分成四个组分别存储在四个不同的加速器中这样虽然能够将模型运行起来但是效率低下如b所示在训练阶段每次只有一个加速器在执行计算其它机器都在等待。为此作者提出了microbatch将输入的mini-batch进一步切分达到类似于操作系统中流水线并行的效果如c所示除了Bubble的部分没有利用起来其它时间段所有机器都在执行训练任务大大提高了训练效率。 尽管如此在训练过程中由于梯度反向传播阶段需要保留每个microbatch的激活才能计算因此占用了大量内存如下图所示 为了进一步减少内存的开销作者提出re-materialization重计算技术训练时将中间的激活丢弃在反向传播时重新计算。这样虽然会带来额外的20%—30%计算开销但也显著降低了加速器的内存占用。 最后总结一下GPipe这篇工作GPipe具有高效性、灵活性和可靠性的特点方法简单效果显著但是GPipe的缺点在于很难均匀地切分模型导致每一块加速器运行时间很难同步就会造成等待的现象。此外额外的计算开销降低了模型的效率。因此既然横向切分还是存在一定的问题纵向切分可不可以解决这些问题呢这就是接下来提到的张量并行也是很多工作认为的真正的模型并行。 3. 张量并行Megatron LM 来自NVIDIA的Megatron LM是典型的张量并行方法它的通用性不如GPipe只针对Transformer模型。现有的模型并行方法主要分为两种流水线并行和张量并行。 流水线并行把模型的不同层放在不同的设备上。张量并行则是层内纵向切分将权重参数放到不同的设备中。 从另个角度来看两种切分同时存在是正交和互补的。 Megatron LM对Transformer的张量切片在每一层要进行两次一次是对自注意力层进行切分另一次是对FFN层进行切分。具体的切分过程如下图所示 对于切割的部分每次经过一层就要进行all-reduce来保证参数的传递这就导致了两个问题 all-reduce通信通过服务器之间的链接这比服务器内多卡带宽NVLink要慢的多。高度的模型并行产生很多小矩阵乘法会降低GPU的利用率。 每层Transformer模块就需要进行四次的操作前向两次反向两次也就是说随着模型的层数加深Megatron LM所需的通信成本就要线性增大。 上图展示了Megatron LM的性能随着单组GPU的增加模型的性能稳定下降在多服务器单卡时模型仍有96%的性能随着每个服务器中GPU的增加模型的性能相对于单服务器相同卡的情况性能要略差些。 最后总结一下Megatron实现了张量的并行在训练性能上要优于GPipe可以接近真正意义上的单卡训练并且切分起来更加方便无需考虑均匀分配问题。此外它的局限性也很明显首先它只对Transformer进行切分第二它的通信量很大大概是GPipe的10倍不能做异步等于用时间换空间。最后这里的Megatron LM最多只能做到八卡并行因为每张卡都存储了相同的输入和输出占用了大量的显存空间这在切片并行时可以得到解决。 4. 切片并行ZeRO 在2022年3月PyTorch提出了一个新的分布式API名叫FSDP即完全分片的数据并行其背后的思想就来自于ZeRO。ZeRO考虑的是如何将数据并行用到超大规模的神经网络训练上并且在模型过大的时候如何将不需要的模块放到一个地方在需要的时候再拿过来用。所以也可以说ZeRO的核心思想是数据并行和模型并行。 当前对于模型装不下GPU的情况虽然有模型并行和张量并行等方法但是仍有scaling的瓶颈。比如张量并行对模型垂直切开对于每个层都需要进行通信当模型进一步扩大时性能会急速下降。ZeRO的作者分析现有模型内存消耗主要分为两个部分 对于大型模型大部分内存被模型参数占用包括Adam动量和方差、梯度和参数等。激活值临时缓存和碎片。 这里举个例子来说对于1.5B的GPT-2模型训练时采用半精度fp16在Adam更新模型时需要采用fp32这一块占用24GB的空间然而真正算梯度的时候只需要3GB的显存其余的21GB大部分时间都不会用上。此外在长度为1000、batch为32时中间结果需要60GB的显存来存储。 针对上面问题作者首先提出对模型的优化算法ZeRO-DP即将模型切块放在不同地方用的时候再拿来。其次是如何优化中间状态称作ZeRO-R。 具体来说对于ZeRO-DP有如下的insight 数据并行比模型并行效率高。当前的并行方法都需要维护中间值。 因此ZeRO-DP采用数据并行的方法并且对于某个中间值只存储在一个GPU上当别的GPU需要的时候再通信从该GPU上接收数据其思想类似于参数服务器。 对于ZeRO-R它的思想是说在Megatron中每一层的参数虽然是并行的但是输入却是相同的即复制的这个值可能会很大因此ZeRO-R将这些输入也分成块当一个GPU需要的时候向其他拥有该分块的节点发送请求这是一种带宽换空间的方法。对于缓存给定固定的大小当数据不用时就删除。对于碎片则采用内存整理。 、 ZeRO-DP的过程如上表所示其中 P o s \mathrm{P_{os}} Pos​、 P o s g \mathrm{P_{osg}} Posg​和 P o s g p \mathrm{P_{osgp}} Posgp​分别称为zero1zero2和zero3zero1对应着优化器参数的切片zero2对应着zero1和梯度的切片而zero3对应着zero2和模型参数的切片可以看到当三种切片都采用的时候单张卡上的显存占用明显减少。下表是不同规模模型对zero的使用情况 当模型越来越大的时候比如1T的模型也能在zero3、1024张GPU下运行。 ZeRO-R对中间变量进行处理降低其占用的内存。 P a P_a Pa​对输入激活做切分和张量并行结合使用。 C B \mathrm{C}_B CB​对模型的通信参数做了一个固定的缓存在同时并行GPU数量很多的情况下每次向单个GPU发送的参数数量可能很小因此通过设计一个缓存来尽可能发送更多的数据提高模型的带宽通信效率同时通过一个计时器防止较大的通信延时。但是过多的缓存会带来碎片问题 M D \mathrm{M}_D MD​进行了碎片化管理它将需要维护的内存开在了预选设定好的位置其他位置都是可以随时析构的。 实验见上图所示ZeRO和基线Megatron LM进行了对比其中Megatron LM在超过8卡上由于需要不同机器之间的通信因此带来巨大的通信开销导致性能大幅下降而ZeRO却能一直保持比较稳定的计算峰值当然也随着机器的增多逐渐下滑。 上图更能直接展示ZeRO超线性增长的趋势其中随着GPU数量翻倍模型的整体性能翻了不止一倍这是因为随着单张卡上模型的参数变小可以输入更大批量的数据每块卡上矩阵变大可以更高效利用GPU的多核此外计算和通信比也变得更好了。 总结一下ZeRO的算法相对来说还是比较简单实用的其核心思想是all reduce时不需要在所有节点上重复只需要在各自节点上all reduce就好。在不用完整数据的时候维护好自己那一块就好当需要的时候再通过通信得到完整的数据。 5. 异步分布式PATHWAYS 最后简单提及一下来自谷歌的PATHWAYS工作。该工作的核心为两点 异步通信延迟和调度延迟的处理。分布式针对更大规模模型在TPU上运行的处理。 当前的分布式ML系统有着模型较大、计算稀疏、硬件异构等特性并且难以进行异步计算。作者提出了岛的概念来解决硬件异构性的问题提高模型的灵活性以及提升硬件的利用率。作者的愿景是开发出标准化的基础模型可以适应多个下游任务通过多任务多路复用资源提高集群的利用率如下图所示 现有的ML分布式系统架构如下图所示 其中单控制器模型虽然灵活但是效率低多控制器通信和调度延迟会带来挑战。 PASSWAYS的设计如上图所示其中PLAQUE优化支持稀疏通信让模型能够高效收发数据一组加速器构成了PASSWAYS的后端这些加速器被分为紧密相连的孤岛孤岛之间通过DCN连接。岛内的TPU是高带宽连接的岛与岛之间需要共享的数据中心网络速度较慢。PASSWAYS的资源管理器负责集中管理岛屿上的设备可以根据用户的需求进行加速器的分配。 数据的分发上也采用了并行的分发客户端编译后提前知道了发送的形状和接受的形状减少了服务器额外的等待时间。 之所以没有细说PATHWAYS是因为它只是针对谷歌的TPU进行优化而不能泛化到GPU中并且文中的设想并没有真正实现因此只需要简单了解就好了。 总结 本文对近十年来面向大模型的分布式机器学习的系统进行了介绍从一开始的数据并行到后来的流水线并行再到张量并行以及最后的切片并行分布式机器学习系统的工作把能并行的数据都做了并行大大减少了单张卡上的内存占用也让更大的模型在大规模集群上运行起来成为了可能当然并行上的工作已经差不多了后续的工作更多会在通信上进行优化以及模型异步的实现其本质的目标都是让即使是很大的模型也像在单张卡上运行的效果正如PASSWAYS的设想那样让多个小模型集成为一个超大的模型从而泛化到更多任务上或者是大一统的模型能够处理所有任务总之这样的工作都离不开底层分布式系统的设计除非在硬件上真正实现巨大的突破。 参考链接 https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-li_mu.pdf https://blog.csdn.net/HERODING23/article/details/128701938 https://proceedings.neurips.cc/paper/2019/file/093f65e080a295f8076b1c5722a46aa2-Paper.pdf https://arxiv.org/pdf/1910.02054.pdf https://arxiv.org/pdf/1909.08053.pdf https://arxiv.org/pdf/2203.12533.pdf
http://www.hkea.cn/news/14462293/

相关文章:

  • google做网站框架网络管理系统中 管理对象是指
  • 欧洲购物网站排名网站建设前期规划方案
  • 北京贸易公司网站制作宁夏交通厅建设局网站
  • 不花钱可以做网站吗dw如何做商业网站
  • 淘宝客网站搜索怎么做百度在线识图
  • 网站与规划设计思路一天能赚100元的app
  • 可以做手机网页的网站飞猪旅游的网站建设
  • 用DW给网站做后台域名注册完成后怎么做网站
  • 免费行情网站推荐兰州网站排名外包
  • 高中网站建设计划表做网站用什么字体最明显
  • 手机网站开发公司哪家最专业找网站开发项目
  • 电子商务网站建设与管理 笔记网站开发 职位描述
  • 网站虚拟主机购买教程内蒙能源建设集团网站
  • 旅游网站 建设平台分析wordpress cnzz
  • 用网站做宣传的费用wordpress插件社交分享
  • 沈阳建网站企业微魔方建站
  • 成都 php 网站视频网站开发项目
  • 长春哪家网络公司做网站专业欢迎访问中国建设银行官网
  • 做网站的职业叫什么做商城网站需要的功能
  • 室内装修设计网站推荐免费的求职简历模板网站
  • 网站免费正能量软件不良微信公众号怎么发布作品
  • 网站文字源码wordpress显示icp备案
  • 自己做钓鱼网站电子商务中的网站开发
  • 北京大型网站优化高端网站制作流程
  • 监控做斗鱼直播网站珠宝出售网站模板
  • 做拼团的网站成都软件定制
  • 网站建设的发展历程wordpress中文图片插件
  • 乔拓云智能建站平台引擎搜索下载
  • 开一个网站建设公司好奢侈品的网站设计
  • 网站建设及推广人员网站开发说明文档