CN116405392A - 面向带宽受限环境的分布式训练通信优化方法及系统 - Google Patents

面向带宽受限环境的分布式训练通信优化方法及系统 Download PDF

Info

Publication number
CN116405392A
CN116405392A CN202310438029.7A CN202310438029A CN116405392A CN 116405392 A CN116405392 A CN 116405392A CN 202310438029 A CN202310438029 A CN 202310438029A CN 116405392 A CN116405392 A CN 116405392A
Authority
CN
China
Prior art keywords
communication
model
node
parameter
iteration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310438029.7A
Other languages
English (en)
Inventor
蒋剑飞
张珈瑜
程少君
董峰
陈可
乔勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Beijing IQIYI Science and Technology Co Ltd
Original Assignee
Shanghai Jiaotong University
Beijing IQIYI Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University, Beijing IQIYI Science and Technology Co Ltd filed Critical Shanghai Jiaotong University
Priority to CN202310438029.7A priority Critical patent/CN116405392A/zh
Publication of CN116405392A publication Critical patent/CN116405392A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种面向带宽受限环境的分布式训练通信优化方法及系统,涉及深度学习,分布式系统技术领域,包括:步骤S1:采用分布式训练平台,并使用数据并行的模式;步骤S2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练;步骤S3:在前述步骤基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。本发明通过分层策略充分利用设备互联的异构性,而局部的异步策略则在缓解节点间网络通信瓶颈的同时,保证了模型训练的高收敛效率。

Description

