CN114358252A - 目标神经网络模型中的操作执行方法及装置、存储介质 - Google Patents

目标神经网络模型中的操作执行方法及装置、存储介质 Download PDF

Info

Publication number
CN114358252A
CN114358252A CN202111679495.1A CN202111679495A CN114358252A CN 114358252 A CN114358252 A CN 114358252A CN 202111679495 A CN202111679495 A CN 202111679495A CN 114358252 A CN114358252 A CN 114358252A
Authority
CN
China
Prior art keywords
target
matrix
weight
function
head attention
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111679495.1A
Other languages
English (en)
Inventor
黄萌
李合青
陈小彪
孙璆琛
刘峻豪
罗正宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202111679495.1A priority Critical patent/CN114358252A/zh
Publication of CN114358252A publication Critical patent/CN114358252A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种目标神经网络模型中的操作执行方法及装置、存储介质,其中,上述方法包括:在目标神经网络模型中的多头注意力层执行目标运算操作时,获取多头注意力层的输入参数,其中,输入参数包括多个待处理的特征矩阵,目标运算操作用于对输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在第一函数中的一组权重矩阵中存在允许合并的多个权重矩阵;在目标存储空间中读取第二函数中的目标权重矩阵,其中,第二函数是将第一函数中的多个权重矩阵合并之后得到的函数,目标权重矩阵是对多个权重矩阵进行合并操作得到的矩阵;在多头注意力层对多头注意力层的输入参数以及目标权重矩阵执行第二函数的运算操作,得到目标操作结果。

Description

目标神经网络模型中的操作执行方法及装置、存储介质
技术领域
本发明涉及通信领域,具体而言,涉及一种目标神经网络模型中的操作执行方法及装置、存储介质。
背景技术
Transformer是一个序列到序列的模型,它使用大量的自注意力机制提取序列之间的信息。此架构解决了传统循环神经网络难以并行化的缺点,可以处理长序列数据,避免了梯度消失和梯度爆炸等问题。并且,由于Transformer强大的特征表达能力,Transformer架构从自然语音处理领域迅速辐射到其他人工智能领域(如计算机视觉等),并且逐渐成为一种通用的解决方案。
但是,在使用了Transformer架构的目标神经网络模型中,具有庞大的矩阵运算量,例如在Transformer架构的多头注意力层中,存在多个权重矩阵需要与输入的特征矩阵进行计算,使得多头注意力层在计算的过程中,矩阵计算的次数非常多,且每次矩阵计算需要访问内存。进而,现有的多头注意力层在进行矩阵计算的过程中,计算效率较低。
针对相关技术,在目标神经网络模型的多头注意力层进行矩阵计算的过程中,计算效率较低的问题,目前尚未提出有效的解决方案。
因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。
发明内容
本发明实施例提供了一种目标神经网络模型中的操作执行方法及装置、存储介质,以至少解决在目标神经网络模型的多头注意力层进行矩阵计算的过程中,计算效率较低的问题。
根据本发明实施例的一方面,提供一种目标神经网络模型中的操作执行方法,包括:在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
根据本发明实施例的另一方面,还提供了一种目标神经网络模型中的操作执行装置,包括:获取模块,用于在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;读取模块,用于在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;运算模块,用于在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述目标神经网络模型中的操作执行方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述目标神经网络模型中的操作执行方法。
通过本发明,在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,并在目标存储空间中读取第二函数中的目标权重矩阵,进而在所述多头注意力层对输入参数以及目标权重矩阵执行第二函数的运算操作,得到目标操作结果。由于第二函数是将第一函数中的多个权重矩阵合并之后得到的函数,且所述目标权重矩阵是对第一函数中多个权重矩阵进行合并操作得到的矩阵,进而多头注意力层在获取输入参数以后,使用目标权重矩阵通过第二函数来进行计算比使用多个权重矩阵通过第一函数的计算效率要高。进而采用上述技术方案,解决了在目标神经网络模型的多头注意力层进行矩阵计算的过程中,计算效率较低的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的目标神经网络模型中的操作执行方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的目标神经网络模型中的操作执行方法的流程图;
图3是根据本发明实施例的多头注意力层的处理示意图(一);
图4是根据本发明实施例的多头注意力层的处理示意图(二);
图5是根据本发明实施例的多头注意力层的处理示意图(三);
图6是根据本发明实施例的目标神经网络模型中的操作执行装置的结构框图(一);
图7是根据本发明实施例的目标神经网络模型中的操作执行装置的结构框图(二)。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的目标神经网络模型中的操作执行方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的目标神经网络模型中的操作执行方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
为了解决上述问题,在本实施例中提供了一种目标神经网络模型中的操作执行方法,图2是根据本发明实施例的目标神经网络模型中的操作执行方法的流程图,该流程包括如下步骤:
步骤S202,在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;
需要说明的是,输入参数包括:查询矩阵Q,键矩阵K,值矩阵V。
步骤S204,在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;
需要说明的是,在多头注意力层中存在目标运算操作与目标权重矩阵的映射关系,具体的,在检测到需要执行目标运算操作的时候,并不执行目标运算操作,而是根据映射关系得到一个目标存储空间的目标地址,进而根据目标地址去目标存储空间中获取目标权重矩阵。需要说明的是,目标存储空间包括但不限于:内存、硬盘。本实施例的目标存储空间以内存为例。
步骤S206,在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
也就是说,在获取到目标权重矩阵以后,多头注意力层会对输入参数以及目标权重矩阵来执行第二函数的运算操作,而不是根据输入参数以及所述多个权重矩阵去执行第一函数的运算操作。
通过上述步骤,在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,并在目标存储空间中读取第二函数中的目标权重矩阵,进而在所述多头注意力层对输入参数以及目标权重矩阵执行第二函数的运算操作,得到目标操作结果。由于第二函数是将第一函数中的多个权重矩阵合并之后得到的函数,且所述目标权重矩阵是对第一函数中多个权重矩阵进行合并操作得到的矩阵,进而多头注意力层在获取输入参数以后,使用目标权重矩阵通过第二函数来进行计算比使用多个权重矩阵通过第一函数的计算效率要高。进而采用上述技术方案,解决了在目标神经网络模型的多头注意力层进行矩阵计算的过程中,计算效率较低的问题。
需要说明的是,上述目标神经网络模型包括但不限于:机器翻译神经网络模型,图像识别神经网络模型,分类神经网络模型等。
在一个示例性的实施例中,本申请实施例应用在图像识别神经网络模型的时候,可以提高图像识别神经网络模型中多头注意力层进行矩阵计算的计算效率,进而提高了图像识别的识别效率。
为了更好的理解,在一个示例性的实施例中,获取所述多头注意力层的输入参数之前,需要获取所述预先确定取值的一组权重矩阵;将所述一组权重矩阵中允许合并的所述多个权重矩阵进行合并,得到所述目标权重矩阵;将所述目标权重矩阵存储在所述目标存储空间中。
需要说明的是,上述一组权重矩阵是多头注意力层在进行网络训练过程中确定的。在网络训练完以后,多头注意力层会将一组权重矩阵中允许合并的多个权重矩阵进行合并,进而得到目标权重矩阵。
具体的,在一个可选的实施例中,上述将一组权重矩阵中允许合并的所述多个权重矩阵进行合并,得到所述目标权重矩阵,可以通过以下方式实现:通过以下合并操作,得到所述目标权重矩阵:
Figure BDA0003453580080000071
Wre_proj=Wv·Wproj,其中,所述目标权重矩阵包括Watten和Wre_proj,所述输入参数中的所述多个待处理的特征矩阵包括查询矩阵、键矩阵和值矩阵,所述一组权重矩阵包括与所述查询矩阵对应的第一权重矩阵Wq、与所述键矩阵对应的第二权重矩阵Wk、与所述值矩阵对应的第三权重矩阵Wv、以及第四权重矩阵Wproj,Wq和Wk是允许合并的权重矩阵,Wv和Wproj是允许合并的权重矩阵。需要说明的是,上述scale是预设值。
需要说明的是,在一个示例性的实施例中,在执行所述合并操作之前,还需要按照如下操作对Wq
Figure BDA0003453580080000072
的维度进行调整:将
Figure BDA0003453580080000073
调整为
Figure BDA0003453580080000074
并将
Figure BDA0003453580080000075
Figure BDA0003453580080000076
调整为
Figure BDA0003453580080000077
按照如下操作对Wv、Wproj和Wre_proj的维度进行调整:将
Figure BDA0003453580080000078
调整为
Figure BDA0003453580080000081
Figure BDA0003453580080000082
调整为
Figure BDA0003453580080000083
Figure BDA0003453580080000084
Figure BDA0003453580080000085
调整为
Figure BDA0003453580080000086
其中,dmodel表示模型输入向量进行特征嵌入之后的特征向量维度,dk表示键向量进行多头注意力映射之后的特征向量维度,nheads表示多头注意力中注意力头的个数,dv表示值向量进行多头注意力映射之后的特征向量维度。
在一个示例性的实施例中,在多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果,可以通过以下方式实现:通过执行以下所述第二函数的运算操作,得到所述目标操作结果:Y=((Query·Watten·KeyT)·Value)·Wre_proj,其中,Y表示所述目标操作结果,所述输入参数中的所述多个待处理的特征矩阵包括查询矩阵、键矩阵和值矩阵,Query表示所述查询矩阵,Key表示所述键矩阵,Value表示所述值矩阵,所述目标权重矩阵包括Watten和Wre_proj其中,
Figure BDA0003453580080000087
Wre_proj=Wv·Wproj,所述一组权重矩阵包括与所述查询矩阵对应的第一权重矩阵Wq、与所述键矩阵对应的第二权重矩阵Wk、与所述值矩阵对应的第三权重矩阵Wv、以及第四权重矩阵Wproj,Wq和Wk是允许合并的权重矩阵,Wv和Wproj是允许合并的权重矩阵;其中,所述第一函数为如下函数:
Figure BDA0003453580080000088
其中,scale是预设值。
也就是说,在多头注意力层获取输入参数以前,将需要进行第一函数计算的一组权重矩阵Wq,Wk,Wv,Wproj先从内存中读取出来,并将其中允许合并的权重矩阵进行合并操作,具体的,将Wq,Wk进行合并操作,得到目标权重矩阵Watten,将Wv,Wproj进行合并操作,得到目标权重矩阵Wre_proj,进而将合并后的目标权重矩阵保存至内存中,使得在多头注意力层获取到输入参数以后,直接从内存中获取目标权重矩阵进行第二函数的计算,而不是从内存中读取一组权重矩阵进行第一函数的计算,减少从内存中读取数据的次数,提高了多头注意力层的计算效率。同时,上述方法也减少了所需的存储空间。
为了更好的理解,以下进行具体说明,图3是根据本发明实施例的多头注意力层的处理示意图(一),在现有技术中,多头注意力层在获取到输入:参数查询矩阵Query、键矩阵Key、值矩阵Value以后,会进行第一函数的计算,具体的,会执行以下步骤:
步骤S1:从内存中获取查询矩阵Query对应的权重矩阵Wq,并将查询矩阵Query与权重矩阵Wq的运算结果1保存至内存中;
步骤S2:从内存中获取键矩阵Key对应的权重矩阵Wk,并将键矩阵矩阵Key与权重矩阵Wk的运算结果2保存至内存中;
步骤S3:从内存中获取值矩阵Value对应的权重矩阵Wv,并将值矩阵Value与权重矩阵Wv的运算结果3保存至内存中;
步骤S4:从内存中获取运算结果1与运算结果2,并进行运算处理,进而将得到的运算结果4保存至内存中;
步骤S5:从内存中获取运算结果3与运算结果4,并进行运算处理,进而将得到的运算结果5保存至内存中;
步骤S6:从内存中获取运算结果5与权重矩阵Wproj,并进行运算处理,进而将得到的最终计算结果保存至内存中。
可见,上述步骤S1-S6会执行7次读取数据操作,6次存放数据操作以及6次运算操作。
图4是根据本发明实施例的多头注意力层的处理示意图(二),如果在获取输入参数以前,将一组权重矩阵中允许合并的权重矩阵进行合并操作,将合并后的目标权重矩阵存放在内存中,进而在多头注意力层获取到输入参数以后,如图4所示,使用从内存中读取目标权重矩阵,进而通过目标权重矩阵和输入参数来执行第二函数的计算,则会大大计算效率,具体的,多头注意力层会执行以下操作:
步骤S1:从内存中获取目标权重矩阵Watten,并将查询矩阵Query,键矩阵Key与目标权重矩阵Watten的运算结果1保存至内存中;
步骤S2:从内存中获取运算结果1,并将运算结果1与值矩阵Value的运算结果2保存至内存中;
步骤S3:从内存中运算结果2与目标权重矩阵Wre_proj,并进行运算处理,进而将得到的最终计算结果保存至内存中。
可见,上述步骤S1-S3会执行4次读取数据操作,3次存放数据操作以及3次运算操作。
由于上述过程只是多头注意力层的一次计算,进而对于多头注意力层在执行多次上述过程而言,通过使用目标权重矩阵和第二函数来进行计算,可以大大提高计算效率。
在一个示例性的实施例中,当目标神经网络模型为图像识别神经网络模型时,则在获取所述多头注意力层的输入参数之前,还需要获取待进行图像识别的原始对象信息;获取所述原始对象信息的一个或多个维度的特征;根据所述一个或多个维度的特征,确定所述多个待处理的特征矩阵。
进一步地,在一个示例性的实施例中,在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果之后,还需要根据所述目标操作结果,确定对所述原始对象信息进行图像识别得到的目标对象信息。
也就是说,采用上述技术方案,提高了在图像识别神经网络模型在进行图像识别的过程中的识别效率,减少了图像识别的时长。
在一个示例性的实施例中,上述获取待进行图像识别的原始对象信息,包括:获取待确定目标对象的原始图像。需要说明的是,目标对象包括但不限于:人、动物、物体等。
在一个示例性的实施例中,上述根据目标操作结果,确定对所述原始对象信息进行图像识别得到的目标对象信息,包括:根据所述目标操作结果,确定所述原始图像的目标对象信息。
进一步地,在一个示例性的实施例中,当目标神经网络模型为机器翻译神经网络模型时,则在获取所述多头注意力层的输入参数之前,还需要获取待进行机器翻译的原始对象信息;获取所述原始对象信息的一个或多个维度的特征;根据所述一个或多个维度的特征,确定所述多个待处理的特征矩阵。
进一步地,在一个示例性的实施例中,在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果之后,还需要根据所述目标操作结果,确定对所述原始对象信息进行机器翻译得到的目标对象信息。
也就是说,采用上述技术方案,提高了在机器翻译神经网络模型在进行机器翻译的过程中,机器翻译的翻译效率,减少了机器翻译的时长。
在一个示例性的实施例中,上述获取待进行机器翻译的原始对象信息,包括:获取待确定语义的原始语句。
在一个示例性的实施例中,上述根据目标操作结果,确定对所述原始对象信息进行机器翻译得到的目标对象信息,包括:根据所述目标操作结果,确定所述原始语句的语义信息。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述目标神经网络模型中的操作执行方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
在一个可选的实施例中,Transformer架构中的多头注意力层的实现主要是通过对查询矩阵(Query)、键矩阵(Key)和值矩阵(Value)进行线性映射再点积求解的过程。经典的Transformer多头注意力求解过程中包含了大量的矩阵乘法运算和线性变换导致计算开销很大。其算法原理如下:
公式一:
Figure BDA0003453580080000121
其中,Q为多头映射的查询矩阵Q=(Query·Wq)。K为多头映射的键矩阵K=(Key·Wk)。V为多头映射的值矩阵V=(Value·Wv)。
针对Transformer模型的这个特征,本申请提出了一种基于算子融合的能显著提高transformer网络推理时效率的方法。利用矩阵乘法的结合律,简单高效的将复杂多头映射—反映射权重在多头注意力层获取输入参数以前,提前融合成两个权重矩阵。
首先,将上述多头注意力的公式一展开如下:
公式二:
Figure BDA0003453580080000122
其中,Wq
Figure BDA0003453580080000123
Wv和Wproj是网络训练好的权重矩阵,在推理的过程中是不变的。因此可以提前将其结合减少网络推理时的运算量。经过算子融合的多头注意力层如下:
公式三:((Query·Watten·KeyT)·Value)·Wre_proj
其中,
Figure BDA0003453580080000124
Wre_proj=Wv·Wproj。该方法可以显著降低多头注意力推理过程的乘法运算次数,加速多头注意力运算。
由于原过程中,(Query·Wq)线性映射后需要进行维度变化拆分出head维度
Figure BDA0003453580080000125
Figure BDA0003453580080000126
同样的
Figure BDA0003453580080000127
和(Value·Wv)也需要进行同样的维度变化,造成推理过程中的资源消耗。在本申请中,类似的维度变化直接可以在推理前求解Watten和Wre_proj时进行。在求解Watten过程中,
Figure BDA0003453580080000128
先对Wq
Figure BDA0003453580080000129
进行维度变化使得
Figure BDA00034535800800001210
所以
Figure BDA00034535800800001211
Figure BDA00034535800800001212
在求解Wre_proj的过程中,
Figure BDA00034535800800001213
Figure BDA0003453580080000131
但是还需对Wre_proj进行一次维度变化使得Wre_proj可以起到融合多头的作用:
Figure BDA0003453580080000132
至此可以在推理阶段之前将维度变化操作融入矩阵乘法运算中,减少了计算过程中维度变化带来的计算资源浪费。
另外,((Query·Watten·KeyT)·Value)操作对比
Figure BDA0003453580080000133
将带来内存方面的优化空间。相较于过去的方式,推理时必须首先分别计算(Query·Wq)和
Figure BDA0003453580080000134
再求得
Figure BDA0003453580080000135
和(Value·Wv),最后相乘得到结果。这个计算过程是不连续的,数据需要不断的in-out缓存,访存的效率不高。而改进之后的过程,矩阵乘法是连续的,且由于矩阵乘法的并行性,可以对访存进行优化。图5是根据本发明实施例的多头注意力层的处理示意图(三),如图5在计算过程中,分配一块blocksize×max(lenk,dmodel)的高速内存,将运算结果保存在此内存中达到减少内存IO耗时的目的。
具体的,在一个示例性的实施例中,取查询矩阵Query维度为[1,300,700],键矩阵Key维度为[1,600,700],值矩阵Value维度为[1,600,700],注意力头个数n_head=12,查询矩阵和键矩阵的线性映射长度为400,值矩阵的线性映射长度为500。则传统transformer的推理速度与基于算子融合Transformer的推理速度对比如下表所示:
传统 算子融合
推理速度 0.1450 0.0720
可见本申请对降低Transformer网络多头注意力层推理速度有显著效果。
即本申请在多头注意力层进行实际推理前将权重矩阵进行融合,降低了多头注意力层在进行推理的过程中的运算次数,提高了运算效率。相对于其他解决方案,该方法减少权重矩阵维度,从而降低了推理模型所需的存储空间。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种目标神经网络模型中的操作执行装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的目标神经网络模型中的操作执行装置的结构框图(一),该装置包括:
获取模块62,用于在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;
读取模块64,用于在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;
运算模块66,用于在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
通过上述装置,在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,并在目标存储空间中读取第二函数中的目标权重矩阵,进而在所述多头注意力层对输入参数以及目标权重矩阵执行第二函数的运算操作,得到目标操作结果。由于第二函数是将第一函数中的多个权重矩阵合并之后得到的函数,且所述目标权重矩阵是对第一函数中多个权重矩阵进行合并操作得到的矩阵,进而多头注意力层在获取输入参数以后,使用目标权重矩阵通过第二函数来进行计算比使用多个权重矩阵通过第一函数的计算效率要高。进而采用上述技术方案,解决了在目标神经网络模型的多头注意力层进行矩阵计算的过程中,计算效率较低的问题。
图7是根据本发明实施例的目标神经网络模型中的操作执行装置的结构框图(二),该装置包括:处理模块68。
在一个示例性的实施例中,处理模块68用于获取所述预先确定取值的一组权重矩阵;将所述一组权重矩阵中允许合并的所述多个权重矩阵进行合并,得到所述目标权重矩阵;将所述目标权重矩阵存储在所述目标存储空间中。
在一个示例性的实施例中,处理模块68还用于通过以下合并操作,得到所述目标权重矩阵:
Figure BDA0003453580080000151
Wre_proj=Wv·Wproj,其中,所述目标权重矩阵包括Watten和Wre_proj,所述输入参数中的所述多个待处理的特征矩阵包括查询矩阵、键矩阵和值矩阵,所述一组权重矩阵包括与所述查询矩阵对应的第一权重矩阵Wq、与所述键矩阵对应的第二权重矩阵Wk、与所述值矩阵对应的第三权重矩阵Wv、以及第四权重矩阵Wproj,Wq和Wk是允许合并的权重矩阵,Wv和Wproj是允许合并的权重矩阵。
在一个示例性的实施例中,处理模块68还用于按照如下操作对Wq
Figure BDA0003453580080000161
的维度进行调整:将
Figure BDA0003453580080000162
调整为
Figure BDA0003453580080000163
并将
Figure BDA0003453580080000164
调整为
Figure BDA0003453580080000165
Figure BDA0003453580080000166
按照如下操作对Wv、Wproj和Wre_proj的维度进行调整:将
Figure BDA0003453580080000167
调整为
Figure BDA0003453580080000168
Figure BDA0003453580080000169
Figure BDA00034535800800001610
调整为
Figure BDA00034535800800001611
Figure BDA00034535800800001612
Figure BDA00034535800800001613
调整为
Figure BDA00034535800800001614
其中,dmodel表示模型输入向量进行特征嵌入之后的特征向量维度,dk表示键向量进行多头注意力映射之后的特征向量维度,nheads表示多头注意力中注意力头的个数,dv表示值向量进行多头注意力映射之后的特征向量维度。
在一个示例性的实施例中,运算模块66还用于通过执行以下所述第二函数的运算操作,得到所述目标操作结果:
Figure BDA00034535800800001615
Figure BDA00034535800800001616
其中,Y表示所述目标操作结果,所述输入参数中的所述多个待处理的特征矩阵包括查询矩阵、键矩阵和值矩阵,Query表示所述查询矩阵,Key表示所述键矩阵,Value表示所述值矩阵,所述目标权重矩阵包括Watten和Wre_proj;其中,
Figure BDA00034535800800001617
Wre_proj=Wv·Wproj,所述一组权重矩阵包括与所述查询矩阵对应的第一权重矩阵Wq、与所述键矩阵对应的第二权重矩阵Wk、与所述值矩阵对应的第三权重矩阵Wv、以及第四权重矩阵Wproj,Wq和Wk是允许合并的权重矩阵,Wv和Wproj是允许合并的权重矩阵;其中,所述第一函数为如下函数:
Figure BDA0003453580080000171
其中,scale是预设值。
在一个示例性的实施例中,处理模块68还用于在获取所述多头注意力层的输入参数之前,所述方法还包括:获取待进行图像识别的原始对象信息;获取所述原始对象信息的一个或多个维度的特征;根据所述一个或多个维度的特征,确定所述多个待处理的特征矩阵;在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果之后,所述方法还包括:根据所述目标操作结果,确定对所述原始对象信息进行图像识别得到的目标对象信息。
在一个示例性的实施例中,处理模块68还用于所述获取待进行图像识别的原始对象信息,包括:获取待确定目标对象的原始图像;所述根据所述目标操作结果,确定对所述原始对象信息进行图像识别得到的目标对象信息,包括:根据所述目标操作结果,确定所述原始图像的目标对象信息。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;
S2,在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;
S3,在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;
S2,在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;
S3,在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种目标神经网络模型中的操作执行方法,其特征在于,包括:
在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;
在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;
在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
2.根据权利要求1所述的方法,其特征在于,在所述获取所述多头注意力层的输入参数之前,所述方法还包括:
获取所述预先确定取值的一组权重矩阵;
将所述一组权重矩阵中允许合并的所述多个权重矩阵进行合并,得到所述目标权重矩阵;
将所述目标权重矩阵存储在所述目标存储空间中。
3.根据权利要求2所述的方法,其特征在于,所述将所述一组权重矩阵中允许合并的所述多个权重矩阵进行合并,得到所述目标权重矩阵,包括:
通过以下合并操作,得到所述目标权重矩阵:
Figure FDA0003453580070000011
Wre_proj=Wv·Wproj
其中,所述目标权重矩阵包括Watten和Wre_proj,所述输入参数中的所述多个待处理的特征矩阵包括查询矩阵、键矩阵和值矩阵,所述一组权重矩阵包括与所述查询矩阵对应的第一权重矩阵Wq、与所述键矩阵对应的第二权重矩阵Wk、与所述值矩阵对应的第三权重矩阵Wv、以及第四权重矩阵Wproj,Wq和Wk是允许合并的权重矩阵,Wv和Wproj是允许合并的权重矩阵。
4.根据权利要求3所述的方法,其特征在于,在执行所述合并操作之前,所述方法还包括:
按照如下操作对Wq
Figure FDA0003453580070000021
的维度进行调整:
Figure FDA0003453580070000022
调整为
Figure FDA0003453580070000023
并将
Figure FDA0003453580070000024
调整为
Figure FDA0003453580070000025
其中,dmodel表示模型输入向量进行特征嵌入之后的特征向量维度,dk表示键向量进行多头注意力映射之后的特征向量维度,nheads表示多头注意力中注意力头的个数;
按照如下操作对Wv、Wproj和Wre_proj的维度进行调整:
Figure FDA0003453580070000026
调整为
Figure FDA0003453580070000027
Figure FDA0003453580070000028
调整为
Figure FDA0003453580070000029
Figure FDA00034535800700000210
调整为
Figure FDA00034535800700000211
其中,dv表示值向量进行多头注意力映射之后的特征向量维度。
5.根据权利要求1所述的方法,其特征在于,所述在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果,包括:
通过执行以下所述第二函数的运算操作,得到所述目标操作结果:
Y=((Query·Watten·KeyT)·Value)·Wre_proj
其中,Y表示所述目标操作结果,所述输入参数中的所述多个待处理的特征矩阵包括查询矩阵、键矩阵和值矩阵,Query表示所述查询矩阵,Key表示所述键矩阵,Value表示所述值矩阵,所述目标权重矩阵包括Watten和Wre_proj
其中,
Figure FDA0003453580070000031
Wre_proj=Wv·Wproj,所述一组权重矩阵包括与所述查询矩阵对应的第一权重矩阵Wq、与所述键矩阵对应的第二权重矩阵Wk、与所述值矩阵对应的第三权重矩阵Wv、以及第四权重矩阵Wproj,Wq和Wk是允许合并的权重矩阵,Wv和Wproj是允许合并的权重矩阵;
其中,所述第一函数为如下函数:
Figure FDA0003453580070000032
其中,scale是预设值。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
在获取所述多头注意力层的输入参数之前,所述方法还包括:获取待进行图像识别的原始对象信息;获取所述原始对象信息的一个或多个维度的特征;根据所述一个或多个维度的特征,确定所述多个待处理的特征矩阵;
在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果之后,所述方法还包括:根据所述目标操作结果,确定对所述原始对象信息进行图像识别得到的目标对象信息。
7.根据权利要求6所述的方法,其特征在于,
所述获取待进行图像识别的原始对象信息,包括:获取待确定目标对象的原始图像;
所述根据所述目标操作结果,确定对所述原始对象信息进行图像识别得到的目标对象信息,包括:根据所述目标操作结果,确定所述原始图像的目标对象信息。
8.一种目标神经网络模型中的操作执行装置,其特征在于,包括:
获取模块,用于在目标神经网络模型中的多头注意力层执行目标运算操作时,获取所述多头注意力层的输入参数,其中,所述多头注意力层的输入参数包括多个待处理的特征矩阵,所述目标运算操作用于对所述多头注意力层的输入参数与预先确定取值的一组权重矩阵进行第一函数的运算操作,在所述第一函数中的所述一组权重矩阵中存在允许合并的多个权重矩阵;
读取模块,用于在目标存储空间中读取第二函数中的目标权重矩阵,其中,所述第二函数是将所述第一函数中的多个权重矩阵合并之后得到的函数,所述目标权重矩阵是对所述多个权重矩阵进行合并操作得到的矩阵;
运算模块,用于在所述多头注意力层对所述多头注意力层的输入参数以及所述目标权重矩阵执行所述第二函数的运算操作,得到目标操作结果。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN202111679495.1A 2021-12-31 2021-12-31 目标神经网络模型中的操作执行方法及装置、存储介质 Pending CN114358252A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111679495.1A CN114358252A (zh) 2021-12-31 2021-12-31 目标神经网络模型中的操作执行方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111679495.1A CN114358252A (zh) 2021-12-31 2021-12-31 目标神经网络模型中的操作执行方法及装置、存储介质

Publications (1)

Publication Number Publication Date
CN114358252A true CN114358252A (zh) 2022-04-15

Family

ID=81105191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111679495.1A Pending CN114358252A (zh) 2021-12-31 2021-12-31 目标神经网络模型中的操作执行方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN114358252A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661707A (zh) * 2023-07-28 2023-08-29 北京算能科技有限公司 数据处理方法、装置及电子设备
CN117908994A (zh) * 2024-03-20 2024-04-19 腾讯科技(深圳)有限公司 媒体信息的处理方法、装置、设备及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661707A (zh) * 2023-07-28 2023-08-29 北京算能科技有限公司 数据处理方法、装置及电子设备
CN116661707B (zh) * 2023-07-28 2023-10-31 北京算能科技有限公司 数据处理方法、装置及电子设备
CN117908994A (zh) * 2024-03-20 2024-04-19 腾讯科技(深圳)有限公司 媒体信息的处理方法、装置、设备及可读存储介质
CN117908994B (zh) * 2024-03-20 2024-06-11 腾讯科技(深圳)有限公司 媒体信息的处理方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN108416327B (zh) 一种目标检测方法、装置、计算机设备及可读存储介质
EP3255586A1 (en) Method, program, and apparatus for comparing data graphs
US20230082597A1 (en) Neural Network Construction Method and System
US20200143250A1 (en) Method and apparatus for compressing/decompressing deep learning model
CN114358252A (zh) 目标神经网络模型中的操作执行方法及装置、存储介质
CN112712546A (zh) 一种基于孪生神经网络的目标跟踪方法
CN109726822B (zh) 运算方法、装置及相关产品
EP3766021A1 (en) Cluster compression for compressing weights in neural networks
US20220261623A1 (en) System and method for channel-separable operations in deep neural networks
CN111738276A (zh) 基于多核卷积神经网络的图像处理方法、装置及设备
CN115618098B (zh) 基于知识增强与空洞卷积的冷链物流推荐方法及装置
CN111967598A (zh) 神经网络压缩方法、装置、设备及计算机可读存储介质
CN113570031A (zh) 卷积运算的处理方法、电子设备及计算机可读存储介质
CN110457704B (zh) 目标字段的确定方法、装置、存储介质及电子装置
Feng et al. An efficient way to refine DenseNet
CN115018039A (zh) 一种神经网络蒸馏方法、目标检测方法以及装置
DE112020006070T5 (de) Hardwarebeschleuniger mit rekonfigurierbarem befehlssatz
CN112183303A (zh) 变电设备图像分类方法、装置、计算机设备和介质
WO2021000411A1 (zh) 基于神经网络的文档分类方法、装置、设备及存储介质
CN111191065A (zh) 一种同源图像确定方法及装置
CN111027669A (zh) 在现场可编程门阵列上实现深度神经网络的方法及装置
CN116128044A (zh) 一种模型剪枝方法、图像处理方法及相关装置
CN112183725A (zh) 提供神经网络的方法、计算装置和计算机可读存储介质
US20190065586A1 (en) Learning method, method of using result of learning, generating method, computer-readable recording medium and learning device
CN110704587A (zh) 文本答案的查找方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination