一种梯度传输方法及装置与流程

文档序号:19478293发布日期:2019-12-21 03:03阅读:127来源:国知局
一种梯度传输方法及装置与流程

本发明实施例涉及信息技术领域,尤其涉及一种梯度传输方法及装置。



背景技术:

目前,人工智能(artificialintelligence,ai)受到广泛关注,其核心技术在各个领域取得重大突破,ai的核心技术之一就是深度学习,深度学习是一种基于神经网络模型的机器学习技术。神经网络学习的过程,其实就是根据训练数据,来调整神经元之间的连接权重以及每个功能神经元的参数的过程。

但是现有技术中,在调整神经元之间的连接权重以及每个功能神经元的参数的过程中通常会存在网络传输空闲时间或者计算空闲时间,造成神经网络学习时间长,且效率不高。



技术实现要素:

本发明实施例提供一种梯度传输方法及装置,至少能够减少神经网络学习时间,并且提高神经网络学习的效率。

一方面,本发明实施例提供一种梯度传输方法,所述方法应用于语音识别系统,所述语音识别系统至少包括语音识别模型,所述语音识别模型包括多个语音识别子模型,多个语音识别子模型按照设定顺序分布,各语音识别子模型在初始化时具有相同的模型结构,每个语音识别子模型由m层节点构成,m层节点沿前向传播方向依次排列,m大于等于1,所述方法包括:

针对第一语音识别子模型在梯度信息的反向传播过程中,所述第一语音识别子模型的第n层节点获取所述第一语音识别子模型的第n层节点的传播信息并发送给第二语音识别子模型的第n层节点;所述第一语音识别子模型的第n层传播信息包括所述第一语音识别子模型的第n层节点的第一梯度信息和所述第一语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层的第一梯度信息;第n层节点的模型参数的数量和相邻i层节点的模型参数的数量之和小于等于第一预设阈值,其中n大于等于1,小于m,i为正整数,且n+i小于等于m;所述第一语音识别子模型以及所述第二语音识别子模型相邻分布;

所述第一语音识别子模型的第n层节点接收所述第二语音识别子模型发送的所述第二语音识别子模型的第n层节点的传播信息;所述第二语音识别子模型的第n层节点的传播信息包括所述第二语音识别子模型的第n层节点的第二梯度信息和所述第二语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层节点的第二梯度信息,所述第二语音识别子模型的第n层节点的传播信息用于确定所述第一语音识别子模型的第n层节点以及相邻i层节点中的每一层节点的第三梯度信息。

进一步地,所述第一语音识别子模型的第n层节点接收所述第二语音识别子模型发送的所述第二语音识别子模型的第n层节点的传播信息后,还包括:

所述第一语音识别子模型的第n层节点根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息确定所述第一语音识别子模型中各层节点的第三梯度信息,并将所述第一语音识别子模型的相邻i层节点的第三梯度信息沿所述前向传播方向依次发送给相邻i层节点中的每一层节点;或者

所述第一语音识别子模型的第n层节点根据所述第一语音识别子模型的第n层节点的传播信息中第n层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中第n层节点的第二梯度信息确定所述第一语音识别子模型的第n层节点的第三梯度信息,将所述第二语音识别子模型的第n层节点的传播信息中相邻i层节点的第二梯度沿所述前向传播方向依次发送给相邻i层节点中的每一层节点,所述相邻i层节点的第二梯度信息用于确定相邻i层节点中的每一层节点的第三梯度信息。

进一步地,所述第一语音识别子模型的第n层节点根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息确定所述第一语音识别子模型中各层节点的第三梯度信息,包括:

所述第一语音识别子模型的第n层节点根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息之间的平均值确定所述第一语音识别子模型中各层节点的第三梯度信息。

进一步地,所述第一语音识别子模型的第n层节点获取所述第一语音识别子模型的第n层节点的传播信息,包括:

