CN113222102A - 用于神经网络模型量化的优化方法 - Google Patents
用于神经网络模型量化的优化方法 Download PDFInfo
- Publication number
- CN113222102A CN113222102A CN202011037856.8A CN202011037856A CN113222102A CN 113222102 A CN113222102 A CN 113222102A CN 202011037856 A CN202011037856 A CN 202011037856A CN 113222102 A CN113222102 A CN 113222102A
- Authority
- CN
- China
- Prior art keywords
- model
- tensors
- offline
- trained
- reasoning
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000011002 quantification Methods 0.000 title abstract description 5
- 238000003062 neural network model Methods 0.000 title description 4
- 238000005457 optimization Methods 0.000 title description 3
- 238000009826 distribution Methods 0.000 claims abstract description 45
- 230000004913 activation Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 56
- 230000015654 memory Effects 0.000 claims description 17
- 238000013473 artificial intelligence Methods 0.000 description 76
- 238000013139 quantization Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
实施方式涉及AI模型的张量的量化的优化系统和方法。根据一个实施方式,系统接收具有一个或多个层的AI模型。系统接收大量用于离线推理的输入数据,并基于输入数据将离线推理应用于AI模型,以生成AI模型的离线数据分布。系统基于离线数据分布对AI模型的一个或多个张量进行量化,以生成低位表示AI模型,其中AI模型的每个层都包含一个或多个张量,其中一个或多个张量包括激活、权重或偏差张量。在一个实施方式中,系统使用低位表示AI模型应用在线推理,以生成用于特征图的在线数据分布,并基于在线数据分布来量化特征图张量。
Description
技术领域
本公开的实施方式总体上涉及机器学习模型训练和推断。更具体地,本公开的实施方式涉及用于神经网络模型的量化的优化方法。
背景技术
量化是指减少代表数字的位数的过程。在人工智能(AI)机器学习模型的环境中,使用的主要数字格式是32位浮点数或FP32。具有较低位深的AI模型更快,因为具有32位浮点数的运算将几乎总是比8位或16位整数慢。此外,将AI模型从32位优化为8/16位将内存利用率降低约2-4倍。优化的AI模型需要较少的存储空间,并且更易于加载或更新。优化的AI模型还利用更少的缓存器/寄存器空间。因此,对于AI模型,需要更低的位宽。
发明内容
根据本公开的一方面,提供了计算机实施的方法,所述方法包括:
接收具有一个或多个层的训练过的AI模型;
接收用于离线推理的第一输入数据;
基于所述第一输入数据将离线推理应用于所述训练过的AI模型,以生成所述训练过的AI模型的离线数据分布;以及
基于所述离线数据分布来量化所述训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中所述AI模型的每个层包括所述一个或多个张量,其中所述一个或多个张量包括激活、权重或偏差张量。
根据本公开的另一方面,提供了数据处理系统,包括:
一个或多个处理器;以及
存储器,联接至所述一个或多个处理器以存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
接收具有一个或多个层的训练过的AI模型;
接收用于离线推理的第一输入数据;
基于所述第一输入数据将离线推理应用于所述训练过的AI模型,以生成所述训练过的AI模型的离线数据分布;以及
基于所述离线数据分布来量化所述训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中所述AI模型的每个层包括所述一个或多个张量,其中所述一个或多个张量包括激活、权重或偏差张量。
根据本公开的又一方面,提供了存储有指令的非暂时性机器可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
接收具有一个或多个层的训练过的AI模型;
接收用于离线推理的第一输入数据;
基于所述第一输入数据将离线推理应用于所述训练过的AI模型,以生成所述训练过的AI模型的离线数据分布;以及
基于所述离线数据分布来量化所述训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中所述AI模型的每个层包括所述一个或多个张量,其中所述一个或多个张量包括激活、权重或偏差张量。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考标记指示相似元件。
图1是示出根据一个实施方式的卷积神经网络模型的量化的示例框图。
图2是示出根据一个实施方式的用于量化AI模型的离线操作的示例框图。
图3是示出根据一个实施方式的对称量化模式的示意图。
图4是示出根据一个实施方式的非对称量化模式的示意图。
图5是示出根据一个实施方式的用于量化的去除异常值的示意图。
图6是示出根据一个实施方式的量化方法的流程图。
图7是示出根据一个实施方式的量化方法的流程图。
图8是示出根据一个实施方式的数据处理加速器单元的框图。
图9是示出根据一个实施方式的使用神经网络处理核的量化的框图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
以下实施方式涉及用于优化方法以将训练过的AI NN模型的权重、激活和/或特征图张量量化为低点精度表示的系统和方法。训练过的AI NN模型可以是有监督的AI模型,也可以是无监督的AI模型。AI NN模型可以是但不限于深度神经网络模型、单层或多层感知器、卷积NN模型、长期短期记忆(LSTM)模型、递归NN模型或强化学习AI模型等。
张量量化可以通过数据处理系统、中央处理单元(CPU)、图形处理单元(GPU)、通用处理单元或数据处理加速器来执行。在一个实施方式中,可以通过具有在流水线架构中的处理元件阵列的数据处理加速器来执行量化。应注意,张量是n维矩阵,其中n是任意自然数,例如0、1、2、3等。
根据一个实施方式,系统接收具有一个或多个层的训练过的AI模型。系统接收大量输入数据以进行离线推理。系统基于多个输入数据将离线推理应用至训练过的AI模型,以生成用于训练过的AI模型的离线数据分布。系统基于离线数据分布对训练过的AI模型的一个或多个张量进行量化以生成低位表示AI模型,其中AI模型的每个层都包括一个或多个张量,其中一个或多个张量包括激活、权重或偏差张量。
在一个实施方式中,系统使用低位表示AI模型来应用在线推理,以生成用于特征图的在线数据分布,并且基于在线数据分布来量化特征图张量。
可以将上述任何功能作为可执行指令编程至一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,处理系统使得功能得以实现。
以上功能中的任何一个都可以由具有至少一个硬件处理器的处理系统来实现,硬件处理器联接至用可执行指令编程的存储器,该可执行指令在执行时使得处理系统实现功能。
图1是示出根据一个实施方式的卷积神经网络模型的量化的示例框图。参照图1,模型100包括具有一个或多个层101-103的卷积神经网络模型。每个层可以具有一个或多个权重、偏差和/或激活的内核或矩阵或张量,将其与输入特征图相乘时会生成输出特征图。
为了进行推断,将模型100应用于输入特征图111,在其中对输入特征图111进行量化。通过量化器121-125逐层对模型100的每个层的输出进行量化。尽管示出了卷积神经网络模型,但是模型100可以是具有任何数量的层/通道的任何AI模型。
图2是示出根据一个实施方式的用于量化AI模型的离线操作的示例框图。操作200可以由AI引擎250或加速器(例如图8的加速器800)或数据处理系统执行。参照图2,在操作201处,处理逻辑接收具有单精度浮点格式(例如32位或FP32)的AI模型。FP32是一种数字格式,其可以以高数学精度代表很大范围的值,在计算机内存中占用32位。AI模型还可以具有更高的位宽,例如64位、128位等。在操作203处,模型将用足够的图像进行推断,以便对于AI模型的每个层生成一个或多个数据分布。在一个实施方式中,基于数据分布,处理逻辑移除异常值并且针对每次激活接收浮点最小值和最大值(例如,float_min和float_max)。
在操作205处,处理逻辑基于每个张量的float_min和float_max量化特征图、内核权重和偏差张量,以生成这些张量的每通道比例和零点。处理逻辑通过计算每通道比例(例如St=Sw*Sm/Sz)和偏移量(例如Zz+St*Zw*Zm–St*Qw*Zm)来量化张量,其中Sw是权重比例=(Fmax-Fmin)/255,Sm是第m层的特征图比例,Sz=Sm+1是第(m+1)层的特征图比例,Zz是第(m+1)层的特征图的零点或偏差点,Zw是零点权重,Zm是第m层的特征图的零点或偏差,以及Qw是量化权重。这里Qz和Qm是可变的,例如Qz和Qm根据每个层的输入而变化。张量量化可以进一步分为离线处理操作和在线处理操作。这些操作在下面进一步描述。
在操作207处,量化的信息被变换成设备可识别的格式。例如,将计算出的信息存储为模型块。在操作209处,模型块可以被部署并由用于推理的设备使用。应注意,AI引擎250可以包括离线处理模块和在线处理模块。AI引擎250可以被实现为加速器的一部分,例如图8的加速器800的NN处理核801,或者被实现为数据处理系统或边缘设备的一部分。
图3是示出根据一个实施方式的对称量化模式的示意图。参照图3,以对称模式将浮点值量化为8位整数或其它表示。浮点值可以是权重、偏差、激活函数值,也可以是要量化的AI模型的一部分的任何浮点值。此处,8位表示可以存储0-255个值,或-128到127。对称模式选择两个端点的最大值,例如,浮点值的最小值和最大值的绝对值中的最大值,例如Xf。在对称模式下,不存在零点值(或偏差),因此要量化的浮点范围和8位量化表示相对于零是对称的。
对称模式下的量化值x的公式为:
Qx=round(scale*x),
其中Qx是x的量化表示,scale(比例)是128/(max(-|Xf|,|Xf|),round(舍入)是舍入至最接近整数的舍入函数,x是要量化的值,以及Xf是max(abs(float_min),abs(float_max))。
如图2所示,在一个实施方式中,权重、偏差、激活函数浮点量化是离线执行的。在此,可以预先确定AI模型每个层的浮点范围,并根据从离线推断大量输入样本集中得出的离线数据分布对张量进行量化。但是,在线推理期间,每个层的特征图可能具有可变范围。因此,在一个实施方式中,特征图张量是在线量化的,其中量化可以表示为:
Qm+1=(Sw*Sm/Sm+1)*Qw*Qm,
Qm+1=St*Qw*Qm,
其中St=Sw*Sm/Sm+1,Sm是第m层的特征图比例,Sm+1是第(m+1)层的特征图比例,Sw是权重比例,Qw是量化权重,Qm是第m层的量化特征图。在此,St和Qw是已知的并且对于所有层都是离线计算的。应注意,离线推理是指基于样本输入集在量化之前使用AI模型(例如具有单精度浮点格式的AI模型)进行推理来确定AI模型的量化权重、激活函数和/或偏差张量。在线推断是指使用具有量化权重、激活函数和/或偏差张量的AI模型进行实时推断。在线推断可以确定特征图张量的量化。
基于量化张量,AI模型可以由低位(例如8位)表示来表示。对于对称模式,如果系统未选择正确的最大值,或者模型值的分布严重偏向一侧,例如,float_min和float_max之间的分布不均匀,则AI模型的量化误差可能会较高。
图4是示出根据一个实施方式的非对称量化模式的示意图。参照图4,以非对称模式将浮点值量化为8位表示。对于非对称模式,浮点范围(float_min,float_max)的最小值和最大值映射到量化整数范围0到255的最小值/最大值。除了比例因子,还使用了零点(或量化偏差或偏移量)。
非对称模式下x的量化值公式可以为:
Qx=round((x-float_min)*128/range)=round(scale*x-zero_point),
其中Qx是x的量化表示,scale是比例因子=128/range,zero_point是float_min*128/范围,以及range(范围)=float_max-float_min。
如图2所示,在一个实施方式中,权重、偏差、激活函数张量量化可以离线进行。在此,可以使用离线数据分布和基于离线数据分布量化的张量来确定AI模型和/或AI模型的每个层的浮点范围,其中,离线数据分通过基于大量输入样本集离线推断得到。但是,每个层的特征图都有可变范围。因此,在一个实施方式中,特征图张量是在线量化的,或在推理过程中计算的,其中量化公式表示为:
Qz=Zz+(Sw*Sm/Sz)*(Qw-Zw)*(Qm-Zm),
Qz=Zz+St*(Qw-Zw)*(Qm-Zm),
Qz=(Zz+St*Zw*Zm–St*Qw*Zm)+St*(Qw-Zw)*Qm,
Qm+1=Offset+St*(Qw-Zw)*Qm,
其中,Offset(偏移量)=Zz+St*Zw*Zm-St*Qw*Zm,St=Sw*Sm/Sz,Sw是权重比例=(float_max-float_min)/255,Sm是第m层的特征图比例,Sz=Sm+1是第(m+1)层的特征图比例,Zw是零点权重值,Zm是第m层的特征图的零点或偏差,Zz是第(m+1)层的特征图的零点或偏差点,Qw是权重值的量化,Qm是第m层的量化特征图值,以及Qz是第(m+1)层的量化特征图值。应注意,St、Offset和Zw是通过离线推断为所有层计算的。
在一个实施方式中,在AI模型的每个通道上执行比例、零点或偏差值和量化值。例如,具有三色通道(红-蓝-绿通道)的CNN模型可以具有针对三色通道的三个独立的比例集、零点或偏差值以及量化值。尽管出于说明的目的使用了CNN模型,但是可以将量化应用于具有一个或多个通道的其它类型的AI模型。
应注意,Qz和Qm是每个层的变量值,并且变量值根据层的每个特征图输入而变化。因此在在线推理期间计算Qz和Qm。
图5是示出根据一个实施方式的用于量化的去除异常值的示意图。在某些情况下,AI模型的任何张量的浮点范围(例如float_min和float_max)都包含异常值。使用异常值来量化张量会增加精度或失真的损失。在一个实施方式中,参考图5,从动态范围(例如,float_min和float_max)中消除了预定数量的异常值。在一个实施方式中,在确定量化范围之前,从量化范围的任一侧的末端去除两个异常值。
图6是示出根据一个实施方式的量化方法的流程图。过程600可以由处理逻辑来执行,该处理逻辑可以包括软件、硬件或其组合。例如,过程600可以由图2的AI引擎250或图8的加速器800或主机系统执行。参照图6,在框601处,处理逻辑接收具有一个或多个层的训练过的AI模型。在框602处,处理逻辑接收用于离线推理的多个输入数据。在框603处,处理逻辑基于输入数据将离线推理应用于训练过的AI模型,以生成用于训练过的AI模型的离线数据分布。在框604处,处理逻辑基于离线数据分布来量化训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中AI模型的每个层包括一个或多个张量,其中一个或多个张量包括激活、权重或偏差张量。
图7是示出根据一个实施方式的量化方法的流程图。过程700可以由处理逻辑来执行,该处理逻辑可以包括软件、硬件或其组合。例如,过程700可以由图2的AI引擎250或图8的加速器800或主机系统执行。参照图7,在框701处,处理逻辑接收用于在线推理的输入数据。在框702处,处理逻辑基于输入数据使用低位表示AI模型来应用在线推理以生成用于特征图的在线数据分布。在框703处,处理逻辑基于用于特征图的在线数据分布来量化低位表示AI模型的一个或多个特征图张量。
在一个实施方式中,针对低位表示AI模型的一个或多个层中的每个层量化特征图张量。在一个实施方式中,通过处理元件的二维阵列来量化一个或多个特征图张量。在一个实施方式中,一个或多个张量中的一个包括8位整数表示。在一个实施方式中,基于范围的比例因子,针对与张量相对应的数据分布的范围对张量之一进行对称地量化。
在一个实施方式中,基于不对称范围的偏移量和比例因子,针对与张量相对应的数据分布的范围对张量之一进行不对称地量化。在一个实施方式中,处理逻辑进一步识别所生成的数据分布中的异常点,并去除预定数量的所识别的异常点。
在一个实施方式中,输入数据包括一个或多个通道,并且针对一个或多个通道中的每个生成数据分布,并且在每个通道的基础上量化一个或多个张量。在一个实施方式中,训练过的AI模型的一个或多个张量被离线量化,并且量化的张量信息被存储为模型块。
应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
图8是示出根据一个实施方式的数据处理加速器单元的框图,该数据处理加速器单元可以与本发明的一个实施方式一起使用。例如,加速器800可以执行上述的任何过程或方法,例如上述的过程600和过程700。
加速器800可以包括许多不同的部件。这些部件可实施为集成电路(IC)、集成电路的部分、分立电子装置或适用于电路板(诸如,计算机系统的PCIE板或插入卡)的其它模块或者实施为以其它方式并入计算机系统的机架内的部件。
在一个实施方式中,加速器800包括经由总线或互连810的处理核801和存储器803。在一个实施方式中,总线810包括使用高级可扩展接口(AXI)协议的AXI总线。处理核801可以代表其中包括单个处理器核或多个处理器核的单个处理器或多个处理器。处理核801可以代表一个或多个通用处理器,例如微处理器、中央处理单元(CPU)、图形处理单元(GPU)、加速器单元等。在一个实施方式中,处理核801代表AI引擎,例如图2的AI引擎250。在一个实施方式中,处理核801包括一个或多个乘法累加单元(MAC)821、累加器822、向量引擎823和变换引擎824来操纵张量。
乘法累加单元(MAC)821可以执行乘法和累加处理。累加器822可以存储用于MAC821的结果。向量引擎823可以执行向量(数据的一维阵列)操作以基于累加器822的数据来产生结果。变换引擎824可以执行到张量的变换。向量引擎823的结果可以被馈送到下一个时钟周期的MAC 821。
在一个实施方式中,加速器800包括数字信号处理器(DSP)或精简指令集计算(RISC)微处理器804、动态存储器访问(DMA)805、图像信号处理器(ISP)806、DDR控制器(DDRCtrl)807和高速串行计算机扩展总线标准(PCIE)808。
加速器800可以被配置为执行用于执行本文所讨论的操作和步骤的全部或部分的指令。加速器800可以与存储器803通信,存储器803在一个实施方式中可以经由多个存储器设备来实现以提供给定量的加速器存储器。存储器803可以包括一个或多个易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储设备。存储器803可以存储包括由处理核801或任何其它设备执行的指令序列的信息。
加速器800可以进一步包括相机设备811以捕获用于ISP 806的图像、联接至DDR控制器807以与DDR控制器807通信的DDR存储器812。加速器800在一个实施方式中通过PCIE808联接至主机813。主机813可以是任何数据处理系统。
图9是示出根据一个实施方式的使用神经网络处理核的量化的框图。核900可以被实现为软件或硬件模块。核900可以代表图8的NN处理核801或图2的AI引擎250。参照图9,核900包括MAC 821作为处理元件(PE)901的二维阵列。每个PE 901都可以执行乘法和累加运算,例如Qm*(Qw-Zw)。PE 901可以是具有NxN尺寸的脉动阵列,其中N等于或大于AI模型的层数。在这里,脉动阵列可以有效地执行乘法和累加。数据可以以流水线方式在PE单元之间流动,因此不需要加载/存储中间结果。例如,Qm在PE 901的顶部输入,而(Qw-Zw)在PE 901的左侧输入。对于每个时钟周期,数据沿一个方向(例如,从左到右和/或从上到下)流动,并且根据每个PE上输入的数据计算结果。在一个实施方式中,Qm和(Qw-Zw)中的每个在每个时钟周期流动,从而对应于一层的Qw和Zw被应用于该层的Qm以产生中间结果(例如,intermediate_result=(Qw-Zw)*Qm)。PE的中间结果存储在累加器822中。向量引擎823然后可以基于累加器822处的数据执行向量累加(例如,Offset+St*intermediate_result)。向量引擎823(例如,Qm+1)的结果可以在下一个时钟周期馈入MAC821。如图所示,在某些时钟周期之后,PE 901可以计算每个层的Qm。应注意出于说明的目的,图9仅显示了一个结果周期。应注意其它乘累加实现也是可行的。例如,如果Qw和Zw对于AI模型的每个层都相同,则Qw和Zw的数据流可能是固定的。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。
附图中所示的技术可以使用在一个或多个电子设备上存储和执行的代码和数据来实现。这样的电子设备使用计算机可读介质(例如,非暂时性计算机可读存储介质(例如,磁盘、光盘、随机存取存储器、只读存储器、闪存设备、相变存储器))以及暂时性计算机可读传输介质(例如电、光、声或其它形式的传播信号-例如载波、红外信号、数字信号)存储和通信(内部和/或通过网络与其它电子设备通信)代码和数据。
前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。
在以上的说明书中,已经参考本发明的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (20)
1.计算机实施的方法,所述方法包括:
接收具有一个或多个层的训练过的AI模型;
接收用于离线推理的第一输入数据;
基于所述第一输入数据将离线推理应用于所述训练过的AI模型,以生成所述训练过的AI模型的离线数据分布;以及
基于所述离线数据分布来量化所述训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中所述AI模型的每个层包括所述一个或多个张量,其中所述一个或多个张量包括激活、权重或偏差张量。
2.根据权利要求1所述的方法,还包括:
接收用于在线推理的第二输入数据;
基于所述第二输入数据使用所述低位表示AI模型应用在线推理,以生成特征图的在线数据分布;以及
基于所述特征图的所述在线数据分布,为所述低位表示AI模型量化一个或多个特征图张量。
3.根据权利要求2所述的方法,其中针对所述低位表示AI模型的所述一个或多个层中的每个层来量化特征图张量。
4.根据权利要求2所述的方法,其中所述一个或多个特征图张量通过处理元件的二维阵列来量化。
5.根据权利要求1所述的方法,其中所述一个或多个张量中的至少一个包括8位整数表示。
6.根据权利要求1所述的方法,其中针对对应于所述张量的数据分布的范围、基于所述范围的比例因子,对所述张量中的至少一个进行对称地量化。
7.根据权利要求1所述的方法,其中针对对应于所述张量的数据分布的范围、基于所述范围的偏移量和比例因子,对所述张量中的至少一个进行非对称地量化。
8.根据权利要求1所述的方法,还包括:
识别所述离线数据分布中的异常点;以及
去除预定数量的所识别出的异常点。
9.根据权利要求1所述的方法,其中所述第一输入数据包括一个或多个通道,并且针对所述一个或多个通道中的每个通道生成所述离线数据分布,并且基于每个通道来量化所述一个或多个张量。
10.根据权利要求1所述的方法,其中所述训练过的AI模型的所述一个或多个张量被离线量化,并且所量化的张量信息被存储为模型块。
11.数据处理系统,包括:
一个或多个处理器;以及
存储器,联接至所述一个或多个处理器以存储指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
接收具有一个或多个层的训练过的AI模型;
接收用于离线推理的第一输入数据;
基于所述第一输入数据将离线推理应用于所述训练过的AI模型,以生成所述训练过的AI模型的离线数据分布;以及
基于所述离线数据分布来量化所述训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中所述AI模型的每个层包括所述一个或多个张量,其中所述一个或多个张量包括激活、
权重或偏差张量。
12.根据权利要求11所述的系统,其中所述操作还包括:
接收用于在线推理的第二输入数据;
基于所述第二输入数据使用所述低位表示AI模型应用在线推理,以生成特征图的在线数据分布;以及
基于所述特征图的所述在线数据分布,为所述低位表示AI模型量化一个或多个特征图张量。
13.根据权利要求12所述的系统,其中针对所述低位表示AI模型的所述一个或多个层中的每个层来量化特征图张量。
14.根据权利要求12所述的系统,其中所述一个或多个特征图张量通过处理元件的二维阵列来量化。
15.根据权利要求11所述的系统,其中所述一个或多个张量中的至少一个包括8位整数表示。
16.存储有指令的非暂时性机器可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:
接收具有一个或多个层的训练过的AI模型;
接收用于离线推理的第一输入数据;
基于所述第一输入数据将离线推理应用于所述训练过的AI模型,以生成所述训练过的AI模型的离线数据分布;以及
基于所述离线数据分布来量化所述训练过的AI模型的一个或多个张量,以生成低位表示AI模型,其中所述AI模型的每个层包括所述一个或多个张量,其中所述一个或多个张量包括激活、权重或偏差张量。
17.根据权利要求16所述的非暂时性机器可读介质,其中所述操作还包括:
接收用于在线推理的第二输入数据;
基于所述第二输入数据使用所述低位表示AI模型应用在线推理,以生成特征图的在线数据分布;以及
基于所述特征图的所述在线数据分布,为所述低位表示AI模型量化一个或多个特征图张量。
18.根据权利要求17所述的非暂时性机器可读介质,其中针对所述低位表示AI模型的所述一个或多个层中的每个层来量化特征图张量。
19.根据权利要求17所述的非暂时性机器可读介质,其中所述一个或多个特征图张量通过处理元件的二维阵列来量化。
20.根据权利要求16所述的非暂时性机器可读介质,其中所述一个或多个张量中的至少一个包括8位整数表示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/784,223 US11704556B2 (en) | 2020-02-06 | 2020-02-06 | Optimization methods for quantization of neural network models |
US16/784,223 | 2020-02-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113222102A true CN113222102A (zh) | 2021-08-06 |
CN113222102B CN113222102B (zh) | 2024-04-26 |
Family
ID=77085765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011037856.8A Active CN113222102B (zh) | 2020-02-06 | 2020-09-28 | 用于神经网络模型量化的优化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11704556B2 (zh) |
CN (1) | CN113222102B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291876B (zh) * | 2020-01-21 | 2023-03-28 | 星宸科技股份有限公司 | 运算装置、运算方法和运算芯片 |
US11915126B2 (en) * | 2020-09-04 | 2024-02-27 | Recogni Inc. | Low power hardware architecture for a convolutional neural network |
US11961392B2 (en) * | 2021-03-04 | 2024-04-16 | The University Of North Carolina At Charlotte | Worker-in-the-loop real time safety system for short-duration highway workzones |
US20230008014A1 (en) * | 2021-07-07 | 2023-01-12 | Renesas Electronics Corporation | Data processing device, data-processing method and recording media |
US20230401433A1 (en) * | 2022-06-09 | 2023-12-14 | Recogni Inc. | Low power hardware architecture for handling accumulation overflows in a convolution operation |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336484B1 (en) * | 2011-09-26 | 2016-05-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) | System and method for outlier detection via estimating clusters |
CN108805796A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于整数深度学习原语的动态精度管理 |
US20190012559A1 (en) * | 2017-07-06 | 2019-01-10 | Texas Instruments Incorporated | Dynamic quantization for deep neural network inference system and method |
CN110059822A (zh) * | 2019-04-24 | 2019-07-26 | 苏州浪潮智能科技有限公司 | 一种基于通道分组低比特神经网络参数压缩量化方法 |
CN110263839A (zh) * | 2019-06-13 | 2019-09-20 | 河海大学 | 基于大数据的电力系统负荷静态特性在线智能识别方法 |
CN110458195A (zh) * | 2019-07-10 | 2019-11-15 | 河海大学 | 一种基于多判据融合的异常数据甄别方法 |
US20200193270A1 (en) * | 2018-12-12 | 2020-06-18 | Kneron (Taiwan) Co., Ltd. | Low precision and coarse-to-fine dynamic fixed-point quantization design in convolution neural network |
US20200257966A1 (en) * | 2019-02-13 | 2020-08-13 | Mipsology SAS | Quality monitoring and hidden quantization in artificial neural network computations |
-
2020
- 2020-02-06 US US16/784,223 patent/US11704556B2/en active Active
- 2020-09-28 CN CN202011037856.8A patent/CN113222102B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336484B1 (en) * | 2011-09-26 | 2016-05-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) | System and method for outlier detection via estimating clusters |
CN108805796A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于整数深度学习原语的动态精度管理 |
US20190012559A1 (en) * | 2017-07-06 | 2019-01-10 | Texas Instruments Incorporated | Dynamic quantization for deep neural network inference system and method |
US20200193270A1 (en) * | 2018-12-12 | 2020-06-18 | Kneron (Taiwan) Co., Ltd. | Low precision and coarse-to-fine dynamic fixed-point quantization design in convolution neural network |
US20200257966A1 (en) * | 2019-02-13 | 2020-08-13 | Mipsology SAS | Quality monitoring and hidden quantization in artificial neural network computations |
CN110059822A (zh) * | 2019-04-24 | 2019-07-26 | 苏州浪潮智能科技有限公司 | 一种基于通道分组低比特神经网络参数压缩量化方法 |
CN110263839A (zh) * | 2019-06-13 | 2019-09-20 | 河海大学 | 基于大数据的电力系统负荷静态特性在线智能识别方法 |
CN110458195A (zh) * | 2019-07-10 | 2019-11-15 | 河海大学 | 一种基于多判据融合的异常数据甄别方法 |
Non-Patent Citations (1)
Title |
---|
KRISHNAMOORTHI, R: "Quantizing deep convolutional networks for efficient inference: a whitepaper", ARXIV, pages 1 - 36 * |
Also Published As
Publication number | Publication date |
---|---|
US11704556B2 (en) | 2023-07-18 |
CN113222102B (zh) | 2024-04-26 |
US20210248456A1 (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113222102B (zh) | 用于神经网络模型量化的优化方法 | |
US11308398B2 (en) | Computation method | |
CN110880038B (zh) | 基于fpga的加速卷积计算的系统、卷积神经网络 | |
CN110413255B (zh) | 人工神经网络调整方法和装置 | |
US10096134B2 (en) | Data compaction and memory bandwidth reduction for sparse neural networks | |
US20200097828A1 (en) | Processing method and accelerating device | |
CN110245741A (zh) | 多层神经网络模型的优化和应用方法、装置及存储介质 | |
US20180260710A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
CN109800865B (zh) | 神经网络生成及图像处理方法和装置、平台、电子设备 | |
CN110163240B (zh) | 对象识别方法及设备 | |
CN112673383A (zh) | 神经网络核中动态精度的数据表示 | |
CN112508125A (zh) | 一种图像检测模型的高效全整数量化方法 | |
US11341400B1 (en) | Systems and methods for high-throughput computations in a deep neural network | |
CN111695671A (zh) | 训练神经网络的方法及装置、电子设备 | |
KR20190130443A (ko) | 뉴럴 네트워크의 양자화 방법 및 장치 | |
KR20190098671A (ko) | 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치 | |
CN112132255A (zh) | 人工智能神经网络引擎中模型推断的批量归一化层融合和量化方法 | |
CN111723901A (zh) | 神经网络模型的训练方法及装置 | |
CN110874628A (zh) | 人工神经网络及其中控制定点的方法 | |
CN112651485A (zh) | 识别图像的方法和设备以及训练神经网络的方法和设备 | |
CN115129386A (zh) | 用于神经网络部署和执行的有效优化 | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
CN115080139A (zh) | 用于神经网络部署和执行的有效量化 | |
CN115080138A (zh) | 用于神经网络部署和执行的有效存储器使用优化 | |
CN111788567B (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 |