CN113486298A - 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 - Google Patents
基于Transformer神经网络的模型压缩方法、矩阵乘法模块 Download PDFInfo
- Publication number
- CN113486298A CN113486298A CN202110721961.1A CN202110721961A CN113486298A CN 113486298 A CN113486298 A CN 113486298A CN 202110721961 A CN202110721961 A CN 202110721961A CN 113486298 A CN113486298 A CN 113486298A
- Authority
- CN
- China
- Prior art keywords
- weight
- matrix
- zero
- multiplexer
- parameter
- 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.)
- Granted
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 35
- 230000006835 compression Effects 0.000 title claims abstract description 24
- 238000007906 compression Methods 0.000 title claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 230000004913 activation Effects 0.000 claims description 31
- 238000013138 pruning Methods 0.000 claims description 26
- 238000003491 array Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003062 neural network model Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例公开了基于Transformer神经网络的模型压缩方法、矩阵乘法模块,在该方法中,根据预设的第一参数,对原始权重矩阵中的每行权重进行分组,得到多个权重组,然后根据预设的第二参数,对每个权重组进行剪枝,最后获取非零权重矩阵以及二进制掩膜。该方法将权重的每行分为多组,各个权重组的非零元素数量一致,后续在计算流程中,并行计算的非零权重矩阵能够保持相同的计算时间,以此达到负载均衡的目的,具有较好的加速效果。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及基于Transformer神经网络的模型压缩方法、矩阵乘法模块。
背景技术
Transformer神经网络已经被广泛应用于各种任务中,如自然语言处理、图像处理等,但由于其计算量和模型参数量的问题,导致其具有内存占用大、功耗较高的缺点,这限制了Transformer神经网络在嵌入式设备上的应用。
为了能够压缩模型大小,目前常用的方法是进行权重剪枝,将权重矩阵中不重要的参数设置为0,然后通过稀疏矩阵对非零权重元素进行存储。但是经过剪枝之后,尽管模型本身得到了压缩,在应用中由于压缩带来的负载不均衡问题,实际的计算效率并没有得到很大的提升。这是由于剪枝之后,随机稀疏导致权重矩阵中,零元素分布位置完全随机,这种情况下,若将两个随机稀疏的权重并行计算,因为非零权重元素的数量不等,导致有效计算量不等,通过常用的能够跳过非零权重元素的计算架构对这两个权重矩阵并行计算时,两个并行矩阵的计算时间不等,导致了先计算完的将会阻塞等待,从而造成了负载不均衡。
发明内容
为了解决经过权重剪枝之后,由于负载不均衡导致计算效率低的问题,本申请通过以下实施例公开了基于Transformer神经网络的模型压缩方法、矩阵乘法模块。
本申请第一方面公开了一种基于Transformer神经网络的模型压缩方法,包括:
获取原始权重矩阵;
根据预设的第一参数,对所述原始权重矩阵中的每行权重进行分组,得到多个权重组,其中,每个权重组中所包含的元素数量与所述第一参数的值相等,所述第一参数的值小于所述原始权重矩阵的列数;
根据预设的第二参数,对每个权重组进行剪枝,所述第二参数用于限定每个权重组的剪枝结果中所包含的非零权重元素个数,所述第二参数的值小于所述第一参数的值;
获取非零权重矩阵以及二进制掩膜,所述非零权重矩阵包括每个权重组剪枝结果中的非零权重元素,所述二进制掩膜用于标识所述非零权重元素在对应权重组中的位置。
可选的,根据预设的第二参数,对每个权重组进行剪枝,包括:
根据预设的第二参数,将目标权重组中的目标元素置零;所述目标元素为目标权重组中绝对值最小的目标数量的权重元素,所述目标权重组为任一个所述权重组,所述目标数量与所述第二参数的值相等。
可选的,所述第一参数的取值为2的幂数,且取值范围为[2,32]。
本申请第二方面公开了一种基于Transformer神经网络的矩阵乘法模块,包括:多个并行脉动阵列;任一所述并行脉动阵列包括多个矩阵计算单元;
任一所述矩阵计算单元包括:用于获取非零权重矩阵的权重输入端口、用于获取激活矩阵的激活输入端口、用于获取二进制掩膜的掩膜输入端口、中间结果输入端口、非零元素选择器、乘累加计算单元、多个多路复用器、多个寄存器、权重输出端口、激活输出端口、掩膜输出端口及中间结果输出端口;所述非零权重矩阵包括每个权重组剪枝结果中的非零权重元素,所述二进制掩膜用于标识所述非零权重元素在对应权重组中的位置;
所述乘累加计算单元包括乘法器和加法器;
所述权重输入端口与所述掩膜输入端口均接至所述非零元素选择器的输入端,所述非零元素选择器的输出端及所述激活输入端口均接至所述乘法器的输入端;所述非零元素选择器用于根据所述二进制掩膜,获取所述非零权重元素的位置;
所述乘法器用于根据所述非零元素选择器的输出,执行所述非零权重元素与目标激活数据的相乘操作,所述目标激活数据的位置与所述非零权重元素的位置相对应。
可选的,所述多个多路复用器包括第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器及中间结果多路复用器;
所述多个寄存器包括第一寄存器、第二寄存器、第三寄存器及第四寄存器;
所述中间结果输入端口及所述中间结果输出端口接至所述中间结果多路复用器,所述中间结果多路复用器的输出端及所述乘法器的输出端接至所述加法器的输入端;
所述掩膜输入端口、所述第一多路复用器、所述第一寄存器及所述掩膜输出端口依次相连接;
所述激活输入端口、所述第二多路复用器、所述第二寄存器及所述激活输出端口依次相连接;
所述中间结果多路复用器的输出端及所述加法器的输出端接至所述第三多路复用器的输入端,所述第三多路复用器、所述第三寄存器及所述中间结果输出端口依次相连接;
所述权重输入端口、所述第四多路复用器、所述第四寄存器及所述权重输出端口依次相连接。
可选的,包括八个并行脉动阵列;任一所述并行脉动阵列包括六十四个矩阵计算单元。
本申请第三方面公开了一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如本申请第一方面所述的基于Transformer神经网络的模型压缩方法的步骤。
本申请第四方面公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一方面所述的基于Transformer神经网络的模型压缩方法的步骤。
本申请实施例公开了基于Transformer神经网络的模型压缩方法、矩阵乘法模块,在该方法中,根据预设的第一参数,对原始权重矩阵中的每行权重进行分组,得到多个权重组,然后根据预设的第二参数,对每个权重组进行剪枝,最后获取非零权重矩阵以及二进制掩膜。该方法将权重的每行分为多组,各个权重组的非零元素数量一致,后续在计算流程中,并行计算的非零权重矩阵能够保持相同的计算时间,以此达到负载均衡的目的,具有较好的加速效果。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种基于Transformer神经网络的模型压缩方法的工作流程示意图;
图2为本申请实施例公开的一种基于Transformer神经网络的模型压缩方法中,经过剪枝处理的数据示意图;
图3为本申请实施例公开的一种基于Transformer神经网络的硬件架构的结构示意图;
图4为本申请实施例公开的一种基于Transformer神经网络的矩阵乘法模块的结构示意图;
图5为本申请实施例公开的一种基于Transformer神经网络的矩阵乘法模块中,并行脉动阵列的结构示意图;
图6为本申请实施例公开的一种基于Transformer神经网络的矩阵乘法模块中,矩阵计算单元的结构示意图。
具体实施方式
为了解决经过权重剪枝之后,由于负载不均衡导致计算效率低的问题,本申请通过以下实施例公开了基于Transformer神经网络的模型压缩方法、矩阵乘法模块。
本申请第一实施例公开了一种基于Transformer神经网络的模型压缩方法,参见图1所示的工作流程示意图,该方法包括:
步骤100,获取原始权重矩阵。
实际应用中,该原始权重矩阵为稠密矩阵,即所有元素均为非零元素。
步骤200,根据预设的第一参数,对所述原始权重矩阵中的每行权重进行分组,得到多个权重组,其中,每个权重组中所包含的元素数量与所述第一参数的值相等,所述第一参数的值小于所述原始权重矩阵的列数。
步骤300,根据预设的第二参数,对每个权重组进行剪枝,所述第二参数用于限定每个权重组的剪枝结果中所包含的非零权重元素个数,所述第二参数的值小于所述第一参数的值。
在一种实现方式中,根据预设的第二参数,对每个权重组进行剪枝,包括:
根据预设的第二参数,将目标权重组中的目标元素置零。所述目标元素为目标权重组中绝对值最小的目标数量的权重元素,所述目标权重组为任一个所述权重组,所述目标数量与所述第二参数的值相等。
步骤400,获取非零权重矩阵以及二进制掩膜,所述非零权重矩阵包括每个权重组剪枝结果中的非零权重元素,所述二进制掩膜用于标识所述非零权重元素在对应权重组中的位置。
上述模型压缩方法主要基于两个参数:第一参数g和第二参数k,其中g代表每个权重组的大小,k代表每个权重组中非零元素的个数。在权重矩阵的每一行中,每连续g个元素视为一个权重组,针对每个权重组中的元素,根据其绝对值排序决定剪枝的对象,保留绝对值最大的k个元素,将其余元素全部置零,最后对剪枝后的每个权重组进行重新存储,参见图2,最终存储的数据仅包括非零权重元素组成的非零权重矩阵以及二进制掩膜,二进制掩膜为一个额外的二进制的掩膜,用于标识每个非零权重元素在权重组中的位置。由于掩膜是二进制的,因此所占空间十分小。
针对第一参数和第二参数的取值,所述第一参数的取值为2的幂数,且取值范围为[2,32],也就是说,第一参数可以取2、4、8、16或32,但是实际应用中,权重矩阵的大小有可能小于32*32,例如若原始权重矩阵的大小为16*16,那么第一参数可以取值为2、4、8或16。在第一参数确定之后,第二参数可以取小于第一参数的任意正整数。
作为示例,若原始权重矩阵大小为16*16,取g=4,k=2,则每行权重的16个元素被分为4个权重组,每个权重组中包含4个权重元素,每个权重组中在经过剪枝后保留2个非零元素。剪枝过程中,假设某个权重组的四个元素分别为3、2、9、8,那么按照绝对值的排序,保留9和8这两个元素,将3和2这两个元素置零,该权重组剪枝后得到0、0、9、8,对应的二进制掩膜则为0、0、1、1,该二进制掩膜标识了9和8在原始权重矩阵中的位置,也就是掩膜中1的位置。最后,针对该权重组,只存储9、8和二进制掩膜。
假设一个原始的稠密权重矩阵的大小为M行N列,其中所有元素的存储占用q比特内存,在使用上述压缩方法后,实际保存的权重总大小为k*M*(N/g)*q个比特,另外额外需要M*N个比特的二进制掩膜,而原模型大小为M*N*q个比特,因此使用本申请公开的压缩方法后,实际压缩率约为g/k,额外掩膜所占的空间很少。
上述实施例公开了基于Transformer神经网络的模型压缩方法,在该方法中,根据预设的第一参数,对原始权重矩阵中的每行权重进行分组,得到多个权重组,然后根据预设的第二参数,对每个权重组进行剪枝,最后获取非零权重矩阵以及二进制掩膜。该方法将权重的每行分为多组,各个权重组的非零元素数量一致,后续在计算流程中,并行计算的非零权重矩阵能够保持相同的计算时间,以此达到负载均衡的目的,具有较好的加速效果。
目前,Transformer神经网络的压缩是可行的,但技术瓶颈在于现有的硬件架构不能较好的支持稀疏Transformer神经网络的运算,从而达不到理想的加速效果。这是因为现有技术架构大多是面向稠密矩阵相乘设计,在对权重剪枝后,权重的实际大小没有改变,仅仅是权重中的元素被置零了,因而没有加速效果,为此,本申请提出了新的基于Transformer神经网络的硬件架构,参见图3,该硬件架构包括分为三部分:CPU、FPGA外部存储器和FPGA本地运算器。其中,FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,PCIE属于高速串行点对点双通道高带宽传输。CPU与FPGA直接通过PCIE通信,CPU负责将配置信息发送给FPGA并确认其就绪状态,FPGA外部存储器存储所有Transformer神经网络模型的参数,FPGA本地运算器负责完成模型的推理任务。
CPU将会给出起始的控制信号,其中控制信号通过可配置寄存器传送到FPGA本地运算器的控制模块,同时CPU会给FPGA外部存储器指令,使其将存储的Transformer权重参数加载到直接访存中,提高FPGA本地运算器计算时的数据存取速度。
FPGA本地运算器主要包括计算模块、存模块储和控制模块。计算模块主要包括矩阵乘法模块、softmax计算模块、向量计算模块和重排模块。其中矩阵乘法模块负责主要的矩阵乘工作,softmax模块负责用硬件计算softmax激活函数以提高效率,向量模块负责计算累加、Relu激活函数等操作,重排模块负责将计算重排以写回片上。存储模块负责保存计算中所需的权重矩阵、起始输入和计算过程中的中间结果。控制模块负责整个FPGA本地运算器计算流的控制,保证整个模型的计算顺序正确,主要包括总控制器、softmax控制器、地址控制器和乘法控制器。
现有的硬件架构种类繁多,整体的构成与本实施例提供的硬件架构大多类似,本实施例提供的硬件架构的主要创新点在于矩阵乘法模块,该矩阵乘法模块能够灵活支持稀疏矩阵乘稠密矩阵和稠密矩阵间相乘的两种乘法运算。
参见图4,本申请第二实施例公开的一种基于Transformer神经网络的矩阵乘法模块,包括:多个并行脉动阵列,其中单个并行脉动阵列的示意图参见图5所示。任一所述并行脉动阵列包括多个矩阵计算单元10。
在一种实现方式中,结合图4,本实施例提供的矩阵乘法模块包括8个并行脉动阵列,其中任一所述并行脉动阵列包括64个矩阵计算单元10。64个矩阵计算单元以8*8的形式排列,第一行第一列的矩阵计算单元的输入为整个并行脉动阵列的输入,最后一列的矩阵计算单元的输出为整个并行脉动阵列的输出,对于相邻两个矩阵计算单元10,前一个矩阵计算单元的输出作为后一个矩阵计算单元的输入,整个并行脉动阵列采用流水线形式逐级传输数据。
任一所述矩阵计算单元10的结构参见图6所示,包括:用于获取非零权重矩阵的权重输入端口101、用于获取激活矩阵的激活输入端口102、用于获取二进制掩膜的掩膜输入端口103、中间结果输入端口104、非零元素选择器105、乘累加计算单元106、多个多路复用器、多个寄存器、权重输出端口107、激活输出端口108、掩膜输出端口109及中间结果输出端口110。其中,所述乘累加计算单元106包括乘法器和加法器。
需要说明的是,所述非零权重矩阵中所包含的元素为原始权重矩阵经过本申请第一实施例公开的模型压缩方法进行压缩所得到的元素,所述二进制掩膜用于标识每个非零权重元素在对应权重组中的位置。
本实施例公开的矩阵乘法模块能够支持稀疏矩阵乘稠密矩阵和稠密矩阵间相乘两种运算模式,其中,稀疏矩阵乘稠密矩阵为经过第一实施例剪枝处理得到的权重矩阵(即稀疏矩阵)乘以激活矩阵(即稠密矩阵),稠密矩阵间相乘为未经过剪枝处理的原始权重矩阵(即稠密矩阵)乘以激活矩阵(即稠密矩阵)。当执行稀疏矩阵乘稠密矩阵运算时,基于第一实施例提供的模型压缩方法,需要结合非零元素选择器进行运算;当执行稠密矩阵间相乘运算时,则无需结合非零元素选择器进行运算,这种情况下,二进制掩膜无效,只完成普通的稠密矩阵相乘。
所述权重输入端口101与所述掩膜输入端口103均接至所述非零元素选择器105的输入端,所述非零元素选择器105的输出端及所述激活输入端口102均接至所述乘法器的输入端。所述非零元素选择器105用于根据所述二进制掩膜,获取所述非零权重矩阵中每个非零权重元素在对应权重组中的位置。
所述乘法器用于根据所述非零元素选择器105的输出,执行所述非零权重元素与目标激活数据的相乘操作,所述目标激活数据的位置与所述非零权重元素的位置相对应。
二进制掩膜标识了非零权重矩阵中每个非零权重元素的位置,只有在二进制掩膜为“1”时,才表示该位置存在一个非零权重元素,这时乘法器针对该非零权重元素与对应位置的激活数据执行相乘操作,如此可以跳过“0”元素执行有效计算。并且,经过第一实施例公开的模型压缩方法之后,并行处理过程中的每个非零权重矩阵,所包含的非零权重元素数量一致,因此不会存在负载不均衡的问题,能够达到较好的加速效果。
进一步的,所述多个多路复用器包括第一多路复用器111、第二多路复用器112、第三多路复用器113、第四多路复用器114及中间结果多路复用器115。
所述多个寄存器包括第一寄存器116、第二寄存器117、第三寄存器118及第四寄存器119。每个寄存器用于暂存多路复用器传输过来的数据。
所述中间结果输入端口104及所述中间结果输出端口110接至所述中间结果多路复用器115,所述中间结果多路复用器115的输出端及所述乘法器的输出端接至所述加法器的输入端。
所述掩膜输入端口103、所述第一多路复用器111、所述第一寄存器116及所述掩膜输出端口109依次相连接。
所述激活输入端口102、所述第二多路复用器112、所述第二寄存器117及所述激活输出端口108依次相连接。
所述中间结果多路复用器115的输出端及所述加法器的输出端接至所述第三多路复用器113的输入端,所述第三多路复用器113、所述第三寄存器118及所述中间结果输出端口110依次相连接。
所述权重输入端口101、所述第四多路复用器114、所述第四寄存器119及所述权重输出端口107依次相连接。
结合图6,矩阵计算为流水线模式,输入的数据包括非零权重矩阵a、激活矩阵b、中间结果矩阵c以及二进制掩膜d。非零权重矩阵a从权重输入端口101分别传输至非零元素选择器105以及第四多路复用器114,激活矩阵b从激活输入端口102分别传输至乘累加计算单元106以及第二多路复用器112,二进制掩膜d经掩膜输入端口103输入至非零元素选择器105。
非零元素选择器105能够根据二进制掩膜中“1”的位置,使得乘法器仅针对非零权重元素与目标激活数据执行相乘操作,目标激活数据为激活矩阵b中位置与非零权重元素位置一致的激活数据。
对于非零权重矩阵a和激活矩阵b来说,输入输出都是一致的,但是对于中间结果矩阵c来说,从中间结果输出端口110输出并传递给下一个矩阵计算单元的数据为c+a*b,也就是说,中间结果矩阵c每经过一个矩阵计算单元10就会累加一个a*b。
每个多路复用器的控制信号均由CPU给出,针对第一多路复用器111、第二多路复用器112及第四多路复用器114,当存在数据传输过来时,就选择输出该数据,当不存在数据传输过来时,就选择输出空数据,即图6中的“0”。
当乘累加计算单元106还未开始执行乘累加操作时,中间结果多路复用器115选择输出中间结果矩阵c至加法器,第三多路复用器113选择输出空数据;当乘累加计算单元106执行乘累加操作且还未执行完毕时,第三多路复用器113选择输出空数据,中间结果多路复用器115选择输出f指代的数据至加法器,使乘累加计算单元106能够执行累加操作;当乘累加计算单元106执行完乘累加操作时,第三多路复用器113选择输出乘累加运算结果。如果本级乘累加计算单元106不执行乘累加操作,则第三多路复用器113选择输出e指代的数据至下一个矩阵计算单元。
在第一实施例公开的模型压缩方法的基础上,第二实施例公开的硬件架构采用了脉动阵列的方式进行矩阵运算,能够灵活的支持两种运算模式,即稀疏矩阵乘稠密矩阵和稠密矩阵间相乘,总体上保证了较高的并行度,实现对稀疏Transformer的高效加速。
本申请第三实施例公开了一种计算机设备,包括:
存储器,用于存储计算机程序。
处理器,用于执行所述计算机程序时实现如本申请第一实施例所述的基于Transformer神经网络的模型压缩方法的步骤。
本申请第四实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一实施例所述的基于Transformer神经网络的模型压缩方法的步骤。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
Claims (8)
1.一种基于Transformer神经网络的模型压缩方法,其特征在于,包括:
获取原始权重矩阵;
根据预设的第一参数,对所述原始权重矩阵中的每行权重进行分组,得到多个权重组,其中,每个权重组中所包含的元素数量与所述第一参数的值相等,所述第一参数的值小于所述原始权重矩阵的列数;
根据预设的第二参数,对每个权重组进行剪枝,所述第二参数用于限定每个权重组的剪枝结果中所包含的非零权重元素个数,所述第二参数的值小于所述第一参数的值;
获取非零权重矩阵以及二进制掩膜,所述非零权重矩阵包括每个权重组剪枝结果中的非零权重元素,所述二进制掩膜用于标识所述非零权重元素在对应权重组中的位置。
2.根据权利要求1所述的基于Transformer神经网络的模型压缩方法,其特征在于,根据预设的第二参数,对每个权重组进行剪枝,包括:
根据预设的第二参数,将目标权重组中的目标元素置零;所述目标元素为目标权重组中绝对值最小的目标数量的权重元素,所述目标权重组为任一个所述权重组,所述目标数量与所述第二参数的值相等。
3.根据权利要求1或2所述的基于Transformer神经网络的模型压缩方法,其特征在于,所述第一参数的取值为2的幂数,且取值范围为[2,32]。
4.一种基于Transformer神经网络的矩阵乘法模块,其特征在于,包括:多个并行脉动阵列;任一所述并行脉动阵列包括多个矩阵计算单元;
任一所述矩阵计算单元包括:用于获取非零权重矩阵的权重输入端口、用于获取激活矩阵的激活输入端口、用于获取二进制掩膜的掩膜输入端口、中间结果输入端口、非零元素选择器、乘累加计算单元、多个多路复用器、多个寄存器、权重输出端口、激活输出端口、掩膜输出端口及中间结果输出端口;其中,所述非零权重矩阵包括每个权重组剪枝结果中的非零权重元素,所述二进制掩膜用于标识所述非零权重元素在对应权重组中的位置;
所述乘累加计算单元包括乘法器和加法器;
所述权重输入端口与所述掩膜输入端口均接至所述非零元素选择器的输入端,所述非零元素选择器的输出端及所述激活输入端口均接至所述乘法器的输入端;所述非零元素选择器用于根据所述二进制掩膜,获取所述非零权重元素的位置;
所述乘法器用于根据所述非零元素选择器的输出,执行所述非零权重元素与目标激活数据的相乘操作,所述目标激活数据的位置与所述非零权重元素的位置相对应。
5.根据权利要求4所述的基于Transformer神经网络的矩阵乘法模块,其特征在于,所述多个多路复用器包括第一多路复用器、第二多路复用器、第三多路复用器、第四多路复用器及中间结果多路复用器;
所述多个寄存器包括第一寄存器、第二寄存器、第三寄存器及第四寄存器;
所述中间结果输入端口及所述中间结果输出端口接至所述中间结果多路复用器,所述中间结果多路复用器的输出端及所述乘法器的输出端接至所述加法器的输入端;
所述掩膜输入端口、所述第一多路复用器、所述第一寄存器及所述掩膜输出端口依次相连接;
所述激活输入端口、所述第二多路复用器、所述第二寄存器及所述激活输出端口依次相连接;
所述中间结果多路复用器的输出端及所述加法器的输出端接至所述第三多路复用器的输入端,所述第三多路复用器、所述第三寄存器及所述中间结果输出端口依次相连接;
所述权重输入端口、所述第四多路复用器、所述第四寄存器及所述权重输出端口依次相连接。
6.根据权利要求4所述的基于Transformer神经网络的矩阵乘法模块,其特征在于,包括八个并行脉动阵列;任一所述并行脉动阵列包括六十四个矩阵计算单元。
7.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1-3任一项所述的基于Transformer神经网络的模型压缩方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如权利要求1-3任一项所述的基于Transformer神经网络的模型压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721961.1A CN113486298B (zh) | 2021-06-28 | 2021-06-28 | 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110721961.1A CN113486298B (zh) | 2021-06-28 | 2021-06-28 | 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486298A true CN113486298A (zh) | 2021-10-08 |
CN113486298B CN113486298B (zh) | 2023-10-17 |
Family
ID=77936357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110721961.1A Active CN113486298B (zh) | 2021-06-28 | 2021-06-28 | 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486298B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167425A (zh) * | 2023-04-26 | 2023-05-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
WO2023116431A1 (zh) * | 2021-12-20 | 2023-06-29 | 华为技术有限公司 | 一种矩阵计算方法、芯片以及相关设备 |
CN116992965A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
WO2024078376A1 (zh) * | 2022-10-12 | 2024-04-18 | 华为技术有限公司 | 一种模型剪枝方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110110851A (zh) * | 2019-04-30 | 2019-08-09 | 南京大学 | 一种lstm神经网络的fpga加速器及其加速方法 |
CN111382581A (zh) * | 2020-01-21 | 2020-07-07 | 沈阳雅译网络技术有限公司 | 一种机器翻译中的一次剪枝压缩方法 |
US20210090547A1 (en) * | 2019-09-24 | 2021-03-25 | Baidu Usa Llc | Small-footprint flow-based models for raw audio |
CN113011571A (zh) * | 2021-03-03 | 2021-06-22 | 华南理工大学 | 基于Transformer模型的INT8离线量化及整数推断方法 |
-
2021
- 2021-06-28 CN CN202110721961.1A patent/CN113486298B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110110851A (zh) * | 2019-04-30 | 2019-08-09 | 南京大学 | 一种lstm神经网络的fpga加速器及其加速方法 |
US20210090547A1 (en) * | 2019-09-24 | 2021-03-25 | Baidu Usa Llc | Small-footprint flow-based models for raw audio |
CN111382581A (zh) * | 2020-01-21 | 2020-07-07 | 沈阳雅译网络技术有限公司 | 一种机器翻译中的一次剪枝压缩方法 |
CN113011571A (zh) * | 2021-03-03 | 2021-06-22 | 华南理工大学 | 基于Transformer模型的INT8离线量化及整数推断方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116431A1 (zh) * | 2021-12-20 | 2023-06-29 | 华为技术有限公司 | 一种矩阵计算方法、芯片以及相关设备 |
WO2024078376A1 (zh) * | 2022-10-12 | 2024-04-18 | 华为技术有限公司 | 一种模型剪枝方法及相关装置 |
CN116167425A (zh) * | 2023-04-26 | 2023-05-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
CN116167425B (zh) * | 2023-04-26 | 2023-08-04 | 浪潮电子信息产业股份有限公司 | 一种神经网络加速方法、装置、设备及介质 |
CN116992965A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
CN116992965B (zh) * | 2023-09-27 | 2024-01-09 | 之江实验室 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113486298B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113486298B (zh) | 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 | |
CN107689948B (zh) | 应用于神经网络硬件加速系统的高效数据访存管理装置 | |
JP6977239B2 (ja) | 行列乗算器 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN108108809B (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
CN108416437A (zh) | 用于乘加运算的人工神经网络的处理系统及方法 | |
CN109165728B (zh) | 一种卷积神经网络的基本计算单元及计算方法 | |
CN110705703A (zh) | 基于脉动阵列的稀疏神经网络处理器 | |
CN107957976A (zh) | 一种计算方法及相关产品 | |
CN115880132B (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN110766128A (zh) | 卷积计算单元、计算方法及神经网络计算平台 | |
CN108629406A (zh) | 用于卷积神经网络的运算装置 | |
Li et al. | VBSF: a new storage format for SIMD sparse matrix–vector multiplication on modern processors | |
US20240119114A1 (en) | Matrix Multiplier and Matrix Multiplier Control Method | |
CN109284824A (zh) | 一种基于可重构技术的用于加速卷积和池化运算的装置 | |
CN113010213B (zh) | 基于阻变忆阻器的精简指令集存算一体神经网络协处理器 | |
WO2022112739A1 (en) | Activation compression method for deep learning acceleration | |
CN110851779A (zh) | 用于稀疏矩阵运算的脉动阵列架构 | |
CN110796236A (zh) | 多样本多通道卷积神经网络池化的向量化实现方法 | |
JP2022504995A (ja) | アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム | |
KR20220071723A (ko) | 딥러닝 연산 수행 방법 및 장치 | |
CN113485750B (zh) | 数据处理方法及数据处理装置 | |
CN110377874B (zh) | 卷积运算方法及系统 | |
CN111859277A (zh) | 一种稀疏矩阵向量乘法向量化实现方法 | |
CN112149047A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |