人工智能模型的分布式演习技能_模子_散布式
12月20日,在第二届算力网络与数字经济发展论坛上,“上海算力交易平台2.0”正式发布。该平台由国家(上海)新型互联网交流中央牵头培植,依托前辈的算网大脑技能、可靠的“星火·链网”区块链技能,紧跟“东数西算”等国家计策在算力网络发展导向的主要布局,积极落实《算力根本举动步伐高质量发展行动操持》“算力浦江”行动操持重点任务,为企业供应便捷、灵巧的流量交流做事,目前已累计接入通算资源6334.859P,超算资源102.024P,智算资源1816.987P。
算力已经成为数字经济时期的关键推动力。《“十四五”数字经济发展方案》中明确提出要加快履行“东数西算“”工程,通过推动云网协同发展,提升数据中央跨网络、跨地域数据交互的能力,对算力进行合理调度和优化配置。随着人工智能的迅猛发展,对算力的需求正在持续扩大,例如大模型演习等各种新型需求也在不断呈现,准确的认清需求,并从需求中创造并捉住机会,有助于算力网络培植参与方更好的找准定位、发挥代价。本文对人工智能模型的分布式演习这一技能机遇进行先容,为大家揭开个中隐蔽的寻衅和机遇。
1. 算力荒:大模型绕不开的大难题
自从ChatGPT引爆大模型发展热潮,浩瀚科技企业前赴后继,纷纭投入大模型研发中。然而,这波创业浪潮中鲜有小微初创企业的身影,乃至一些堪称“准独角兽”规模的企业,也仅集中在大模型的下贱运用创新或微调中,实在,大模型背后的神经网络技能早已颇为遍及;海内拥有浩瀚专业人才,有能力独立完成模型的设计、搭建和演习。
由此,一类不雅观点认为:大模型创新的紧张门槛并不在算法与技能,而在于演习一个大模型、完成思路验证和考验所需的超大规模算力。算力,成为这条赛道的一壁墙。
2. 面向大模型的分布式方法论
当单点能力不敷成为紧张瓶颈后,大家总会去思考集群化、分布式的办理之道。从“东数西算”工程和“全国一体化算力网络”,到云边端协同一体化打算框架,再到群智打算以及Web3勉励式打算聚合等。我们总能窥见“聚少成多”的底层逻辑。
然而,比较于传统打算任务,让分布式系统适配于大模型规模的神经网络演习却绝非一件大略的事。尤其是把分布式协作的范围从单个集群内部的局域网内协作,放大到城域网、广域网范围下多个中远间隔集群间协作,所产生的寻衅将更加繁芜。
接下来我们将从与分布式演习的两个核心部分入手,先容模型的分布式演习,对这一寻衅建立认识:
2.1 分布式演习的条件:神经网络模型的分割与并行化演习
神经网络演习有前后依赖、相互耦合的特性,导致其并行化存在天然困难。以一个最基本的三层神经网络构造为例,其演习流程常日包含前向推理和反向传播两个步骤:在前向推理过程中,数据由输入层输入,在层间逐级打算通报,并在末了由输出层输出结果。随后,我们打算推理得到的结果与真实结果之间的偏差,由输出层将该偏差反向逐级传播打算,直到输入层。由此,我们可以得到每一层中每个参数的梯度,并由优化器根据梯度更新参数。在这一过程中,每一层的打算都依赖于其前一层(或后一层)的数据。
图1 经典的神经网络演习流程
在这样的架构下,“模型平行方法”(Model parallelism)与“数据平行方法”(Data parallelism)是当下两种分布式演习的紧张思路:
2.1.1 模型平行方法
该类方法将神经网络模型分割,由不同打算节点卖力不同部分的打算,每个打算节点拥有不同的参数或模型层。通过这种方法,单个节点的参数量减少。然而由于神经网络各层次间前后依赖的特性,模型平行法有时须要打算节点的“串行化”,因此干系研究每每着眼于“流水线(Pipeline)”的搭建,把切分后的模型顺序传送给流水线上的设备进行打算,通过将模型切分为粒度足够小的分片以降落流水线上打算设备的闲置率。
图2 模型平行方法、其串行化特性以及流水线搭建案例
详细而言,模型平行演习一样平常包括以下几个部分:模型分割、演习流程调度优化、流水线搭建等。
为了将演习任务分散到不同打算设备的同时避免过于频繁的数据交流,须要找到适宜神经网络架构的模型分割方法,当前的主流方法一样平常为:层间分割与层内分割。
层间分割是最直不雅观的模型分割办法:由于神经网络模型自身是分层的,可以天然地由不同设备分别卖力全体神经网络中一层或多层的演习。层内分割会对神经网络构造进行进一步地细分。不同打算设备分别卖力神经网络一层或多层内的部分神经元激活函数打算以及部分矩阵(张量)运算。在层内分割下,前向推理时,卖力某一层不同部分的不同打算设备,基于其所演习的神经网络架构的详细特性,得到前一层的全部或部分激活数据,并供应给下一层的全部或部分打算设备。反向传播亦与之相类似。
模型分割之外,还须要均衡各打算设备所卖力的事情,避免单台设备成为全体演习流程的打算瓶颈。因此还须要采取优化方法,针对最适宜现有神经网络和设备的模型分割及任务分配办法进行优化问题建模求解,找到最大化模型演习效率的优化方法。
图3 层内分割与层间分割的调度优化
从整体效益看:当模型平行方法用于大规模分布式算力的协同任务时,不利于最大化发挥规模上风给效率带来的潜在提升机会。此外,由于各个节点均存储有全量演习数据,这不利于数据隐私的保护。
2.1.2 数据平行方法
在采取数据平行方法进行模型分布式演习过程中,相同的模型参数被复制到各个打算节点上。在单次迭代中,每个打算节点基于各自不同的小批量数据打算局部梯度或模型更新。然后,节点间交流结果,实行聚合和广播操作,以得到新的全局模型。
图4 经典的数据平行方法演习流程
数据平行演习有多种不同的模式:完备同步模式、适用于异构设备的部分同步模式、聚合参数而不是梯度确当地随机梯度低落模式、由参数做事器异步聚合梯度更新参数的完备异步模式、不哀求参数完备同步的遥传通信模式等。
完备同步模式的一个演习循环可以被分为如下几个串行的步骤:数据加载、前向打算、反向传播、梯度聚合、模型更新。个中,仅有梯度聚合步骤须要打算机之间通信,以担保全局模型的同等性。由于该步骤前、后都是打算包袱较重的环节,当网络中节点打算能力不一致时,打算较快的节点必须等待较慢的节点完成打算才能开始同步,完成梯度聚合。在小规模的、同构设备的网络中,利用完备同步模式带来的丢失较小,当网络规模扩大,更多样化的设备加入网络中后,其演习效率将受到较慢设备的制约。相对的,部分同步模式并不哀求所有设备每一个演习循环的严格同步。在两次梯度聚合的间隔内,其许可打算较快的设备完成多次演习循环。但为了保持模型的同等以担保收敛,部分同步模式限定了较快设备所许可的循环次数。通过得当的参数设置,部分同步模式可以有效减少快速设备的空闲韶光,提高收敛速率。由于篇幅的缘故原由,这里我们不再对其他办法进行详细先容。
图5 不同模型平行演习模式的演习流程比拟
直不雅观上,数据平行方法可以真正发挥分布式算力的并行化上风,该方法也是当下并行演习中更常见的方案。但其也有缺点:模型的每个可演习参数都对应一个梯度值,数据平行演习中每次梯度聚合所需传输的数据量都与模型的参数量相称。对付参数量较大的大模型而言,这一高频多次的传输带来了巨大的通信开销。
2.1.3 稠浊平行方法
除了模型平行和数据平行方法以外,从技能实现上,目前还存在稠浊平行方法。这一类方法结合了数据平行演习的规模化上风和模型平行演习的低带宽花费。一些研究将稠浊了层间分割、层内分割的模型平行演习以及数据平行演习办法称为3D平行演习。但相对应地,对稠浊平行演习的优化难度也更高。
图6 稠浊了层间分割、层内分割的模型平行演习以及数据平行演习的3D平行演习
以上,我们对模型分拆与并行化演习进行了先容。然而无论采取何种并行方法,在分布式演习场景中,都必须首先办理好海量数据在不同打算节点间的高速同步与传输。通信效率是分布式演习中的核心瓶颈,而当面对大模型时,这一问题则更加突出。
2.2 分布式演习的保障:从本地集群到大范围跨域的数据同步
如前所述,无论采取何种并行方法,在分布式演习场景中,都必须首先办理好海量数据在不同打算节点间的高速同步与传输。环绕当前大模型的分布式演习的两种核心思想(模型平行和数据平行),多种支撑数据同步的技能逐渐引起了学界与业界的关注,接下来,我们从本地集群同步扩展到跨域同步,先容分布式演习涉及的数据同步及其干系的通信与调度技能:
2.2.1 远程直接内存访问技能(RDMA)
分布式演习的节点间须要频繁交流模型参数、梯度等大量数据。这些数据的传输须要操作系统和协议栈的统筹调度,从而给数据传输带来额外的延迟,影响并行化演习效率。此外,由于这些数据均存储于内存(或显存)中,向外传输前须要先经处理器和总线传输给网络设备,在给处理器和总线增加了巨大包袱之外,也带来了额外的韶光开销。
针对这些开销,远程直接内存访问(RDMA)技能出身了。RDMA技能利用专用硬件读写内存数据并直接与外部通信,将数据从本地系统快速移动到远程系统的内存中,而不对操作系统、CPU增加任何负载。
图7 RDMA事情事理
目前,RDMA有三种协议:InfiniBand、RoCE、iWARP。
InfiniBand是一种专为RDMA量身定做的网络协议,与TCP/IP不兼容。RoCE许可在以太网上实行RDMA协议(可分为RoCEv1和RoCEv2)。iWARP许可在TCP上实行RDMA协议,它能够运行在标准TCP/IP网络中,对硬件的哀求也相对大略(只需iWARP网卡),但缺陷是性能比RoCE更差。
图8 RDMA协议类型
人工智能的分布式演习让RDMA技能得到越来越广泛的关注,而对付大规模、大跨度集群的需求,使基于RDMA的大规模组网技能也日益得到重视。目前,各界环绕大规模RDMA组网架构、关键算法(如拥塞掌握、负载均衡)、网络虚拟化、与主流网络的领悟(如降落无损网络依赖性)等方向已开展了系列深入研究,个中不乏微软、谷歌、华为、阿里等巨子。由于我国现有的单个集群能力每每不敷以知足大模型需求,跨集群协作的需求将使兼容于TCP/IP网络的iWARP等协议进一步受到重视。
2.2.2凑集通信
分布式演习任务间完成数据传输调度的办法一样平常可以分为点对点(Point-to-Point Communication)和凑集通信(Collective Communication)。点对点通信是在两个节点之间进行通信和数据同步。凑集通信是指在一组节点内进行通信完成数据同步的办法。打算集群中海量数据的同步须要采取凑集通信方法。
凑集通信一样平常包含多个Sender和Receiver,通信类型包括:Broadcast、Gather、All-Gather、Scatter、Reduce、All-Reduce、Reduce-Scatter、All-to-All等。
以数据平行演习为例,去中央化的梯度聚合须要每台打算机得到所有打算机打算得到的梯度,这一操作即须要All-Reduce,即将所有设备(All)上的信息归纳(Reduce)到所有设备(All)上。显然,直接的All-Reduce将带来极大的通信资源摧残浪费蹂躏,由于同一份数据可能会被冗余传输多次。因此,许多优化版All-Reduce算法被提出,如环状All-Reduce、基于二叉树的All-Reduce等,这些算法均能极大降落All-Reduce的带宽和延迟。
图9 All-Reduce
当数据同步调度扩展到广域网范围时,现有凑集通信思路将面临一些新的问题,例如重新评估各种算法在新场景下的有效性及其效率评测方法,重新建模打算节点的临近关系等。
2.2.3 算力网络
算力网络是一种网络前沿技能,其目标是构建连接算力的网络,使算力像水电一样高效流动。传统的网络举动步伐仅仅承担信息通报的根本功能,是连接用户与打算资源的“数据通道”;而算力网络可以构建数据、打算资源、网络的一体化做事,使打算需求方在网络的帮助下,高效感知并调用远间隔的算力资源,冲破自身单点打算能力的局限。算力网络能够连接大范围内的算力集群实现打算任务协同,目前被视为支撑多集群间大模型跨域分布式演习的网络根本举动步伐层最优解。
当前,算力网络的发展朝阳东升,体系架构及诸多关键技能还未形成定论,家当及标准化事情也在不断推进中。国际电信同盟(ITU)于2021年9月正式发布的算力网络框架构造标准(ITU-T Y.2501:Computing Power Network–Framework and Architecture)中提出,算力网络紧张由四层构成,分别为算力网络资源层、算力网络掌握层、算力网络做事层、算力网络编排管理层。
图10 算力网络功能架构
算力网络资源层对算力做事方和网络运营方供应的各种打算资源进行了抽象。算力网络掌握层从算力网络资源层网络资源信息,并将资源信息发送给做事层以便其处理干系算力做事要求。算力网络做事层紧张用于实现详细算力做事功能。算力网络编排管理层能够为算力网络实现编排、安全、建模和运维管理功能。基于各层的能力支撑,算力网络完成对算力资源的抽象、标识、路由、调度等,实现远间隔打算供需间的高效匹配。大模型分布式演习作为一项整体的打算任务,在经由并行化处理、数据同步调度决策后,形成多个更小颗粒度的打算子任务,由算力网络依据所需的QoS,在分布式的算力集群间完成统筹调配。
3. 总结与展望
单点算力的不敷,匆匆使学术界和工业界投入更多的视线到分布式演习技能,希望基于广域内分散的多个算力集群,开展协同演习。一方面,这是一场以空间换韶光的战斗:通过投入更多的集群,给算力单点的能力提升争取韶光。另一方面,这大概是中西部算力家当转型升级的大好机会:长期以来,虽然中西部算力集群有本钱更低、绿电占比更高档上风,但也存在业务需求单一、不敷等问题,当人工智能需求爆发后,又涌现因单点培植规模不敷难以供应做事等困难。然而,当分布式演习技能不断成熟后,在算力网络高效调度的整体统筹下,分散的小规模数据中央将有更多机会参与到巨大的人工智能需求所开释的家当机遇里,这可能是中西部城市通过并不高的投入就能深度参与到人工智能发展浪潮中的好机会。
大模型是一种超大规模的神经网络模型。传统神经网络分布式演习技能长期以来更多局限于单集群内,跨域场景较少。让大模型在大范围多集群间完成分布式演习,一方面,将会在模型拆分等打算任务上增加更多新寻衅;另一方面,在广域网完成海量演习数据的同步,所涉及的干系网络及调度问题也将是一个新的研究场景。干系研究会逐步更新现有技能栈,乃至形玉成新的技能栈。而当“星火·链网”等区块链平台通过供应分布式勉励保障和可信打算环境等根本条件,也更加深入地融进算力网络、人工智能分布式演习等新型打算场景,全新且巨大的家当机遇更会应运而生。
来源: 光明网
本文系作者个人观点,不代表本站立场,转载请注明出处!