所述第一语音识别子模型的第n层节点获取沿所述前向传播方向的第n-1层节点发送的所述第n-1层节点的传播信息,所述第n-1层节点的传播信息包括相邻i层节点中每层节点的第一梯度信息;

所述第一语音识别子模型的第n层节点根据所述第n-1层节点的传播信息中第n-1层节点的第一梯度信息确定所述第一语音识别子模型的第n层节点的第一梯度信息;

所述第一语音识别子模型的第n层节点将所述第一语音识别子模型的第n层节点的第一梯度信息以及所述第n-1层节点的传播信息作为所述第一语音识别子模型的第n层节点的传播信息。

进一步地,所述方法还包括:

若确定所述第一语音识别子模型中的第p层节点的模型参数的数量小于第二预设阈值,则在第p层节点中的每个子层节点确定每个子层节点的第一梯度信息后,将每个子层节点的第一梯度信息发送给所述第二语音识别子模型中的第q层节点对应的各子层节点,其中第q层节点包括多个子层节点。

进一步地,所述第一语音识别子模型的第n层节点获取所述第一语音识别子模型的第n层节点的传播信息并发送给第二语音识别子模型的第n层节点,包括:

所述第一语音识别子模型的第n层节点将所述第一语音识别子模型的第n层节点的传播信息进行数据压缩,压缩后的所述第一语音识别子模型的第n层节点的传播信息的数据量小于4字节;

所述第一语音识别子模型的第n层节点将压缩后的所述第一语音识别子模型的第n层节点的传播信息发送给所述第二语音识别子模型的第n层节点。

一方面,本发明实施例提供一种梯度传输装置,所述装置应用于语音识别系统,所述语音识别系统至少包括语音识别模型,所述语音识别模型包括多个语音识别子模型,多个语音识别子模型按照设定顺序分布,各语音识别子模型在初始化时具有相同的模型结构,每个语音识别子模型由m层节点构成,m层节点沿前向传播方向依次排列,m大于等于1,所述装置包括:

获取单元,用于针对第一语音识别子模型在梯度信息的反向传播过程中,获取所述第一语音识别子模型的第n层节点的传播信息并发送给第二语音识别子模型的第n层节点;所述第一语音识别子模型的第n层传播信息包括所述第一语音识别子模型的第n层节点的第一梯度信息和所述第一语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层的第一梯度信息;第n层节点的模型参数的数量和相邻i层节点的模型参数的数量之和小于等于第一预设阈值,其中n大于等于1,小于m,i为正整数,且n+i小于等于m;所述第一语音识别子模型以及所述第二语音识别子模型相邻分布;

接收单元,用于接收所述第二语音识别子模型发送的所述第二语音识别子模型的第n层节点的传播信息;所述第二语音识别子模型的第n层节点的传播信息包括所述第二语音识别子模型的第n层节点的第二梯度信息和所述第二语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层节点的第二梯度信息,所述第二语音识别子模型的第n层节点的传播信息用于确定所述第一语音识别子模型的第n层节点以及相邻i层节点中的每一层节点的第三梯度信息。

进一步地,所述装置还包括:

确定单元,用于根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息确定所述第一语音识别子模型中各层节点的第三梯度信息,并将所述第一语音识别子模型的相邻i层节点的第三梯度信息沿所述前向传播方向依次发送给相邻i层节点中的每一层节点;或者根据所述第一语音识别子模型的第n层节点的传播信息中第n层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中第n层节点的第二梯度信息确定所述第一语音识别子模型的第n层节点的第三梯度信息,将所述第二语音识别子模型的第n层节点的传播信息中相邻i层节点的第二梯度信息沿所述前向传播方向依次发送给相邻i层节点中的每一层节点,所述相邻i层节点的第二梯度信息用于确定相邻i层节点中的每一层节点的第三梯度信息。

进一步地,所述确定单元具体用于:

根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息之间的平均值确定所述第一语音识别子模型中各层节点的第三梯度信息。