面向带宽受限环境的分布式训练通信优化方法及系统
技术领域
本发明涉及深度学习,分布式系统技术领域,具体地,涉及一种面向带宽受限环境的分布式训练通信优化方法及系统。
背景技术
近年来,在深度学习领域,随着越来越庞大的训练数据集以及越来越复杂的模型发展,深度学习在各种实际应用,如计算机视觉、自然语言处理和语音识别中取得了前所未有的成功。这些巨大的进步给深度学习系统带来了新的挑战的同时也迎来了层出不穷的系统创新。而分布式训练则是最重要的创新之一,分布式训练系统则正在成为深度学习系统的一种新常态。
分布式深度学习盛行的主要原因有两个:第一,高训练效率的需求,尽管现代硬件(例如GPU或TPU)的计算能力近年来发展迅速,但使用单个设备训练复杂模型的时间成本仍然可能非常昂贵。例如,Nvidia V100 GPU在ImageNet数据集上训练ResNet-50大约需要两天时间,在单个GPU上训练现今流行的NLP模型BERT可能需要几个月的时间。因此,将深度学习系统扩展到大量计算设备,以便我们可以利用更大规模的计算资源来加速学习过程,是不可避免的趋势;第二,单一设备的内存很难容纳不断增长的模型并对其进行批量训练。深度学习任务是对内存需求严苛的任务,深度学习系统的内存需求通常由模型大小和批处理大小决定。如今,一些广泛使用的主流模型已经具有数百万到数十亿个参数。例如,近年发布的语言模型GPT-2有15亿个参数,模型的单个副本需要大约6GB的内存。因此,为解决内存不足的问题,将模型拆分在多个设备中训练的需求由此可见。鉴于分布式深度学习的必要性和重要性,我们看到学术界和工业界在过去几年中为探索和发展这一领域做出了巨大努力。在经过充分研究的分布式学习算法和高性能通信原语的支持下,一些高效的系统(例如,PyTorch-DDP、Tensorflow、Horovod、DeepSpeed)已经取得了显着进展,推动了大量与机器学习相关的研究和应用。这些新提出的系统共同塑造了分布式深度学习的趋势:
趋势一:分布式深度学习理论和算法蓬勃发展。遵循最简单的数据并行算法,研究人员一直在积极探索更有效的系统通信算法,例如异步训练,去中心化训练,压缩训练。这些算法中的每一个都开展了关于分布式深度学习算法中新的研究课题。所有这些工作在理论和实践上都表明,结合分布式训练系统的算法可以有效地减少通信开销,并且保证收敛的准确性。
趋势二:通信开销仍然是限制分布式机器学习系统可扩展性的主要原因。目前,主流的深度学习分布式系统的可扩展性仍远不能令人满意,特别是对于通信密集型任务,如VGG、GPT。尽管现有系统已经针对性能进行了仔细优化,但它们的通信开销通常会随着模型的大小和设备的数量而迅速增加。如何进一步降低通信成本,实现更好的可扩展性,是现有系统面临的关键问题。
通信开销仍然是限制分布式机器学习系统可扩展性的主要原因。目前,主流的数据并行深度学习分布式系统的可扩展性仍存在诸多瓶颈,特别是对于通信密集型神经网络,如VGG,BERT等。尽管现有系统已经针对性能进行了优化,但随着模型复杂度的提升和设备数量的增加,深度学习分布式训练任务依然难以在实际应用场景下具有理想的性能。面临的问题主要有:
(1)网络设备依赖严重。在多机多卡场景下,机器与机器之间通过以太网进行通信,通常来说,网络带宽会成为制约分布式训练可拓展性的主要原因,而实际应用场景下,为GPU集群配置高性能网卡需要较高的成本。
(2)无法充分利用集群互联的异构性。在实际集群中,在计算节点内部通常采用高性能的互联设备如Pcie、Nvlink,而节点之间则采用以太网通信,在当前主流的数据并行架构下,受限于节点间的通信带宽,节点内部的高性能互联会被极大浪费。
现有的方法无法同时兼顾优化通信开销和统计效率两者,同步通信算法具有高收敛效率但通信开销大,而异步通信算法虽然能解决通信瓶颈但无法保证统计效率。
发明内容
针对现有技术中的缺陷,本发明提供一种面向带宽受限环境的分布式训练通信优化方法及系统。
根据本发明提供的一种面向带宽受限环境的分布式训练通信优化方法及系统,所述方案如下:
第一方面,提供了一种面向带宽受限环境的分布式训练通信优化方法,所述方法包括:
步骤S1:采用分布式训练平台,并使用数据并行的模式;
步骤S2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练;
步骤S3:在前述步骤基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。
优选地,每个worker内部运行三个部件:计算进程、通信进程、参数优化器;
所述计算进程使用pytorch框架对深度学习模型进行前向传播、反向传播,并计算的到模型的梯度;
所述通信进程配合计算进程,负责在各个worker之间传递模型的参数,根据不同的策略对整体模型进行同步,保证整体模型的收敛效率;
所述参数优化器使用计算进程计算得到的梯度对模型参数进行更新。
优选地,所述worker内部运行包括:
1)初始化模型,使所有worker从相同的模型W(0)开始训练,同时根据worker的总数对数据集进行切分,并采用进行数据读取,开始迭代训练;
2)在第t次迭代中,并行启动计算进程和通信进程:
计算进程:在读入数据集的基础上,利用模型W(t)进行前向传播、反向传播,计算得到梯度G(t)
通信进程:将模型W(t)送入内部网络、外部网络进行参数通信,根据不同的通信策略计算返回
Figure SMS_1
3)将通信进程经过参数通信得到的模型
Figure SMS_2
以及计算进程得到的梯度G(t),在参数优化器中进行模型更新,完成本轮迭代。
优选地,所述步骤S3中的延迟通信优化方式,基于模型平均的方法,使用本地的模型参数计算得到模型梯度,并更新在上一次迭代同步后的全局模型参数上。
优选地,所述延迟通信优化方式具体包括:
设共有K个worker参与通信,在第t次迭代中,并行启动以下进程:
计算进程:通过数据读取、前向传播、反向传播计算worker本地梯度G(t)
通信进程:使用本地模型W(t)与其他worker进行聚合平均操作得到
Figure SMS_3
等待本次迭代计算进程结束,采用上一次迭代的通信结果
Figure SMS_4
进行参数更新,需要等待上一次迭代的通信进程结束,而本次通信结果/>
Figure SMS_5
则用于下一次迭代。
优选地,所述异步通信优化方式,针对带宽受限的场景中,下一次迭代的通信时间远大于计算时间的情况,解除计算进程与通信进程之间的耦合,计算进程无需等待上一轮通信完成仍然能够开始下一轮计算,每当一轮通信完成后对本地模型进行更新并开启下一轮通信。
优选地,所述分层通信优化方式,将整体通信抽象为单机内部通信和机器之间通信两层,根据每一层通信的带宽特点,采用不同的通信策略,充分利用机内和机间的带宽;
在分层通信的基础上,采取局部异步的方式实现,即以机器内部同步、机器外部异步的方式进行参数通信,流程如下:
1)给定一个具有N台机器,每台机器具有n个GPU设备的集群,构建分层网络,以集群中每个机器整体作为一个节点Node,每个GPU计算设备为Rank,选取Node-k,Rank-j设备进行分析;
2)在第t次迭代时,并行启动计算进程和通信进程;计算进程计算出本轮梯度
Figure SMS_6
通信进程分为内部通信以及外部通信两部分;
3)内部通信:在Node-k内部构建的局部环网络中,Rank-j使用本地模型
Figure SMS_7
与其他Rank进行Ring-Allreduce操作聚合得到局部平均模型/>
Figure SMS_8
4)外部通信:
机外聚合平均:在Node之间构建的外部环网络中,Node-k_Rank-0使用局部平均模型
Figure SMS_9
与其他Node_Rank-0进行外部Ring-Allreduce通信,得到全局平均模型/>
Figure SMS_10
机内广播:每个Node的Rank-0通过Broadcast操作将
Figure SMS_11
同步至所有Rank;
进程上锁与释放:在启动外部通信时,同时获取一个锁mjk,直到外部通信结束后释放;
5)内部参数更新,每次迭代结束时,根据延迟通信,使用Node-k上一轮的局部平均模型
Figure SMS_12
进行局部参数更新;
6)全局参数更新,每次迭代结束检查锁mjk是否释放,若释放则表示全局平均模型
Figure SMS_13
已就绪,将/>
Figure SMS_14
作为模型修正项参与模型更新。
优选地,所述步骤S3的优化方式还包括参数量化,即在通信的过程中,使用半精度浮点数FP16对模型参数进行量化;
所述参数量化先计算两次迭代所得模型的差值Δt=W(t)-W(t-1),对Δt进行模型参数量化后再进行通信,最后得到的通信结果
Figure SMS_15
用采取延迟通信的方式叠加到本地模型的更新上。
优选地,所述步骤S3的优化方式还包括去中心化,包括Ring和Round-Robin两种去中心化通信策略,使用两两通信的去中心化模式,使得单机的通信开销随着分布式规模的扩大而保持不变;
其中,Ring去中心化通信策略:通信方式采取相邻节点直接传输通信,每个Node内部进行同步的Allreduce,但是Node与Node直接采取异步单向通信,通信发起后每个Node向下一个相邻Node发送参数,并且接收从上一个相邻Node发送的参数,并将接收的参数与本地参数进行平均后根据延迟通信进行更新;
Round-Robin去中心化通信策略:采用节点动态两两连接的方式,每次通信只在两个节点间进行,Node内部进行同步的Allreduce,而Node外采用异步点对点通信;在每次通信发起前,需要等待RoundRobinSelector进行对等节点的选取,选出每个Node的下一个对等节点,随后,每个Node向对等节点发送自身模型参数,同时接收对等节点的模型参数,将两者进行平均后采用延迟通信的方式用于迭代更新。
第二方面,提供了一种面向带宽受限环境的分布式训练通信优化系统,所述系统包括:
模型M1:采用分布式训练平台,并使用数据并行的模式;
模型M2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练;
模型M3:在前述模块基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过合理调度参数通信与参数更新的时间关系优化了通信/计算重叠比例;
2、本发明提出了局部异步的策略,将该层次的通信与计算解耦合,实现无阻塞迭代;
3、本发明根据实际集群的互联设备情况,对异构性的互联带宽对算法采用了分层策略优化,充分利用各层次的互联带宽;
4、本发明对所提出的算法进行了半精度量化优化和去中心化优化的探索,能够在同步策略中缓解通信瓶颈,在异步策略中降低迭代/通信比,从而保证训练收敛效果。
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为AS-SGD算法架构示意图;
图2a~图2b为梯度平均SGD和延迟通信SGD的通信机制示意图;
图3a~图3b为大通信开销下的同步延迟SGD和异步延迟SGD的通信机制示意图;
图4a~图4b为Ring-Allreduce和分层的Allreduce分布式训练架构;
图5为Ring去中心化策略示意图;
图6为Round-Robin去中心化策略示意图;
图7为Round-Robin去中心化策略的循环轮训选择表。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明实施例提供了一种面向带宽受限环境的分布式训练通信优化方法,参照图1所示,该方法具体包括以下内容:
步骤S1:采用分布式训练平台,并使用数据并行的模式。
步骤S2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练。
每个worker内部运行三个部件:计算进程、通信进程、参数优化器;计算进程使用pytorch框架对深度学习模型进行前向传播、反向传播,并计算的到模型的梯度;通信进程配合计算进程,负责在各个worker之间传递模型的参数,根据不同的策略对整体模型进行同步,保证整体模型的收敛效率;参数优化器使用计算进程计算得到的梯度对模型参数进行更新。
worker内部运行包括:
1)初始化模型,使所有worker从相同的模型W(0)开始训练,同时根据worker的总数对数据集进行切分,并采用进行数据读取,开始迭代训练;
2)在第t次迭代中,并行启动计算进程和通信进程:
计算进程:在读入数据集的基础上,利用模型W(t)进行前向传播、反向传播,计算得到梯度G(t)
通信进程:将模型W(t)送入内部网络、外部网络进行参数通信,根据不同的通信策略计算返回
Figure SMS_16
3)将通信进程经过参数通信得到的模型
Figure SMS_17
以及计算进程得到的梯度G(t),在参数优化器中进行模型更新,完成本轮迭代。
步骤S3:在前述步骤基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。
步骤S3中的延迟通信优化方式,基于模型平均的方法,使用本地的模型参数计算得到模型梯度,并更新在上一次迭代同步后的全局模型参数上。通过延迟一个迭代的参数同步,进一步增加了计算时间与通信时间的重叠,从而减小了通信的开销。
该延迟通信优化方式具体包括:
设共有K个worker参与通信,在第t次迭代中,并行启动以下进程:
计算进程:通过数据读取、前向传播、反向传播计算worker本地梯度G(t)
通信进程:使用本地模型W(t)与其他worker进行聚合平均操作得到
Figure SMS_18
等待本次迭代计算进程结束,采用上一次迭代的通信结果
Figure SMS_19
进行参数更新,需要等待上一次迭代的通信进程结束,而本次通信结果/>
Figure SMS_20
则用于下一次迭代。
异步通信优化方式,针对带宽受限的场景中,下一次迭代的通信时间远大于计算时间的情况,解除计算进程与通信进程之间的耦合,计算进程无需等待上一轮通信完成仍然能够开始下一轮计算,每当一轮通信完成后对本地模型进行更新并开启下一轮通信。通过消除计算进程的等待时间,进一步提升训练系统的吞吐量。
分层通信优化方式,针对一般GPU集群中机器内部GPU之间与跨机器的GPU之间通信带宽差异较大的特点,将整体通信抽象为单机内部通信和机器之间通信两层,根据每一层通信的带宽特点,采用不同的通信策略,充分利用机内和机间的带宽;
在分层通信的基础上,采取局部异步的方式实现,即以机器内部同步、机器外部异步的方式进行参数通信,流程如下:
1)给定一个具有N台机器,每台机器具有n个GPU设备的集群,构建分层网络,以集群中每个机器整体作为一个节点Node,每个GPU计算设备为Rank,选取Node-k,Rank-j设备进行分析;
2)在第t次迭代时,并行启动计算进程和通信进程;计算进程计算出本轮梯度
Figure SMS_21
通信进程分为内部通信以及外部通信两部分;
3)内部通信:在Node-k内部构建的局部环网络中,Rank-j使用本地模型
Figure SMS_22
与其他Rank进行Ring-Allreduce操作聚合得到局部平均模型/>
Figure SMS_23
4)外部通信:
机外聚合平均:在Node之间构建的外部环网络中,Node-k_Rank-0使用局部平均模型
Figure SMS_24
与其他Node_Rank-0进行外部Ring-Allreduce通信,得到全局平均模型/>
Figure SMS_25
机内广播:每个Node的Rank-0通过Broadcast操作将
Figure SMS_26
同步至所有Rank;
进程上锁与释放:在启动外部通信时,同时获取一个锁mjk,直到外部通信结束后释放;
5)内部参数更新,每次迭代结束时,根据延迟通信,使用Node-k上一轮的局部平均模型
Figure SMS_27
进行局部参数更新;
6)全局参数更新,每次迭代结束检查锁mjk是否释放,若释放则表示全局平均模型
Figure SMS_28
已就绪,将/>
Figure SMS_29
作为模型修正项参与模型更新。
步骤S3的优化方式还包括参数量化,即在通信的过程中,使用半精度浮点数FP16对模型参数进行量化;从而在几乎不影响模型性能的情况下,进一步减小了传输的数据量,降低了对系统带宽的要求。
参数量化先计算两次迭代所得模型的差值Δt=W(t)-W(t-1),对Δt进行模型参数量化后再进行通信,最后得到的通信结果
Figure SMS_30
用采取延迟通信的方式叠加到本地模型的更新上。
步骤S3的优化方式还包括去中心化,针对当前主流同步通信方法在大规模分布式训练场景下通信开销大、扩展性不佳的问题,包括Ring和Round-Robin两种去中心化通信策略,使用两两通信的去中心化模式,使得单机的通信开销随着分布式规模的扩大而保持不变,进一步增强了分布式训练的可扩展性。
其中,Ring去中心化通信策略:通信方式采取相邻节点直接传输通信,每个Node内部进行同步的Allreduce,但是Node与Node直接采取异步单向通信,通信发起后每个Node向下一个相邻Node发送参数,并且接收从上一个相邻Node发送的参数,并将接收的参数与本地参数进行平均后根据延迟通信进行更新;
Round-Robin去中心化通信策略:采用节点动态两两连接的方式,每次通信只在两个节点间进行,Node内部进行同步的Allreduce,而Node外采用异步点对点通信;在每次通信发起前,需要等待RoundRobinSelector进行对等节点的选取,选出每个Node的下一个对等节点,随后,每个Node向对等节点发送自身模型参数,同时接收对等节点的模型参数,将两者进行平均后采用延迟通信的方式用于迭代更新。
本发明还提供一种面向带宽受限环境的分布式训练通信优化系统,所述面向带宽受限环境的分布式训练通信优化系统可以通过执行所述面向带宽受限环境的分布式训练通信优化方法的流程步骤予以实现,即本领域技术人员可以将所述面向带宽受限环境的分布式训练通信优化方法理解为所述面向带宽受限环境的分布式训练通信优化系统的优选实施方式。该系统包括:
模型M1:采用分布式训练平台,并使用数据并行的模式;
模型M2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练;
模型M3:在前述模块基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。
接下来,对本发明进行更为具体的说明。
本申请提供的一种面向带宽受限环境的分布式训练通信优化方法,通过合理调度参数通信与参数更新的时间关系优化了通信/计算重叠比例。同时在此基础上,根据实际集群的互联设备情况,对异构性的互联带宽对算法采用了分层策略优化,充分利用各层次的互联带宽。对于通信带宽瓶颈较大的层次,提出了局部异步的策略,将该层次的通信与计算解耦合,实现无阻塞迭代。最后,本发明还对所提出的算法进行了半精度量化优化和去中心化优化的探索,目的能够在同步策略中缓解通信瓶颈,在异步策略中降低迭代/通信比,从而保证训练收敛效果。
如图1是AS-SGD算法架构图(同步异步协同(Asynchronous and Synchronous,AS)-随机梯度下降(Stochastic Gradient Descent,SGD)),以集群中每个机器整体作为一个节点Node,而在每个节点内部,每个GPU计算设备Rank上并行运行一个深度学习训练任务。所有Node上的所有Rank,即所有的worker以数据并行的方式进行模型的分布式训练,依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作。在参数通信过程中,每个Node内部,通过高性能PCIe(周边设备快速连接标准(Peripheral ComponentInterconnection Express,PCIe))/Nvlink(英伟达开发并提出的一套总线及其通信协议)互联构建内部通信网络,而Node之间则通过以太网构建外部通信网络。
AS-SDG算法的整体流程如下,每个worker内部运行三个部件:计算进程、通信进程、参数优化器。算法的整体流程包括三个部分:
(1)初始化模型,使所有worker从相同的模型W(0)开始训练,同时根据worker的总数对数据集进行切分,并采用进行数据读取,开始迭代训练。
(2)在第t次迭代中,并行启动计算进程和通信进程:
计算进程:在读入数据集的基础上,利用模型W(t)进行前向传播、反向传播,计算得到梯度G(t)
通信进程:将模型W(t)送入内部网络、外部网络进行参数通信,根据不同的通信策略计算返回
Figure SMS_31
(3)将通信进程经过参数通信得到的模型
Figure SMS_32
以及计算进程得到的梯度G(t),在参数优化器中进行模型更新,完成本轮迭代。
图2是梯度平均SGD和延迟通信SGD算法的通信机制示意图。在深度神经网络的分布式训练中,并行小批量SGD被广泛用于多机多卡训练场景,用于加速训练过程。它使用多个GPU并行采样局部随机梯度,在单个服务器中聚合所有梯度以获得平均值,并使用具有平均梯度的SGD更新来更新每个GPU的局部模型。理想情况下,与单个worker的SGD相比,并行小批量SGD可以实现训练时间(相对于worker数量)的线性加速。然而,随着worker数量的增加,对梯度通信的需求不断增长,这种线性可扩展性在实践中受到了显著限制。其中一个主要的原因是,采取这种平均梯度的方式,在计算过程中等待梯度计算结果才能启动通信,虽然Pytorch(一个开源的Python机器学习库)等主流工作已经提出了反向传播和梯度通信并行的方法,能够使通信开销隐藏在反向传播之下,如图2(a)所示。这种方法能够实现一定程度上的通信/计算重叠,但在通信开销大于反向传播时间时,反向传播结束后仍然需要阻塞计算进程,并等待通信进程完成了梯度聚合后才能进行梯度更新,因此依然有较大瓶颈。
因此,本发明提出了如图2(b)所示的基于模型平均的延迟通信SGD策略,其本质是将聚合通信的对象从梯度替换成模型参数,而参数的更新则使用上一次迭代的聚合结果完成。通过延迟一个迭代的参数通信,使得上一次迭代的参数能够在本次迭代中获得最大限度的计算/通信重叠,从而减少通信开销,并在当前迭代结束时能够尽快开始下一次迭代训练。
延迟通信SGD算法的流程如下,其中假设共有K个worker参与通信,在第t次迭代中,并行启动以下进程:
计算进程:通过数据读取、前向传播、反向传播计算worker本地梯度G(t)
通信进程:使用本地模型W(t)与其他worker进行聚合平均操作得到
Figure SMS_33
等待本次迭代计算进程结束,此时本次迭代的通信进程通常还无法完成,为了规避瓶颈,我们采用上一次迭代的通信结果
Figure SMS_34
进行参数更新(需要等待上一次迭代的通信进程结束),而本次通信结果/>
Figure SMS_35
则用于下一次迭代。
图3是同步延迟通信SGD和异步延迟通信SGD的示意图。在通信开销略大于计算开销时,利用延迟通信SGD策略增加通信/计算重叠比例,可以取得不错的性能提升。但在通信开销远远大于计算开销时,比如执行机器与机器间的参数通信,此时单一的延迟通信策略的收益不大。如图3(a)所示的情况,由于通信开销远大于计算开销,计算开销无法完全覆盖通信开销,造成了后续参数更新的阻塞。
基于此本发明提出了异步策略,如图3(b)所示,即使在参数通信未完成时,计算进程依然可以进行下一次迭代,此时反向传播得到的梯度将暂时进行本地的模型参数更新,而当参数通信完成后,再将多次本地更新叠加至全局模型上,并启动下一次参数通信。可以看到,虽然在相同时间内,同步策略与异步策略进行的参数通信次数是大致相同的,但由于异步策略将计算进程和通信进程尽可能解耦合,在相同时间内,异步策略可以进行更多次的局部计算,使得模型的训练效果更优。
图4为Ring-Allreduce(环形allreduce操作)和分层的Allreduce(集合通信操作的一种,目标是高效的将不同机器中的数据整合后再把结果分发给各个机器)分布式训练架构。一般来说,真实的集群环境往往在多个层面上具有不同的通信带宽,比如一个多机多卡的GPU集群,通常在机器内部具有高性能的互联带宽,而机器与机器之间的互联带宽则相对低下。而目前主流深度学习框架中所提出的分布式训练架构通常是如图4(a)所示的Ring-Allreduce架构,该架构将所有的计算GPU以环的形式构建通信网络,忽略了整个系统在不同层面上通信链路的异构性。这种做法将所有计算资源及互联资源看作性能一致的设备,虽然能够在零散的集群中增强算力的可调度性,方便资源的管理和使用,但通信的性能会被集群中最差的节点间互联带宽所限制。
因此,本发明提出了如图4(b)所示的分层通信架构,按照典型的集群机器组成,以集群中机器内外为分层依据,构建两层Ring-Allreduce互联网络,分别为机器内部采用Pcie/Nvlink互联的内部网络,以及机器之间采用以太网互联的外部网络。
由于机器间通信开销巨大,机器内部通信开销不大,为了保证模型训练的统计效率的同时最大化缓解通信带宽瓶颈,本发明提出的算法将在分层策略的基础上,采取局部异步的方式实现,即以机器内部同步、机器外部异步的方式进行参数通信。
局部异步分层策略的算法的具体流程如下:
(1)给定一个具有N台机器,每台机器具有n个GPU设备的集群,构建分层网络,以集群中每个机器整体作为一个节点Node,每个GPU计算设备为Rank,选取Node-k,Rank-j设备进行分析。
(2)在第t次迭代时,并行启动计算进程和通信进程。计算进程计算出本轮梯度
Figure SMS_36
通信进程分为内部通信以及外部通信两部分。
(3)内部通信:在Node-k内部构建的局部环网络中,Rank-j使用本地模型
Figure SMS_37
与其他Rank进行Ring-Allreduce操作聚合得到局部平均模型/>
Figure SMS_38
(4)外部通信:
机外聚合平均:在Node之间构建的外部环网络中,Node-k_Rank-0使用局部平均模型
Figure SMS_39
与其他Node_Rank-0进行外部Ring-Allreduce通信,得到全局平均模型/>
Figure SMS_40
机内广播:每个Node的Rank-0通过Broadcast操作将
Figure SMS_41
同步至所有Rank。
进程上锁与释放:在启动外部通信时,同时获取一个锁mjk,直到外部通信结束后释放。
(5)内部参数更新,每次迭代结束时,根据延迟通信策略,使用Node-k上一轮的局部平均模型
Figure SMS_42
进行局部参数更新。
(6)全局参数更新,每次迭代结束检查锁mjk是否释放,若释放则表示全局平均模型
Figure SMS_43
已就绪,将/>
Figure SMS_44
作为模型修正项参与模型更新。
下面介绍半精度量化策略,在AS-SGD算法中,分层策略将通信问题分为了节点内部与节点之间两个层级考虑。节点内部在采取了同步的延迟通信策略后可以基本实现通信/计算完全重叠,而节点之间的通信在异步策略下,可以解耦合通信进程与计算进程,实现无阻塞计算迭代。但也会以下问题:在节点间异步通信策略下,若是节点间通信开销过大,则会导致多次进行迭代才能完成一次通信的情况,而迭代/通信比过大会使得模型最终的收敛性能劣化。因此,异步策略下,依然有必要降低节点间的通信开销,让迭代/通信比尽可能小,才能在算法在具有高加速比的同时,保证模型训练的收敛效果。
所谓的半精度浮点数(Float 16,FP16),就是使用2个字节(16位)来存储,比起8位或16位整数,半精度浮点数具有动态范围高的优点;而与单精度浮点数相比,它能节省一半的储存空间和带宽。通常在深度学习分布式训练的应用场景中,我们会采用32位单精度浮点数对模型和梯度进行计算和保存,但实际上,模型训练对于精度的要求没有那么高,因此在很多研究应用中,为了降低计算和存储的需求,常常采用半精度浮点数去表示某些参数,如梯度。而同样的道理,如果在分布式训练中的参数通信中,采取半精度量化的形式进行,可以有效降低通信参数大小,缓解通信带宽瓶颈,降低通信的开销。
由于AS-SGD采取的模型平均策略,通信的对象是模型参数,若直接对模型参数进行半精度量化的话,会导致通信后的模型精度损失严重,因此本节提出的半精度量化方案会先计算两次迭代所得模型的差值Δt=W(t)-W(t-1),对Δt进行半精度量化后再进行通信,最后得到的通信结果
Figure SMS_45
用采取上节提出的延迟通信的方式叠加到本地模型的更新上。
图5~图7展示了在本发明的AS-SGD算法基础上提出的两种去中心化方法。典型的Ring-Allreduce聚合操作在进行参数通信后,每一个worker会得到一个全局统一的模型,这种周期性维护一个全局模型的通信方案可以理解为一种中心化方案。而目前有许多研究指出,在进行深度学习分布式训练聚合通信的时候,每一个通信节点不需要周期性的维护一个全局模型,这种新型的通信方式归类为去中心化通信。去中心化的随机梯度下降是一种数据并行的分布式学习算法,它消除了所有通信节点之间对一致性全局模型的要求,这使得它在通信模式方面与基于Ring-Allreduce或基于Parameter Server的算法有很大不同。使用去中心化的随机梯度下降,每个通信节点只需要与一个或几个特定的通信节点交换数据,而不是周期性在全局内聚合数据,也就是说,在去中心化方案中,每个通信节点需要交换数据的对象节点数目比Ring-Allreduce更少。
因此,本发明基于上述的同步异步协同通信算法,进一步提出了两种去中心化尝试方案:Ring去中心化方案和Round-Robin去中心化方案。
图5为Ring去中心化策略的示意图,Ring去中心化策略仅用在分层结构中的节点间通信,节点间的通信拓扑依然维持着与Ring-Allreduce架构相同的连接结构,但通信方式采取相邻节点直接传输通信,而不是全局聚合平均。详细的Ring去中心化策略的流程如下所示:每个Node内部进行同步的Allreduce,但是Node与Node直接采取异步单向通信,通信发起后每个Node向下一个相邻Node发送参数,并且接收从上一个相邻Node发送的参数,并将接收的参数与本地参数进行平均后根据本发明中提出的延迟通信策略进行更新。
图6为Round-Robin去中心化方案的示意图,该策略也仅用于分层结构中的节点间通信,方法取消了节点间的环形连接,采用节点动态两两连接的方式,每次通信只在两个节点间进行。详细的Round-Robin去中心化策略的流程如下所示:以N个节点Node为例,与Ring去中心化策略类似,Node内部进行同步的Allreduce,而Node外采用异步点对点通信。在每次通信发起前,需要等待RoundRobinSelector(Round-Robin选择器,用于选择下一个用于通信的节点)进行对等节点的选取,该操作采用Round-Robin轮询机制选出每个Node的下一个对等节点:依次选择不同的对等节点,从1开始,直到N-1(N为总的节点数量),然后重新开始循环。随后,每个Node向对等节点发送自身模型参数,同时接收对等节点的模型参数,将两者进行平均后采用本发明提出的延迟通信的方式用于迭代更新。
本发明实施例提供了一种面向带宽受限环境的分布式训练通信优化方法及系统,通过分层策略充分利用设备互联的异构性,而局部的异步策略则在缓解节点间网络通信瓶颈的同时,保证了模型训练的高收敛效率。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种面向带宽受限环境的分布式训练通信优化方法,其特征在于,包括:
步骤S1:采用分布式训练平台,并使用数据并行的模式;
步骤S2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练;
步骤S3:在前述步骤基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。
2.根据权利要求1所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,每个worker内部运行三个部件:计算进程、通信进程、参数优化器;
所述计算进程使用pytorch框架对深度学习模型进行前向传播、反向传播,并计算的到模型的梯度;
所述通信进程配合计算进程,负责在各个worker之间传递模型的参数,根据不同的策略对整体模型进行同步,保证整体模型的收敛效率;
所述参数优化器使用计算进程计算得到的梯度对模型参数进行更新。
3.根据权利要求2所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述worker内部运行包括:
1)初始化模型,使所有worker从相同的模型W(0)开始训练,同时根据worker的总数对数据集进行切分,并采用进行数据读取,开始迭代训练;
2)在第t次迭代中,并行启动计算进程和通信进程:
计算进程:在读入数据集的基础上,利用模型W(t)进行前向传播、反向传播,计算得到梯度G(t)
通信进程:将模型W(t)送入内部网络、外部网络进行参数通信,根据不同的通信策略计算返回
Figure FDA0004192888040000011
3)将通信进程经过参数通信得到的模型
Figure FDA0004192888040000012
以及计算进程得到的梯度G(t),在参数优化器中进行模型更新,完成本轮迭代。
4.根据权利要求1所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述步骤S3中的延迟通信优化方式,基于模型平均的方法,使用本地的模型参数计算得到模型梯度,并更新在上一次迭代同步后的全局模型参数上。
5.根据权利要求4所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述延迟通信优化方式具体包括:
设共有K个worker参与通信,在第t次迭代中,并行启动以下进程:
计算进程:通过数据读取、前向传播、反向传播计算worker本地梯度G(t)
通信进程:使用本地模型W(t)与其他worker进行聚合平均操作得到
Figure FDA0004192888040000021
等待本次迭代计算进程结束,采用上一次迭代的通信结果
Figure FDA0004192888040000022
进行参数更新,需要等待上一次迭代的通信进程结束,而本次通信结果/>
Figure FDA0004192888040000023
则用于下一次迭代。
6.根据权利要求1所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述异步通信优化方式,针对带宽受限的场景中,下一次迭代的通信时间远大于计算时间的情况,解除计算进程与通信进程之间的耦合,计算进程无需等待上一轮通信完成仍然能够开始下一轮计算,每当一轮通信完成后对本地模型进行更新并开启下一轮通信。
7.根据权利要求1所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述分层通信优化方式,将整体通信抽象为单机内部通信和机器之间通信两层,根据每一层通信的带宽特点,采用不同的通信策略,充分利用机内和机间的带宽;
在分层通信的基础上,采取局部异步的方式实现,即以机器内部同步、机器外部异步的方式进行参数通信,流程如下:
1)给定一个具有N台机器,每台机器具有n个GPU设备的集群,构建分层网络,以集群中每个机器整体作为一个节点Node,每个GPU计算设备为Rank,选取Node-k,Rank-j设备进行分析;
2)在第t次迭代时,并行启动计算进程和通信进程;计算进程计算出本轮梯度
Figure FDA0004192888040000024
通信进程分为内部通信以及外部通信两部分;
3)内部通信:在Node-k内部构建的局部环网络中,Rank-j使用本地模型
Figure FDA0004192888040000025
与其他Rank进行Ring-Allreduce操作聚合得到局部平均模型/>
Figure FDA0004192888040000026
4)外部通信:
机外聚合平均:在Node之间构建的外部环网络中,Node-k_Rank-0使用局部平均模型
Figure FDA0004192888040000027
与其他Node_Rank-0进行外部Ring-Allreduce通信,得到全局平均模型/>
Figure FDA0004192888040000028
机内广播:每个Node的Rank-0通过Broadcast操作将
Figure FDA0004192888040000031
同步至所有Rank;
进程上锁与释放:在启动外部通信时,同时获取一个锁mjk,直到外部通信结束后释放;
5)内部参数更新,每次迭代结束时,根据延迟通信,使用Node-k上一轮的局部平均模型
Figure FDA0004192888040000032
进行局部参数更新;
6)全局参数更新,每次迭代结束检查锁mjk是否释放,若释放则表示全局平均模型
Figure FDA0004192888040000033
已就绪,将/>
Figure FDA0004192888040000034
作为模型修正项参与模型更新。
8.根据权利要求1所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述步骤S3的优化方式还包括参数量化,即在通信的过程中,使用半精度浮点数FP16对模型参数进行量化;
所述参数量化先计算两次迭代所得模型的差值Δt=W(t)-W(t-1),对Δt进行模型参数量化后再进行通信,最后得到的通信结果
Figure FDA0004192888040000035
用采取延迟通信的方式叠加到本地模型的更新上。
9.根据权利要求1所述的面向带宽受限环境的分布式训练通信优化方法,其特征在于,所述步骤S3的优化方式还包括去中心化,包括Ring和Round-Robin两种去中心化通信策略,使用两两通信的去中心化模式,使得单机的通信开销随着分布式规模的扩大而保持不变;
其中,Ring去中心化通信策略:通信方式采取相邻节点直接传输通信,每个Node内部进行同步的Allreduce,但是Node与Node直接采取异步单向通信,通信发起后每个Node向下一个相邻Node发送参数,并且接收从上一个相邻Node发送的参数,并将接收的参数与本地参数进行平均后根据延迟通信进行更新;
Round-Robin去中心化通信策略:采用节点动态两两连接的方式,每次通信只在两个节点间进行,Node内部进行同步的Allreduce,而Node外采用异步点对点通信;在每次通信发起前,需要等待RoundRobinSelector进行对等节点的选取,选出每个Node的下一个对等节点,随后,每个Node向对等节点发送自身模型参数,同时接收对等节点的模型参数,将两者进行平均后采用延迟通信的方式用于迭代更新。
10.一种面向带宽受限环境的分布式训练通信优化系统,其特征在于,包括:
模型M1:采用分布式训练平台,并使用数据并行的模式;
模型M2:建立深度学习模型,将所述分布式训练平台中所有的worker依次进行数据加载、前向传播、反向传播、参数通信、参数更新的操作,对深度学习模型进行训练;
模型M3:在前述模块基础上综合使用延迟通信、异步通信以及分层通信的优化方式,对深度学习模型进行迭代。
CN202310438029.7A 2023-04-21 2023-04-21 面向带宽受限环境的分布式训练通信优化方法及系统 Pending CN116405392A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310438029.7A CN116405392A (zh) 2023-04-21 2023-04-21 面向带宽受限环境的分布式训练通信优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310438029.7A CN116405392A (zh) 2023-04-21 2023-04-21 面向带宽受限环境的分布式训练通信优化方法及系统

