一种分布式深度学习参数量化通信优化方法及系统技术方案

技术编号:20867980 阅读:28 留言:0更新日期:2019-04-17 09:38
本发明专利技术公开了一种基于离散余弦变换的分布式深度学习参数量化通信优化方法及系统,将分布式深度学习中的梯度值进行离散余弦变换后,再压缩处理,更新权重时反量化操作,形成一种通信高效的分布式深度学习系统。在工作节点发送梯度数据到参数服务器之前,采用梯度划分、GPU并行计算、离散余弦变换与量化及高频滤波压缩方法处理梯度值,然后推送至参数服务器。工作节点通过拉取操作,从参数服务器得到权重之后,采用离散余弦反变换与反量化、误差补偿更新方法更新当前工作节点上的权重。本发明专利技术能够有效提升现有的分布式深度学习框架中,工作节点和参数服务器之间的通信效率,提高模型训练速度。

【技术实现步骤摘要】
一种分布式深度学习参数量化通信优化方法及系统
本专利技术属于深度学习
,更具体地,涉及一种基于离散余弦变换的分布式深度学习参数量化通信优化方法及系统。
技术介绍
深度神经网络(DeepNeuralNetwork,DNN)是由一个输入层、多个隐藏层及一个输出层组成的一种人工神经网络(ArtificialNeuralNetwork,ANN),每一层由多个神经元节点组成,前层和后层的神经元节点间相互连接,每一个连接对应一个权重参数。如图1所示,layer1表示输入层,layer4表示输出层,layer2和layer3表示隐层,神经元之间的连接均对应一个权重参数其中,l表示第l层,j表示l前一层的第j个神经元,k表示l层的第k个神经元。l层的全部神经元的权重参数组成该层的权重矩阵。同时,l层的每个神经元有一个偏置项权重矩阵和偏置矩阵构成l层神经元的参数。在神经网络模型中,产生这类权重矩阵的主要是全连接层(Full-ConnectedLayer)以及卷积层(ConvolutionLayer),图1中表示的是全连接层。卷积层的神经元连接数较全连接层相对更少。模型超参数(hyperparameters)是深度学习中必需的框架参数,是模型外部的配置,其值不能从数据估计得到,所以通常由实践者直接指定。常用的超参数有训练迭代次数、学习率、初始化等。这些超参数由实践者在训练开始前设置,实践者可以通过启发式方法来设置。深度神经网络通常采用误差逆传播(BackPropagation,BP)算法训练模型。正向传播时,输入样本data从输入层进入网络,经隐层逐层传递至输出层。反向传播时,将输出误差按原通路反传计算,为每一层神经元计算权重以及偏置项的梯度值和直至输入层。神经元利用更新公式:得到新的权重及偏置项,其中,公式中等式右边的W(l)及bias(l)是server上已有的权重及偏置项,lr为学习率。随着训练数据集的规模增大,以及模型的层数越来越深,单机的训练模式已不能满足深度神经网络的需求,于是分布式深度学习框架应运而生。参数服务器(ParameterServer)模式是分布式深度学习框架中常用的一种。在这种模式中,集群的部分节点作为参数服务器server,其余节点作为工作节点worker。如图2,worker负责执行训练并计算梯度参数,并执行push()操作:将梯度参数推送到server。server接收到梯度参数后,利用更新公式(1)(2)计算最新参数。随后,worker执行pull()操作:将server上的最新参数拉取到worker本地更新。在整个训练过程中,参数被标识成(key,value)的集合,其中,key对应参数的ID名,value是该key对应的参数值。例如在图1中,layer1为全连接层,其层ID为fc1。在push()操作时,worker将权重和偏置项的梯度参数推送到server,其中权重梯度标识成偏置项梯度标识成在pull()操作时,worker从server拉取最新的权重和偏置项,其中权重被标识成(fc1_weight,W(l)),偏置项标识成(fc1_bias,bias(l))。随着网络模型的深度越来越深,worker和server之间需要发送和接收的参数数量急剧增加,这会引起巨大的网络开销,从而容易造成通信延迟,影响训练的速度。故需要对梯度参数或权重参数做量化处理,减少集群节点间传输的数据量,用以加快训练的进行。由于图形处理器(GraphicsProcessingUnit,GPU)对矩阵乘法和卷积具有高效的处理能力,现阶段的深度学习大多基于GPU计算。同时离散余弦变换(DiscreteCosineTransform,DCT)中各元素的计算独立性很强,使用GPU并行程序计算更高效,编译语言使用CUDA。其中DCT变换的公式为:其中,n表示方阵的长度和宽度,f(i,j)表示原方阵中第i行j列的数,F(u,v)表示DCT变换后的矩阵中第u行v列的数,c(u)和c(v)均满足:其中,t=u,v。DCT反变换的公式为:其中,n表示方阵的长度和宽度,f(i,j)表示原矩阵中第i行j列的数,F(u,v)表示变换后的矩阵中第u行v列的数,c(u)和c(v)均满足:其中,t=u,v。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于离散余弦变换的分布式深度学习参数量化通信优化方法及系统,由此解决现有分布式深度学习模型训练速度存在一定局限的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于离散余弦变换的分布式深度学习参数量化通信优化方法,包括:(1)工作节点将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;(2)所述工作节点将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;(3)所述工作节点从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。优选地,在步骤(1)中,所述将分布式深度学习中的梯度值划分为若干个第一方阵,包括:根据分布式深度学习中的梯度值包含的浮点数个数Num,将梯度值划分为包括Num/(n*n)个大小为n*n的第一方阵Gk(0≤k<Num/(n*n)),剩余的无法组成一个方阵的Num%(n*n)个浮点数记为G′,其中,/表示相除取整,G下标k表示划分后的方阵的索引,%表示相除取余数。优选地,在步骤(1)中,所述对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,包括:根据所述第一方阵的个数Num/(n*n),设置基于图形处理器的并行程序计算中线程的个数thread_num=Num/(n*n),其中,每一个线程负责一个第一方阵的离散余弦变换,且thread_num个第一方阵的离散余弦变换操作并行执行,得到thread_num个已完成离散余弦变换的方阵其中,下标k表示方阵的索引,上标DCT表示是已完成离散余弦变换方阵。优选地,步骤(2)包括:(2.1)若iter%interval≠0且iter≠iteration,则对每一个已完成离散余弦变换的方阵将反对角线上以及反对角线左上角的部分记为Sendk,将所有Sendk以及G′合并后记为Send,将反对角线右下角的部分记为Residualk,所有Residualk合并记为Residual,保留在所述工作节点的本地缓冲器中,将Send向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重得到已量化权重WDCT及已量化偏置项biasDCT,其中,Sendk为Residualk为iter为当前迭代次数,interval为迭代间隔,ite本文档来自技高网
...

【技术保护点】
1.一种基于离散余弦变换的分布式深度学习参数量化通信优化方法,其特征在于,包括:(1)工作节点将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;(2)所述工作节点将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;(3)所述工作节点从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。

【技术特征摘要】
1.一种基于离散余弦变换的分布式深度学习参数量化通信优化方法,其特征在于,包括:(1)工作节点将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;(2)所述工作节点将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;(3)所述工作节点从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。2.根据权利要求1所述的方法,其特征在于,在步骤(1)中,所述将分布式深度学习中的梯度值划分为若干个第一方阵,包括:根据分布式深度学习中的梯度值包含的浮点数个数Num,将梯度值划分为包括Num/(n*n)个大小为n*n的第一方阵Gk(0≤k<Num/(n*n)),剩余的无法组成一个方阵的Num%(n*n)个浮点数记为G′,其中,/表示相除取整,G下标k表示划分后的方阵的索引,%表示相除取余数。3.根据权利要求2所述的方法,其特征在于,在步骤(1)中,所述对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,包括:根据所述第一方阵的个数Num/(n*n),设置基于图形处理器的并行程序计算中线程的个数thread_num=Num/(n*n),其中,每一个线程负责一个第一方阵的离散余弦变换,且thread_num个第一方阵的离散余弦变换操作并行执行,得到thread_num个已完成离散余弦变换的方阵其中,下标k表示方阵的索引,上标DCT表示是已完成离散余弦变换方阵。4.根据权利要求3所述的方法,其特征在于,步骤(2)包括:(2.1)若iter%interval≠0且iter≠iteration,则对每一个已完成离散余弦变换的方阵将反对角线上以及反对角线左上角的部分记为Sendk,将所有Sendk以及G′合并后记为Send,将反对角线右下角的部分记为Residualk,所有Residualk合并记为Residual,保留在所述工作节点的本地缓冲器中,将Send向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重得到已量化权重WDCT及已量化偏置项biasDCT,其中,Sendk为Residualk为iter为当前迭代次数,interval为迭代间隔,iteration为训练的最大迭代次数;(2.2)若iter%interval=0或者iter=iterati...

【专利技术属性】
技术研发人员:蒋文斌金海祝简马阳刘博彭晶刘湃
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1