进一步地,所述获取单元具体用于:

获取沿所述前向传播方向的第n-1层节点发送的所述第n-1层节点的传播信息,所述第n-1层节点的传播信息包括相邻i层节点中每层节点的第一梯度信息;

根据所述第n-1层节点的传播信息中第n-1层节点的第一梯度信息确定所述第一语音识别子模型的第n层节点的第一梯度信息;

将所述第一语音识别子模型的第n层节点的第一梯度信息以及所述第n-1层节点的传播信息作为所述第一语音识别子模型的第n层节点的传播信息。

进一步地,所述装置还包括:

拆分单元,用于若确定所述第一语音识别子模型中的第p层节点的模型参数的数量小于第二预设阈值,则在第p层节点中的每个子层节点确定每个子层节点的第一梯度信息后,将每个子层节点的第一梯度发送给所述第二语音识别子模型中的第q层节点对应的各子层节点,其中第q层节点包括多个子层节点。

进一步地,所述获取单元还用于:

将所述第一语音识别子模型的第n层节点的传播信息进行数据压缩,压缩后的所述第一语音识别子模型的第n层节点的传播信息的数据量小于4字节;

将压缩后的所述第一语音识别子模型的第n层节点的传播信息发送给所述第二语音识别子模型的第n层节点。

一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述梯度传输方法的步骤。

一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行所述梯度传输方法的步骤。

本发明实施例中,在两个相邻的语音识别子模型进行梯度传输时,如果是按照逐层进行梯度计算,然后再进行梯度传输,然后再传输到下一层的过程,会造成在每层节点进行梯度计算时,传输资源是空闲的,然后在进行传输时,其它层需要等某一层处理完成后才发送的结果,由于第n层节点的模型参数的数量和相邻i层节点的模型参数的数量之和小于等于第一预设阈值,所以本发明实施例是将第n层节点的第一梯度信息以及与第n层节点相邻的i层节点中各层的第一梯度信息传输给第二语音识别子模型的第n层节点,并接收第二语音识别子模型发送的所述第二语音识别子模型的第n层节点的传播信息,所述第二语音识别子模型的第n层节点的传播信息包括所述第二语音识别子模型的第n层节点的第二梯度信息和所述第二语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层节点的第二梯度信息,然后在确定第一语音识别子模型的第n层节点以及相邻i层节点中的每一层节点的第三梯度信息。通过这样的方式,在多层节点中的一个节点进行梯度计算时,不再直接进行梯度传递,而是开始下一层的梯度计算过程,将多层节点的梯度计算完成后,对于多层节点来说,多层节点需要进行梯度传递,针对其他相关层节点来说,其他相关层节点开始进行梯度计算,所以在本发明实施例中,可以通过聚合多层节点的梯度计算过程、梯度传递过程来时梯度计算资源以及梯度传递资源同时被占用,减少了各个资源之间的等待时间,提高了梯度传输过程的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种应用场景架构图;

图2为本发明实施例提供的一种语音识别子模型之间的交互示意图;

图3为本发明实施例提供的一种梯度传输方法的流程示意图;

图4为本发明实施例提供的一种聚合节点梯度计算以及传输的交互示意图;

图5为本发明实施例提供的一种拆分节点梯度计算以及传输的交互示意图;

图6为本发明实施例提供的两种位于不同局域网的不同语音识别子模型的交互示意图;

图7为本发明实施例提供的一种梯度传输方法的流程示意图;

图8为本发明实施例提供的一种梯度传输装置的结构示意图;

图9为本发明实施例提供的一种电子设备结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在具体实践过程中,本申请的申请人发现,现有技术中的梯度传输方法如图1所示,在图1中,示意性的给出了两个语音识别子模型进行梯度计算以梯度传输的过程,在图1中,语音识别子模型1与语音识别子模型2之间需要进行梯度传输,以语音识别子模型1作为执行主体,解释具体的梯度计算以及梯度传输的过程。

针对语音识别子模型1中的第1层节点,获取语音识别子模型1中的第2层节点的梯度结果,然后根据语音识别子模型1中的第2层节点的梯度结果确定语音识别子模型1中的第1层节点的梯度结果,然后将语音识别子模型1中的第1层节点的梯度结果发送给语音识别子模型2中的第1层节点,接收语音识别子模型2中的第1层节点发送的语音识别子模型2中的第1层节点梯度,然后根据语音识别子模型1中的第1层节点的梯度结果以及接收到的语音识别子模型2中的第1层节点发送的语音识别子模型2中的第1层节点梯度来更新语音识别子模型1中的第1层节点的梯度结果,然后在将未更新的语音识别子模型1中的第1层节点的梯度结果发送给语音识别子模型1中的第0层节点,而更新的语音识别子模型1的第1层节点的梯度结果是用于下次梯度计算的。

通过上述过程可知,在语音识别子模型1中的第1层节点进行梯度计算然后在进行梯度传输、梯度更新后,再开始进行语音识别子模型1中的第0层节点,导致在梯度计算过程中,梯度传输在等待,然后在梯度传输过程中,下一层节点的梯度计算过程在等待,所以会造成梯度传输过程耗时长,效率低。

基于上述原因,本申请的申请人构思了一种梯度传输方法,以图1为例进行说明,在语音识别子模型1中的第1层节点进行梯度计算后,将语音识别子模型1中的第1层节点的梯度计算结果发送给第0层节点,并且将语音识别子模型1中的第1层节点的梯度计算结果发送给语音识别子模型2中的第1层节点,所以第0层节点的梯度计算与梯度传输同时进行,减少了各个节点的等待,提高了梯度传输的效率。

进一步地,本申请的申请人发现,语音识别子模型中每层节点的模型参数不同,如果模型参数较小,每层节点分开做梯度计算以及梯度传输会造成额外的开销,所以在本发明实施例中,申请人构思了一种梯度传输方法,将模型参数量总和低于第一预设阈值的几层节点一起进行梯度计算,然后进行梯度传输,最后更新梯度。

具体的,在本发明实施例中,本发明实施例中的方法应用于语音识别系统,语音识别系统至少包括语音识别模型,语音识别模型包括多个语音识别子模型,多个语音识别子模型按照设定顺序分布,各语音识别子模型在初始化时具有相同的模型结构,每个语音识别子模型由m层节点构成,m层节点沿前向传播方向依次排列,m大于等于1。以图2为例进行说明,语音识别系统中包括语音识别模型,语音识别模型又是通过若干个语音识别子模型构成的,在图2中可以看出,各个语音识别子模型与相邻的语音识别子模型需要进行交互,然后完成梯度计算以及梯度个更新的过程。在本发明实施例中,每个语音识别子模型中包括m层节点,具体的节点示意参见图1。为了便于解释,在本发明实施例中,将第0层节点到第1层节点…..直到第m层节点的方向作为前向传播方向,同理,将第m层节点到第m-1层节点……直到第0层节点的方法作为反向传播方向。

为了进一步说明梯度传输方法,首先接收语音识别子模型的训练过程,在语音识别子模型训练过程中,首先在前向传播方向上根据输入的训练数据进行计算,在前向传播方向的最后一层节点输出结果,然后根据训练数据的真实结果以及输出的结果确定损失函数。然后根据损失函数,按照反向传播方向确定每层的梯度结果,然后再和相邻的语音识别子模型进行梯度交互,完成梯度更新,逐层完成梯度更新后,完成一次迭代过程。

在本发明实施例中,具体的梯度传输过程如图3所示,所述方法包括:

步骤s301,针对第一语音识别子模型在梯度信息的反向传播过程中,所述第一语音识别子模型的第n层节点获取所述第一语音识别子模型的第n层节点的传播信息并发送给第二语音识别子模型的第n层节点;所述第一语音识别子模型的第n层传播信息包括所述第一语音识别子模型的第n层节点的第一梯度信息和所述第一语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层的第一梯度信息;第n层节点的模型参数的数量和相邻i层节点的模型参数的数量之和小于等于第一预设阈值,其中n大于等于1,小于m,i为正整数,且n+i小于等于m;所述第一语音识别子模型以及所述第二语音识别子模型相邻分布。

具体的,在本发明实施例中,在各语音识别子模型完成了前向传播的过程后,根据前向传播的结果确定了损失函数,各语音识别子模型根据损失函数来计算梯度,并将计算的梯度传输给相邻的语音识别子模型,并通过相邻的语音识别子模型计算的梯度来更新语音识别子模型的梯度。

在本发明实施例中,由于第n层节点的模型参数的数量和相邻i层节点的模型参数的数量之和小于等于第一预设阈值,所以就将第n层节点与相邻i层节点的梯度计算完成后,再进行梯度结果的传输。

在本发明实施例中,如图4所示,在图4中,示意的给出了两个相邻的第语音识别子模型,分别为第一语音识别子模型以及第二语音识别子模型,第一语音识别子模型以及第二语音识别子模型都具有4层节点,按照前向传播方向分别为第0层节点、第1层节点、第2层节点以及第3层节点,在本发明实施例中,第2层节点与第1层节点的模型参数的数量之和小于预设阈值,则在第3层节点梯度计算并更新梯度后,第2层节点首先根据第3层节点的第一梯度信息来确定第2层节点的第一梯度信息,第3层节点的第一梯度信息指的是第3层节点根据损失函数确定的。

然后在确定第2层节点的第一梯度信息后,首先将第2层节点的第一梯度信息发送给第1层节点,然后第1层节点根据第2层节点的第一梯度信息确定第1层节点的第一梯度信息,然后第1层节点将第1层节点的第一梯度信息以及第2层节点的第一梯度信息发送给第二语音识别子模型的第1层节点。

步骤s302,所述第一语音识别子模型的第n层节点接收所述第二语音识别子模型发送的所述第二语音识别子模型的第n层节点的传播信息;所述第二语音识别子模型的第n层节点的传播信息包括所述第二语音识别子模型的第n层节点的第二梯度信息和所述第二语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层节点的第二梯度信息,所述第二语音识别子模型的第n层节点的传播信息用于确定所述第一语音识别子模型的第n层节点以及相邻i层节点中的每一层节点的第三梯度信息。

本发明实施例中,第一语音识别子模型与第二语音识别子模型是同步再进行前向传播过程以及反向传播的过程,由于第一语音识别子模型进行模型参数更新时需要与第二语音识别子模型之间进行交互,第二语音识别子模型进行模型参数更新时需要与第一语音识别子模型之间进行交互,所以在第一语音识别子模型的第n层节点将第n层节点的传播信息发送给第二语音识别子模型的第n层节点的同时,第二语音识别子模型的第n层节点也会将第n层节点的传播信息发送给第一语音识别子模型的第n层节点。

在本发明实施例中,第一语音识别子模型的第n层节点接收到第二语音识别子模型的第n层节点的传播信息后,也就是上文中的第二梯度信息,就可以确定第一语音识别模型的第n层节点以及相邻的i层节点的更新梯度信息,也就是上文中的第三梯度信息。

一种可选的实施例中,第一语音识别子模型的第n层节点根据第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息确定第一语音识别子模型中各层节点的第三梯度信息,并将第一语音识别子模型的相邻i层节点的第三梯度信息沿前向传播方向依次发送给相邻i层节点中的每一层节点。

