CN113011571A - 基于Transformer模型的INT8离线量化及整数推断方法 - Google Patents

基于Transformer模型的INT8离线量化及整数推断方法 Download PDF

Info

Publication number
CN113011571A
CN113011571A CN202110232726.8A CN202110232726A CN113011571A CN 113011571 A CN113011571 A CN 113011571A CN 202110232726 A CN202110232726 A CN 202110232726A CN 113011571 A CN113011571 A CN 113011571A
Authority
CN
China
Prior art keywords
layer
quantization
model
data
linear
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
Application number
CN202110232726.8A
Other languages
English (en)
Other versions
CN113011571B (zh
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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202110232726.8A priority Critical patent/CN113011571B/zh
Publication of CN113011571A publication Critical patent/CN113011571A/zh
Application granted granted Critical
Publication of CN113011571B publication Critical patent/CN113011571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Nonlinear Science (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种基于Transformer模型的INT8离线量化及整数推断方法,包括如下步骤:将原始Transformer浮点模型中归一化层的L2范数转换成L1范数;进行模型训练;通过少量数据进行前向推断,获取各层矩阵运算的输入数据的量化系数,提取为一般浮点数据;获取浮点模型中各线性层的权重量化系数,提取为一般浮点数据,根据计算均方误差的方法确定各层中的最优权重量化系数;将推断过程中涉及量化操作的量化系数化为2‑n的浮点数形式,通过联合系数调整的方法来调整量化系数;基于调整后的量化系数结合L1范数的归一化层得到INT8的整数推断模型。本发明可减少模型计算所需硬件资源和模型量化带来的误差,降低硬件资源消耗和提高模型的推断速度。

Description

基于Transformer模型的INT8离线量化及整数推断方法
技术领域
本发明涉及自然语言处理技术领域,更具体地说,涉及一种基于Transformer模型的自然语言处理神经网络模型的INT8(8位整型)离线量化方法及整数推断方法。
背景技术
随着深度学习算法的出现,人工智能迎来了第三次爆发,而深度学习算法的参数量和计算复杂性的增长对硬件提出了更高的性能要求,设计深度学习领域的专用硬件加速器是解决这一需要的有效办法。如何减少深度神经网络计算的延迟和存储是神经网络算法落地和神经网络加速器设计的重要研究方向。
模型量化是解决上述问题的理想技术方法。一般情况下,自然语言处理模型的训练和推断阶段使用的都是单精度浮点数类型完成,但是浮点数计算会占用大量的计算资源和存储资源,执行速度也很慢。使用低比特的数据格式,计算逻辑相对简单,可以提高计算效率的同时降低功耗和资源消耗。与单精度浮点数计算相比,采用INT8运算最多可以节省30倍的计算能耗和116倍的芯片面积。因此,模型量化广泛应用于深度神经网络的压缩和加速。离线量化不需要进行反向传播,直接将训练好的模型进行量化,可以减少深度学习模型的部署时间。
Transformer模型作为自然语言处理领域新的通用模型,在各方面表现全面超越LSTM等传统神经网络所付出的代价是模型复杂度和网络参数量的倍增,导致对计算能力和功耗的需求的急剧提高,使得它们难以在边缘设备中运行。将现有的卷积神经网络的INT8离线量化方法直接使用到Transformer模型会带来精度损失。为了减少INT8量化带来的精度损失和提高边缘加速器的推断效率,急需一种针对Transformer浮点模型进行优化INT8离线量化及整数推断方法。
发明内容
为克服现有技术中的缺点与不足,本发明的目的在于提供一种基于Transformer模型的INT8离线量化及整数推断方法;该方法可减少模型计算所需硬件资源和模型量化带来的误差,为硬件加速器的设计提供数据量化和量化模型推断的技术方案。
为了达到上述目的,本发明通过下述技术方案予以实现:一种基于Transformer模型的INT8离线量化及整数推断方法,包括如下步骤:
S1,将原始Transformer浮点模型中归一化层的L2范数转换成L1范数;之后对Transformer浮点模型进行模型训练,获取训练后的浮点模型及其参数;
S2,通过少量数据进行前向推断,获取浮点模型中各层矩阵运算的输入数据的量化系数,提取为一般浮点数据;
S3,根据训练完的浮点模型,获取浮点模型中各线性层的权重量化系数,提取为一般浮点数据,根据计算均方误差的方法确定各线性层中的最优权重量化系数;
S4,将推断过程中涉及量化操作的量化系数化为2-n的浮点数形式,通过联合系数调整的方法来调整量化系数;
S5,基于调整后的量化系数结合L1范数的归一化层得到INT8的整数推断模型。
进一步地,所述步骤S1中,根据以下公式进行归一化层的计算:
Figure BDA0002959156540000021
其中,x是输入数据,μ表示输入数据所在行的平均值,α和β是浮点模型中的可训练参数,n代表的是行的大小,
Figure BDA0002959156540000022
进一步地,所述步骤S2包括以下步骤:
S21,选取一批浮点模型输入数据;
S22,采用选取的浮点模型输入数据,使用训练后的浮点模型进行前向推断,获取浮点模型中各层矩阵运算的输入数据的分布;
S23,根据获取的浮点模型中各层矩阵运算的输入数据的分布,采用步骤S2中的计算方法确定输入数据的量化系数,对所求得的量化系数进行平均,得到每一层矩阵运算输入数据的量化系数,提取为一般浮点数据,记为Sinput,使每个矩阵运算都有一个量化系数Sinput
Figure BDA0002959156540000031
其中,n代表浮点模型输入数据的大小,xi代表第i个浮点模型输入数据计算的所求矩阵的输入数据,max表示取矩阵的最大值,abs表示取矩阵的绝对值。
进一步地,所述步骤S3包括以下分步骤:
S31,根据以下公式计算所述各线性层的权重数据和偏置数据的量化系数,提取为一般浮点数据,分别记为Sw和Sb,使每组权重数据和偏置数据都有一个量化系数:
Sw=max(abs(w))/127
Sb=Sinput*Sw
其中,Sinput为步骤S2获取的该线性层矩阵运算的输入数据的量化系数,max表示取权重权重最大值,abs表示取权重矩阵绝对值;
S32,根据权重数据的量化系数Sw计算量化后的INT8类型的权重数据qw
Figure BDA0002959156540000032
其中,w是权重数据,round表示通过四舍五入进行浮点数的取整操作,clip表示对数据在所限定范围内进行截断;
S33,根据获取的INT8类型的权重数据qw和权重数据的量化系数Sw计算量化前后权重数据的均方误差,找到该层权重数据的最佳量化系数Sw,使得均方误差最小:
Figure BDA0002959156540000033
进一步地,在所述步骤S33之后,还包括:
S34,通过步骤S31获取的权重数据的量化系数Sw,重新通过步骤S32的计算公式计算新的INT8类型的权重数据qw,根据步骤S32和S33迭代求解qw和Sw,寻找最佳的量化系数Sw
进一步地,所述步骤S4包括以下分步骤:
S41,提取步骤S2和S3得到的量化系数Sinput和Sw
S42,将推断过程中的涉及量化操作的量化系数化为2-n的浮点数形式,通过移位完成数据传递过程中的量化系数传递,确保每一层矩阵运算在整数域进行;
S43,对量化系数进行联合调整,通过对自注意力层和前馈神经网络计算层内部的权重数据进行缩放来完成量化系数的联合调整,以减少将量化系数化为2-n的浮点数形式带来的计算误差。
进一步地,所述自注意力层包括两部分;自注意力层的第一部分包含查询向量的线性层计算、键向量的线性层计算和两个线性层结果的点积计算;为了保持Softmax函数的输入数据的原始度,减少将量化系数化为2-n的浮点数形式带来的计算误差,通过对查询向量的线性层计算和键向量的线性层计算进行同等比例但是反向的缩放:
Figure BDA0002959156540000041
Figure BDA0002959156540000042
γk`=γWkk+γbk
k`=γk`
其中,q表示查询向量,k表示键向量,q`表示查询向量线性层的输出,k`表示键向量线性层的输出,Wq表示查询向量线性层的权重,Wk表示键向量线性层的权重,bq表示查询向量线性层的偏置,bk表示键向量线性层的偏置,γ表示缩放系数;缩放系数γ通过公式中的权重和偏置进行调整,缩放系数γ的值决定于量化带来的计算误差最小。
优选地,自注意力层的第二部分包括值向量的线性层计算、Softmax计算的结果和值向量的加权求和计算和输出线性层计算;为了保持自注意力层输出的原始度,减少将量化系数化为2-n的浮点数形式带来的计算误差,通过对值向量的线性层计算和输出线性层计算进行同等比例但是反向的缩放:
Figure BDA0002959156540000043
Figure BDA0002959156540000044
Figure BDA0002959156540000045
其中,v表示值向量,v`表示值向量线性层的输出,Wv表示值向量线性层的权重,bv表示值向量线性层的偏置,Wo表示输出线性层的权重,bo表示输出线性层的偏置,y表示输出线性层的输出,λ表示缩放系数;缩放系数λ通过公式中的权重和偏置进行调整,缩放系数λ的值决定于量化带来的计算误差最小。
优选地,所述前馈神经网络计算层包括两层线性层,线性层中间的ReLU函数为线性函数,满足性质:
f(αx)=αf(x),α>0
为了保持输出结果的原始度,减少将量化系数化为2-n的浮点数形式带来的计算误差,通过第一层线性层的权重和偏置和第二层线性层的权重进行同等比例但是反向的缩放:
Figure BDA0002959156540000051
Figure BDA0002959156540000052
其中,l1表示第一层线性层的输入,l表示第一层线性层的输出,Wl1表示第一层线性层的权重,bl1表示值第一层线性层的偏置,Wl2表示第二层线性层的权重,bl2表示第二层线性层的偏置,y代表第二层线性层的输出,μ表示缩放系数;缩放系数μ通过公式中的权重和偏置进行调整,缩放系数μ的值决定于量化带来的计算误差最小。
进一步地,所述步骤S5是指:将原始Transformer浮点模型中归一化层的L2范数转换成L1范数,以直接代入量化后的整数型输入,计算得到归一化层的浮点数计算结果;将步骤S2和S4得到的量化系数代入到归一化层转换成L1范数后的模型中,将模型中的矩阵运算转化到整数域,得到Transformer整数推断模型。
除了Softmax激活函数的计算外,可完成整个模型的整数推断过程,包含所有矩阵的乘法、加法和归一化操作。
与现有技术相比,本发明具有如下优点与有益效果:
(1)本发明提供了一种可以用于Transformer模型的整数推断方法,得到的整数推断模型中所有矩阵运算和归一化操作都在整数域进行,且量化后的模型精度损失小,可降低硬件资源消耗和提高模型的推断速度,有效降低对于计算平台的算力和存储要求,为加速器设计提供了模型部署方案;
(2)本发明将量化系数化为2-n的浮点数形式,通过移位操作完成数据传递过程中的量化计算,完成量化推理中的量化和去量化过程,降低硬件计算成本,提高运算速度;
(3)本发明通过计算均方误差和基于Transformer模型的量化系数联合调整等操作,对量化系数进行微调,使量化后的模型保持极小的精度损失,满足实际应用需求。
附图说明
图1是本发明的基于Transformer模型的INT8离线量化及整数推断方法的流程图;
图2是本发明中自注意力层整数推断方法;
图3是本发明中前馈神经网络计算层整数推断方法。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细的描述。
实施例一:
如图1所示,本实施例的一种基于Transformer模型的INT8离线量化及整数推断方法,包括如下步骤:
S1,将原始Transformer浮点模型中归一化层的L2范数转换成L1范数;之后对Transformer浮点模型进行模型训练,获取训练后的浮点模型及其参数。
根据以下公式进行归一化层的计算:
Figure BDA0002959156540000061
其中,x是输入数据,μ表示输入数据所在行的平均值,α和β是浮点模型中的可训练参数,n代表的是行的大小,
Figure BDA0002959156540000062
S2,通过少量数据进行前向推断,获取浮点模型中各层矩阵运算的输入数据的量化系数,提取为一般浮点数据。
所述步骤S2包括以下步骤:
S21,选取一批浮点模型输入数据;
S22,采用选取的浮点模型输入数据,使用训练后的浮点模型进行前向推断,获取浮点模型中各层矩阵运算的输入数据的分布;
S23,根据获取的浮点模型中各层矩阵运算的输入数据的分布,对所求得的量化系数进行平均,得到每一层矩阵运算输入数据的量化系数,提取为一般浮点数据,记为Sinput,使每个矩阵运算都有一个量化系数Sinput
Figure BDA0002959156540000071
其中,n代表浮点模型输入数据的大小,xi代表第i个浮点模型输入数据计算的所求矩阵的输入数据,max表示取矩阵的最大值,abs表示取矩阵的绝对值。
S3,根据训练完的浮点模型,获取浮点模型中各线性层的权重量化系数,提取为一般浮点数据,根据计算均方误差的方法确定各线性层中的最优权重量化系数;
所述步骤S3包括以下步骤:
S31,根据以下公式计算所述各线性层的权重数据和偏置数据的量化系数,提取为一般浮点数据,分别记为Sw和Sb,使每组权重数据和偏置数据都有一个量化系数:
Sw=max(abs(w))/127
Sb=Sinput*Sw
其中,Sinput为步骤S2获取的该线性层矩阵运算的输入数据的量化系数,max表示取权重权重最大值,abs表示取权重矩阵绝对值;
S32,根据步骤S31中确定的权重数据的量化系数Sw计算量化后的INT8类型的权重数据,记为qw
Figure BDA0002959156540000072
其中,w是权重数据,Sw为该权重数据的量化系数,round表示通过四舍五入进行浮点数的取整操作,clip表示对数据在所限定范围内进行截断;
S33,根据步骤S32中获取的INT8类型的权重数据qw和权重数据的量化系数Sw计算量化前后权重数据的均方误差,找到该层权重数据的最佳量化系数Sw,使得均方误差最小:
Figure BDA0002959156540000073
优选方案是:在所述步骤S33之后,还包括:
S34,通过步骤S31获取的权重数据的量化系数Sw,重新通过步骤S32的计算公式计算新的INT8类型的权重数据qw;根据步骤S32和S33迭代求解qw和Sw,寻找最佳的量化系数Sw
S4,将推断过程中涉及量化操作的量化系数化为2-n的浮点数形式,通过联合系数调整的方法来调整量化系数。
所述步骤S4包括以下步骤:
S41,提取步骤S2和S3得到的量化系数Sinput和Sw,选择最优的量化系数用于模型计算中的浮点数据量化;
S42,将推断过程中的涉及量化和去量化操作的量化系数化为2-n的浮点数形式,通过移位完成数据传递过程中的量化系数传递,确保每一层矩阵运算在整数域进行;
S43,对量化系数进行联合调整,为了减少将量化系数化为2-n的浮点数形式带来的计算误差,通过对自注意力层和前馈神经网络计算层内部的权重数据进行缩放来完成量化系数的联合调整。
自注意力层包括两部分,自注意力层的第一部分包含查询向量的线性层计算、键向量的线性层计算和两个线性层结果的点积计算。为了保持Softmax函数的输入数据的原始度,减少将量化系数化为2-n的浮点数形式带来的计算误差,通过对查询向量的线性层计算和键向量的线性层计算进行同等比例但是反向的缩放:
Figure BDA0002959156540000081
Figure BDA0002959156540000082
γk`=γWkk+γbk
k`=γk`
其中,q表示查询向量,k表示键向量,q`表示查询向量线性层的输出,k`表示键向量线性层的输出,Wq表示查询向量线性层的权重,Wk表示键向量线性层的权重,bq表示查询向量线性层的偏置,bk表示键向量线性层的偏置,γ表示缩放系数。缩放系数γ通过公式中的权重和偏置进行调整,缩放系数γ的值决定于量化带来的计算误差最小。
自注意力层的第二部分包括值向量的线性层计算、Softmax计算的结果和值向量的加权求和计算和输出线性层计算。为了保持自注意力层输出的原始度,减少将量化系数化为2-n的浮点数形式带来的计算误差,通过对值向量的线性层计算和输出线性层计算进行同等比例但是反向的缩放:
Figure BDA0002959156540000083
Figure BDA0002959156540000091
Figure BDA0002959156540000092
其中,v表示值向量,v`表示值向量线性层的输出,Wv表示值向量线性层的权重,bv表示值向量线性层的偏置,Wo表示输出线性层的权重,bo表示输出线性层的偏置,y表示输出线性层的输出,λ表示缩放系数。缩放系数λ通过公式中的权重和偏置进行调整,缩放系数λ的值决定于量化带来的计算误差最小。
前馈神经网络计算层包括两层线性层,线性层中间的ReLU函数为线性函数,满足性质:
f(αx)=αf(x),α>0
为了保持输出结果的原始度,减少将量化系数化为2-n的浮点数形式带来的计算误差,通过第一层线性层的权重和偏置和第二层线性层的权重进行同等比例但是反向的缩放:
Figure BDA0002959156540000093
Figure BDA0002959156540000094
其中,l1表示第一层线性层的输入,l表示第一层线性层的输出,Wl1表示第一层线性层的权重,bl1表示值第一层线性层的偏置,Wl2表示第二层线性层的权重,bl2表示第二层线性层的偏置,y代表第二层线性层的输出,μ表示缩放系数。缩放系数μ通过公式中的权重和偏置进行调整,缩放系数μ的值决定于量化带来的计算误差最小。
S5,将原始Transformer浮点模型中归一化层的L2范数转换成L1范数;将步骤S2和S4得到的量化系数代入到归一化层转换成L1范数后的模型中,将模型中的矩阵运算转化到整数域,得到Transformer整数推断模型。
实施例二
本实施例的一种基于Transformer模型的INT8离线量化及整数推断方法,在步骤S43中,自注意力层整数推断方法是:如图2所示,输入量化得到的INT8类型的查询向量q、键向量k和值向量v,与量化后的权重数据进行线性层计算和注意力计算,通过移位操作完成矩阵运算间的量化操作,将计算的整数结果与查询向量进行残差连接输入到L1范数的归一化层进行输出。
前馈神经网络计算层整数推断方法是:如图3所示,直接将量化后的输入数据和第一层线性层的量化后的权重数据进行线性层计算,通过移位得到INT8类型计算结果,经过ReLU函数计算,输入到第二层线性层与量化后的权重数据进行线性层计算,与输入数据进行残差连接输入到L1范数的归一化层进行输出。
本实施例的其余步骤与实施例一相同。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种基于Transformer模型的INT8离线量化及整数推断方法,包括如下步骤:
S1,将原始Transformer浮点模型中归一化层的L2范数转换成L1范数;之后对Transformer浮点模型进行模型训练,获取训练后的浮点模型及其参数;
S2,通过少量数据进行前向推断,获取浮点模型中各层矩阵运算的输入数据的量化系数,提取为一般浮点数据;
S3,根据训练完的浮点模型,获取浮点模型中各线性层的权重量化系数,提取为一般浮点数据,根据计算均方误差的方法确定各线性层中的最优权重量化系数;
S4,将推断过程中涉及量化操作的量化系数化为2-n的浮点数形式,通过联合系数调整的方法来调整量化系数;
S5,基于调整后的量化系数结合L1范数的归一化层得到INT8的整数推断模型。
2.根据权利要求1所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述步骤S1中,根据以下公式进行归一化层的计算:
Figure FDA0002959156530000011
其中,x是输入数据,μ表示输入数据所在行的平均值,α和β是浮点模型中的可训练参数,n代表的是行的大小,
Figure FDA0002959156530000012
3.根据权利要求1所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述步骤S2包括以下分步骤:
S21,选取一批浮点模型输入数据;
S22,采用选取的浮点模型输入数据,使用训练后的浮点模型进行前向推断,获取浮点模型中各层矩阵运算的输入数据的分布;
S23,根据获取的浮点模型中各层矩阵运算的输入数据的分布,对所求得的量化系数进行平均,得到每一层矩阵运算输入数据的量化系数,提取为一般浮点数据,记为Sinput,使每个矩阵运算都有一个量化系数Sinput
Figure FDA0002959156530000021
其中,n代表浮点模型输入数据的大小,xi代表第i个浮点模型输入数据计算的所求矩阵的输入数据,max表示取矩阵的最大值,abs表示取矩阵的绝对值。
4.根据权利要求1所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述步骤S3包括以下分步骤:
S31,根据以下公式计算所述各线性层的权重数据和偏置数据的量化系数,提取为一般浮点数据,分别记为Sw和Sb,使每组权重数据和偏置数据都有一个量化系数:
Sw=max(abs(w))/127
Sb=Sinput*Sw
其中,Sinput为步骤S2获取的该线性层矩阵运算的输入数据的量化系数,max表示取权重权重最大值,abs表示取权重矩阵绝对值;
S32,根据权重数据的量化系数Sw计算量化后的INT8类型的权重数据qw
Figure FDA0002959156530000022
其中,w是权重数据,round表示通过四舍五入进行浮点数的取整操作,clip表示对数据在所限定范围内进行截断;
S33,根据获取的INT8类型的权重数据qw和权重数据的量化系数Sw计算量化前后权重数据的均方误差,找到该层权重数据的最佳量化系数Sw,使得均方误差最小:
Figure FDA0002959156530000023
5.根据权利要求4所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:在所述步骤S33之后,还包括:
S34,通过步骤S31获取的权重数据的量化系数Sw,重新通过步骤S32的计算公式计算新的INT8类型的权重数据qw;根据步骤S32和S33迭代求解qw和Sw,寻找最佳的量化系数Sw
6.根据权利要求1所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述步骤S4包括以下分步骤:
S41,提取步骤S2和S3得到的量化系数Sinput和Sw
S42,将推断过程中的涉及量化操作的量化系数化为2-n的浮点数形式,通过移位完成数据传递过程中的量化系数传递,确保每一层矩阵运算在整数域进行;
S43,对量化系数进行联合调整,通过对自注意力层和前馈神经网络计算层内部的权重数据进行缩放来完成量化系数的联合调整,以减少将量化系数化为2-n的浮点数形式带来的计算误差。
7.根据权利要求6所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述自注意力层包括两部分;自注意力层的第一部分包含查询向量的线性层计算、键向量的线性层计算和两个线性层结果的点积计算;通过对查询向量的线性层计算和键向量的线性层计算进行同等比例但是反向的缩放:
Figure FDA0002959156530000031
Figure FDA0002959156530000032
γk`=γWkk+γbk
k`=γk`
其中,q表示查询向量,k表示键向量,q`表示查询向量线性层的输出,k`表示键向量线性层的输出,Wq表示查询向量线性层的权重,Wk表示键向量线性层的权重,bq表示查询向量线性层的偏置,bk表示键向量线性层的偏置,γ表示缩放系数;缩放系数γ通过公式中的权重和偏置进行调整,缩放系数γ的值决定于量化带来的计算误差最小。
8.根据权利要求7所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:自注意力层的第二部分包括值向量的线性层计算、Softmax计算的结果和值向量的加权求和计算和输出线性层计算;通过对值向量的线性层计算和输出线性层计算进行同等比例但是反向的缩放:
Figure FDA0002959156530000033
Figure FDA0002959156530000034
Figure FDA0002959156530000035
其中,v表示值向量,v`表示值向量线性层的输出,Wv表示值向量线性层的权重,bv表示值向量线性层的偏置,Wo表示输出线性层的权重,bo表示输出线性层的偏置,y表示输出线性层的输出,λ表示缩放系数;缩放系数λ通过公式中的权重和偏置进行调整,缩放系数λ的值决定于量化带来的计算误差最小。
9.根据权利要求6所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述前馈神经网络计算层包括两层线性层,线性层中间的ReLU函数为线性函数,满足性质:
f(αx)=αf(x),α>0
通过第一层线性层的权重和偏置和第二层线性层的权重进行同等比例但是反向的缩放:
Figure FDA0002959156530000041
Figure FDA0002959156530000042
其中,l1表示第一层线性层的输入,l表示第一层线性层的输出,Wl1表示第一层线性层的权重,bl1表示值第一层线性层的偏置,Wl2表示第二层线性层的权重,bl2表示第二层线性层的偏置,y代表第二层线性层的输出,μ表示缩放系数;缩放系数μ通过公式中的权重和偏置进行调整,缩放系数μ的值决定于量化带来的计算误差最小。
10.根据权利要求1所述的基于Transformer模型的INT8离线量化及整数推断方法,其特征在于:所述步骤S5是指:
将原始Transformer浮点模型中归一化层的L2范数转换成L1范数;将步骤S2和S4得到的量化系数代入到归一化层转换成L1范数后的模型中,将模型中的矩阵运算转化到整数域,得到Transformer整数推断模型。
CN202110232726.8A 2021-03-03 2021-03-03 基于Transformer模型的INT8离线量化及整数推断方法 Active CN113011571B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110232726.8A CN113011571B (zh) 2021-03-03 2021-03-03 基于Transformer模型的INT8离线量化及整数推断方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110232726.8A CN113011571B (zh) 2021-03-03 2021-03-03 基于Transformer模型的INT8离线量化及整数推断方法

Publications (2)

Publication Number Publication Date
CN113011571A true CN113011571A (zh) 2021-06-22
CN113011571B CN113011571B (zh) 2022-09-20

Family

ID=76403047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110232726.8A Active CN113011571B (zh) 2021-03-03 2021-03-03 基于Transformer模型的INT8离线量化及整数推断方法

Country Status (1)

Country Link
CN (1) CN113011571B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486298A (zh) * 2021-06-28 2021-10-08 南京大学 基于Transformer神经网络的模型压缩方法、矩阵乘法模块
CN114218365A (zh) * 2021-11-26 2022-03-22 华南理工大学 一种机器阅读理解方法、系统、计算机及存储介质
CN114648101A (zh) * 2022-05-13 2022-06-21 杭州研极微电子有限公司 基于transformer结构的softmax函数量化实现方法和装置
CN116630950A (zh) * 2023-07-25 2023-08-22 济南大学 一种高精度识别轮辋焊缝的方法
WO2024067563A1 (zh) * 2022-09-27 2024-04-04 杭州海康威视数字技术股份有限公司 基于模型量化的任务处理方法、装置、设备及存储介质
CN117992578A (zh) * 2024-04-02 2024-05-07 淘宝(中国)软件有限公司 基于大语言模型处理数据的方法、大语言模型及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659734A (zh) * 2019-09-27 2020-01-07 中国科学院半导体研究所 深度可分离卷积结构的低比特量化方法
WO2020092532A1 (en) * 2018-10-30 2020-05-07 Google Llc Quantizing trained long short-term memory neural networks
CN111429234A (zh) * 2020-04-16 2020-07-17 电子科技大学中山学院 一种基于深度学习的商品序列推荐方法
CN111767993A (zh) * 2020-06-30 2020-10-13 苏州科达科技股份有限公司 卷积神经网络int8量化方法、系统、设备及存储介质
CN111950716A (zh) * 2020-08-25 2020-11-17 云知声智能科技股份有限公司 一种优化int8的量化方法及系统
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
CN112257858A (zh) * 2020-09-21 2021-01-22 华为技术有限公司 一种模型压缩方法及装置
CN112381205A (zh) * 2020-09-29 2021-02-19 北京清微智能科技有限公司 一种神经网络低比特量化方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020092532A1 (en) * 2018-10-30 2020-05-07 Google Llc Quantizing trained long short-term memory neural networks
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
CN110659734A (zh) * 2019-09-27 2020-01-07 中国科学院半导体研究所 深度可分离卷积结构的低比特量化方法
CN111429234A (zh) * 2020-04-16 2020-07-17 电子科技大学中山学院 一种基于深度学习的商品序列推荐方法
CN111767993A (zh) * 2020-06-30 2020-10-13 苏州科达科技股份有限公司 卷积神经网络int8量化方法、系统、设备及存储介质
CN111950716A (zh) * 2020-08-25 2020-11-17 云知声智能科技股份有限公司 一种优化int8的量化方法及系统
CN112257858A (zh) * 2020-09-21 2021-01-22 华为技术有限公司 一种模型压缩方法及装置
CN112381205A (zh) * 2020-09-29 2021-02-19 北京清微智能科技有限公司 一种神经网络低比特量化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MOHAMMAD ET AL: "ReBNet: Residual Binarized Neural Network", 《 2018 IEEE 26TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES 》 *
钱源: "基于K-L散度的int8量化方法研究与框架实现", 《中国优秀博硕士学位论文全文数据库(硕士)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486298A (zh) * 2021-06-28 2021-10-08 南京大学 基于Transformer神经网络的模型压缩方法、矩阵乘法模块
CN113486298B (zh) * 2021-06-28 2023-10-17 南京大学 基于Transformer神经网络的模型压缩方法、矩阵乘法模块
CN114218365A (zh) * 2021-11-26 2022-03-22 华南理工大学 一种机器阅读理解方法、系统、计算机及存储介质
CN114218365B (zh) * 2021-11-26 2024-04-05 华南理工大学 一种机器阅读理解方法、系统、计算机及存储介质
CN114648101A (zh) * 2022-05-13 2022-06-21 杭州研极微电子有限公司 基于transformer结构的softmax函数量化实现方法和装置
WO2024067563A1 (zh) * 2022-09-27 2024-04-04 杭州海康威视数字技术股份有限公司 基于模型量化的任务处理方法、装置、设备及存储介质
CN116630950A (zh) * 2023-07-25 2023-08-22 济南大学 一种高精度识别轮辋焊缝的方法
CN117992578A (zh) * 2024-04-02 2024-05-07 淘宝(中国)软件有限公司 基于大语言模型处理数据的方法、大语言模型及电子设备

Also Published As

Publication number Publication date
CN113011571B (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
CN113011571B (zh) 基于Transformer模型的INT8离线量化及整数推断方法
Lin et al. Fixed point quantization of deep convolutional networks
CN110222821B (zh) 基于权重分布的卷积神经网络低位宽量化方法
CN111079781B (zh) 基于低秩与稀疏分解的轻量化卷积神经网络图像识别方法
WO2020238237A1 (zh) 一种基于幂指数量化的神经网络压缩方法
CN109214509B (zh) 一种用于深度神经网络高速实时量化结构和运算实现方法
WO2017185412A1 (zh) 一种支持较少位数定点数的神经网络运算的装置和方法
TW201918939A (zh) 用於學習低精度神經網路的方法及裝置
TWI744724B (zh) 處理卷積神經網路的方法
CN111950715A (zh) 基于自适应动态移位的8位整型全量化推理方法及装置
CN114756517A (zh) 一种基于可微量化训练的视觉Transformer压缩方法及系统
TWI722491B (zh) 應用於神經網絡之四位元與八位元組合之分離式量化方法
Bao et al. LSFQ: A low precision full integer quantization for high-performance FPGA-based CNN acceleration
CN112886947B (zh) 一种变步长鲁棒仿射投影自适应滤波器
CN112257466A (zh) 一种应用于小型机器翻译设备的模型压缩方法
CN110378466B (zh) 基于神经网络差分的量化方法及系统
WO2022247368A1 (en) Methods, systems, and mediafor low-bit neural networks using bit shift operations
WO2020135093A1 (zh) 卷积神经网络处理方法、装置、设备及存储介质
CN112561036A (zh) He-lstm网络结构及其对应的fpga硬件加速器
CN114386469A (zh) 一种对卷积神经网络模型量化的方法、装置及电子设备
CN114418057A (zh) 卷积神经网络的运算方法及相关设备
Zhen et al. A Secure and Effective Energy-Aware Fixed-Point Quantization Scheme for Asynchronous Federated Learning.
CN112561050A (zh) 一种神经网络模型训练方法及装置
Chin et al. An Adaptive High-Performance Quantization Approach for Resource-Constrained CNN Inference
KR102541462B1 (ko) 이형 코어 아키텍처 기반의 캡슐 신경망 추론 장치 및 그 방법

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