一种神经网络声学模型的分布式并行训练方法及系统技术方案

技术编号:14410149 阅读:239 留言:0更新日期:2017-01-11 20:36
本发明专利技术提供一种神经网络声学模型的分布式并行训练方法及系统,所述方法包含:步骤101)将各组训练数据分别输入一个客户端;步骤102)客户端接收输入的训练数据,并采用总线在客户端设置的若干个GPU和第一CPU之间传递参数,所述参数包含:模型权重和梯度;各个GPU基于输入的模型权重参数计算梯度,并将计算得到的梯度输入至第一CPU中;第一CPU利用GPU上传的梯度更新客户端中的模型副本,将更新后的权重参数回传给各个GPU,用于进行新的梯度计算,同时,第一CPU累积各GPU输入的梯度,根据累积结果更新参数服务器中的模型;步骤103)采用网络资源将各个客户端CPU累积得到的最新的梯度信息输入服务器,然后更新服务器中存储的神经网络声学模型。

【技术实现步骤摘要】

本专利技术属于语音识别领域,是一种利用多台计算机节点,并行训练神经网络以提高神经网络声学模型的训练速度的方法,具体涉及一种神经网络声学模型的分布式并行训练方法及系统
技术介绍
目前利用大数据量和深度神经网络(DeepNeuralNetwork,DNN)建立声学模型的方法已经在语音识别领域取得了突出的成果,使得最终的识别准确度提升了相对20%~30%。DNN是一种以连接权重和结点来模拟人脑中神经元工作的技术,可以视作一种分类器,DNN结构主要包括输入层,隐层和输出层,相邻层的结点之间有带权重的线连接,输出层的结点数量由目标类别数量所决定,数据从输入层进入网络,经由一系列的权重计算和非线性激活函数,最终到达输出层,得到该数据被分为每一类的概率值。在语音识别领域中,DNN的输入为语音特征,输出为音素状态。由于DNN具有很强的非线性表达能力,能够对输入的语音特征进行更好的转换表达,以用于输出层的分类,同时,数据量越大,DNN的层数越多,参数量越大,训练所得到的神经网络分类能力越好,最终的识别准确率越高,但是神经网络的训练采用误差反向传播(ErrorBackPropagation)和随机梯度下降(StochasticGradientDescent,SGD)的收敛方式,训练速度极慢。在当今的大数据时代,神经网络声学模型的训练通常需要数千甚至数万小时的语音数据,即使使用目前浮点计算能力最强的GPU(GraphicsProcessingUnit)进行辅助运算,仍需要数月时间完成一次模型的训练,这在研究和实际应用中都是不能接受的。因此针对神经网络训练周期过长的问题,对神经网络训练并行化问题的研究变得尤为重要。然而,由于分布式训练神经网络的过程中,参数传递频繁,对网络带宽的要求极高,因此目前大部分的神经网络并行训练系统采用一台机器,在其中插入多块GPU卡的方式来实现,但这种方式有其局限性,最多只能使用四块GPU卡,能够提供的加速效果有限。
技术实现思路
本专利技术的目的在于,为了克服上述问题,本专利技术提供一种神经网络声学模型的分布式并行训练方法。为了实现上述目的,本专利技术提供一种神经网络声学模型的分布式并行训练方法,所述方法包含:步骤101)将各组训练数据分别输入一个客户端;步骤102)客户端接收输入的训练数据,并采用总线在客户端设置的若干个GPU和第一CPU之间传递参数,所述参数包含:模型权重和梯度;各个GPU基于输入的模型权重参数计算梯度,并将计算得到的梯度输入至第一CPU中;第一CPU利用GPU上传的梯度更新客户端中的模型副本,将更新后的权重参数回传给各个GPU,用于进行新的梯度计算,同时,第一CPU累积各GPU输入的梯度,根据累积结果更新参数服务器中的模型;步骤103)采用网络资源将各个客户端CPU累积得到的最新的梯度信息输入服务器,然后更新服务器中存储的神经网络声学模型;其中,各个客户端按照固定的队列顺序依次循环上传计算得到的梯度至服务器;所述服务器还向各个客户端发送模型权重信息,该模型权重信息用于替换客户端中的模型副本,作为各GPU计算新梯度的依据。可选的,上述客户端上设置的GPU的数目为:K^=N·TcalcfrmM·Tcommfloat-Tcalcupd]]>其中,N为第一CPU每次计算的数据块的大小,为单帧数据的梯度计算时间,M为神经网络声学模型的大小,为单个浮点数在网络中的传递时间,为神经网络声学模型的更新时间。可选的,上述步骤102)进一步包含:步骤102-1)选定第一CPU每次计算的数据块的大小M;步骤102-2)将长度为M的选定的数据块再分割成更小的数据块,再将各个更小的数据块分发至一块GPU中;步骤102-3)GPU对输入的更小的数据块进行计算得到梯度,具体计算可以选用如下方法和公式:首先计算各层节点的误差,利用误差回传公式:其中,E为输出节点与答案标注之间的误差,y为各层节点的值,为后一层的误差,f(x)为激活函数,常用sigmoid函数:然后利用误差进行梯度计算:其中,为输入节点的值可选的,上述步骤103)之后还包含:对梯度加入冲量项进行平滑计算,且加入冲量项的神经网络模型的更新公式为:w(m+1)=w(m)+(1-α)▽w(m)+α▽w(m-1)其中,w为模型权重,▽w为梯度,α冲量项。可选的,根据客户端与服务器之间的网络带宽确定客户端的数量。此外,本专利技术还提供了一种神经网络声学模型的分布式并行训练系统,所述系统包含客户端和服务器;所述客户端用于计算梯度,并将计算的梯度发送至服务器进行神经网络的模型更新;所述客户端上设置若干个GPU,各GPU通过总线将梯度参数发送至第一CPU,且客户端的数目大于1,各个客户端按照固定的队列顺序依次循环上传计算得到的梯度至服务器;所述客户端与服务器通过网络资源相互通信,且客户端的数量根据网络带宽确定。进一步可选的,上述GPU卡进一步包含:输入端,用于接收第一CPU输出的模型权重值;处理模块,用于根据模型权重值计算梯度;输出端,用于将计算得到的梯度输入至第一CPU。可选的,上述第一CPU进一步包含:输入端,用于接收各GPU计算的梯度;更新模块,将接收的梯度加到模型副本中,更新模型副本;存储模块,存储一次迭代中各GPU上传的梯度,并对所有梯度进行累加,为参数服务器中的模型更新做准备;输出端,两个输出端口,端口一将更新后的模型副本输出至GPU,端口二将累积的梯度输出至参数服务器。可选的,上述服务器进一步包含:输入端,用于接收客户端上传的累积梯度;时序控制模块,控制各客户端上传梯度的次序,使得客户端依据固定的队列次序依次上传梯度;更新模块,将从客户端接收的累积梯度加到模型中,更新模型权重参数;输出端,将更新后的模型输出至相应客户端。与现有技术相比,本专利技术的优点在于:采用两级ASGD架构,第一级中的参数传输通过总线进行,速度极快,只有第二级传输涉及到网络传输,减少了神经网络分布式并行训练过程中参数通过网络传递的频率,有效的解决了网络带宽瓶颈对于并行化训练带来的阻碍问题,能够让我们可以同时利用多台机器多块GPU卡进行神经网络的训练,大大缩短了训练周期。同时两级的架构使得模型逐级更新,在第一级系统中minibatch相对较小,使得单机系统中模型每次更新的步长较小,防止了模型的发散,而且能够保证计算所得梯度的稳定性,保证模型最终收敛到一个较好的局部最优点。附图说明附图1是本专利技术所提出的神经网络分布式并行训练的总体架构图;附图2是本专利技术中神经网络训练的时间分布图;附图3为消息传递接口(MPI)传输速率与发送数据块大小的关系曲线。具体实施方式下面结合附图和优选实施例对本专利技术的方法进行详细说明。本专利技术的主要目的在于解决神经网络训练周期过长的难题,通过采用两级异步随机梯度下降(ASGD)的架构来降低分布式训练中模型参数在网络中的传递频率,从而解决由于网络带宽瓶颈而阻碍神经网络训练并行化拓展的问题,使得我们可以利用多台计算机,每台计算机利用多块GPU卡进行神经网络声学模型的分布式并行训练,大大缩短训练周期。具体描述如下:如图1所示,为两级异步随机梯度下降分布式系统架构图,第一级为单机ASGD系统,在单机系统中,一块GPU卡作本文档来自技高网
...
一种神经网络声学模型的分布式并行训练方法及系统