Publications (1)

Publication Number Publication Date
CN116405392A true CN116405392A (zh) 2023-07-07

Family

ID=87014087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310438029.7A Pending CN116405392A (zh) 2023-04-21 2023-04-21 面向带宽受限环境的分布式训练通信优化方法及系统

Country Status (1)

Country Link
CN (1) CN116405392A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118313435A (zh) * 2024-06-06 2024-07-09 蓝象智联(杭州)科技有限公司 一种基于侧网络的大模型微调训练方法、系统及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118313435A (zh) * 2024-06-06 2024-07-09 蓝象智联(杭州)科技有限公司 一种基于侧网络的大模型微调训练方法、系统及装置

Similar Documents

Publication Publication Date Title
Shi et al. Communication-efficient distributed deep learning with merged gradient sparsification on GPUs
WO2022001141A1 (zh) 一种gpu通信方法、设备以及介质
CN112527514B (zh) 基于逻辑扩展的多核心安全芯片处理器及其处理方法
CN116405392A (zh) 面向带宽受限环境的分布式训练通信优化方法及系统
CN112862088A (zh) 一种基于流水线环形参数通信的分布式深度学习方法
US20210318878A1 (en) Method and system for accelerating ai training with advanced interconnect technologies
Shi et al. Exploiting simultaneous communications to accelerate data parallel distributed deep learning
CN110222007B (zh) 一种基于申威众核处理器的加速运行方法
CN115994567A (zh) 一种深度神经网络模型并行计算任务异步调度方法
CN113627519A (zh) 具有压缩和延迟补偿的分布式随机梯度下降方法
CN117436514A (zh) 基于分布式并行计算的模型训练方法及装置
Ma et al. FPGA-based AI smart NICs for scalable distributed AI training systems
CN116644803B (zh) 分布式协同训练控制方法、系统、装置、设备及存储介质
CN118014022A (zh) 面向深度学习的fpga通用异构加速方法及设备
CN116883229A (zh) 异构gpu集群中加速神经网络训练的流水线并行方法
CN115344526B (zh) 一种数据流架构的硬件加速方法及装置
Gao et al. Ocdst: Offloading chained dnns for streaming tasks
Ge et al. Compressed collective sparse-sketch for distributed data-parallel training of deep learning models
CN110021339B (zh) 基于蛋白质折叠测算蛋白质结构的集群并行计算加速方法
CN115129471A (zh) 面向大规模gpu集群的分布式局部随机梯度下降方法
Du et al. Wheel: Accelerating cnns with distributed gpus via hybrid parallelism and alternate strategy
CN113342313B (zh) 一种基于参数服务器异步更新Spark MLlib中线性分类模型参数的方法
Li et al. GraphRing: an HMC-ring based graph processing framework with optimized data movement
CN109388733B (zh) 一种面向图数据处理引擎的优化方法
CN110262900B (zh) 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination