一种深度学习模型的训练方法及装置制造方法及图纸

技术编号:24800736 阅读:22 留言:0更新日期:2020-07-07 21:14
本发明专利技术公开一种深度学习模型的训练方法及装置将模型的计算过程与参数更新过程解耦合,以层为单位更新参数,更细粒度地进行训练,在一次迭代过程中,模型中一层参数的梯度值计算完成后,不需要再等待模型中的所有层都结束后再同一更新参数,而是立即将该层的梯度值上传至参数服务器,参数服务器咋接收到所有节点上传的该层的梯度值后,更新该层参数,然后将该层更新后的参数下发至各节点,当模型中所有层的参数都更新完成后,本次迭代结束,开始下一次迭代,这样将一部分计算过程和通信过程并行起来,使计算可以同时进行,重叠计算与通信时间,从而达到了缩短通信时间的目的。

【技术实现步骤摘要】
一种深度学习模型的训练方法及装置
本专利技术属于数据处理
,具体涉及一种深度学习模型的训练方法及装置。
技术介绍
深度学习是业界逐渐成为主流的计算和机器学习实现方法,可被用于图像、语音、视频、机器翻译等多种场景。以机器翻译为例,基于神经网络的机器翻译的效果获得明显提升,近年来得到不断发展。目前在某些语种和场景下,译文质量甚至可以达到人工翻译的水平。但是,由于深度神经网络模型本身的训练过程一般又会涉及很大量的计算,因此往往需要较长的训练周期,例如,使用3000万的训练数据在单个图形处理器(GPU)上一般需要训练20天以上,才能得到一个初步可用的模型。因此,如何缩短模型训练的周期,快速支持各个业务场景是迫切需要解决的技术难题。对于此,业界有多种业己成熟的深度学习框架,为了提高训练效率,实用了分布式技术来进行模型训练,分布式训练方法包括数据并行和模型并行两种模式,模型并行难以保持各节点的负载均衡,且产生的通信开销较大,而数据并行可分为同步数据并行和异步数据并行,虽然同步数据并行可以保证模型一致收敛,但却存在着严重的通信瓶颈问题,本文档来自技高网...

【技术保护点】
1.一种深度学习模型的训练方法,其特征在于,所述方法包括以下步骤:/n步骤S1:参数服务器将训练样本集等分为与计算节点相同的多个训练样本子集,并初始化模型参数,将训练样本子集和模型参数发送至各计算节点,每个计算节点上均保存有一个模型副本;并设置最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔;/n步骤S2:判断当前训练轮次是否达到设置的最大训练轮次,若未达到,则进入下一步骤;否则结束训练;/n步骤S3:各计算节点查询本地训练样本子集中是否存在未训练的数据,若存在则进入下一步骤;否则本轮训练结束,将训练轮次加1转到步骤S2;/n步骤S4:各计算节点从本地训练样品子集中获取一批数...

【技术特征摘要】
1.一种深度学习模型的训练方法,其特征在于,所述方法包括以下步骤:
步骤S1:参数服务器将训练样本集等分为与计算节点相同的多个训练样本子集,并初始化模型参数,将训练样本子集和模型参数发送至各计算节点,每个计算节点上均保存有一个模型副本;并设置最大迭代轮次、每次训练的数量批次、学习率、量化区间数及参数平均间隔;
步骤S2:判断当前训练轮次是否达到设置的最大训练轮次,若未达到,则进入下一步骤;否则结束训练;
步骤S3:各计算节点查询本地训练样本子集中是否存在未训练的数据,若存在则进入下一步骤;否则本轮训练结束,将训练轮次加1转到步骤S2;
步骤S4:各计算节点从本地训练样品子集中获取一批数据,并采用随机梯度下降迭代算法对模型迭代训练,计算出当前层参数的梯度,将梯度进行量化、编码,然后计算量化误差并保存在本地;
步骤S5:各计算节点将量化后的梯度上传至参数服务器,参数服务器在接收到所有节点的梯度后,将量化梯度进行平均并重新编码,然后向各计算节点发送平均后量化梯度;
步骤S6:各计算节点根据接收到的平均量化梯度和量化误差更新本层的模型参数;
步骤S7:判断本轮当前的迭代次数是否达到参数平均间隔,若达到,则进入下一步骤,否则转到步骤S3;
步骤S8:各计算节点将本地模型参数发送到参数服务器,参数服务器将所有计算节点的参数平均,然后向各计算节点发送平均后的模型参数,并转到步骤S3。


2.根据权利要求1所述的一种深度学习模型的训练方法,其特征在于,在上述步骤S4中,所述梯度值进行量化、编码,然后计算量化误差的具体过程包括以下步骤为:
步骤S41:梯度值进行量化过程:假设模型的层数为M,在反向传播时,模型中第j层参数计算得到梯度向量g,对梯度向量中的每个梯度值进行量化,获得量化后的梯度向量其中,梯度向量g中任一梯度值g的量化过程为:



其中j∈{1,2,…,M-1},为梯度值g量化后的值,λ为梯度向量g中梯度值的最小值,即λ=min(g),d为选取的量化间隔,即max(g)为梯度向量中梯度值的最大值,s为可调整的正整数,表示为量化区间数,即将梯度向量g的值域范围等分为s个区间,则d表示每个量化区间的长度;Q为量化后的梯度值对应的编号,表示使用第Q个量化值近似替代原梯度值,是一个随机变量,其服从伯努利分布,定义为:



其中ι∈{1,2,…,s-1},梯度值g位于第ι个量化值与第ι+1个量化值之间,即第ι+1个量化区间内,p表示将梯度值g用第ι+1个量化值近似代替的概率;
在上述公式一中,梯度值g在量化后,可通过Q、d和λ三个值唯一表示,而对于梯度向量g中的所有梯度值来说,最小值λ和量化间隔d都是相同的,所有梯度值在量化后只是Q值不同,因此每个梯度值g经过量化后只用Q表示即可,对每个梯度值进行量化后,每个梯度值可表示为集合{0,1,…,s}中的一个取值;
步骤S42:对量化后的梯度值采用二进制编码,每个梯度值仅占用log2(s+1)比特的存储空间;:
步骤S43:计算量化误差:
各计算节点对梯度向量进行量化后产生的误差为:其中,i表示第i个计算节点,g表示原始梯度向量,表示量化后的梯度向量;具体地,在每次迭代过程中,各节点在计算完梯度向量并进行量化之后,根据上述公式计算误差,并将量化误差保存在本地。


3.根据权利要求2所述的一种深度学习模型的训练方法,其特征在于,在上述步骤S5中,参数服务器在接收到所有节点上传的模型当前层对应的梯度向量后,计算梯度值的平均值,平均后的梯度值为:其中,为各个节点量化梯度值对应的编号Q的平均值,N表示计算节点数量。<...

【专利技术属性】
技术研发人员:刘宇东
申请(专利权)人:华南师范大学
类型:发明
国别省市:广东;44

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

1