CN110245743A - 一种异步分布式深度学习训练方法、装置及系统 - Google Patents
一种异步分布式深度学习训练方法、装置及系统 Download PDFInfo
- Publication number
- CN110245743A CN110245743A CN201910435688.9A CN201910435688A CN110245743A CN 110245743 A CN110245743 A CN 110245743A CN 201910435688 A CN201910435688 A CN 201910435688A CN 110245743 A CN110245743 A CN 110245743A
- Authority
- CN
- China
- Prior art keywords
- gradient
- parameter
- model
- calculate node
- sent
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种异步分布式深度学习训练方法、装置及系统。该方法应用于计算节点k,计算节点通过本地模型参数和本地数据进行前向传播得到损失值,再通过反向传播得到梯度更新,通过使用稀疏化函数,只发送梯度更新向量中信息量比较大的那些值,有效减小了计算节点到参数服务器的通信量。在异步随机梯度下降与参数服务器的基础概念上,通过对参数服务器回传计算节点的梯度进行通信压缩,有效的保证通信的压缩率,随着训练的不断进行,不断提高通信的压缩率,可以达到更好的压缩效果和更快的通信速度。
Description
技术领域
本发明涉及计算机深度学习训练技术领域,涉及一种异步分布式深度学习训练方法、装置及系统。
背景技术
大规模的深度学习模型通常采用分布式的方式进行训练。通常来说,模型的训练数据分布在若干的计算节点上,计算节点基于本地的数据并行地计算模型的更新值。比如计算节点有N个,其中某一节点可称为k,即k∈(1~N)。
例如,使用梯度下降或者随机梯度下降算法对模型进行更新。同步随机梯度下降(SSGD)是随机梯度下降的最常用的分布式实现,使用参数服务器或者Allreduce的方式维护与更新全局模型。同步随机梯度下降在每一次迭代后进行强同步,确保了各个计算节点使用相同的模型参数执行梯度计算。因此,在每次迭代结束后各个计算节点都需要等待最慢的计算节点完成计算,造成了大量不必要的时间开销。异步随机梯度下降通过移除计算节点的之间的强同步来克服这一缺点。在异步随机梯度下降中,各个计算节点独立的通过本地的模型与数据计算出梯度更新,然后将梯度更新上传至参数服务器。与SSGD不同的是,参数服务器收到某个计算节点的梯度更新后,并不会等待其它计算节点的更新,而是立即发送回更新后的全局模型参数,这样就避免了不必要的时间损耗。
另一方面,由于深度学习模型结构复杂,模型参数多,大规模的分布式深度学习需要频繁交换参数或者梯度更新信息,使得通信成为了制约大规模分布式训练发展的另一瓶颈。
研究者发现,深度学习模型中的大部分参数在每一轮迭代时产生的梯度变化很小,可以约等与0。因此有研究者提出了空间滤波的方法来减少通信量,即压缩每一次传输的梯度信息,从而起到加速训练的效果。具体可分为两种方法——梯度量化和梯度稀疏化。梯度量化主要通过降低梯度的精度,例如最常用的1-Bit量化方法就是将原本的32位浮点数压缩至1比特,将通信量降到了原本的1/32。梯度稀疏化则是通过算法决定在下一次通信中发送哪些位置的梯度,例如设置一个固定阈值,只有大于阈值的梯度才会被发送。当前对梯度稀疏化最常用的做法是通过百分比筛选梯度,它不采用原始的固定阈值方法,而是在每一层网络按百分比来选取阈值,并且百分比可以由用户通过带宽大小来自行调节。梯度稀疏化技术相比梯度量化技术,能够达到更高的压缩率,通过调整稀疏化的阈值,很容易就能够达到1/100甚至1/1000的压缩率。但是在异步随机梯度下降中,参数服务器需要向计算节点发回最新的全局模型参数,由于模型参数直接稀疏化会导致模型信息的丢失,最终无法收敛,因此梯度稀疏化技术是无法直接应用在异步随机梯度下降并行中,前人的梯度稀疏化研究也都是基于同步随机梯度下降,并没有解决异步随机梯度下降的通信瓶颈。
因此,如何将梯度稀疏化技术直接应用到异步随即梯度下降并行中,解决异步随机下降的通信瓶颈是同行从业人员亟待解决的问题。
发明内容
鉴于上述问题,本发明的目的是解决目前梯度稀疏化技术是无法直接应用在异步随机梯度下降并行中,不能解决异步随机梯度下降的通信瓶颈的问题。
第一方面,本发明提供一种异步分布式深度学习训练方法,应用于计算节点k,包括:
读取预设数量的训练数据到内存中;
根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
根据所述输出值计算与所述期望输出的误差,得到损失值Loss;
根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量
计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
接收参数服务器发来的信息,更新本地模型。
在一个实施例中,一种异步分布式深度学习训练方法,还包括:
当第i次的参数梯度向量则将作为残差梯度累加在第i+1次迭代上。
在一个实施例中,接收参数服务器发来的信息,更新本地模型,包括:
当接收到参数服务器发回的完整模型参数,则xk=xt+1;xk表示第k个计算节点的模型参数,xt+1表示模型参数版本号;
当接收到参数服务器发回的稀疏梯度,则累加在本地模型上。
第二方面,本发明还提供一种异步分布式深度学习训练装置,包括:
读取模块,用于读取预设数量的训练数据到内存中;
生成模块,用于根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
计算模块,用于根据所述输出值计算与所述期望输出的误差,得到损失值Loss;根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量计算梯度稀疏化结果计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
第一发送模块,用于根据所述计算模块的计算结果,当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
第一接收更新模块,用于接收参数服务器发来的信息,更新本地模型。
在一个实施例中,一种异步分布式深度学习训练装置,还包括:
第一累加模块,用于根据所述计算模块的计算结果,当第i次的参数梯度向量则将作为残差梯度累加在第i+1次迭代上。
第三方面,本发明提供一种异步分布式深度学习训练方法,应用于参数服务器,包括:
接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
在一个实施例中,一种异步分布式深度学习训练方法,还包括:当t与tsync的差值小于预设阈值时,则向计算节点k发送Sparse(t-tsync-ak,σ);
累加向计算节点k发送的梯度,ak=ak+Sparse(t-tsync-ak,σ)。
第四方面,本发明还提供一种异步分布式深度学习训练装置,包括:
第二接收模块,用于接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
第二更新模块,用于将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
第二累加发送模块,用于当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
在一个实施例中,所述第二累加发送模块,还用于:当t与tsync的差值小于预设阈值时,则向计算节点k发送Sparse(t-tsync-ak,σ);累加向计算节点k发送的梯度,ak=ak+Sparse(t-tsync-ak,σ)。
第五方面,本发明提供一种异步分布式深度学习训练系统,包括:参数服务器和与所述参数服务器通信连接的计算机节点k;
所述计算机节点k,用于循环执行以下步骤:
读取预设数量的训练数据到内存中;
根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
根据所述输出值计算与所述期望输出的误差,得到损失值Loss;
根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量
计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
接收参数服务器发来的信息,更新本地模型;
所述参数服务器,用于接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例中,计算节点通过本地模型参数和本地数据进行前向传播得到损失值,再通过反向传播得到梯度更新,通过使用稀疏化函数,只发送梯度更新向量中信息量比较大的那些值,有效减小了计算节点到参数服务器的通信量。
在异步随机梯度下降与参数服务器的基础概念上,新引入了对参数服务器回传计算节点的梯度通信压缩方法,并以此将参数服务器发回计算节点的信息进行稀疏化,解决了异步随机梯度下降的通信瓶颈。通过对参数服务器回传计算节点的梯度进行通信压缩,有效的保证通信的压缩率,随着训练的不断进行,不断提高通信的压缩率,可以达到更好的压缩效果和更快的通信速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的应用于计算节点的异步分布式深度学习训练方法流程图;
图2为本发明实施例提供的应用于计算节点的异步分布式深度学习训练装置框图;
图3为本发明实施例提供的计算机节应用到整个梯度压缩过程的架构图;
图4为本发明实施例提供的应用于参数服务器的异步分布式深度学习训练方法流程图;
图5为本发明实施例提供的应用于参数服务器的异步分布式深度学习训练装置框图;
图6为本发明实施例提供的异步分布式深度学习训练系统的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了便于说明本发明实施例中所用到的参数,特先说明如下:
x:模型参数;
t:模型参数版本号t;
tsync:模型软同步时的参数版本号;
k:第k个计算节点;
梯度向量;
第i个梯度元素;
σ:压缩率;
Sparse:稀疏化函数,将前σ大的稠密向量元素集合转为压缩率为σ的稀疏向量;
rt:残差梯度向量;
ak:累积发送梯度,参数服务器给计算节点k发送的梯度之和。
第一方面:本发明实施例提供的一种异步分布式深度学习训练方法,应用于计算节点k,该计算节点k为计算集群中的某一节点;
参照图1所示,循环执行以下步骤:
读取预设数量的训练数据到内存中;
根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
根据所述输出值计算与所述期望输出的误差,得到损失值Loss;
根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量
计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
当第i次的参数梯度向量则将相应的梯度发送给参数服务器;当第i次的参数梯度向量则将作为残差梯度累加在第i+1次迭代上。
接收参数服务器发来的信息,更新本地模型;当接收到参数服务器发回的完整模型参数,则xk=xt+1;xk表示第k个计算节点的模型参数,xt+1表示模型参数版本号;
当接收到参数服务器发回的稀疏梯度,则累加在本地模型上。
本发明实施例中,计算节点通过本地模型参数和本地数据进行前向传播得到损失值,再通过反向传播得到梯度更新,通过使用稀疏化函数,只发送梯度更新向量中信息量比较大的那些值,有效减小了计算节点到参数服务器的通信量。
在异步随机梯度下降与参数服务器的基础概念上,新引入了对参数服务器回传计算节点的梯度通信压缩方法,并以此将参数服务器发回计算节点的信息进行稀疏化,解决了异步随机梯度下降的通信瓶颈。如图2所示,通过对参数服务器回传计算节点的梯度进行通信压缩,有效的保证通信的压缩率,随着训练的不断进行,不断提高通信的压缩率,可以达到更好的压缩效果和更快的通信速度。
基于同一发明构思,本发明实施例还提供一种异步分布式深度学习训练装置,由于该装置所解决问题的原理与前述一种异步分布式深度学习训练方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
第二方面:本发明实施例提供的一种异步分布式深度学习训练装置,参照图3所示,包括:
读取模块31,用于读取预设数量的训练数据到内存中;
生成模块32,用于根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
计算模块33,用于根据所述输出值计算与所述期望输出的误差,得到损失值Loss;根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量计算梯度稀疏化结果计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
第一发送模块34,用于根据所述计算模块的计算结果,当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
第一接收更新模块35,用于接收参数服务器发来的信息,更新本地模型。具体用于当接收到参数服务器发回的完整模型参数,则xk=xt+1;xk表示第k个计算节点的模型参数,xt+1表示模型参数版本号;当接收到参数服务器发回的稀疏梯度,则累加在本地模型上。
在一个实施例中,一种异步分布式深度学习训练装置,还包括:
第一累加模块36,用于根据所述计算模块的计算结果,当第i次的参数梯度向量则将作为残差梯度累加在第i+1次迭代上。
第三方面:本发明实施例还提供的又一种异步分布式深度学习训练方法,应用于参数服务器,参照图4所示,包括:
接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型;
当t与tsync的差值小于预设阈值时,则向计算节点k发送Sparse(t-tsync-ak,σ);
累加向计算节点k发送的梯度,ak=ak+Sparse(t-tsync-ak,σ)。
本发明实施例中,在每一轮迭代中,各个计算节点异步的向参数服务器上传稀疏的梯度更新,参数服务器在收到梯度更新之后,计算全局模型参数与计算节点本地的差值,再对每一层的差值做排序,通过稀疏化函数只保留前面一部分比较大的值,并将其余的值置为0,以此可以只保留每一层中信息量比较大的参数更新,通过只向计算节点发回这些信息量比较大的更新,有效减小了参数服务器到计算节点的通信量。
具体地,还改进参数服务器的功能,设定了软同步机制已减少计算节点间模型差异,进而减小梯度延迟现象。改进参数的更新优化算法,采用残差梯度方法补偿未被发送的信息,有助于加速模型的收敛,在保证压缩梯度后,减少模型通信、训练时间的情况下,保证模型的准确率。
同样地,基于同一发明构思,本发明实施例又提供一种异步分布式深度学习训练装置,由于该装置所解决问题的原理与前述一种异步分布式深度学习训练方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
第四方面:本发明实施例提供了又一种异步分布式深度学习训练装置,参照图5所示,包括:
第二接收模块51,用于接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
第二更新模块52,用于将梯度更新在最新的全局模型 x表示模型参数,t表示模型参数版本号;
第二累加发送模块53,用于当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
在一个实施例中,所述第二累加发送模块53,还用于:当t与tsync的差值小于预设阈值时,则向计算节点k发送Sparse(t-tsync-ak,σ);累加向计算节点k发送的梯度,ak=ak+Sparse(t-tsync-ak,σ)。
第五方面,本发明实施例再提供了一种异步分布式深度学习训练系统,参照图6所示,包括:参数服务器61和与所述参数服务器61通信连接的计算机节点k62;
所述计算机节点k,用于循环执行以下步骤:
读取预设数量的训练数据到内存中;
根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
根据所述输出值计算与所述期望输出的误差,得到损失值Loss;
根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量
计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
接收参数服务器发来的信息,更新本地模型;
所述参数服务器,用于接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
下面通过一个完整的实施例来说明异步分布式深度学习训练系统:
通过下述步骤1~11进行双向梯度压缩,整个梯度压缩过程可参照图6所示:
1、计算节点k读取一批训练数据到内存中;
2、计算节点k利用读入的样本数据及对应的期望输出,进行前向传播,最后得到模型的输出值;各计算节点间互不影响,彼此计算独立;
3、计算节点k根据前向传播得到的模型输出计算与样本数据的期望输出的误差得到损失值Loss,根据损失值Loss进行反向传播,并且加上残差梯度rt,得到参数梯度向量
4、得到梯度稀疏化的结果如果则将发送第i个梯度元素,否则将作为残差梯度累加在下次一次的迭代上;
5、计算节点k将需要发送的梯度发送给参数服务器;
6、参数服务器收到压缩后的稀疏梯度将梯度更新在最新的全局模型
7、如果满足t-tsync≥100,则进行软同步,此时将ak全部清零,tsync=t,并向计算节点k发送完整的模型参数xt+1;
8、如果满足t-tsync<100,则向计算节点k发送Sparse(t-tsync-ak,σ);
9、累加向计算节点k发送的梯度:ak=ak+Sparse(t-tsync-ak,σ);
10、计算节点k如果收到参数服务器发回的完整模型参数,则xk=xt+1;
11、计算节点k如果收到参数服务器发回的稀疏梯度,则将其累加在本地模型上:
xk=xk+Sparse(t-tsync-ak,σ)
本发明实施例中,在每一轮迭代中,各个计算节点异步的向参数服务器上传稀疏的梯度更新,参数服务器在收到梯度更新之后,计算全局模型参数与计算节点本地的差值,再对每一层的差值做排序,通过稀疏化函数只保留前面一部分比较大的值,并将其余的值置为0,以此可以只保留每一层中信息量比较大的参数更新,通过只向计算节点发回这些信息量比较大的更新,有效减小了参数服务器到计算节点的通信量。
另一方面,计算节点通过本地模型参数和本地数据进行前向传播得到损失值,再通过反向传播得到梯度更新,通过使用稀疏化函数,只发送梯度更新向量中信息量比较大的那些值,有效减小了计算节点到参数服务器的通信量。使用以上的训练机制,使得基于参数服务器的异步训练的双向通信都能够进行梯度压缩,并且能够根据不同的模型,选取不同的梯度稀疏化方法,大大降低了异步分布式深度学习对带宽的需求。
同时为了提高通信的压缩率,我们还额外引入了动态压缩率的方法。在模型训练开始时设置较小的压缩率来发送相对较多的梯度更新值,随着训练的不断进行,不断提高通信的压缩率,以达到更好的压缩效果和更快的通信速度。
在训练过程中引入了改进的参数服务器架构,传统参数服务器在完成梯度聚合后需要向各个计算节点发送完整的模型参数,造成了非常大的通信开销。在加入了梯度稀疏化后,每一轮迭代中模型参数只有少部分的参数发生了变化,因此参数服务器没有必要再发送完整模型参数。本专利完成对参数服务器的改进,使服务器在梯度聚合后,对每个计算节点只发送聚合后的压缩梯度,参数更新步骤则在计算节点上完成。由于每个计算节点上都有一套完整的模型参数,所以当收到参数服务器发来的稀疏梯度后,计算节点各自执行参数更新,这样的更新机制能够在减小通信开销的基础上保证各个计算节点本地模型的一致性。
在参数更新部分,在双向通信时采用了残差梯度的方式补偿未被发送的那些梯度,保证了模型的收敛效果。
本发明实施例的有益效果如下:
本发明实施例利用基于参数服务器的异步随机梯度下降的方法,改变传统分布式深度学习中异步随机梯度下降的通信方式,使计算节点到参数服务器的梯度更新通信与参数服务器到计算节点的模型通信支持梯度稀疏化压缩方法。其次,由于使用传统异步随机梯度下降需要传送完整的参数模型,本发明实施例采用双向梯度的方法,与现有技术相比,将异步随机梯度下降的通信量降低了一百倍以上。
为了更加有效的保证通信的压缩率,随着训练的不断进行,不断提高通信的压缩率,以达到更好的压缩效果和更快的通信速度。
本发明实施例还改进了参数服务器架构,将参数服务器作为一个梯度共享服务器,梯度聚合完成后,对所有的计算节点不再发送完整的模型参数,与现有技术相比,将大量地减少网络带宽中的通信量,缓解分布式系统中通信压力。
采用了残差梯度的方式来补偿双向通信压缩时未被发送的梯度,保证了模型的收敛效果。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种异步分布式深度学习训练方法,应用于计算节点k,其特征在于,循环执行以下步骤:
读取预设数量的训练数据到内存中;
根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
根据所述输出值计算与所述期望输出的误差,得到损失值Loss;
根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量
计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
接收参数服务器发来的信息,更新本地模型。
2.如权利要求1所述的一种异步分布式深度学习训练方法,其特征在于,还包括:
当第i次的参数梯度向量则将作为残差梯度累加在第i+1次迭代上。
3.如权利要求1所述的一种异步分布式深度学习训练方法,其特征在于,接收参数服务器发来的信息,更新本地模型,包括:
当接收到参数服务器发回的完整模型参数,则xk=xt+1;xk表示第k个计算节点的模型参数,xt+1表示模型参数版本号;
当接收到参数服务器发回的稀疏梯度,则累加在本地模型上。
4.一种异步分布式深度学习训练装置,其特征在于,包括:
读取模块,用于读取预设数量的训练数据到内存中;
生成模块,用于根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
计算模块,用于根据所述输出值计算与所述期望输出的误差,得到损失值Loss;根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量计算梯度稀疏化结果计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
第一发送模块,用于根据所述计算模块的计算结果,当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
第一接收更新模块,用于接收参数服务器发来的信息,更新本地模型。
5.如权利要求4所述的一种异步分布式深度学习训练装置,其特征在于,还包括:
第一累加模块,用于根据所述计算模块的计算结果,当第i次的参数梯度向量则将作为残差梯度累加在第i+1次迭代上。
6.一种异步分布式深度学习训练方法,应用于参数服务器,其特征在于,包括:
接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
7.如权利要求6所述的一种异步分布式深度学习训练方法,其特征在于,还包括:当t与tsync的差值小于预设阈值时,则向计算节点k发送Sparse(t-tsync-ak,σ);
累加向计算节点k发送的梯度,ak=ak+Sparse(t-tsync-ak,σ)。
8.一种异步分布式深度学习训练装置,其特征在于,包括:
第二接收模块,用于接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
第二更新模块,用于将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
第二累加发送模块,用于当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t向计算节点k发送完整的全局模型。
9.如权利要求8所述的一种异步分布式深度学习训练装置,其特征在于,所述第二累加发送模块,还用于当t与tsync的差值小于预设阈值时,则向计算节点k发送Sparse(t-tsync-ak,σ);累加向计算节点k发送的梯度,ak=ak+Sparse(t-tsync-ak,σ)。
10.一种异步分布式深度学习训练系统,其特征在于,包括:参数服务器和与所述参数服务器通信连接的计算机节点k;
所述计算机节点k,用于循环执行以下步骤:
读取预设数量的训练数据到内存中;
根据所述训练数据及所述训练数据对应的期望输出,进行前向传播,生成模型的输出值;
根据所述输出值计算与所述期望输出的误差,得到损失值Loss;
根据所述Loss进行反向传播,计算梯度,并加上残差梯度rt,得到参数梯度向量
计算梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
当第i次的参数梯度向量则将相应的梯度发送给参数服务器;
接收参数服务器发来的信息,更新本地模型;
所述参数服务器,用于接收计算节点k发送的压缩后的梯度稀疏化结果Sparse表示稀疏化函数;σ表示压缩率;
将梯度更新在最新的全局模型x表示模型参数,t表示模型参数版本号;
当t与tsync的差值大于等于预设阈值时,则进行软同步;并将累积发送梯度ak清零,tsync=t;向计算节点k发送完整的全局模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910435688.9A CN110245743A (zh) | 2019-05-23 | 2019-05-23 | 一种异步分布式深度学习训练方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910435688.9A CN110245743A (zh) | 2019-05-23 | 2019-05-23 | 一种异步分布式深度学习训练方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110245743A true CN110245743A (zh) | 2019-09-17 |
Family
ID=67884925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910435688.9A Pending CN110245743A (zh) | 2019-05-23 | 2019-05-23 | 一种异步分布式深度学习训练方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245743A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191796A (zh) * | 2019-11-25 | 2020-05-22 | 上海联影智能医疗科技有限公司 | 用于增强分布式医疗网络的系统和方法 |
CN111275173A (zh) * | 2020-02-12 | 2020-06-12 | 字节跳动有限公司 | 一种神经网络训练方法、装置及其设备 |
CN111292722A (zh) * | 2019-12-13 | 2020-06-16 | 中国科学院深圳先进技术研究院 | 异步联合架构的模型训练方法、终端、服务器及存储装置 |
CN111382844A (zh) * | 2020-03-11 | 2020-07-07 | 华南师范大学 | 一种深度学习模型的训练方法及装置 |
CN111698327A (zh) * | 2020-06-12 | 2020-09-22 | 中国人民解放军国防科技大学 | 基于聊天室架构的分布并行强化学习模型训练方法及系统 |
CN112085074A (zh) * | 2020-08-25 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种模型参数更新系统、方法及装置 |
CN112235384A (zh) * | 2020-10-09 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 分布式系统中的数据传输方法、装置、设备及存储介质 |
CN112381218A (zh) * | 2020-11-20 | 2021-02-19 | 中国人民解放军国防科技大学 | 一种用于分布式深度学习训练的本地更新方法 |
CN112463189A (zh) * | 2020-11-20 | 2021-03-09 | 中国人民解放军国防科技大学 | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 |
CN112488324A (zh) * | 2020-12-24 | 2021-03-12 | 南京大学 | 一种基于版本控制的分布式机器学习模型更新方法 |
CN112686383A (zh) * | 2020-12-30 | 2021-04-20 | 中山大学 | 一种通信并行的分布式随机梯度下降的方法、系统及装置 |
CN112884157A (zh) * | 2019-11-29 | 2021-06-01 | 北京达佳互联信息技术有限公司 | 一种模型训练方法、模型训练节点及参数服务器 |
CN112948105A (zh) * | 2019-12-11 | 2021-06-11 | 香港理工大学深圳研究院 | 一种梯度传输方法、梯度传输装置及参数服务器 |
CN113159287A (zh) * | 2021-04-16 | 2021-07-23 | 中山大学 | 一种基于梯度稀疏的分布式深度学习方法 |
CN114726861A (zh) * | 2022-04-02 | 2022-07-08 | 中国科学技术大学苏州高等研究院 | 基于空闲服务器的模型聚合加速方法和装置 |
CN117808083A (zh) * | 2024-02-29 | 2024-04-02 | 浪潮电子信息产业股份有限公司 | 一种分布式训练通信方法、装置、系统、设备及存储介质 |
CN117910521A (zh) * | 2024-03-20 | 2024-04-19 | 浪潮电子信息产业股份有限公司 | 梯度压缩方法、装置、设备、分布式集群及存储介质 |
CN117997906A (zh) * | 2024-03-29 | 2024-05-07 | 广东琴智科技研究院有限公司 | 节点计算资源分配方法、网络交换子系统及智能计算平台 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914428A (zh) * | 2014-03-25 | 2014-07-09 | 上海交通大学 | 多核分布式计算环境下结构分析的高效通信方法 |
CN105447459A (zh) * | 2015-11-18 | 2016-03-30 | 上海海事大学 | 一种无人机自动检测目标和跟踪方法 |
CN107832847A (zh) * | 2017-10-26 | 2018-03-23 | 北京大学 | 一种基于稀疏化后向传播训练的神经网络模型压缩方法 |
CN108021982A (zh) * | 2016-10-28 | 2018-05-11 | 北京市商汤科技开发有限公司 | 数据传输方法和系统、电子设备 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN109063555A (zh) * | 2018-06-26 | 2018-12-21 | 杭州电子科技大学 | 基于低秩分解和稀疏表示残差对比的多姿态人脸识别方法 |
CN109343978A (zh) * | 2018-09-27 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种深度学习分布式框架用的数据交换方法与装置 |
CN109472347A (zh) * | 2018-10-15 | 2019-03-15 | 中山大学 | 一种分布式深度学习的梯度压缩方法 |
CN109740755A (zh) * | 2019-01-08 | 2019-05-10 | 深圳市网心科技有限公司 | 一种基于梯度下降法的数据处理方法及相关装置 |
-
2019
- 2019-05-23 CN CN201910435688.9A patent/CN110245743A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914428A (zh) * | 2014-03-25 | 2014-07-09 | 上海交通大学 | 多核分布式计算环境下结构分析的高效通信方法 |
CN105447459A (zh) * | 2015-11-18 | 2016-03-30 | 上海海事大学 | 一种无人机自动检测目标和跟踪方法 |
CN108021982A (zh) * | 2016-10-28 | 2018-05-11 | 北京市商汤科技开发有限公司 | 数据传输方法和系统、电子设备 |
CN107832847A (zh) * | 2017-10-26 | 2018-03-23 | 北京大学 | 一种基于稀疏化后向传播训练的神经网络模型压缩方法 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN109063555A (zh) * | 2018-06-26 | 2018-12-21 | 杭州电子科技大学 | 基于低秩分解和稀疏表示残差对比的多姿态人脸识别方法 |
CN109343978A (zh) * | 2018-09-27 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种深度学习分布式框架用的数据交换方法与装置 |
CN109472347A (zh) * | 2018-10-15 | 2019-03-15 | 中山大学 | 一种分布式深度学习的梯度压缩方法 |
CN109740755A (zh) * | 2019-01-08 | 2019-05-10 | 深圳市网心科技有限公司 | 一种基于梯度下降法的数据处理方法及相关装置 |
Non-Patent Citations (4)
Title |
---|
HANLIN TANG,AT EL.: ""DoubleSqueeze:Parallel Stochastic Gradient Descent with Double-Pass Error-Compensated Compression"", 《ARXIV》 * |
YAN YE,AT EL.: ""More Effective Distributed Deep Learning Using Staleness Based Parameter Updating"", 《SPRING LINK》 * |
YUJUN LIN,AT EL.: ""DEEP GRADIENT COMPRESSION: REDUCING THE COMMUNICATION BANDWIDTH FOR DISTRIBUTED TRAINING"", 《ARXIV》 * |
陈梦强等: ""基于HPC环境的深度学习并行优化"", 《计算机工程与科学》 * |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191796B (zh) * | 2019-11-25 | 2024-03-22 | 上海联影智能医疗科技有限公司 | 用于增强分布式医疗网络的系统和方法 |
CN111191796A (zh) * | 2019-11-25 | 2020-05-22 | 上海联影智能医疗科技有限公司 | 用于增强分布式医疗网络的系统和方法 |
CN112884157B (zh) * | 2019-11-29 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 一种模型训练方法、模型训练节点及参数服务器 |
CN112884157A (zh) * | 2019-11-29 | 2021-06-01 | 北京达佳互联信息技术有限公司 | 一种模型训练方法、模型训练节点及参数服务器 |
CN112948105A (zh) * | 2019-12-11 | 2021-06-11 | 香港理工大学深圳研究院 | 一种梯度传输方法、梯度传输装置及参数服务器 |
CN112948105B (zh) * | 2019-12-11 | 2023-10-17 | 香港理工大学深圳研究院 | 一种梯度传输方法、梯度传输装置及参数服务器 |
CN111292722A (zh) * | 2019-12-13 | 2020-06-16 | 中国科学院深圳先进技术研究院 | 异步联合架构的模型训练方法、终端、服务器及存储装置 |
CN111292722B (zh) * | 2019-12-13 | 2023-08-15 | 中国科学院深圳先进技术研究院 | 异步联合架构的模型训练方法、终端、服务器及存储装置 |
CN111275173A (zh) * | 2020-02-12 | 2020-06-12 | 字节跳动有限公司 | 一种神经网络训练方法、装置及其设备 |
CN111275173B (zh) * | 2020-02-12 | 2023-08-04 | 字节跳动有限公司 | 一种神经网络训练方法、装置及其设备 |
CN111382844A (zh) * | 2020-03-11 | 2020-07-07 | 华南师范大学 | 一种深度学习模型的训练方法及装置 |
CN111382844B (zh) * | 2020-03-11 | 2023-07-07 | 华南师范大学 | 一种深度学习模型的训练方法及装置 |
CN111698327B (zh) * | 2020-06-12 | 2022-07-01 | 中国人民解放军国防科技大学 | 基于聊天室架构的分布并行强化学习模型训练方法及系统 |
CN111698327A (zh) * | 2020-06-12 | 2020-09-22 | 中国人民解放军国防科技大学 | 基于聊天室架构的分布并行强化学习模型训练方法及系统 |
CN112085074B (zh) * | 2020-08-25 | 2024-05-07 | 腾讯科技(深圳)有限公司 | 一种模型参数更新系统、方法及装置 |
CN112085074A (zh) * | 2020-08-25 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种模型参数更新系统、方法及装置 |
CN112235384A (zh) * | 2020-10-09 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 分布式系统中的数据传输方法、装置、设备及存储介质 |
CN112235384B (zh) * | 2020-10-09 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 分布式系统中的数据传输方法、装置、设备及存储介质 |
CN112381218B (zh) * | 2020-11-20 | 2022-04-12 | 中国人民解放军国防科技大学 | 一种用于分布式深度学习训练的本地更新方法 |
CN112463189B (zh) * | 2020-11-20 | 2022-04-22 | 中国人民解放军国防科技大学 | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 |
CN112463189A (zh) * | 2020-11-20 | 2021-03-09 | 中国人民解放军国防科技大学 | 基于通信操作稀疏化的分布式深度学习多步延迟更新方法 |
CN112381218A (zh) * | 2020-11-20 | 2021-02-19 | 中国人民解放军国防科技大学 | 一种用于分布式深度学习训练的本地更新方法 |
CN112488324A (zh) * | 2020-12-24 | 2021-03-12 | 南京大学 | 一种基于版本控制的分布式机器学习模型更新方法 |
CN112488324B (zh) * | 2020-12-24 | 2024-03-22 | 南京大学 | 一种基于版本控制的分布式机器学习模型更新方法 |
CN112686383B (zh) * | 2020-12-30 | 2024-04-16 | 中山大学 | 一种通信并行的分布式随机梯度下降的方法、系统及装置 |
CN112686383A (zh) * | 2020-12-30 | 2021-04-20 | 中山大学 | 一种通信并行的分布式随机梯度下降的方法、系统及装置 |
CN113159287B (zh) * | 2021-04-16 | 2023-10-10 | 中山大学 | 一种基于梯度稀疏的分布式深度学习方法 |
CN113159287A (zh) * | 2021-04-16 | 2021-07-23 | 中山大学 | 一种基于梯度稀疏的分布式深度学习方法 |
CN114726861A (zh) * | 2022-04-02 | 2022-07-08 | 中国科学技术大学苏州高等研究院 | 基于空闲服务器的模型聚合加速方法和装置 |
CN117808083A (zh) * | 2024-02-29 | 2024-04-02 | 浪潮电子信息产业股份有限公司 | 一种分布式训练通信方法、装置、系统、设备及存储介质 |
CN117808083B (zh) * | 2024-02-29 | 2024-05-03 | 浪潮电子信息产业股份有限公司 | 一种分布式训练通信方法、装置、系统、设备及存储介质 |
CN117910521A (zh) * | 2024-03-20 | 2024-04-19 | 浪潮电子信息产业股份有限公司 | 梯度压缩方法、装置、设备、分布式集群及存储介质 |
CN117997906A (zh) * | 2024-03-29 | 2024-05-07 | 广东琴智科技研究院有限公司 | 节点计算资源分配方法、网络交换子系统及智能计算平台 |
CN117997906B (zh) * | 2024-03-29 | 2024-06-11 | 广东琴智科技研究院有限公司 | 节点计算资源分配方法、网络交换子系统及智能计算平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245743A (zh) | 一种异步分布式深度学习训练方法、装置及系统 | |
CN109299781B (zh) | 基于动量和剪枝的分布式深度学习系统 | |
CN109902818B (zh) | 一种面向深度学习训练任务的分布式加速方法及系统 | |
CN111242282B (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
CN113515370B (zh) | 一种面向大规模深度神经网络的分布式训练方法 | |
CN112181971B (zh) | 一种基于边缘的联邦学习模型清洗和设备聚类方法、系统 | |
CN111382844B (zh) | 一种深度学习模型的训练方法及装置 | |
CN108460457A (zh) | 一种面向卷积神经网络的多机多卡混合并行异步训练方法 | |
CN107018184A (zh) | 分布式深度神经网络集群分组同步优化方法及系统 | |
Jiang et al. | Fedmp: Federated learning through adaptive model pruning in heterogeneous edge computing | |
CN110942138B (zh) | 一种混合内存环境下深度神经网络的训练方法和系统 | |
CN113518007B (zh) | 一种基于联邦学习的多物联网设备异构模型高效互学习方法 | |
CN108334945A (zh) | 深度神经网络的加速与压缩方法及装置 | |
CN105187845B (zh) | 视频数据解码装置及解码方法 | |
CN104023216B (zh) | 人脸视频压缩方法 | |
CN106846236A (zh) | 一种可扩展的分布式gpu加速方法及装置 | |
CN114418129B (zh) | 一种深度学习模型训练方法及相关装置 | |
CN113159287B (zh) | 一种基于梯度稀疏的分布式深度学习方法 | |
CN114357676B (zh) | 一种针对层次化模型训练框架的聚合频率控制方法 | |
WO2023040197A1 (zh) | 一种跨节点通信方法、装置、设备及可读存储介质 | |
CN103401941B (zh) | 一种gis场景信息处理方法、系统、节点机和服务端 | |
CN109472347A (zh) | 一种分布式深度学习的梯度压缩方法 | |
CN112836822A (zh) | 基于宽度学习的联邦学习策略优化方法和装置 | |
CN113254215B (zh) | 数据处理方法和装置、存储介质及电子设备 | |
CN102946443B (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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20211228 |
|
AD01 | Patent right deemed abandoned |