另一种可选的实施例中,第一语音识别子模型的第n层节点根据第一语音识别子模型的第n层节点的传播信息中第n层节点的第一梯度信息以及第二语音识别子模型的第n层节点的传播信息中第n层节点的第二梯度信息确定第一语音识别子模型的第n层节点的第三梯度信息,将第二语音识别子模型的第n层节点的传播信息中相邻i层节点的第二梯度沿前向传播方向依次发送给相邻i层节点中的每一层节点,相邻i层节点的第二梯度信息用于确定相邻i层节点中的每一层节点的第三梯度信息。

也就是说,在本发明实施例中,第一语音识别子模型的第n层节点可以确定第n层节点以及相邻i层节点的第三梯度信息,也可以通过各层节点确定各层的第三梯度信息。

一种可选的实施例中,若存在语音识别子模型中的第p层节点的模型参数较多,针对该层节点的梯度计算和传输,可以是将p层节点划分为多个子层节点,可以在第p层节点中的每个子层节点确定每个子层节点的第一梯度信息后,将每个子层节点的第一梯度信息发送给第二语音识别子模型中的第q层节点对应的各子层节点。

示例性的,通过图5进行说明,在图5中,第一语音识别子模型的第1层节点的模型参数的数量为5,第二预设阈值为20,且第1层节点的5个模型参数对应5个子层节点,当每个子层节点根据第一语音识别子模型的第2层节点的第一梯度信息来确定该层对应的第一梯度信息后,就开始进行梯度传输,并接收第二语音识别子模型的第2层节点中对应的子节点的第二梯度信息,一种可选的实施例中,若第2层节点的各个模型参数是相互独立的关系,则各个子层节点可以根据各自的第一梯度信息以及接收到的第二梯度信息来确定各自的第三梯度信息,同时在计算梯度的过程中,可以将各层节点的第一梯度信息发送给第0层节点。

可选的,在本发明实施例中,第一语音识别子模型的第n层节点根据第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息之间的平均值确定第一语音识别子模型中各层节点的第三梯度信息。

另一种可选的实施例,在本发明实施例中,第一语音识别子模型的第n层节点根据第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息之间的加权平均值确定第一语音识别子模型中各层节点的第三梯度信息,其中第一语音识别子模型与第二语音识别子模型的权重是预设的。

在本发明实施例中,在第一语音识别子模型的第n层节点将第一语音识别子模型的第n层节点的传播信息进行数据压缩,压缩后的所述第一语音识别子模型的第n层节点的传播信息的数据量小于4字节。在本发明实施例中,由于现有技术中通过没有在梯度计算部分和梯度传输部分进行数据压缩,导致网络的资源占用较高,所以本发明实施例在确定传播信息后,首先将传播信息进行压缩,由于传播信息通常为4字节,所以在压缩后的传播信息小于4字节,压缩后的传播信息为3字节或者1字节。

在本发明实施例中,在梯度计算后进行压缩,在第二语音识别子模型接收到压缩后的传播信息后,然后进行解压缩,得到第一语音识别子模型的传播信息。

在本发明实施例中,如图6所示,多个语音识别子模型可以是分布在不同的处理器上的,例如图形处理器gpu或者处理器cpu上,在图6中,第一gpu用来进行训练语音识别子模型1以及语音识别子模型2,第二gpu用来训练语音识别子模型3以及语音识别子模型4,第一gpu与第二gpu位于同一个局域网中,第三gpu用来进行训练语音识别子模型5以及语音识别子模型6,第四gpu用来训练语音识别子模型7以及语音识别子模型8,第三gpu与第四gpu位于同一局域网。

为了提高不同网络之间的传输,在梯度计算和梯度更新过程中,各个语音识别子模型首先进行梯度计算,然后在梯度传输过程中,首先语音识别子模型1与语音识别子模型2进行梯度传输,并且语音识别子模型1与语音识别子模型2进行梯度更新,然后语音识别子模型2与语音识别子模型3进行梯度传输,并且语音识别子模型2与语音识别子模型3进行梯度更新,然后语音识别子模型3与语音识别子模型4进行梯度传输,并且语音识别子模型3与语音识别子模型4进行梯度更新,然后语音识别子模型1与语音识别子模型4进行梯度传输,并且语音识别子模型1与语音识别子模型4进行梯度更新。同时第二局域网的四个语音识别子模型也完成了梯度传输和梯度更新的过程,第一局域网的四个语音识别子模型将各自的梯度信息传输给第二局域网络的四个语音识别子模型,或者第一局域网的四个语音识别子模型中的一个或多个语音识别子模型的梯度信息传输给第二局域网络中的对应各个语音子模型,并且在传输过程中进行压缩。

