CN109615068A - 一种对模型中的特征向量进行量化的方法和装置 - Google Patents

一种对模型中的特征向量进行量化的方法和装置 Download PDF

Info

Publication number
CN109615068A
CN109615068A CN201811327527.XA CN201811327527A CN109615068A CN 109615068 A CN109615068 A CN 109615068A CN 201811327527 A CN201811327527 A CN 201811327527A CN 109615068 A CN109615068 A CN 109615068A
Authority
CN
China
Prior art keywords
quantizing factor
layer
estimation
model
training
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
CN201811327527.XA
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811327527.XA priority Critical patent/CN109615068A/zh
Publication of CN109615068A publication Critical patent/CN109615068A/zh
Pending legal-status Critical Current

Links

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
    • 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

Landscapes

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

Abstract

本说明书实施例提供一种对模型中的特征向量进行量化的方法和装置,所述方法包括:获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。

Description

一种对模型中的特征向量进行量化的方法和装置
技术领域
本说明书实施例涉及机器学习领域,更具体地,涉及一种对模型中的特征向量进行量化的方法和装置。
背景技术
人工智能和智能物联的快速发展,极大推动了适用于云或者端上深度学习模型推理预测的人工智能芯片的快速发展。为了提升芯片的计算能力,都或多或少根据深度学习模型的特点,进行计算处理单元的定制化。例如,在现有的一种云端处理器中,核心计算单元支持16比特半精度浮点运算(FP16)和8比特整数运算(Int8),其中,在同样的运行模式下,Int8运行速度是FP16速度的两倍。另外,该处理器还提供了稀疏模式的支持。在其他配置相同的情况下,稀疏模式的速度是非稀疏模型速度的4倍。因此,为了在深度学习模型推理上充分发挥该处理器的计算能力,现有技术中对原始深度学习模型进行模型压缩(包括参数稀疏化和低比特定点量化等操作)。对该特定的处理器,例如通过进行剪枝操作以稀疏化网络连接,进行量化以将所有的浮点操作转换为Int8定点操作。
因此,需要一种更有效地对模型的输入向量进行量化的方案。
发明内容
本说明书实施例旨在提供一种更有效地对模型的输入向量进行量化的方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种对模型中的特征向量进行量化的方法,包括:
获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及
对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
在一个实施例中,所述移动平均法包括以下任一种方法:简单移动平均法、加权移动平均法、指数移动平均法。
在一个实施例中,所述至少一个第一分组与所述第一特征向量包括的至少一个通道分别对应。
在一个实施例中,所述模型为神经网络模型,所述第一特征向量为神经网络中的预定层的输入特征向量。
在一个实施例中,所述模型的自所述预定层开始的连续至少一层中基于所述第一特征向量的各分量的量化值进行计算,所述连续至少一层的最后一层的第一输出向量通过基于所述至少一个估算量化因子进行反量化而获取。
在一个实施例中,所述至少一个估算量化因子通过以下多个步骤估算:
获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量;
在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量;
基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应;
获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过所述多个步骤计算、并与所述至少一个第二分组分别对应;以及
基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
在一个实施例中,所述模型的自所述预定层开始的连续至少一层中基于所述第二特征向量的各分量的量化值进行计算,所述至少一层的最后一层的第二输出向量通过基于所述至少一个量化因子进行反量化而获取,其中,所述第二特征向量的各分量的量化值为通过对应的量化因子量化的、具有所述预定位数的定点数。
在一个实施例中,对所述模型的一次训练包括对自所述预定层开始的连续至少一层的反向梯度更新,其中,在所述反向梯度更新中,所述至少一层的损失函数在所述第二特征向量包括的第一分量处的梯度等于所述至少一层的损失函数在所述第一分量的量化值的反量化值处的梯度。
在一个实施例中,所述量化因子基于所述至少一个第二特征向量包括的全部分量中各个分量的绝对值的最大值、和所述预定位数确定。
在一个实施例中,所述量化因子基于所述至少一个第二特征向量包括的全部分量中各个分量的绝对值的最大值和最小值、及所述预定位数确定。
本说明书另一方面提供一种对模型中的特征向量进行量化的装置,包括:
第一获取单元,配置为,获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及
量化单元,配置为,对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
在一个实施例中,所述至少一个估算量化因子通过估算装置估算,所述估算装置包括:
第二获取单元,配置为,获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量;
第三获取单元,配置为,在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量;
第一计算单元,配置为,基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应;
第四获取单元,配置为,获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过所述多个步骤计算、并与所述至少一个第二分组分别对应;以及
第二计算单元,配置为,基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
本说明书实施例的模型量化方案基于动态定点数和移动平均法进行模型中数据的量化,允许用户使用任何可偏微分的量化和反量化函数,不限制输入向量的量化操作的分组数,可广泛应用于需要模型压缩进行深度学习网络模型推理预测的应用场景和设备,如包括手机和智能家居等在内的终端设备,FPGA和人工智能芯片等。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的量化系统100;
图2示出根据本说明书实施例的一种对模型的输入向量进行量化的方法;
图3示出根据本说明书实施例的包括量化的神经网络模型示意图;
图4示出根据本说明书实施例的基于移动平均法获取估算量化因子的方法;
图5示出根据本说明书实施例的一种对模型中的特征向量进行量化的装置500;以及
图6示出根据本说明书实施例的用于估算所述至少一个估算量化因子的估算装置600。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的量化系统100。如图1所示,系统100包括模型11和估算单元12,其中,模型11中包括量化单元111和反量化单元112。所述模型11例如为神经网络模型,其包括多层神经层。模型11中可能有部分神经层分别需要进行整型计算,部分神经层需要进行浮点数计算。在模型训练阶段中,系统100基于训练数据通过移动平均法估算模型预定层的输入特征向量的量化因子。具体是,在一次训练中,在需要进行整型计算的预定层,首先,在量化单元中111,基于该次训练在该预定层的多个输入向量和传统的量化方法,获取该次训练中的量化因子α,通过所述量化因子对所述多个输入向量分别进行量化。在估算单元12中,基于该量化因子和上次训练的估算量化因子,通过移动平均法计算本次训练的估算量化因子EMA(α)。然后,在该预定层中对经量化单元111输出的输入向量的量化值进行整型计算,并在反量化单元112中,对经过整型计算的值进行反量化计算,以最终从该预定层输出浮点数输出值以参与下一层的浮点数计算。在该次训练中的反向梯度更新中,对该预定层的输入特征向量各分量的梯度等同于对各分量的量化值的反量化值的梯度。
在模型预测阶段,在通过移动平均法基于多次训练的训练数据获取估算量化因子之后,在量化单元中111和反量化单元112中,可以使用估算量化因子EMA(α)代替上述量化因子α,进行对上述预定层的输入特征向量的量化、及对整型运算结果的反量化。
图1所示的系统100和及相关的描述只是示例性的而不是限制性的,如,模型11中可包括多个量化单元和反量化单元,模型11的预定层的输入特征向量也可以分为多个分组分别进行量化,等等。
图2示出根据本说明书实施例的一种对模型的输入向量进行量化的方法,包括:
在步骤S202,获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及
在步骤S204,对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
首先,在步骤S202,获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应。
所述模型例如为神经网络模型,该神经网络模型通常包括多层神经层。如前文所述,为了适应于处理器的计算模式,并提高计算速度,通常对深度模型进行量化处理。在本说明书实施例中,通过结合动态定点数和移动平均技术,使得能够在人工智能芯片上实现模型预测的量化整型运算。可以理解,所述模型不限定为神经网络模型,而是可以为任何基于输入特征向量进行计算的以输出结果的模型,其中,所述输入特征向量包括至少一个分量。
其中,与定点数相比,动态定点数采用多个缩放因子,而不是只有唯一一个全局共享的缩放因子。也就是说,动态定点数可以将所有变量(或者数值)分成几组,让每组拥有自己的共享缩放因子。因此,动态定点数可以看成定点数和浮点数中间的一种数值表示形态。浮点数表示允许每个变量有自己的缩放因子,定点数表示让所有变量采用同一个缩放因子,而动态定点数让同一组内的所有变量采用同一个缩放因子,但是允许组与组之间采用不同的缩放因子值。也就是说,在本说明书中,对于不同的数据组,采用不同的缩放因子(量化因子),获取相应的量化值(定点数)。
图3示出根据本说明书实施例的包括量化的神经网络模型示意图。在该模型中,为了保持模型预测精度不因为量化操作的使用而下降过多,使用带有量化的混合精度。具体地,部分层(如图中第一层、第四层和第五层)使用量化整数进行整型计算,部分层(如图中第二层和第三层)使用浮点数进行计算。相应地,在第一层前端包括量化单元,用于对第一层的输入向量进行量化,以使得在第一层中进行整数计算,在第一层的后端包括反量化单元,以使得输出浮点数的特征向量,以用于第二层中的计算。第四层和第五层连续两层都进行整数计算,因此,在第四层的前端包括量化单元,在第五层的后端包括反量化单元。其中,不同的层量化之后的整数(定点数)位数b也可以不同,如,第一层中用于计算的定点数位数与第四层中用于计算的定点数的位数可能不同。
对于模型中各层的参数,可通过一次性离线预处理量化全部参数,而不需要在模型运行时对参数进行量化。然而,模型每层的输入 会随着整个神经网络第一层的输入X0变化而变化。在该情况中,必须对相应的层(如图3中的第一层、第四层)进行实时量化操作。
在现有技术中,可通过多种量化方法获取动态定点量化的量化因子。在一种量化方法中,量化后的定点数为整数,即,该定点数的小数点在定点数末尾,从而,对于给定X={x1,x2,…,xm},其量化因子α可通过公式(1)计算:
其中,b表示量化后整数的比特位数,也就是说,量化因子α为x1,x2,…,xm各自的绝对值的最大值与2b-1的商。这里,X可以表示向量中的分量集合,也可以表示一组数据集合。
可以理解,所述定点数不限于为整数,而可以根据需要的数据精度,将小数点置于任何位置,例如,可将小数点置于定点数左侧,从而该定点数为小数。在定点数的小数点的位置改变后,公式(1)也应相应地变化。
基于公式(1)所示的缩放因子,对于X中每个浮点值xi,其量化值Qα(xi)可通过公式(2)所示的量化函数计算:
该量化值的反量化值可通过公式(3)所示的反量化函数计算:
在另一种量化方法中,对于给定X,其量化因子α可通过公式(4)计算:
其中,Xmax=max{fabs(X)},Xmin=min{fabs(X)}。
基于该缩放因子,对于X中每个浮点值xi,其量化值Qα(xi)可通过公式(5)所示的量化函数计算:
该量化值的反量化值可通过公式(6)所示的反量化函数计算:
可以理解,本说明书实施例中的量化函数、反量化函数不限于上述函数,而可以采用任何可偏微分的量化和反量化函数。
如果使用上述两种量化方法对模型预定层的输入进行量化,为了获得输入X的量化因子,如果采用公式(1)所示的量化方法,需要找到输入X中所有值的绝对最大值;如果采用公式(4)所示的量化方法,则需要找出输入X中所有值的绝对最大值和最小值。在实时计算中,为了省掉寻找绝对最大或者最小值的计算代价,在本说明书实施例的该方法中基于移动平均法估算动态定点数的量化因子。移动平均法包括以下任一种方法:简单移动平均法、加权移动平均法、指数移动平均法。下文将以指数移动平均法为例进行描述。
本领域技术人员可以理解,移动平均法是在时间维度上变量的各个取值对变量取平均而使得对变量的估值更加准确。具体在本说明书实施例中,例如,可基于模型在该次输入之前的预定次输入中预定层(第一层或第四层)的输入向量,通过例如公式(1)计算与至少一次以往输入对应的预定层的量化因子,并基于该多个量化因子,计算预定层的输入特征向量的估算量化因子。也就是说,对于模型中的特征向量,基于模型中的以往输入的对应的特征向量,通过移动平均法估算出估算量化因子。
在上文的描述中,对预定层的输入特征向量的各分量估算统一的量化因子。在一个实施例中,可基于预定分组规则对输入向量的分量进行分组。例如,可基于输入向量包括的通道对各分量进行分组,例如输入向量为RGB图片,则其包括红、绿、蓝三个通道。可通过上述同样的方法,基于模型中的以往输入的对应的特征向量的各个通道包括的分量,通过移动平均法对三个通道分别估算相应的估算量化因子。可以理解,所述分组不限于基于特征向量包括的通道进行分组,例如,可基于特征向量的分量对应的特征进行分组等等。
在步骤S204,对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
例如如上文所述,对于图3中的第一层的输入向量X,可基于模型以往输入第一层的多个输入向量X’,获取估算量化因子,例如可将其表示为EMA(αx)。然后,可将EMA(αx)作为α代入公式(2),获取X的各个分量xi的量化值,以进行第一层中的整数计算。具体是,例如,第一层中的一个神经元的计算函数为F=WX+b,可预先以量化因子αw对W进行量化,以获取W的量化向量Q(W),然后通过EMA(αx)对X进行量化,以获取X的量化向量Q(X),其中Q(W)和Q(X)中包括的分量都为经过量化的整数。从而可先进行Q(W)与Q(X)向量乘积,显然,该向量乘积为整数运算,从而大大减少了计算量。在进行上述整数运算之后,可将EMA(αx)作为α代入公式(3)对该整数运算进行反量化。具体是,可如下公式(7)所示进行反量化,以获取第一层的输出值:
F=WX+b=αw*EMA(αx)*(Q(W)*Q(X))+b (7)
在图3所示的第四层和第五层的计算中,例如,第四层的计算函数为F=WX,即,F即为第五层函数的输入,第五层的计算为Relu激活函数。在该情况中,可在与上文对第一层的描述类似地获取W和X的量化因子αw和EMA(αx)之后,在第四层中首先计算Q(W)*Q(X)的乘积。然后,在第五层中,例如,可使用αw和EMA(αx)只对乘积符号为正的乘积Q(W)*Q(X)进行反量化计算。
在对X分组(例如将X分组为X1、X2、X3)以分别获取各组的估算量化因子的情况中,例如第一层的输出值如公式(8)所示:
F=W1X1+W2X2+W3X3+b=αw1*EMA(αx1)*(Q(W1)*Q(X1))+αw2*EMA(αx2)*(Q(W2)*Q(X2))+αw3*EMA(αx3)*(Q(W3)*Q(X3))+b (8)
从而可与公式(7)类似地,在第一层中先对量化值进行各个整数运算,即,Q(W1)*Q(X1)、Q(W2)*Q(X2)和Q(W3)*Q(X3),之后使用相应的量化因子对各个整数运算结果反量化,最后获取浮点数的输出结果。
图4示出根据本说明书实施例的基于移动平均法获取估算量化因子的方法,包括:
在步骤S402,获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量;
在步骤S404,在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量;
在步骤S406,基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应;
在步骤S408,获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过该方法获取、并与所述至少一个第二分组分别对应;以及
在步骤S410,基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
首先,在步骤S402,获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量。
该方法是在模型训练时通过基于训练数据获取的量化因子进行移动平均,从而获取估算量化因子,因此,通过模型的一次训练的数据获取这些数据(至少一个样本)的量化因子,并进行一次对估算量化因子的估算。用于模型的一次训练的训练样本可包括一个样本也可包括一批样本(即多个样本),其中,每个样本包括用于输入模型的特征向量及标签值。
在步骤S404,在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量。
参考图3所示,所述预定层可以为图中的第一层或第四层。当预定层为第一层的情况中,在第一层输入的特征向量(即第二特征向量)即为对模型输入的特征向量,也即所述训练样本中包括的特征向量。当预定层为第四层的情况中,在第四层输入的特征向量(第二特征向量)即为第三层输出的特征向量。
在步骤S406,基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应。
在一个实施例中,X={x1,x2,…,xm}为所述至少一个第二特征向量包括的全部分量的集合,例如通过公式(1)基于X获取量化因子α。
在一个实施例中,根据预定分组规则对所述多个第二特征向量包括的全部分类进行分组。例如,基于各个第二特征向量包括的通道,将所述全部分量分成与各个通道分别对应的几组,并基于每组中的包括的全部分量的集合Xi={x1,x2,…,xm},类似地通过公式(1)获取与各个分组分别对应的αi,其中i表示分组标识。
可以理解,获取量化因子α的方法不限于公式(1)所示的方法,例如,可通过上文中公式(4)获取所述量化因子。
在步骤S408,获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过所述方法获取、并与所述至少一个第二分组分别对应。
在一个实施例中,基于所述至少一个第二特征向量包括的全部分量获取量化因子。在该情况中,可以理解,每次训练估算的估算量化因子都是基于当次的量化因子和上一次训练中估算的估算量化因子获得的,如公式(9)所示:
EMA(α)i←γ·α+(1-γ)EMA(α)i-1 (9)
其中,γ为预设的[0,1]之间的实数,i表示训练次数,也就是说,EMA(α)i为本次训练的估算量化因子,EMA(α)i-1为上一次训练的估算量化因子。而根据公式(9),EMA(α)i-1又可以基于上一次训练的量化因子和第i-2次训练的估算量化因子获取。其中,所述模型的第一次训练的估算量化因子可设置为等于该第一训练中的量化因子。
在一个实施例中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为多个分组,例如,基于第二特征向量包括的通道分为多个分组。在该情况中,在每个分组中通过公式(9)进行量化因子的计算和估算量化因子的计算,例如,多个分组与多个通道分别对应。则,上一次训练中获取的多个估算量化因子同样是在与通道对应的各个分组中分别计算的,因此也与本次训练中的各个分组分别对应。
在步骤S410,基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
在一个实施例中,基于所述至少一个第二特征向量包括的全部分量获取单个量化因子α。相应地,上一次训练的与该至少一个第二特征向量对应的估算量化因子也是单个EMA(α)i-1,通过移动平均法,即,通过将α和EMA(α)i-1代入公式(9),从而获取本次训练的估算量化因子EMA(α)i
在一个实施例中,如上所述,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为多个分组。在该情况中,获取各个分组各自的量化因子α和上一次训练的估算量化因子EMA(α)i-1,从而通过公式(9)计算与各个分组分别对应的估算量化因子EMA(α)i
随着模型的多次训练,并在每次训练中计算与当次训练对应的估算量化因子,从而获取最终的估算量化因子EMA(α)n(n表示模型经过n次训练),从而可在模型预测中将该估算量化因子EMA(α)n代替量化因子用于对相应的特征向量进行量化,从而省去了在模型预测中对量化因子的实时计算。
在模型的训练过程中,在正向传播阶段,所述模型的自所述预定层开始的连续至少一层中基于所述第二特征向量的各分量的量化值进行计算,所述至少一层的最后一层的第二输出向量通过基于所述至少一个量化因子进行反量化而获取,其中,所述第二特征向量的各分量的量化值为通过对应的量化因子量化的、具有所述预定位数的定点数。
例如,在第二特征向量的分量未分组的情况中,首先通过量化因子αx对特征向量的各个分量分别进行量化,以获取各个量化值(特定位数的定点数),其中,该量化因子αx如上所述例如通过公式(1)或公式(2)基于相应的分量计算获取。然后,在预定层中首先进行整数运算,例如如下面的公式(10)中的Q(W)*Q(X)计算等等。
F=WX+b=αwx*(Q(W)*Q(X))+b (10)
之后,在预定层中通过量化因子αwx对上述整数运算的结果进行反量化,并通过与b相加,获取该层最终的浮点数输出结果。与上述公式(7)相比可见,在模型训练中,模型的正向传播与模型的预测计算不同的是,使用量化因子进行量化,而不是估算量化因子。其它计算过程与模型预测时的计算都是一样的,因此,对于量化因子分组、及预定层为多层(第四层和第五层)的情况,可参考步骤S204中的相关描述,其中只要将估算量化因子替换为实时计算的量化因子即可,在此不再赘述。
在模型训练的反向传播阶段,对所述模型的一次训练包括对自所述预定层开始的连续至少一层的反向梯度更新,其中,在所述反向梯度更新中,所述至少一层的损失函数在所述第二特征向量包括的第一分量处的梯度等于所述至少一层的损失函数在所述第一分量的量化值的反量化值处的梯度。这可通过以下公式(11)得到验证:
其中,l为所述至少一层的损失函数,在最后一行,例如根据公式(3)可得出,根据公式(2)可得出,从而可得出以下公式(12):
这里x为第二特征向量中的任一分量,即公式(2)、(3)中的xi。在第二特征向量的分量分为多个分组,并且每个分组具有相应的量化因子的情况中,损失函数对分量的梯度等于损失对该分量相应的量化值的反量化值的梯度。
图5示出根据本说明书实施例的一种对模型中的特征向量进行量化的装置500,包括:
获取单元51,配置为,获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及
量化单元52,配置为,对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
图6示出根据本说明书实施例的用于估算所述至少一个估算量化因子的估算装置600,所述估算装置包括:
第一获取单元61,配置为,获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量;
第二获取单元62,配置为,在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量;
第一计算单元63,配置为,基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应;
第三获取单元64,配置为,获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过所述多个步骤计算、并与所述至少一个第二分组分别对应;以及
第二计算单元65,配置为,基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
本说明书另一方面提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
本说明书实施例的模型量化方案基于动态定点数和移动平均法进行模型中数据的量化,允许用户使用任何可偏微分的量化和反量化函数,不限制输入向量的量化操作的分组数,可广泛应用于需要模型压缩进行深度学习网络模型推理预测的应用场景和设备,如包括手机和智能家居等在内的终端设备,FPGA和人工智能芯片等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (21)

1.一种对模型中的特征向量进行量化的方法,包括:
获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及
对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
2.根据权利要求1所述的方法,其中,所述移动平均法包括以下任一种方法:简单移动平均法、加权移动平均法、指数移动平均法。
3.根据权利要求1所述的方法,其中,所述至少一个第一分组与所述第一特征向量包括的至少一个通道分别对应。
4.根据权利要求1所述的方法,其中,所述模型为神经网络模型,所述第一特征向量为神经网络中的预定层的输入特征向量。
5.根据权利要求4所述的方法,其中,所述模型的自所述预定层开始的连续至少一层中基于所述第一特征向量的各分量的量化值进行计算,所述连续至少一层的最后一层的第一输出向量通过基于所述至少一个估算量化因子进行反量化而获取。
6.根据权利要求4所述的方法,其中,所述至少一个估算量化因子通过以下多个步骤估算:
获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量;
在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量;
基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应;
获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过所述多个步骤计算、并与所述至少一个第二分组分别对应;以及
基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
7.根据权利要求6所述的方法,其中,所述模型的自所述预定层开始的连续至少一层中基于所述第二特征向量的各分量的量化值进行计算,所述至少一层的最后一层的第二输出向量通过基于所述至少一个量化因子进行反量化而获取,其中,所述第二特征向量的各分量的量化值为通过对应的量化因子量化的、具有所述预定位数的定点数。
8.根据权利要求7所述的方法,其中,对所述模型的一次训练包括对自所述预定层开始的连续至少一层的反向梯度更新,其中,在所述反向梯度更新中,所述至少一层的损失函数在所述第二特征向量包括的第一分量处的梯度等于所述至少一层的损失函数在所述第一分量的量化值的反量化值处的梯度。
9.根据权利要求6所述的方法,其中,所述量化因子基于所述至少一个第二特征向量包括的全部分量中各个分量的绝对值的最大值、和所述预定位数确定。
10.根据权利要求6所述的方法,其中,所述量化因子基于所述至少一个第二特征向量包括的全部分量中各个分量的绝对值的最大值和最小值、及所述预定位数确定。
11.一种对模型中的特征向量进行量化的装置,包括:
第一获取单元,配置为,获取第一特征向量的至少一个估算量化因子,其中,所述第一特征向量包括的分量基于预定分组规则被分为至少一个第一分组,所述至少一个估算量化因子基于移动平均法估算、并与所述至少一个第一分组分别对应;以及
量化单元,配置为,对于所述至少一个第一分组的每个分组,使用所述至少一个估算量化因子中的相应的估算量化因子,将该分组的每个分量分别量化为对应的量化值,其中,所述量化值为预定位数的定点数。
12.根据权利要求11所述的装置,其中,所述移动平均法包括以下任一种方法:简单移动平均法、加权移动平均法、指数移动平均法。
13.根据权利要求11所述的装置,其中,所述至少一个第一分组与所述第一特征向量包括的至少一个通道分别对应。
14.根据权利要求11所述的装置,其中,所述模型为神经网络模型,所述第一特征向量为神经网络中的预定层的输入特征向量。
15.根据权利要求14所述的装置,其中,所述模型的自所述预定层开始的连续至少一层中基于所述第一特征向量的各分量的量化值进行计算,所述连续至少一层的最后一层的第一输出向量通过基于所述至少一个估算量化因子进行反量化而获取。
16.根据权利要求14所述的装置,其中,所述至少一个估算量化因子通过估算装置估算,所述估算装置包括:
第二获取单元,配置为,获取所述模型的至少一个训练样本,所述至少一个训练样本用于进行对所述模型的一次训练,其中每个训练样本包括用于输入所述模型的输入特征向量;
第三获取单元,配置为,在将所述至少一个训练样本的输入特征向量分别输入所述模型之后,分别获取在所述预定层输入的与各个训练样本分别对应的至少一个第二特征向量;
第一计算单元,配置为,基于所述至少一个第二特征向量,计算至少一个量化因子,其中,所述至少一个第二特征向量包括的全部分量基于所述预定分组规则被分为至少一个第二分组,所述至少一个量化因子与所述至少一个第二分组分别对应;
第四获取单元,配置为,获取所述模型的上一次训练的至少一个估算量化因子,所述上一次训练的至少一个估算量化因子通过所述估算装置计算、并与所述至少一个第二分组分别对应;以及
第二计算单元,配置为,基于所述至少一个量化因子、上一次训练的至少一个估算量化因子,通过移动平均法,计算本次训练的至少一个估算量化因子,其中,所述本次训练的至少一个估算量化因子与所述至少一个第二分组分别对应。
17.根据权利要求16所述的装置,其中,所述模型的自所述预定层开始的连续至少一层中基于所述第二特征向量的各分量的量化值进行计算,所述至少一层的最后一层的第二输出向量通过基于所述至少一个量化因子进行反量化而获取,其中,所述第二特征向量的各分量的量化值为通过对应的量化因子量化的、具有所述预定位数的定点数。
18.根据权利要求17所述的装置,其中,对所述模型的一次训练包括对自所述预定层开始的连续至少一层的反向梯度更新,其中,在所述反向梯度更新中,所述至少一层的损失函数在所述第二特征向量包括的第一分量处的梯度等于所述至少一层的损失函数在所述第一分量的量化值的反量化值处的梯度。
19.根据权利要求16所述的装置,其中,所述量化因子基于所述至少一个第二特征向量包括的全部分量中各个分量的绝对值的最大值、和所述预定位数确定。
20.根据权利要求16所述的装置,其中,所述量化因子基于所述至少一个第二特征向量包括的全部分量中各个分量的绝对值的最大值和最小值、及所述预定位数确定。
21.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
CN201811327527.XA 2018-11-08 2018-11-08 一种对模型中的特征向量进行量化的方法和装置 Pending CN109615068A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811327527.XA CN109615068A (zh) 2018-11-08 2018-11-08 一种对模型中的特征向量进行量化的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811327527.XA CN109615068A (zh) 2018-11-08 2018-11-08 一种对模型中的特征向量进行量化的方法和装置

Publications (1)

Publication Number Publication Date
CN109615068A true CN109615068A (zh) 2019-04-12

Family

ID=66003275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811327527.XA Pending CN109615068A (zh) 2018-11-08 2018-11-08 一种对模型中的特征向量进行量化的方法和装置

Country Status (1)

Country Link
CN (1) CN109615068A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111091184A (zh) * 2019-12-19 2020-05-01 浪潮(北京)电子信息产业有限公司 一种深度神经网络的量化方法、装置、电子设备及介质
CN111382576A (zh) * 2020-01-21 2020-07-07 沈阳雅译网络技术有限公司 一种基于离散型变量的神经机器翻译解码加速方法
CN112085175A (zh) * 2019-06-14 2020-12-15 华为技术有限公司 基于神经网络计算的数据处理方法和装置
CN112558887A (zh) * 2020-12-25 2021-03-26 北京百度网讯科技有限公司 用于多媒体数据处理的向量量化方法、装置及设备
WO2021073638A1 (zh) * 2019-10-18 2021-04-22 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
CN114492779A (zh) * 2022-02-16 2022-05-13 安谋科技(中国)有限公司 神经网络模型的运行方法、可读介质和电子设备
CN114528101A (zh) * 2022-02-14 2022-05-24 贵州电网有限责任公司 一种应用于电力边缘计算的神经网络的结构化动态量化方法
WO2023029579A1 (zh) * 2021-08-31 2023-03-09 上海商汤智能科技有限公司 神经网络推理量化的方法、装置、电子设备及存储介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112085175B (zh) * 2019-06-14 2024-05-03 华为技术有限公司 基于神经网络计算的数据处理方法和装置
CN112085175A (zh) * 2019-06-14 2020-12-15 华为技术有限公司 基于神经网络计算的数据处理方法和装置
WO2020249085A1 (zh) * 2019-06-14 2020-12-17 华为技术有限公司 基于神经网络计算的数据处理方法和装置
WO2021073638A1 (zh) * 2019-10-18 2021-04-22 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
CN111091184B (zh) * 2019-12-19 2022-03-22 浪潮(北京)电子信息产业有限公司 一种深度神经网络的量化方法、装置、电子设备及介质
CN111091184A (zh) * 2019-12-19 2020-05-01 浪潮(北京)电子信息产业有限公司 一种深度神经网络的量化方法、装置、电子设备及介质
CN111382576B (zh) * 2020-01-21 2023-05-12 沈阳雅译网络技术有限公司 一种基于离散型变量的神经机器翻译解码加速方法
CN111382576A (zh) * 2020-01-21 2020-07-07 沈阳雅译网络技术有限公司 一种基于离散型变量的神经机器翻译解码加速方法
CN112558887A (zh) * 2020-12-25 2021-03-26 北京百度网讯科技有限公司 用于多媒体数据处理的向量量化方法、装置及设备
CN112558887B (zh) * 2020-12-25 2023-09-22 北京百度网讯科技有限公司 用于多媒体数据处理的向量量化方法、装置及设备
WO2023029579A1 (zh) * 2021-08-31 2023-03-09 上海商汤智能科技有限公司 神经网络推理量化的方法、装置、电子设备及存储介质
CN114528101A (zh) * 2022-02-14 2022-05-24 贵州电网有限责任公司 一种应用于电力边缘计算的神经网络的结构化动态量化方法
CN114492779A (zh) * 2022-02-16 2022-05-13 安谋科技(中国)有限公司 神经网络模型的运行方法、可读介质和电子设备

Similar Documents

Publication Publication Date Title
CN109615068A (zh) 一种对模型中的特征向量进行量化的方法和装置
Zhou et al. Balanced quantization: An effective and efficient approach to quantized neural networks
CN112364908B (zh) 一种面向决策树的纵向联邦学习方法
CN108776807A (zh) 一种基于可跳层双支神经网络的图像粗细粒度分类方法
CN111553484A (zh) 联邦学习的方法、装置及系统
CN105787867B (zh) 基于神经网络算法的处理视频图像的方法和装置
CN111145116A (zh) 一种基于生成对抗网络的海面雨天图像样本增广方法
CN112700060B (zh) 站所终端负荷预测方法和预测装置
CN107274029A (zh) 一种利用动态场景内交互作用介质的未来预测方法
CN110929836B (zh) 神经网络训练及图像处理方法和装置、电子设备、介质
CN110175641A (zh) 图像识别方法、装置、设备和存储介质
CN110210233A (zh) 预测模型的联合构建方法、装置、存储介质及计算机设备
CN111738435B (zh) 一种基于移动设备的在线稀疏训练方法及系统
Zhuang et al. Training compact neural networks with binary weights and low precision activations
CN109800317A (zh) 一种基于图像场景图谱对齐的图像查询回答方法
CN109859166A (zh) 一种基于多列卷积神经网络的无参3d图像质量评估方法
CN108229536A (zh) 分类预测模型的优化方法、装置及终端设备
CN117574429A (zh) 一种边缘计算网络中隐私强化的联邦深度学习方法
CN106874506A (zh) 基于统计模型的社区挖掘方法及系统
CN109685772A (zh) 一种基于配准失真表示的无参照立体图像质量评估方法
CN117351542A (zh) 一种面部表情识别方法及系统
CN109871942B (zh) 神经网络的训练方法和装置、系统、存储介质
CN117350373B (zh) 一种基于局部自注意力机制的个性化联邦聚合算法
CN114723784A (zh) 一种基于域适应技术的行人运动轨迹预测方法
CN109063834A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.