门控激活单元运算的并行执行制造技术

技术编号:24254999 阅读:49 留言:0更新日期:2020-05-23 01:29
提供了用于交织门控激活单元的矩阵运算的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。该方法中的一个包括:接收神经网络的门控激活单元的多个权重矩阵,该门控激活单元具有两个或更多个层,每一个层定义包括以下的运算:(i)层的权重矩阵和拼接的输入向量之间的矩阵运算,以及(ii)使用该矩阵运算的结果的非线性激活运算。多个权重矩阵的行通过将对应行的组分配给相应线程块被交织,每一个线程块是用于由并行处理设备的多个独立处理单元中的一个独立处理单元执行的计算单元。

Parallel execution of gating activation unit operation

【技术实现步骤摘要】
【国外来华专利技术】门控激活单元运算的并行执行
技术介绍
本说明书涉及在并行处理硬件上实现神经网络的技术。神经网络是使用一个或多个层的非线性计算单元来预测针对接收到的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一个层——即下一个隐藏层或输出层——的输入。网络的每一层根据相应的参数集的当前值从接收到的输入生成输出。对于当前时间步,循环神经网络生成由针对一个或多个先前的时间步生成的其他输出所通知的输出。一些循环神经网络使用门控激活单元。这种循环神经网络可以被称为门控循环神经网络。门控激活单元通过实现控制在先前的时间步中生成的信息有多少应记住且有多少应遗忘的功能来维持一种类型的记忆。普通的门控激活单元包括长短期记忆单元(LSTM单元)、门控循环单元(GRU)及其几种变体。通常,门控激活单元至少使用先前的隐藏状态和当前输入来更新当前隐藏状态。更新隐藏状态通常涉及一种或多种线性变换和一种或多种非线性激活。每个线性变换可以使用权重矩阵和偏置向量。因此,训练门控循环神经网络涉及学习用于每个门控激活单元的权重矩阵和偏置向量。图1示出了现有技术LSTM单元100。LSTM单元100既保持隐藏状态ht也保持细胞状态ct。LSTM单元100实现确定要遗忘多少先前的隐藏状态的遗忘门;确定要更新细胞状态的哪个值的输入门以及确定要输出哪个值的输出门。LSTM单元100的运算可以由以下等式定义,其中先前的隐藏状态ht-1对应于ht-1103,先前的细胞状态ct-1对应于ct-1105,并且当前输入xt对应于xt107。在这种背景下,“*”指的是逐点乘法,“+”指的是逐点加法,“σ”是sigmoid激活函数。符号“Wx[ht-1,xt]”指的是矩阵Wx与和xt拼接(concatenate)的ht-1向量的矩阵乘法。一些文献将每个矩阵Wx分为两个矩阵W和U,在这种情况下,W与ht-1相乘,U与xt相乘。LSTM单元100的运算由以下等式定义:ft=σ(Wf[ht-l,xt]+bf)(1)it=σ(Wi[ht-1,xt]+bi)(2)ot=σ(Wo[ht-l,xt]+bo)(3)c_bart=tanh(Wc[ht-l,xt]+bc)(4)ct=ft*ct-1+it*c_bart(5)ht=ot*tanh(ct)(6)遗忘门110对应于等式(1)并生成ft115;输入门120对应于等式(2)并生成it125;输出门130对应于等式(3)并生成ot135。tanh层140对应于等式(4)并生成候选的向量c_bart145用于添加到当前细胞状态。当前细胞状态ct155由等式(5)给出。最后的tanh层150根据等式(6)使用计算出的细胞状态ct155生成当前隐藏状态ht165。等式(1)、(2)、(3)和(4)中的每一个指定在用于对应层的相应权重矩阵Wn与当前输入向量xt和ht-1之间执行矩阵运算。然后将结果添加到对于该结果的相应的偏置向量bn。然后将这些计算的结果通过非线性激活函数σ和tanh馈入以生成时间步t的最终输出向量ht。图2示出了现有技术门控循环单元(GRU)200。GRU200和LSTM单元100之间的主要区别在于GRU200有效地将LSTM细胞状态和隐藏状态合并为仅隐藏状态。因此,GRU200接收先前的隐藏状态作为输入并且对于给定的输入xt仅输出当前隐藏状态。GRU200的运算通常由以下等式定义,其中先前的隐藏状态ht-1对应于ht-1203并且当前输入xt对应于xt207。zt=σ(Wz[ht-l,xt]+bz)(7)rt=σ(Wr[ht-1,xt]+br)(8)h_bart=tanh(Wh[rt*ht-l,xt]+bh)(9)ht=(1-zt)*ht-1+zt*h_bart(10)重置门210对应于等式(8)并生成rt215。更新门220对应于等式(7)并生成zt225。tanh层230对应于等式(9)并生成h_bart235。然后根据等式(10)计算最终隐藏状态ht265。可以看出,GRU200比LSTM单元100简单一些在于它实现了较少的门和激活函数。但是,与LSTM100一样,GRU200也使用了许多使用权重矩阵Wn和当前输入xt的矩阵运算,然后将相应的偏置向量bn添加到结果中。然后,这些计算的结果也通过相应的非线性激活函数σ或tanh馈入。门控激活单元的体系结构的某些方面使其有助于并行处理技术。特别地,用于LSTM单元的等式(1)至等式(4)的运算都不相互依赖,并且用于GRU的等式(7)至等式(9)的运算也不相互依赖。此外,由于这些运算涉及矩阵乘法和逐点加法,因此可以使用多个处理设备——例如图形处理单元(GPU)的流式多处理器(SM)——来计算矩阵运算的部分结果,然后部分结果可以结合。
技术实现思路
本说明书描述了在并行处理硬件上执行门控激活单元运算的技术。因此,一方面,特别是在并行处理设备上实现神经网络的方法,包括接收神经网络的门控激活单元的多个权重矩阵。门控激活单元可以具有两个或更多个层,每一个层定义包括以下的运算:(i)该层的权重矩阵和拼接的输入向量之间的矩阵运算,以及(ii)使用该矩阵运算的结果进行的非线性激活运算。矩阵运算通常包括矩阵乘法但是原则上也可以实现其他矩阵运算。该方法通过将所述多个权重矩阵的对应行的组分配给相应的线程块来交织多个权重矩阵的行。通常,每一个线程块包括用于由并行处理设备的多个独立处理单元中的一个独立处理单元执行的计算单元。如后面所述,这种方法可以提供包括消除执行线程块同步步骤的必要性的优点,该线程块同步步骤否则可能需要将结果集写入到下一个处理阶段可以从中访问该结果集的存储区域。还描述了使用以这种方式实现的神经网络处理数据的方法。处理可以包括:由每一个线程块接收输入向量;并由每一个线程块生成当前状态向量的相应部分。生成可以包括:使用分配给该线程块的多个权重矩阵的对应行的一个或多个组以及输入向量的拼接来执行多个部分矩阵运算。生成可以进一步包括使用多个部分矩阵运算的相应结果来执行多个非线性激活运算。可选地,可以至少部分地并行生成当前状态向量的多个部分。在一些实现中,交织行可以包括将来自多个权重矩阵的每个权重矩阵的至少一个行分配给每个线程块,和/或将相同数量的行分配给所有线程块。这可以促进可用的处理硬件的有效使用。例如,门控激活单元可以包括神经网络的门控循环单元或长短期记忆单元,或另一个循环神经网络单元。在一些实现中,层的运算可以包括层的矩阵运算的结果和层的偏置向量之间的偏置加法运算;这可以提高神经网络的性能。更特别地,这可以包括将偏置向量的部分指配给多个线程块中的每个线程块并将偏置向量的一部分加到矩阵运算的结果中。一些实现包括由包(wrap)交织多个权重矩阵的行使得所有包从每个权重矩阵接收一些行并且来自每个权重矩阵的对应行被分配给同一个包。一些实现可以附加地或替代地包括由线程交织本文档来自技高网
...

【技术保护点】
1.一种在并行处理设备上实现神经网络的方法,所述方法包括:/n接收所述神经网络的门控激活单元的多个权重矩阵,所述门控激活单元具有两个或更多个层,每一个层定义包括以下的运算:(i)该层的权重矩阵与拼接的输入向量之间的矩阵运算,以及(ii)使用所述矩阵运算的结果的非线性激活运算;以及/n通过将所述多个权重矩阵的对应行的组分配给相应的线程块来交织所述多个权重矩阵的行,每一个线程块是用于由并行处理设备的多个独立处理单元中的一个独立处理单元执行的计算单元。/n

【技术特征摘要】
【国外来华专利技术】1.一种在并行处理设备上实现神经网络的方法,所述方法包括:
接收所述神经网络的门控激活单元的多个权重矩阵,所述门控激活单元具有两个或更多个层,每一个层定义包括以下的运算:(i)该层的权重矩阵与拼接的输入向量之间的矩阵运算,以及(ii)使用所述矩阵运算的结果的非线性激活运算;以及
通过将所述多个权重矩阵的对应行的组分配给相应的线程块来交织所述多个权重矩阵的行,每一个线程块是用于由并行处理设备的多个独立处理单元中的一个独立处理单元执行的计算单元。


2.根据权利要求1所述的方法,进一步包括使用所述神经网络通过以下来处理数据:
由每一个线程块,接收输入向量;
由每一个线程块,生成当前状态向量的相应的部分,包括:
使用分配给该线程块的所述多个权重矩阵的对应行的一个或多个组以及所述输入向量的拼接来执行多个部分矩阵运算,以及
使用所述多个部分矩阵运算的相应的结果来执行多个非线性激活运算。


3.根据权利要求1或权利要求2所述的方法,其中,交织所述行包括:将来自所述多个权重矩阵中的每一个权重矩阵的至少一个行分配给每一个线程块。


4.根据权利要求1、权利要求2或权利要求3所述的方法,其中,交织所述行包括:将相同数量的行分配给所有线程块。


5.根据前述权利要求中的任一项所述的方法,其中,所述门控激活单元是所述神经网络的门控循环单元或长短期记忆单元。


6.根据前述权利要求中的任一项所述的方法,其中,由每一个线程块生成所述当前状态向量的部分包括:由多个线程块至少部分地并行生成所述当前状态向量的多个部分。


7.根据前述权利要求中的任一项所述的方法,其中,层的所述运算包括:所述层的矩阵运算的结果和所述层的偏置向量之间的偏置加法运算,并且进一步包括:
将所述偏置向量的部分指配...

【专利技术属性】
技术研发人员:埃里克·康拉德·埃尔森
申请(专利权)人:渊慧科技有限公司
类型:发明
国别省市:英国;GB

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

1