CN113159287B - 一种基于梯度稀疏的分布式深度学习方法 - Google Patents
一种基于梯度稀疏的分布式深度学习方法 Download PDFInfo
- Publication number
- CN113159287B CN113159287B CN202110409337.8A CN202110409337A CN113159287B CN 113159287 B CN113159287 B CN 113159287B CN 202110409337 A CN202110409337 A CN 202110409337A CN 113159287 B CN113159287 B CN 113159287B
- Authority
- CN
- China
- Prior art keywords
- gradient
- residual
- new
- layer
- deep learning
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于梯度稀疏的分布式深度学习方法,该方法包括:初始化本地模型参数,将本地模型参数在计算节点之间同步并初始化残差张量;计算节点将训练数据读取进内存并作为深度神经网络模型的输入;基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度;基于分块梯度稀疏方法对新梯度进行稀疏,并进行梯度通信;进行后续层梯度计数,得到全局梯度;基于全局梯度对本地模型参数进行更新;迭代直至满足预设的迭代终止条件。本发明方法大大减少了分布式深度学习的通信开销并提高训练效率。本发明作为一种基于梯度稀疏的分布式深度学习方法,可广泛应用于图像处理领域。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种基于梯度稀疏的分布式深度学习方法。
背景技术
近年来,巨量的数据以及大规模的训练集群所提供的的基础,促进了人工智能的飞速发展。基于深度神经网络的深度学习方法被广泛应用于各行各业,主要应用于计算机视觉、自然语言处理与语音识别等领域,并取得了突破性的成果。为了减少深度神经网络的训练时间,使用多个工作节点进行分布式训练成为必然选择。
深度神经网络的分布式训练主要有两种并行训练的方式,分别是数据并行和模型并行。模型并行可以理解为是将一个深度神经网络进行划分,然后将划分出来的各个部分分配到各个计算节点上进行训练。由于神经网络结构中不同神经元之间存在高度的依赖,计算节点在模型并行的训练过程中必须频繁地交换输出结果,导致加速的效率很低。在数据并行的训练过程中,首先每个计算节点具有相同的模型副本,然后每次迭代读取数据集中不同批次的数据来训练本地的模型参数。在每次更新模型参数之前,所有计算节点都需要进行通信,以实现梯度的同步。目前深度神经网络的分布式训练一般采取数据并行的方式。
发明内容
本发明的目的是提供一种基于梯度稀疏的分布式深度学习方法,解决进行深度学习分布式训练中存在的通信开销问题,为深度学习分布式训练系统带来训练性能的提升,并且不对模型的精度造成明显的损失。
本发明所采用的第一技术方案是:一种基于梯度稀疏的分布式深度学习方法,包括以下步骤:
S1、初始化本地模型参数,将本地模型参数在计算节点之间同步并初始化残差张量;
S2、计算节点将训练数据读取进内存并作为深度神经网络模型的输入;
S3、基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度;
S4、基于分块梯度稀疏方法对新梯度进行稀疏,并进行梯度通信;
S5、进行后续层梯度计数,得到全局梯度;
S6、基于全局梯度对本地模型参数进行更新。
进一步,还包括:
S7、返回步骤S2直至满足预设的迭代终止条件。
进一步,所述基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度这一步骤,其具体包括:
S31、计算节点基于内存中的训练数据和本地的模型参数进行迭代训练,前向传播得到每一层的误差值loss;
S32、根据误差值loss进行反向传播,逐层计算得到每一层的梯度g;
S33、每得到一层的梯度就将该层的残差累加到梯度上,得到新梯度。
进一步,所述每得到一层的梯度就将该层的残差累加到梯度上,得到新梯度这一步骤,公式表示为:
g1=g+v
上式中,所述g1表示新梯度,所述v表示残差值。
进一步,所述基于分块梯度稀疏方法对新梯度进行稀疏,得到稀疏梯度这一步骤,其具体包括:
S41、对每一层的新梯度按照压缩率p划分为多个梯度子块;
S42、为每一个梯度子块计算其中所有梯度元素绝对值的平均值作为该梯度子块的贡献权重,得到贡献权重数组。
S43、在计算节点之间对贡献权重数组执行一次AllReduce操作,同步平均所有计算节点的贡献权重数组;
S44、每个计算节点选取贡献权重最大的梯度子块作为通信的传输对象。
进一步,经过多轮迭代,将梯度稀疏的压缩率p指数地增加到目标值,并对模型进行训练。
进一步,所述进行后续层梯度计数,得到全局梯度这一步骤,其具体包括:
S51、对未被传输的梯度子块在本地进行残差累加并用于在下一次迭代累加到梯度上,对于已被传输的梯度子块,将其残差值v更新为0;
S52、直至所有层的梯度计数完成,得到全局梯度。
本发明方法的有益效果是:本发明通过梯度稀疏和通信并行,既减少了每一层梯度的通信量,又能最大程度地将通信时间和梯度计算时间重叠在一起,大大减少了分布式深度学习的通信开销;采取分块块梯度稀疏的稀疏计算以降低通信开销,提高训练效率。
附图说明
图1是本发明一种基于梯度稀疏的分布式深度学习方法的步骤流程图;
图2是本发明具体实施例所应用的计算节点通信结构示意图;
图3是本发明具体实施例分布式深度学习训练示意图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
参照图1和图2,本发明提供了一种基于梯度稀疏的分布式深度学习方法,应用于去中心化的点对点架构该方法包括以下步骤:
使用一个由N个计算节点组成的分布式集群,共同训练一个深度神经网络模型,其中每个计算节点在本地维护着一个深度神经网络模型副本。
S1、初始化本地模型参数,将本地模型参数在计算节点之间同步并初始化残差张量;
S2、计算节点将训练数据读取进内存并作为深度神经网络模型的输入;
S3、基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度;
S4、基于分块梯度稀疏方法对新梯度进行稀疏,并进行梯度通信;
S5、进行后续层梯度计数,得到全局梯度;
S6、基于全局梯度对本地模型参数进行更新。
进一步作为本方法的优选实施例,还包括:
S7、返回步骤S2直至满足预设的迭代终止条件。
具体地,迭代终止条件可以是模型收敛。
进一步作为本方法的优选实施例,所述基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度这一步骤,其具体包括:
S31、计算节点基于内存中的训练数据和本地的模型参数进行迭代训练,前向传播得到每一层的误差值loss;
S32、根据误差值loss进行反向传播,逐层计算得到每一层的梯度g;
S33、每得到一层的梯度就将该层的残差累加到梯度上,得到新梯度。
进一步作为本方法优选实施例,所述每得到一层的梯度就将该层的残差累加到梯度上,得到新梯度这一步骤,公式表示为:
g1=g+v
上式中,所述g1表示新梯度,所述v表示残差值。
进一步作为本方法优选实施例,所述基于分块梯度稀疏方法对新梯度进行稀疏,得到稀疏梯度这一步骤,其具体包括:
S41、对每一层的新梯度按照压缩率p划分为多个梯度子块;
具体地,假设梯度张量包含m个梯度元素,每个梯度子块的大小是该层本次通信需要传输的梯度元素个数mp。
S42、为每一个梯度子块计算其中所有梯度元素绝对值的平均值作为该梯度子块的贡献权重,得到贡献权重数组。
具体地,每个计算节点为每一层用一个数组存放该层所有梯度子块的贡献权重。
S43、在计算节点之间对贡献权重数组执行一次AllReduce操作,同步平均所有计算节点的贡献权重数组;
S44、每个计算节点选取贡献权重最大的梯度子块作为通信的传输对象。
具体地,执行完梯度稀疏后马上对该层被选中的梯度子块用AllReduce操作进行通信,其中梯度子块的通信与后续层的梯度计算并行执行。
具体地,本发明采取了一种分块梯度稀疏的方法,将每一层的梯度张量划分成一个个连续的梯度子块,并在所有计算节点之中选取贡献权重最大的梯度子块进行传输。由于每个计算节点传输的都是同一个位置的梯度子块,所以可以用针对稠密数据结构的AllReduce进行通信同步,而不是AllGather操作。与传统的基于阈值的梯度稀疏方法相比,该方法拥有两个优势:(1)分块梯度稀疏的稀疏计算开销要远远低于用top-k算法进行稀疏的计算开销;(2)在完成梯度稀疏后,传统的基于阈值的梯度稀疏方法一般采用AllGather操作进行通信,而该方法使用AllReduce操作进行通信。在实际的分布式深度学习训练系统中,该方法的通信开销更低,训练效率更高。
进一步作为本方法的优选实施例,经过多轮迭代,将梯度稀疏的压缩率p指数地增加到目标值,并对模型进行训练。
具体地,使得最终能用一个较大的压缩率对模型进行训练。
进一步作为本方法的优选实施例,所述进行后续层梯度计数,得到全局梯度这一步骤,其具体包括:
S51、对未被传输的梯度子块在本地进行残差累加并用于在下一次迭代累加到梯度上,对于已被传输的梯度子块,将其残差值v更新为0;
S52、直至所有层的梯度计数完成,得到全局梯度。
具体地,本发明将梯度稀疏和流水线通信并行的思想结合在一起,如图3所示,以实现减少通信开销。
一种基于梯度稀疏的分布式深度学习装置:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上所述一种基于梯度稀疏的分布式深度学习方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (3)
1.一种基于梯度稀疏的分布式深度学习方法,其特征在于,包括以下步骤:
S1、初始化本地模型参数,将本地模型参数在计算节点之间同步并初始化残差张量;
S2、计算节点将训练数据读取进内存并作为深度神经网络模型的输入;
S3、基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度;
S4、基于分块梯度稀疏方法对新梯度进行稀疏,并进行梯度通信;
S5、进行后续层梯度计数,得到全局梯度;
S6、基于全局梯度对本地模型参数进行更新;
所述基于反向传播获取梯度并将残差张量累加至梯度上,得到新梯度这一步骤,其具体包括:
S31、计算节点基于内存中的训练数据和本地的模型参数进行迭代训练,前向传播得到每一层的误差值loss;
S32、根据误差值loss进行反向传播,逐层计算得到每一层的梯度g;
S33、每得到一层的梯度就将该层的残差累加到梯度上,得到新梯度;
所述每得到一层的梯度就将该层的残差累加到梯度上,得到新梯度这一步骤,公式表示为:
g1=g+v
上式中,所述g1表示新梯度,所述v表示残差值;
所述基于分块梯度稀疏方法对新梯度进行稀疏,并进行梯度通信这一步骤,其具体包括:
S41、对每一层的新梯度按照压缩率p划分为多个梯度子块;
S42、为每一个梯度子块计算其中所有梯度元素绝对值的平均值作为该梯度子块的贡献权重,得到贡献权重数组;
S43、在计算节点之间对贡献权重数组执行一次AllReduce操作,同步平均所有计算节点的贡献权重数组;
S44、每个计算节点选取贡献权重最大的梯度子块作为通信的传输对象;
所述进行后续层梯度计数,得到全局梯度这一步骤,其具体包括:
S51、对未被传输的梯度子块在本地进行残差累加并用于在下一次迭代累加到梯度上,对于已被传输的梯度子块,将其残差值v更新为0;
S52、直至所有层的梯度计数完成,得到全局梯度。
2.根据权利要求1所述一种基于梯度稀疏的分布式深度学习方法,其特征在于,还包括:
S7、返回步骤S2直至满足预设的迭代终止条件。
3.根据权利要求2所述一种基于梯度稀疏的分布式深度学习方法,其特征在于,经过多轮迭代,将梯度稀疏的压缩率p指数地增加到目标值,并对模型进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110409337.8A CN113159287B (zh) | 2021-04-16 | 2021-04-16 | 一种基于梯度稀疏的分布式深度学习方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110409337.8A CN113159287B (zh) | 2021-04-16 | 2021-04-16 | 一种基于梯度稀疏的分布式深度学习方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113159287A CN113159287A (zh) | 2021-07-23 |
CN113159287B true CN113159287B (zh) | 2023-10-10 |
Family
ID=76868534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110409337.8A Active CN113159287B (zh) | 2021-04-16 | 2021-04-16 | 一种基于梯度稀疏的分布式深度学习方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113159287B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114118381B (zh) * | 2021-12-03 | 2024-02-02 | 中国人民解放军国防科技大学 | 基于自适应聚合稀疏通信的学习方法、装置、设备及介质 |
CN114298277B (zh) * | 2021-12-28 | 2023-09-12 | 四川大学 | 一种基于层稀疏化的分布式深度学习训练方法及系统 |
CN116341628B (zh) * | 2023-02-24 | 2024-02-13 | 北京大学长沙计算与数字经济研究院 | 分布式训练的梯度稀疏化方法、系统、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
CN110287031A (zh) * | 2019-07-01 | 2019-09-27 | 南京大学 | 一种减少分布式机器学习通信开销的方法 |
CN111488981A (zh) * | 2020-03-05 | 2020-08-04 | 天津大学 | 基于高斯分布估计选取深度网络参数稀疏阈值的方法 |
CN111858072A (zh) * | 2020-08-06 | 2020-10-30 | 华中科技大学 | 一种大规模分布式深度学习的资源管理方法及系统 |
CN112052938A (zh) * | 2020-08-14 | 2020-12-08 | 同盾控股有限公司 | 基于知识联邦的多端模型压缩方法、任务预测方法、装置及电子设备 |
CN112424797A (zh) * | 2018-05-17 | 2021-02-26 | 弗劳恩霍夫应用研究促进协会 | 神经网络的分布式学习和/或其参数化更新的传输的概念 |
-
2021
- 2021-04-16 CN CN202110409337.8A patent/CN113159287B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112424797A (zh) * | 2018-05-17 | 2021-02-26 | 弗劳恩霍夫应用研究促进协会 | 神经网络的分布式学习和/或其参数化更新的传输的概念 |
CN110245743A (zh) * | 2019-05-23 | 2019-09-17 | 中山大学 | 一种异步分布式深度学习训练方法、装置及系统 |
CN110287031A (zh) * | 2019-07-01 | 2019-09-27 | 南京大学 | 一种减少分布式机器学习通信开销的方法 |
CN111488981A (zh) * | 2020-03-05 | 2020-08-04 | 天津大学 | 基于高斯分布估计选取深度网络参数稀疏阈值的方法 |
CN111858072A (zh) * | 2020-08-06 | 2020-10-30 | 华中科技大学 | 一种大规模分布式深度学习的资源管理方法及系统 |
CN112052938A (zh) * | 2020-08-14 | 2020-12-08 | 同盾控股有限公司 | 基于知识联邦的多端模型压缩方法、任务预测方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113159287A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113159287B (zh) | 一种基于梯度稀疏的分布式深度学习方法 | |
CN109902818B (zh) | 一种面向深度学习训练任务的分布式加速方法及系统 | |
CN113515370B (zh) | 一种面向大规模深度神经网络的分布式训练方法 | |
CN110533183B (zh) | 流水线分布式深度学习中异构网络感知的任务放置方法 | |
CN109299781B (zh) | 基于动量和剪枝的分布式深度学习系统 | |
CN109948029B (zh) | 基于神经网络自适应的深度哈希图像搜索方法 | |
CN110889509B (zh) | 一种基于梯度动量加速的联合学习方法及装置 | |
CN109635922B (zh) | 一种分布式深度学习参数量化通信优化方法及系统 | |
EP3889846A1 (en) | Deep learning model training method and system | |
CN112597610B (zh) | 机械臂结构轻量化设计的优化方法、装置及设备 | |
CN112686383B (zh) | 一种通信并行的分布式随机梯度下降的方法、系统及装置 | |
CN109032630B (zh) | 一种参数服务器中全局参数的更新方法 | |
CN112632874A (zh) | 一种直升机流场数值模拟的优化方法及系统 | |
CN117540664A (zh) | 一种基于图神经网络的二维流场预测与修正方法 | |
CN115470889A (zh) | 基于强化学习的片上网络自主最优映射探索系统及方法 | |
CN115131605A (zh) | 一种基于自适应子图的结构感知图对比学习方法 | |
CN111027671B (zh) | 一种基于模型结构特性的分布式深度学习通信方法和系统 | |
CN110135067B (zh) | 一种双时间步方法下的直升机流场重叠混合网格并行方法 | |
CN111898763A (zh) | 一种鲁棒的拜占庭容错分布式梯度下降算法 | |
CN109635945B (zh) | 一种用于图像分类的深度神经网络的训练方法 | |
WO2020037512A1 (zh) | 一种神经网络计算方法和装置 | |
CN116033492A (zh) | 移动边缘环境中Transformer模型分割方法及装置 | |
Zhang et al. | Dynamic layer-wise sparsification for distributed deep learning | |
CN113918320A (zh) | 一种自适应模型分割的分布式图神经网络训练装置 | |
CN112486671A (zh) | 基于gpu的grapes系统优化方法、系统、介质及设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |