CN114970822A - 一种神经网络模型量化方法、系统、设备及计算机介质 - Google Patents
一种神经网络模型量化方法、系统、设备及计算机介质 Download PDFInfo
- Publication number
- CN114970822A CN114970822A CN202210609520.7A CN202210609520A CN114970822A CN 114970822 A CN114970822 A CN 114970822A CN 202210609520 A CN202210609520 A CN 202210609520A CN 114970822 A CN114970822 A CN 114970822A
- Authority
- CN
- China
- Prior art keywords
- layer
- target
- neural network
- matrix
- model
- 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
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000011002 quantification Methods 0.000 title claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims abstract description 180
- 238000013139 quantization Methods 0.000 claims abstract description 130
- 238000012545 processing Methods 0.000 claims abstract description 28
- 239000013598 vector Substances 0.000 claims description 125
- 238000004590 computer program Methods 0.000 claims description 66
- 230000006870 function Effects 0.000 claims description 20
- 238000013528 artificial neural network Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 6
- 239000000203 mixture Substances 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种神经网络模型量化方法、系统、设备及计算机介质,用于对神经网络模型进行量化,包括获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵;基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各网络层的量化bit数;基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。本申请中,借助Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各层的量化bit数,可以降低模型大小和内存占用,同时保留原网络的精度损失较小,此外可以大大减少运算量,局限性低。
Description
技术领域
本申请涉及神经网络模型技术领域,更具体地说,涉及一种神经网络模型量化方法、系统、设备及计算机介质。
背景技术
随着人工智能技术的发展,深度神经网络模型的精度在不断提升的同时模型的参数量也急剧增大,这使得模型在实际部署时,存在模型参数量大,计算复杂度高等问题,特别是对一些边缘端设备,这些问题尤为明显。为解决这些问题,可以对神经网络模型进行量化,二模型量化属于模型压缩领域的一种成熟且常用的手段,可以将浮点型模型转化为占用bit(binary digit,比特)数较小的整型模型。8bit量化在工业领域已经较为成熟,但对模型的压缩效果有限。极低的1或者2bit量化在学术领域也有很多研究,但往往伴随着模型精度的下降。由于模型各层的重要性不同,如果对各层采用不同的量化bit数,即混合精度量化,则可以在降低参数量的同时保证模型精度。
现有的混合精度量化方法,包括采用强化学习方法在硬件延迟约束和精度损失要求下,获取每层的量化bit位,或者采用神经网络架构搜索的方法,通过在每一个层的节点上设置多条代表不同bit位的边,再通过随机搜索的方法找到最优的bit分布,但这两种方法的缺点是时间周期长并且需要多个GPU资源提供算力支持。还有一种方法是采用hessian(黑塞)矩阵计算网络各层的相对敏感性,为各层的bit分布提供参考,但缺点是只能从后往前单向计算每层的权重在loss中的重要性,不能体现跨层的影响。使得现有量化神经网络模型方法的局限性高。
综上所述,如何降低神经网络模型量化方法的局限性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种神经网络模型量化方法,其能在一定程度上解决如何降低神经网络模型量化方法的局限性的技术问题。本申请还提供了一种神经网络模型量化系统、电子设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种神经网络模型量化方法,包括:
获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
对所述权重值、所述超参数及所述位置序号进行线性嵌入,生成目标嵌入矩阵;
基于预先训练好的Transformer模型对所述目标嵌入矩阵进行处理,得到所述目标神经网络模型中各所述网络层的量化bit数;
基于所述量化bit数对所述目标神经网络模型进行量化,得到目标量化神经网络模型。
优选的,所述对所述权重值、所述超参数及所述位置序号进行线性嵌入,生成目标嵌入矩阵,包括:
将所述网络层的所述权重值展平为对应的第一向量;
将所述网络层的所述超参数序列化为对应的第二向量;
基于所述位置序号对所述网络层进行位置编码,得到位置编码矩阵;
基于所述第一向量、所述第二向量和所述位置编码矩阵生成所述目标嵌入矩阵。
优选的,所述将所述网络层的所述超参数序列化为对应的第二向量,包括:
若所述网络层的类型为卷积层,则基于第一序列化公式,将所述网络层的所述超参数序列化为对应的所述第二向量;
若所述网络层的类型为全连接层,则基于第二序列化公式,将所述网络层的所述超参数序列化为对应的所述第二向量
所述第一序列化公式包括:
Hp=(cin,cout,skernel,sstride,sfeat,nparams,idw,iw/a);
所述第二序列化公式包括:
HP=(hin,hout,1,0,sfeat,nparams,0,iw/a)
其中,Hp表示所述第二向量;cin表示输入通道数;cout表示输出通道数;skernel表示卷积核大小;sstride表示滑动步长的大小;sfeat表示输入特征图大小;nparams表示参数量;idw表示可分离卷积的二值指示符号;iw/a表示权重w或激活a的二值指示符号;hin表示输入隐藏单元数;hout表示输出隐藏单元数;sfeat表示输入特征向量大小;nparams表示参数量。
优选的,所述基于所述第一向量、所述第二向量和所述位置编码矩阵生成所述目标嵌入矩阵,包括:
将所述网络层的所述第一向量和所述第二向量进行合并,得到所述网络层的第三向量;
将所有的所述第三向量进行拼接,得到向量矩阵;
基于所述向量矩阵和所述位置编码矩阵生成所述目标嵌入矩阵。
优选的,所述基于所述向量矩阵和所述位置编码矩阵生成所述目标嵌入矩阵,包括:
获取预先学习好的目标矩阵;
按照矩阵生成公式,基于所述目标矩阵、所述向量矩阵和所述位置编码矩阵生成所述目标嵌入矩阵;
所述矩阵生成公式包括:
Z0=E*X+PE;
其中,Z0表示所述目标嵌入矩阵;E表示所述目标矩阵;X表示所述向量矩阵;PE表示所述位置编码矩阵。
优选的,所述基于所述位置序号对所述网络层进行位置编码,包括:
基于所述位置序号对所述网络层进行正弦位置编码。
优选的,所述Transformer模型包括对所述目标嵌入矩阵进行处理的预设数量个encoder层;与所述encoder层连接的第一LayerNorm层;与所述第一LayerNorm层层连接的第一全连接层;与所述全连接层连接的softmax层;与所述softmax层连接的离散映射层;
其中,所述encoder层用于计算所述目标嵌入矩阵中各行的注意力;所述离散映射层用于输出所述量化bit数。
优选的,每个所述encoder层均包括与所述encoder层的输入层连接的第二LayerNorm层;与所述第二LayerNorm等连接的多头注意力机制层;与所述多头注意力机制层及所述输入层连接的第一残差层;与所述残差层连接的第三LayerNorm层;与所述第三LayerNorm层连接的前馈神经网络层;与所述前馈神经网络层及所述第一残差层连接的第二残差层。
优选的,所述前馈神经网络层包括:与所述第三LayerNorm层连接的第二全连接层;与所述第二全连接层连接的ReLU激活层;与所述ReLU激活层连接的第三全连接层。
优选的,所述量化bit数的运算公式包括:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
y=softmax(LN(ZL)Wo+bo)
其中,bp表示第p个所述网络层的所述量化bit数,p=[1,2,…N],N表示所述网络层的总层数;round表示四舍五入算法;bmin表示量化的最小值;bmax表示量化的最大值;L表示顺次连接的所述encoder层的总个数;ZL表示第L个所述encoder层的处理结果;Wo、bo表示预设值。
优选的,所述基于所述量化bit数对所述目标神经网络模型进行量化,得到目标量化神经网络模型,包括:
统计所述网络层的权重分布,得到权重值分布结果;
舍弃所述权重值分布结果中前后预设数量的权重值,得到剩余权重值;
统计所述剩余权重值中的权重最大值和权重最小值;
将所述权重最大值和所述权重最小值中的最大值作为截断范围;
基于所述截断范围对所述网络层进行截断,得到截断值;
基于逐层对称量化算法,对所述网络层的所述权重值进行量化和反量化,得到对应的量化结果和反量化结果;
基于所述量化结果和所述反量化结果确定所述目标量化神经网络模型;
其中,所述逐层对称量化算法包括:
其中,wq表示第p个所述网络层中第q个所述权重值的所述量化结果;clamp(w,c)表示将权重值w截断到[-c,c],c表示所述截断值;w′表示第p个所述网络层中第q个所述权重值的所述反量化结果。
优选的,所述Transformer模型的损失函数包括:
其中,Loss(w,w')表示损失函数值;λ表示调整初始值在1附近的超参数;x表示测试集图片;YF(x,w)表示浮点模型F的精度;YQ(x,w')表示量化模型Q的精度;log表示对数函数;γ表示调整模型Size和损失项的权重。
一种神经网络模型量化系统,包括:
第一获取模块,用于获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
第一生成模块,用于对所述权重值、所述超参数及所述位置序号进行线性嵌入,生成目标嵌入矩阵;
第一处理模块,用于基于预先训练好的Transformer模型对所述目标嵌入矩阵进行处理,得到所述目标神经网络模型中各所述网络层的量化bit数;
第一量化模块,用于基于所述量化bit数对所述目标神经网络模型进行量化,得到目标量化神经网络模型。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述神经网络模型量化方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述神经网络模型量化方法的步骤。
本申请提供的一种神经网络模型量化方法,获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵;基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各网络层的量化bit数;基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。本申请中,借助Transformer模型对由权重值、超参数及位置序号生成的目标嵌入矩阵进行处理,得到目标神经网络模型中各层的量化bit数,可以降低模型大小和内存占用,同时保留原网络的精度损失较小,除此之外,因为不需要逐层考虑每个bit位数,所以可以大大减少运算量,局限性低。本申请提供的一种神经网络模型量化系统、电子设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种神经网络模型量化方法的第一流程图;
图2为本申请实施例提供的一种神经网络模型量化方法的第二流程图;
图3为本申请实施例提供的一种神经网络模型量化方法中的Transformer模型的结构示意图;
图4为encoder层的结构示意图;
图5为本申请实施例提供的一种神经网络模型量化方法的第三流程图;
图6为本申请实施例提供的一种神经网络模型量化系统的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图;
图8为本申请实施例提供的一种电子设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着人工智能技术的发展,深度神经网络模型的精度在不断提升的同时模型的参数量也急剧增大,这使得模型在实际部署时,存在模型参数量大,计算复杂度高等问题,特别是对一些边缘端设备,这些问题尤为明显。为解决这些问题,可以对神经网络模型进行量化,二模型量化属于模型压缩领域的一种成熟且常用的手段,可以将浮点型模型转化为占用bit(binary digit,比特)数较小的整型模型。8bit量化在工业领域已经较为成熟,但对模型的压缩效果有限。极低的1或者2bit量化在学术领域也有很多研究,但往往伴随着模型精度的下降。由于模型各层的重要性不同,如果对各层采用不同的量化bit数,即混合精度量化,则可以在降低参数量的同时保证模型精度。
现有的混合精度量化方法,包括采用强化学习方法在硬件延迟约束和精度损失要求下,获取每层的量化bit位,或者采用神经网络架构搜索的方法,通过在每一个层的节点上设置多条代表不同bit位的边,再通过随机搜索的方法找到最优的bit分布,但这两种方法的缺点是时间周期长并且需要多个GPU资源提供算力支持。还有一种方法是采用hessian(黑塞)矩阵计算网络各层的相对敏感性,为各层的bit分布提供参考,但缺点是只能从后往前单向计算每层的权重在loss中的重要性,不能体现跨层的影响。使得现有量化神经网络模型方法的局限性高。为解决此技术问题,本申请提供一种神经网络模型量化方法、系统、电子设备及计算机可读存储介质。
请参阅图1,图1为本申请实施例提供的一种神经网络模型量化方法的第一流程图。
本申请实施例提供的一种神经网络模型量化方法,可以包括以下步骤:
步骤S101:获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号。
实际应用中,可以先获取待量化的目标神经网络模型中各个网络层的权重值、超参数及位置序号。其中,目标神经网络模型的类型可以根据实际需要确定,且网络层的数量、类型及每层网络层的权重值、超参数及位置序号也可以根据实际需要确定,其中,位置序号可以为网络层在目标神经网络模型中的序列号等,本申请在此不做具体限定。
步骤S102:对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵。
实际应用中,在获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号之后,便可以对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵,以便借助目标嵌入矩阵对权重值、超参数及位置序号进行处理。
步骤S103:基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各网络层的量化bit数。
实际应用中,在对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵之后,便可以基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各网络层的量化bit数,换言之,本申请是借助Transformer模型来对目标神经网络模型中各网络层的权重值、超参数及位置序号进行处理,来得到目标神经网络模型中各网络层的量化bit数。
步骤S104:基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。
实际应用中,在基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各网络层的量化bit数之后,便可以基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。需要说的是,基于量化bit数对目标神经网络模型进行量化的过程可以根据实际需要进行确定,本申请在此不做具体限定。
本申请提供的一种神经网络模型量化方法,获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵;基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各层的量化bit数;基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。本申请中,借助Transformer模型对由权重值、超参数及位置序号生成的目标嵌入矩阵进行处理,得到目标神经网络模型中各层的量化bit数,可以降低模型大小和内存占用,同时保留原网络的精度损失较小,除此之外,因为不需要逐层考虑每个bit位数,所以可以大大减少运算量,局限性低。
请参阅图2,图2为本申请实施例提供的一种神经网络模型量化方法的第二流程图。
本申请实施例提供的一种神经网络模型量化方法,可以包括以下步骤:
步骤S201:获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号。
步骤S202:将网络层的权重值展平为对应的第一向量。
步骤S203:将网络层的超参数序列化为对应的第二向量。
步骤S204:基于位置序号对网络层进行位置编码,得到位置编码矩阵。
步骤S205:基于第一向量、第二向量和位置编码矩阵生成目标嵌入矩阵。
实际应用中,在对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵的过程中,可以借助向量化方式来生成目标嵌入矩阵,也即对于每层网络层,均可以将该网络层的权重值展平为对应的第一向量,将该网络层的超参数序列化为对应的第二向量,基于位置序号对该网络层进行位置编码,得到位置编码矩阵,再基于第一向量、第二向量和位置编码矩阵生成对应的目标嵌入矩阵。
具体应用场景中,在将网络层的权重值展平为对应的第一向量的过程中,可以先统计目标神经网络模型中所有需要量化的网络层的参数量,并确定参数量的最大值,最后再将每层网络层的权重值展平为对应的一维向量wp∈Rd,p∈[1,2,3,…N],N表示网络层的总数量,其中参数量不足d的可以用0进行补充等,也即第一向量即可,以便将所有网络层的第一向量的长度统一为d,便于后续对第一向量进行批量处理。
具体应用场景中,在将网络层的超参数序列化为对应的第二向量的过程中,可以根据网络层的类型来准确将其超参数序列化为对应的第二向量,具体的,若网络层的类型为卷积层,则基于第一序列化公式,将网络层的超参数序列化为对应的第二向量;若网络层的类型为全连接层,则基于第二序列化公式,将网络层的超参数序列化为对应的第二向量
第一序列化公式包括:
Hp=(cin,cout,skernel,sstride,sfeat,nparams,idw,iw/a);
第二序列化公式包括:
HP=(hin,hout,1,0,sfeat,nparams,0,iw/a)
其中,Hp表示第二向量;cin表示输入通道数;cout表示输出通道数;skernel表示卷积核大小;sstride表示滑动步长的大小;sfeat表示输入特征图大小;nparams表示参数量;idw表示可分离卷积的二值指示符号;iw/a表示权重w或激活a的二值指示符号;hin表示输入隐藏单元数;hout表示输出隐藏单元数;sfeat表示输入特征向量大小;nparams表示参数量。
具体应用场景中,在基于第一向量、第二向量和位置编码矩阵生成目标嵌入矩阵的过程中,对于每层网络层,可以将网络层的第一向量和第二向量进行合并,得到网络层的第三向量,假设第三向量用xp表示,则xp=Concat(wp,Hp),将所有的第三向量进行拼接,得到向量矩阵,假设向量矩阵用X表示,则X=[x1;x2;...;xN];基于向量矩阵和位置编码矩阵生成目标嵌入矩阵。
具体应用场景中,在基于向量矩阵和位置编码矩阵生成目标嵌入矩阵的过程中,可以获取预先学习好的目标矩阵;按照矩阵生成公式,基于目标矩阵、向量矩阵和位置编码矩阵生成目标嵌入矩阵;矩阵生成公式包括:
Z0=E*X+PE;
其中,Z0表示目标嵌入矩阵;E表示目标矩阵;X表示向量矩阵;PE表示位置编码矩阵。
具体应用场景中,在基于位置序号对网络层进行位置编码的过程中,可以基于位置序号对网络层进行正弦位置编码(sinusoidal position embedding),其编码过程可以如下:
PE(p,2j)=sin(p/100002j/D);PE(p,2j+1)=cos(p/100002j/D);
其中,D=d+8;j∈[0,1...,(D-1)/2],表征维度序号;当然也可以有其他位置编码方式,本申请在此不做具体限定。
步骤S206:基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各所述网络层的量化bit数。
步骤S207:基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。
请参阅图3和图4,图3为本申请实施例提供的一种神经网络模型量化方法中的Transformer模型的结构示意图,图4为encoder层的结构示意图。
本申请实施例提供的一种神经网络模型量化方法中,Transformer模型可以包括对目标嵌入矩阵进行处理的预设数量个encoder层;与encoder层连接的第一LayerNorm(层归一化)层;与第一LayerNorm层层连接的第一全连接层;与全连接层连接的softmax(归一化)层;与softmax层连接的离散映射层;其中,encoder层用于计算目标嵌入矩阵中各行的注意力;离散映射层用于输出量化bit数。需要说明的是,预设数量的值可以根据具体应用场景确定,比如预设数量的值可以为6等,本申请在此不做具体限定。
实际应用中,如图4所示,本申请中的每个encoder层可以均包括与encoder层的输入层连接的第二LayerNorm层;与第二LayerNorm等连接的多头注意力机制(Mualti-HeadAttention,MHA)层;与多头注意力机制层及输入层连接的第一残差层;与残差层连接的第三LayerNorm层;与第三LayerNorm层连接的前馈神经网络(Feed-Forward Networks,FFN)层;与前馈神经网络层及第一残差层连接的第二残差层。
具体应用场景中,前馈神经网络层可以包括:与第三LayerNorm层连接的第二全连接层;与第二全连接层连接的ReLU激活层;与ReLU激活层连接的第三全连接层。
需要说明的是,在encoder层中,假设第l个encoder层的输入为Zl-1,l∈[1,2...L],L表示encoder层的总个数,其中,Z0表示目标嵌入矩阵,则可以先计算每个Zl-1对应的查询向量query,关键字向量key和值向量value,分别简称为q、k、v向量,则
然后各个head的输出经过串联和投影,得到多头注意力机制的输出:
FFN(x)=max(0,xW1+b1)W2+b2∈RN×D,FFN(x)∈RN×D;
其中,W1、W2∈RD×D,b2∈RN;
经过L个encoder block,输出ZL维度仍然为RN×D,最后再经过LayerNorm层、全连接层和softmax层,得到模型的最终输出为一维向量y∈RN,并且y的范围为[0,1]:
y=softmax(MLP(LN(ZL)))=softmax(LN(ZL)Wo+bo);
最后y再经过离散化到对应bit:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
也即本申请中,量化bit数的运算公式可以包括:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
y=softmax(LN(ZL)Wo+bo)
其中,bp表示第p个网络层的量化bit数,p=[1,2,...N],N表示网络层的总层数;round表示四舍五入算法;bmin表示量化的最小值;bmax表示量化的最大值;L表示顺次连接的encoder层的总个数;ZL表示第L个encoder层的处理结果;Wo、bo表示预设值。
需要说明的是,bmin、bmax的值可以根据实际需要确定,比如bmin的值可以为2,bmax的值可以为8等,本申请在此不做具体限定。
请参阅图5,图5为本申请实施例提供的一种神经网络模型量化方法的第三流程图。
本申请实施例提供的一种神经网络模型量化方法,可以包括以下步骤:
步骤S301:获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号。
步骤S302:对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵。
步骤S303:基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各所述网络层的量化bit数。
步骤S304:统计网络层的权重分布,得到权重值分布结果。
步骤S305:舍弃权重值分布结果中前后预设数量的权重值,得到剩余权重值。
步骤S306:统计剩余权重值中的权重最大值和权重最小值。
步骤S307:将权重最大值和权重最小值中的最大值作为截断范围。
步骤S308:基于截断范围对网络层进行截断,得到截断值。
步骤S309:基于逐层对称量化算法,对网络层的权重值进行量化和反量化,得到对应的量化结果和反量化结果。
实际应用中,在基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型的过程中,可以基于量化bit数对目标神经网络模型的权重值进行量化,具体的,可以统计网络层的权重分布,得到权重值分布结果;舍弃权重值分布结果中前后预设数量的权重值,比如舍弃权重值分布结果中前后1%的权重值,得到剩余权重值;统计剩余权重值中的权重最大值wmax和权重最小值wmin;将权重最大值和权重最小值中的最大值作为截断范围,c=max(|wmin|,|wmax|);基于截断范围对网络层进行截断,得到截断值[-c,c];基于逐层对称量化算法,对网络层的权重值进行量化和反量化,得到对应的量化结果和反量化结果;基于量化结果和反量化结果确定目标量化神经网络模型;
其中,逐层对称量化算法包括:
其中,wq表示第p个网络层中第q个权重值的量化结果;clamp(w,c)表示将权重值w截断到[-c,c],c表示截断值;w′表示第p个网络层中第q个权重值的反量化结果。
具体应用场景中,Transformer模型的损失函数可以包括:
其中,Loss(w,w')表示损失函数值;λ表示调整初始值在1附近的超参数;x表示测试集图片;YF(x,w)表示浮点模型F的精度;YQ(x,w')表示量化模型Q的精度;log表示对数函数;γ表示调整模型Size和损失项的权重。具体的,在训练过程中,可以在训练前设定阈值,当训练时损失大于阈值,则执行反向传播,通过最小化损失函数,也即min(Loss(w,w')),来计算梯度,更新Transformer模型权重;当训练时损失低于阈值,则Transformer模型输出为目标模型最优量化bit可以最小化损失函数,
请参阅图6,图6为本申请实施例提供的一种神经网络模型量化系统的结构示意图。
本申请实施例提供的一种神经网络模型量化系统,可以包括:
第一获取模块101,用于获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
第一生成模块102,用于对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵;
第一处理模块103,用于基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各所述网络层的量化bit数;
第一量化模块104,用于基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。
本申请实施例提供的一种神经网络模型量化系统,第一生成模块可以包括:
第一展平子模块,用于将网络层的权重值展平为对应的第一向量;
第一序列化子模块,用于将网络层的超参数序列化为对应的第二向量;
第一编码子模块,用于基于位置序号对网络层进行位置编码,得到位置编码矩阵;
第一生成子模块,用于基于第一向量、第二向量和位置编码矩阵生成目标嵌入矩阵。
本申请实施例提供的一种神经网络模型量化系统,第一序列化子模块可以包括:
第一序列化单元,用于若网络层的类型为卷积层,则基于第一序列化公式,将网络层的超参数序列化为对应的第二向量;
第二序列化单元,用于若网络层的类型为全连接层,则基于第二序列化公式,将网络层的超参数序列化为对应的第二向量
第一序列化公式包括:
Hp=(cin,cout,skernel,sstride,sfeat,nparams,idw,iw/a);
第二序列化公式包括:
HP=(hin,hout,1,0,sfeat,nparams,0,iw/a)
其中,Hp表示第二向量;cin表示输入通道数;cout表示输出通道数;skernel表示卷积核大小;sstride表示滑动步长的大小;sfeat表示输入特征图大小;nparams表示参数量;idw表示可分离卷积的二值指示符号;iw/a表示权重w或激活a的二值指示符号;hin表示输入隐藏单元数;hout表示输出隐藏单元数;sfeat表示输入特征向量大小;nparams表示参数量。
本申请实施例提供的一种神经网络模型量化系统,第一生成子模块可以包括:
第一合并单元,用于将网络层的第一向量和第二向量进行合并,得到网络层的第三向量;
第一拼接单元,用于将所有的第三向量进行拼接,得到向量矩阵;
第一生成单元,用于基于向量矩阵和位置编码矩阵生成目标嵌入矩阵。
本申请实施例提供的一种神经网络模型量化系统,第一生成单元可以具体用于:获取预先学习好的目标矩阵;按照矩阵生成公式,基于目标矩阵、向量矩阵和位置编码矩阵生成目标嵌入矩阵;矩阵生成公式包括:
Z0=E*X+PE;
其中,Z0表示目标嵌入矩阵;E表示目标矩阵;X表示向量矩阵;PE表示位置编码矩阵。
本申请实施例提供的一种神经网络模型量化系统,第一编码子模块可以包括:
第一编码单元,用于基于位置序号对网络层进行正弦位置编码。
本申请实施例提供的一种神经网络模型量化系统,Transformer模型包括对目标嵌入矩阵进行处理的预设数量个encoder层;与encoder层连接的第一LayerNorm层;与第一LayerNorm层层连接的第一全连接层;与全连接层连接的softmax层;与softmax层连接的离散映射层;
其中,encoder层用于计算目标嵌入矩阵中各行的注意力;离散映射层用于输出量化bit数。
本申请实施例提供的一种神经网络模型量化系统,每个encoder层均包括与encoder层的输入层连接的第二LayerNorm层;与第二LayerNorm等连接的多头注意力机制层;与多头注意力机制层及输入层连接的第一残差层;与残差层连接的第三LayerNorm层;与第三LayerNorm层连接的前馈神经网络层;与前馈神经网络层及第一残差层连接的第二残差层。
本申请实施例提供的一种神经网络模型量化系统,前馈神经网络层包括:与第三LayerNorm层连接的第二全连接层;与第二全连接层连接的ReLU激活层;与ReLU激活层连接的第三全连接层。
本申请实施例提供的一种神经网络模型量化系统,量化bit数的运算公式包括:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
y=softmax(LN(ZL)Wo+bo)
其中,bp表示第p个网络层的量化bit数,p=[1,2,...N],N表示网络层的总层数;round表示四舍五入算法;bmin表示量化的最小值;bmax表示量化的最大值;L表示顺次连接的encoder层的总个数;ZL表示第L个encoder层的处理结果;Wo、bo表示预设值。
本申请实施例提供的一种神经网络模型量化系统,第一量化模块可以包括:
第一统计单元,用于统计网络层的权重分布,得到权重值分布结果;
第一舍弃单元,用于舍弃权重值分布结果中前后预设数量的权重值,得到剩余权重值;
第二统计单元,用于统计剩余权重值中的权重最大值和权重最小值;
第一设置单元,用于将权重最大值和权重最小值中的最大值作为截断范围;
第一截断单元,用于基于截断范围对网络层进行截断,得到截断值;
第一量化单元,用于基于逐层对称量化算法,对网络层的权重值进行量化和反量化,得到对应的量化结果和反量化结果;
第一确定单元,用于基于量化结果和反量化结果确定目标量化神经网络模型;
其中,逐层对称量化算法包括:
其中,wq表示第p个网络层中第q个权重值的量化结果;clamp(w,c)表示将权重值w截断到[-c,c],c表示截断值;w′表示第p个网络层中第q个权重值的反量化结果。
本申请实施例提供的一种神经网络模型量化系统,Transformer模型的损失函数包括:
其中,Loss(w,w')表示损失函数值;λ表示调整初始值在1附近的超参数;x表示测试集图片;YF(x,w)表示浮点模型F的精度;YQ(x,w')表示量化模型Q的精度;log表示对数函数;γ表示调整模型Size和损失项的权重。
本申请还提供了一种电子设备及计算机可读存储介质,其均具有本申请实施例提供的一种神经网络模型量化方法具有的对应效果。请参阅图7,图7为本申请实施例提供的一种电子设备的结构示意图。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵;
基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各所述网络层的量化bit数;
基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将网络层的权重值展平为对应的第一向量;将网络层的超参数序列化为对应的第二向量;基于位置序号对网络层进行位置编码,得到位置编码矩阵;基于第一向量、第二向量和位置编码矩阵生成目标嵌入矩阵。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:若网络层的类型为卷积层,则基于第一序列化公式,将网络层的超参数序列化为对应的第二向量;若网络层的类型为全连接层,则基于第二序列化公式,将网络层的超参数序列化为对应的第二向量
第一序列化公式包括:
Hp=(cin,cout,skernel,sstride,sfeat,nparams,idw,iw/a);
第二序列化公式包括:
HP=(hin,hout,1,0,sfeat,nparams,0,iw/a)
其中,Hp表示第二向量;cin表示输入通道数;cout表示输出通道数;skernel表示卷积核大小;sstride表示滑动步长的大小;sfeat表示输入特征图大小;nparams表示参数量;idw表示可分离卷积的二值指示符号;iw/a表示权重w或激活a的二值指示符号;hin表示输入隐藏单元数;hout表示输出隐藏单元数;sfeat表示输入特征向量大小;nparams表示参数量。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将网络层的第一向量和第二向量进行合并,得到网络层的第三向量;将所有的第三向量进行拼接,得到向量矩阵;基于向量矩阵和位置编码矩阵生成目标嵌入矩阵。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取预先学习好的目标矩阵;按照矩阵生成公式,基于目标矩阵、向量矩阵和位置编码矩阵生成目标嵌入矩阵;
矩阵生成公式包括:
Z0=E*X+PE;
其中,Z0表示目标嵌入矩阵;E表示目标矩阵;X表示向量矩阵;PE表示位置编码矩阵。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于位置序号对网络层进行正弦位置编码。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:Transformer模型包括对目标嵌入矩阵进行处理的预设数量个encoder层;与encoder层连接的第一LayerNorm层;与第一LayerNorm层层连接的第一全连接层;与全连接层连接的softmax层;与softmax层连接的离散映射层;其中,encoder层用于计算目标嵌入矩阵中各行的注意力;离散映射层用于输出量化bit数。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:每个encoder层均包括与encoder层的输入层连接的第二LayerNorm层;与第二LayerNorm等连接的多头注意力机制层;与多头注意力机制层及输入层连接的第一残差层;与残差层连接的第三LayerNorm层;与第三LayerNorm层连接的前馈神经网络层;与前馈神经网络层及第一残差层连接的第二残差层。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:前馈神经网络层包括:与第三LayerNorm层连接的第二全连接层;与第二全连接层连接的ReLU激活层;与ReLU激活层连接的第三全连接层。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:量化bit数的运算公式包括:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
y=softmax(LN(ZL)Wo+bo)
其中,bp表示第p个网络层的量化bit数,p=[1,2,...N],N表示网络层的总层数;round表示四舍五入算法;bmin表示量化的最小值;bmax表示量化的最大值;L表示顺次连接的encoder层的总个数;ZL表示第L个encoder层的处理结果;Wo、bo表示预设值。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:统计网络层的权重分布,得到权重值分布结果;舍弃权重值分布结果中前后预设数量的权重值,得到剩余权重值;统计剩余权重值中的权重最大值和权重最小值;将权重最大值和权重最小值中的最大值作为截断范围;基于截断范围对网络层进行截断,得到截断值;基于逐层对称量化算法,对网络层的权重值进行量化和反量化,得到对应的量化结果和反量化结果;基于量化结果和反量化结果确定目标量化神经网络模型;其中,逐层对称量化算法包括:
其中,wq表示第p个网络层中第q个权重值的量化结果;clamp(w,c)表示将权重值w截断到[-c,c],c表示截断值;w′表示第p个网络层中第q个权重值的反量化结果。
本申请实施例提供的一种电子设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:Transformer模型的损失函数包括:
其中,Loss(w,w')表示损失函数值;λ表示调整初始值在1附近的超参数;x表示测试集图片;YF(x,w)表示浮点模型F的精度;YQ(x,w')表示量化模型Q的精度;log表示对数函数;γ表示调整模型Size和损失项的权重。
请参阅图8,本申请实施例提供的另一种电子设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现电子设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
对权重值、超参数及位置序号进行线性嵌入,生成目标嵌入矩阵;
基于预先训练好的Transformer模型对目标嵌入矩阵进行处理,得到目标神经网络模型中各所述网络层的量化bit数;
基于量化bit数对目标神经网络模型进行量化,得到目标量化神经网络模型。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将网络层的权重值展平为对应的第一向量;将网络层的超参数序列化为对应的第二向量;基于位置序号对网络层进行位置编码,得到位置编码矩阵;基于第一向量、第二向量和位置编码矩阵生成目标嵌入矩阵。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:若网络层的类型为卷积层,则基于第一序列化公式,将网络层的超参数序列化为对应的第二向量;若网络层的类型为全连接层,则基于第二序列化公式,将网络层的超参数序列化为对应的第二向量
第一序列化公式包括:
Hp=(cin,cout,skernel,sstride,sfeat,nparams,idw,iw/a);
第二序列化公式包括:
HP=(hin,hout,1,0,sfeat,nparams,0,iw/a)
其中,Hp表示第二向量;cin表示输入通道数;cout表示输出通道数;skernel表示卷积核大小;sstride表示滑动步长的大小;sfeat表示输入特征图大小;nparams表示参数量;idw表示可分离卷积的二值指示符号;iw/a表示权重w或激活a的二值指示符号;hin表示输入隐藏单元数;hout表示输出隐藏单元数;sfeat表示输入特征向量大小;nparams表示参数量。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将网络层的第一向量和第二向量进行合并,得到网络层的第三向量;将所有的第三向量进行拼接,得到向量矩阵;基于向量矩阵和位置编码矩阵生成目标嵌入矩阵。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取预先学习好的目标矩阵;按照矩阵生成公式,基于目标矩阵、向量矩阵和位置编码矩阵生成目标嵌入矩阵;
矩阵生成公式包括:
Z0=E*X+PE;
其中,Z0表示目标嵌入矩阵;E表示目标矩阵;X表示向量矩阵;PE表示位置编码矩阵。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于位置序号对网络层进行正弦位置编码。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:Transformer模型包括对目标嵌入矩阵进行处理的预设数量个encoder层;与encoder层连接的第一LayerNorm层;与第一LayerNorm层层连接的第一全连接层;与全连接层连接的softmax层;与softmax层连接的离散映射层;其中,encoder层用于计算目标嵌入矩阵中各行的注意力;离散映射层用于输出量化bit数。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:每个encoder层均包括与encoder层的输入层连接的第二LayerNorm层;与第二LayerNorm等连接的多头注意力机制层;与多头注意力机制层及输入层连接的第一残差层;与残差层连接的第三LayerNorm层;与第三LayerNorm层连接的前馈神经网络层;与前馈神经网络层及第一残差层连接的第二残差层。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:前馈神经网络层包括:与第三LayerNorm层连接的第二全连接层;与第二全连接层连接的ReLU激活层;与ReLU激活层连接的第三全连接层。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:量化bit数的运算公式包括:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
y=softmax(LN(ZL)Wo+bo)
其中,bp表示第p个网络层的量化bit数,p=[1,2,...N],N表示网络层的总层数;round表示四舍五入算法;bmin表示量化的最小值;bmax表示量化的最大值;L表示顺次连接的encoder层的总个数;ZL表示第L个encoder层的处理结果;Wo、bo表示预设值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:统计网络层的权重分布,得到权重值分布结果;舍弃权重值分布结果中前后预设数量的权重值,得到剩余权重值;统计剩余权重值中的权重最大值和权重最小值;将权重最大值和权重最小值中的最大值作为截断范围;基于截断范围对网络层进行截断,得到截断值;基于逐层对称量化算法,对网络层的权重值进行量化和反量化,得到对应的量化结果和反量化结果;基于量化结果和反量化结果确定目标量化神经网络模型;其中,逐层对称量化算法包括:
其中,wq表示第p个网络层中第q个权重值的量化结果;clamp(w,c)表示将权重值w截断到[-c,c],c表示截断值;w′表示第p个网络层中第q个权重值的反量化结果。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:Transformer模型的损失函数包括:
其中,Loss(w,w')表示损失函数值;λ表示调整初始值在1附近的超参数;x表示测试集图片;YF(x,w)表示浮点模型F的精度;YQ(x,w')表示量化模型Q的精度;log表示对数函数;γ表示调整模型Size和损失项的权重。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种神经网络模型量化系统、电子设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种神经网络模型量化方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种神经网络模型量化方法,其特征在于,包括:
获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
对所述权重值、所述超参数及所述位置序号进行线性嵌入,生成目标嵌入矩阵;
基于预先训练好的Transformer模型对所述目标嵌入矩阵进行处理,得到所述目标神经网络模型中各所述网络层的量化bit数;
基于所述量化bit数对所述目标神经网络模型进行量化,得到目标量化神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述对所述权重值、所述超参数及所述位置序号进行线性嵌入,生成目标嵌入矩阵,包括:
将所述网络层的所述权重值展平为对应的第一向量;
将所述网络层的所述超参数序列化为对应的第二向量;
基于所述位置序号对所述网络层进行位置编码,得到位置编码矩阵;
基于所述第一向量、所述第二向量和所述位置编码矩阵生成所述目标嵌入矩阵。
3.根据权利要求2所述的方法,其特征在于,所述将所述网络层的所述超参数序列化为对应的第二向量,包括:
若所述网络层的类型为卷积层,则基于第一序列化公式,将所述网络层的所述超参数序列化为对应的所述第二向量;
若所述网络层的类型为全连接层,则基于第二序列化公式,将所述网络层的所述超参数序列化为对应的所述第二向量
所述第一序列化公式包括:
Hp=(cin,cout,skernel,sstride,sfeat,nparams,idw,iw/a);
所述第二序列化公式包括:
HP=(hin,hout,1,0,sfeat,nparams,0,iw/a)
其中,Hp表示所述第二向量;cin表示输入通道数;cout表示输出通道数;skernel表示卷积核大小;sstride表示滑动步长的大小;sfeat表示输入特征图大小;nparams表示参数量;idw表示可分离卷积的二值指示符号;iw/a表示权重w或激活a的二值指示符号;hin表示输入隐藏单元数;hout表示输出隐藏单元数;sfeat表示输入特征向量大小;nparams表示参数量。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第一向量、所述第二向量和所述位置编码矩阵生成所述目标嵌入矩阵,包括:
将所述网络层的所述第一向量和所述第二向量进行合并,得到所述网络层的第三向量;
将所有的所述第三向量进行拼接,得到向量矩阵;
基于所述向量矩阵和所述位置编码矩阵生成所述目标嵌入矩阵。
5.根据权利要求4所述的方法,其特征在于,所述基于所述向量矩阵和所述位置编码矩阵生成所述目标嵌入矩阵,包括:
获取预先学习好的目标矩阵;
按照矩阵生成公式,基于所述目标矩阵、所述向量矩阵和所述位置编码矩阵生成所述目标嵌入矩阵;
所述矩阵生成公式包括:
Z0=E*X+PE;
其中,Z0表示所述目标嵌入矩阵;E表示所述目标矩阵;X表示所述向量矩阵;PE表示所述位置编码矩阵。
6.根据权利要求2所述的方法,其特征在于,所述基于所述位置序号对所述网络层进行位置编码,包括:
基于所述位置序号对所述网络层进行正弦位置编码。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述Transformer模型包括对所述目标嵌入矩阵进行处理的预设数量个encoder层;与所述encoder层连接的第一LayerNorm层;与所述第一LayerNorm层连接的第一全连接层;与所述全连接层连接的softmax层;与所述softmax层连接的离散映射层;
其中,所述encoder层用于计算所述目标嵌入矩阵中各行的注意力;所述离散映射层用于输出所述量化bit数。
8.根据权利要求7所述的方法,其特征在于,每个所述encoder层均包括与所述encoder层的输入层连接的第二LayerNorm层;与所述第二LayerNorm等连接的多头注意力机制层;与所述多头注意力机制层及所述输入层连接的第一残差层;与所述残差层连接的第三LayerNorm层;与所述第三LayerNorm层连接的前馈神经网络层;与所述前馈神经网络层及所述第一残差层连接的第二残差层。
9.根据权利要求8所述的方法,其特征在于,所述前馈神经网络层包括:与所述第三LayerNorm层连接的第二全连接层;与所述第二全连接层连接的ReLU激活层;与所述ReLU激活层连接的第三全连接层。
10.根据权利要求9所述的方法,其特征在于,所述量化bit数的运算公式包括:
bp=round(bmin-0.5+yp×(bmax-bmin+1));
y=softmax(LN(ZL)Wo+bo)
其中,bp表示第p个所述网络层的所述量化bit数,p=[1,2,…N],N表示所述网络层的总层数;round表示四舍五入算法;bmin表示量化的最小值;bmax表示量化的最大值;L表示顺次连接的所述encoder层的总个数;ZL表示第L个所述encoder层的处理结果;Wo、bo表示预设值。
11.根据权利要求10所述的方法,其特征在于,所述基于所述量化bit数对所述目标神经网络模型进行量化,得到目标量化神经网络模型,包括:
统计所述网络层的权重分布,得到权重值分布结果;
舍弃所述权重值分布结果中前后预设数量的权重值,得到剩余权重值;
统计所述剩余权重值中的权重最大值和权重最小值;
将所述权重最大值和所述权重最小值中的最大值作为截断范围;
基于所述截断范围对所述网络层进行截断,得到截断值;
基于逐层对称量化算法,对所述网络层的所述权重值进行量化和反量化,得到对应的量化结果和反量化结果;
基于所述量化结果和所述反量化结果确定所述目标量化神经网络模型;
其中,所述逐层对称量化算法包括:
其中,wq表示第p个所述网络层中第q个所述权重值的所述量化结果;clamp(w,c)表示将权重值w截断到[-c,c],c表示所述截断值;w′表示第p个所述网络层中第q个所述权重值的所述反量化结果。
13.一种神经网络模型量化系统,其特征在于,包括:
第一获取模块,用于获取待量化的目标神经网络模型中各网络层的权重值、超参数及位置序号;
第一生成模块,用于对所述权重值、所述超参数及所述位置序号进行线性嵌入,生成目标嵌入矩阵;
第一处理模块,用于基于预先训练好的Transformer模型对所述目标嵌入矩阵进行处理,得到所述目标神经网络模型中各所述网络层的量化bit数;
第一量化模块,用于基于所述量化bit数对所述目标神经网络模型进行量化,得到目标量化神经网络模型。
14.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述神经网络模型量化方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述神经网络模型量化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210609520.7A CN114970822A (zh) | 2022-05-31 | 2022-05-31 | 一种神经网络模型量化方法、系统、设备及计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210609520.7A CN114970822A (zh) | 2022-05-31 | 2022-05-31 | 一种神经网络模型量化方法、系统、设备及计算机介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114970822A true CN114970822A (zh) | 2022-08-30 |
Family
ID=82958583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210609520.7A Pending CN114970822A (zh) | 2022-05-31 | 2022-05-31 | 一种神经网络模型量化方法、系统、设备及计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114970822A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116992965A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
-
2022
- 2022-05-31 CN CN202210609520.7A patent/CN114970822A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116992965A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
CN116992965B (zh) * | 2023-09-27 | 2024-01-09 | 之江实验室 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11373087B2 (en) | Method and apparatus for generating fixed-point type neural network | |
US11275986B2 (en) | Method and apparatus for quantizing artificial neural network | |
US20200264876A1 (en) | Adjusting activation compression for neural network training | |
US20190147322A1 (en) | Method and apparatus for quantizing artificial neural network | |
US11934949B2 (en) | Composite binary decomposition network | |
US20210065052A1 (en) | Bayesian optimization of sparsity ratios in model compression | |
US20230196202A1 (en) | System and method for automatic building of learning machines using learning machines | |
US12033728B2 (en) | Simulating electronic structure with quantum annealing devices and artificial neural networks | |
CN111105017A (zh) | 神经网络量化方法、装置及电子设备 | |
CN113657595B (zh) | 基于神经网络实时剪枝的神经网络加速器 | |
WO2022111002A1 (zh) | 用于训练神经网络的方法、设备和计算机可读存储介质 | |
CN112200296A (zh) | 网络模型量化方法、装置、存储介质及电子设备 | |
CN115017178A (zh) | 数据到文本生成模型的训练方法和装置 | |
EP4287182A1 (en) | Method and apparatus for training a speech recognition model, electronic device and storage medium | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN113238989A (zh) | 将数据进行量化的设备、方法及计算机可读存储介质 | |
CN114970822A (zh) | 一种神经网络模型量化方法、系统、设备及计算机介质 | |
CN112101543A (zh) | 神经网络模型确定方法、装置、电子设备及可读存储介质 | |
US20230133337A1 (en) | Quantization calibration method, computing device and computer readable storage medium | |
CN116957007A (zh) | 神经网络训练时的特征量化方法、装置、介质及程序产品 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN112446461A (zh) | 一种神经网络模型训练方法及装置 | |
CN117348837A (zh) | 浮点精度模型的量化方法、装置、电子设备以及存储介质 | |
CN115034225A (zh) | 应用于医学领域的词语处理方法、装置、电子设备和介质 | |
EP4196919A1 (en) | Method and system for quantizing a neural network |
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 |