为了更好的解释本申请实施例,下面结合一种具体的实施场景描述本申请实施例提供的一种梯度传输方法,如图7所示,在本发明实施例中,语音识别系统中包括语音识别模型,语音识别模型至少包括两个语音识别子模型,分别为模型1以及模型2,模型1位于第一局域网,模型2位于第二局域网,模型1按照前向传播方向排列了第0层节点、第1层节点、第2层节点以及第3层节点,模型2按照前向传播方向排列了第0层节点、第1层节点、第2层节点以及第3层节点,在本发明实施例中,模型1以及模型2都具有相同的模型结构。

在训练开始时,确定第1层节点以及第2层节点的模型参数和小于聚合预设阈值,第0层节点的模型层数大于拆分预设阈值,以一次训练为例进行说明,首先获取训练数据,然后模型1以及模型2按照前向传播方向,得到各自的损失函数,模型1的第3层节点根据损失函数确定了第3层节点的梯度信息,然后第3层节点将梯度信息发送给模型1的第2层节点。

模型1的第2层节点在接收到第3层的梯度信息后,开始确定第2层节点的梯度信息,然后第2层节点确定了第2层节点的梯度信息后,将第2层节点的梯度信息发送给第1层节点,第1层节点根据第2层节点的梯度信息确定第1层节点的梯度信息,并将第2层节点的梯度信息以及第1层节点的梯度信息发送给模型2的第1层节点,同时模型2已经完成了第1层节点的梯度信息计算以及第2层节点的梯度信息,也将模型2将模型2的第1层节点的梯度信息计算以及第2层节点的梯度信息发送给模型1的第1层节点。与此同时,模型1的第1层节点将第1层节点的梯度信息发送给第0层节点,第0层节点开始进行梯度计算。

模型1的第1层节点根据模型1的第1层节点的梯度信息与模型2发送的第1层节点的梯度信息的平均值作为新的模型1的第1层节点的梯度信息。同时第1层节点将模型2发送的第2层节点的梯度信息发送给模型1的第2层节点,模型1的第2层节点根据模型1的第2层节点的梯度信息与模型2发送的第2层节点的梯度信息的平均值作为新的梯度信息。

在模型1的第0层节点进行梯度信息计算时,第0层节点包括4个子层节点,各个子层节点根据第1层节点的梯度信息确定各自的梯度信息,并在确定了梯度信息后,将各自的梯度信息发送给模型2的第0层节点,并接收模型2的第0层节点的各子层节点后,进行各子层节点的梯度更新。

基于上述实施例,参阅图8所示,本发明实施例提供一种梯度传输装置800,所述装置应用于语音识别系统,所述语音识别系统至少包括语音识别模型,所述语音识别模型包括多个语音识别子模型,多个语音识别子模型按照设定顺序分布,各语音识别子模型在初始化时具有相同的模型结构,每个语音识别子模型由m层节点构成,m层节点沿前向传播方向依次排列,m大于等于1,所述装置包括:

获取单元801,用于针对第一语音识别子模型在梯度信息的反向传播过程中,获取所述第一语音识别子模型的第n层节点的传播信息并发送给第二语音识别子模型的第n层节点;所述第一语音识别子模型的第n层传播信息包括所述第一语音识别子模型的第n层节点的第一梯度信息和所述第一语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层的第一梯度信息;第n层节点的模型参数的数量和相邻i层节点的模型参数的数量之和小于等于第一预设阈值,其中n大于等于1,小于m,i为正整数,且n+i小于等于m;所述第一语音识别子模型以及所述第二语音识别子模型相邻分布;