【技术保护点】
一种神经网络声学模型的分布式并行训练方法,所述方法包含:步骤101)将各组训练数据分别输入一个客户端;步骤102)客户端接收输入的训练数据,并采用总线在客户端设置的若干个GPU和第一CPU之间传递参数,所述参数包含:模型权重和梯度;各个GPU基于输入的模型权重参数计算梯度,并将计算得到的梯度输入至第一CPU中;第一CPU利用GPU上传的梯度更新客户端中的模型副本,将更新后的权重参数回传给各个GPU,用于进行新的梯度计算,同时,第一CPU累积各GPU输入的梯度,根据累积结果更新参数服务器中的模型;步骤103)采用网络资源将各个客户端CPU累积得到的最新的梯度信息输入服务器,然后更新服务器中存储的神经网络声学模型;其中,各个客户端按照固定的队列顺序依次循环上传计算得到的梯度至服务器;所述服务器还向各个客户端发送模型权重信息,该模型权重信息用于替换客户端中的模型副本,作为各GPU计算新梯度的依据。

【技术特征摘要】
1.一种神经网络声学模型的分布式并行训练方法,所述方法包含:步骤101)将各组训练数据分别输入一个客户端;步骤102)客户端接收输入的训练数据,并采用总线在客户端设置的若干个GPU和第一CPU之间传递参数,所述参数包含:模型权重和梯度;各个GPU基于输入的模型权重参数计算梯度,并将计算得到的梯度输入至第一CPU中;第一CPU利用GPU上传的梯度更新客户端中的模型副本,将更新后的权重参数回传给各个GPU,用于进行新的梯度计算,同时,第一CPU累积各GPU输入的梯度,根据累积结果更新参数服务器中的模型;步骤103)采用网络资源将各个客户端CPU累积得到的最新的梯度信息输入服务器,然后更新服务器中存储的神经网络声学模型;其中,各个客户端按照固定的队列顺序依次循环上传计算得到的梯度至服务器;所述服务器还向各个客户端发送模型权重信息,该模型权重信息用于替换客户端中的模型副本,作为各GPU计算新梯度的依据。2.根据权利要求1所述的神经网络声学模型的分布式并行训练方法,其特征在于,所述客户端上设置的GPU的数目为:K^=N·TcalcfrmM·Tcommfloat-Tcalcupd]]>其中,N为第一CPU每次计算的数据块的大小,为单帧数据的梯度计算时间,M为神经网络声学模型的大小,为单个浮点数在网络中的传递时间,为神经网络声学模型的更新时间。3.根据权利要求1所述的神经网络声学模型的分布式并行训练方法,其特征在于,所述步骤102)进一步包含:步骤102-1)选定第一CPU每次计算的数据块的大小M;步骤102-2)将长度为M的选定的数据块再分割成更小的数据块,再将各个更小的数据块分发至一块GPU中;步骤102-3)GPU基于模型权重参数对输入的更小的数据块进行计算得到梯度。4.根据权利要求1所述的神经网络声学模型的分布式并行训练方法,其特征在于,所述步骤103)之后还包含:对梯度加入冲量项进行平滑计...

【专利技术属性】
技术研发人员:那兴宇王智超潘接林颜永红
申请(专利权)人:中国科学院声学研究所北京中科信利技术有限公司
类型:发明
国别省市:北京;11

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

1