接收单元802,用于接收所述第二语音识别子模型发送的所述第二语音识别子模型的第n层节点的传播信息;所述第二语音识别子模型的第n层节点的传播信息包括所述第二语音识别子模型的第n层节点的第二梯度信息和所述第二语音识别子模型中与第n层节点沿所述前向传播方向相邻的i层节点中各层节点的第二梯度信息,所述第二语音识别子模型的第n层节点的传播信息用于确定所述第一语音识别子模型的第n层节点以及相邻i层节点中的每一层节点的第三梯度信息。

进一步地,所述装置还包括:

确定单元803,用于根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度确定所述第一语音识别子模型中各层节点的第三梯度信息,并将所述第一语音识别子模型的相邻i层节点的第三梯度信息沿所述前向传播方向依次发送给相邻i层节点中的每一层节点;或者根据所述第一语音识别子模型的第n层节点的传播信息中第n层节点的第一梯度以及所述第二语音识别子模型的第n层节点的传播信息中第n层节点的第二梯度确定所述第一语音识别子模型的第n层节点的第三梯度信息,将所述第二语音识别子模型的第n层节点的传播信息中相邻i层节点的第二梯度沿所述前向传播方向依次发送给相邻i层节点中的每一层节点,所述相邻i层节点的第二梯度信息用于确定相邻i层节点中的每一层节点的第三梯度信息。

进一步地,所述确定单元803具体用于:

根据所述第一语音识别子模型的第n层节点的传播信息中各层节点的第一梯度信息以及所述第二语音识别子模型的第n层节点的传播信息中各层节点的第二梯度信息之间的平均值确定所述第一语音识别子模型中各层节点的第三梯度信息。

进一步地,所述获取单元801具体用于:

获取沿所述前向传播方向的第n-1层节点发送的所述第n-1层节点的传播信息,所述第n-1层节点的传播信息包括相邻i层节点中每层节点的第一梯度信息;

根据所述第n-1层节点的传播信息中第n-1层节点的第一梯度确定所述第一语音识别子模型的第n层节点的第一梯度信息;

将所述第一语音识别子模型的第n层节点的第一梯度信息以及所述第n-1层节点的传播信息作为所述第一语音识别子模型的第n层节点的传播信息。

进一步地,所述装置还包括:

拆分单元804,用于若确定所述第一语音识别子模型中的第p层节点的模型参数的数量小于第二预设阈值,则在第p层节点中的每个子层节点确定每个子层节点的第一梯度信息后,将每个子层节点的第一梯度信息发送给所述第二语音识别子模型中的第q层节点对应的各子层节点,其中第q层节点包括多个子层节点。

进一步地,所述获取单元801还用于:

将所述第一语音识别子模型的第n层节点的传播信息进行数据压缩,压缩后的所述第一语音识别子模型的第n层节点的传播信息的数据量小于4字节;

将压缩后的所述第一语音识别子模型的第n层节点的传播信息发送给所述第二语音识别子模型的第n层节点。

基于相同的技术构思,本申请实施例提供了一种计算机设备,如图9所示,包括至少一个处理器901,以及与至少一个处理器连接的存储器902,本申请实施例中不限定处理器901与存储器902之间的具体连接介质,图9中处理器901和存储器902之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,存储器902存储有可被至少一个处理器901执行的指令,至少一个处理器901通过执行存储器902存储的指令,可以执行前述的梯度传输方法中所包括的步骤。

其中,处理器901是计算机设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器902内的指令以及调用存储在存储器902内的数据,从而获得客户端地址。可选的,处理器901可包括一个或多个处理单元,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。在一些实施例中,处理器901和存储器902可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器901可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器902可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等等。存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于相同的技术构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行梯度传输方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1