CN117836778A - 用于确定用于神经网络的量化的基于饱和比率的量化范围的方法及设备 - Google Patents
用于确定用于神经网络的量化的基于饱和比率的量化范围的方法及设备 Download PDFInfo
- Publication number
- CN117836778A CN117836778A CN202280051582.9A CN202280051582A CN117836778A CN 117836778 A CN117836778 A CN 117836778A CN 202280051582 A CN202280051582 A CN 202280051582A CN 117836778 A CN117836778 A CN 117836778A
- Authority
- CN
- China
- Prior art keywords
- quantization range
- saturation ratio
- quantization
- neural network
- range
- 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
- 238000013139 quantization Methods 0.000 title claims abstract description 222
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000008569 process Effects 0.000 claims description 35
- 238000012549 training Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 1
- 230000004913 activation Effects 0.000 description 47
- 238000001994 activation Methods 0.000 description 47
- 238000009499 grossing Methods 0.000 description 22
- 230000008859 change Effects 0.000 description 13
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 10
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000007423 decrease Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/08—Learning methods
-
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
公开了一种用于基于饱和比率确定用于人工神经网络的量化的量化范围的方法和设备。根据本发明的一个方面,提供了一种用于确定用于人工神经网络的张量的量化范围的计算机实现的方法和设备,包括根据所述人工神经网络的所述张量和所述量化范围观测在当前迭代中的饱和比率;以及调整量化范围,使得所观测的饱和比率遵循预定的目标饱和比率。
Description
【技术领域】
本公开的实施例涉及一种用于确定用于神经网络量化的量化范围的方法和设备,并且更具体地,涉及一种用于基于饱和比率确定量化范围的方法和设备,所述饱和比率是在量化范围之外的张量的比率。
【背景技术】
以下描述的内容仅提供与本公开相关的背景信息,而不构成现有技术。
人工神经网络(ANN)可以指基于构成动物大脑的生物神经网络的计算系统。人工神经网络(ANN)具有表示人工神经元的节点通过突触连接的结构。节点可处理通过突触接收的信号并将经处理的信号传送给其它节点。来自每个节点的信号通过与节点相关联的权重和与突触相关联的权重被传输到其他节点。当在一个节点处处理的信号被发送到下一节点时,其影响根据权重而变化。
这里,与节点相关联的权重被称为偏置,并且节点的输出被称为激活。权重、偏置和激活可以被称为张量。也就是说,张量是包括权重、偏置和激活中的至少一个的概念。
同时,人工神经网络可以用于各种机器学习操作,诸如图像分类和对象识别。可以通过扩展一个或多个维度(诸如网络深度、网络宽度和图像分辨率)来提高人工神经网络的精度。然而,这导致计算复杂度和内存要求增加以及能量消耗和执行时间增加的问题。
为了降低计算复杂度,正在研究人工神经网络的量化。这里,量化是指将张量值从具有宽数据表示范围的维度映射到具有窄数据表示范围的维度。换句话说,量化意味着处理神经网络运算的处理器将高精度张量映射到低精度值。在人工神经网络中,量化可以应用于包括层的激活、权重和偏置的张量。
量化可通过将全精度权重和激活转换成低精度表示来降低神经网络的计算复杂度。例如,在人工神经网络的训练期间通常使用的32位浮点数FP32被转换成8位整数INT8,其是在训练完成之后的离散值。因此,降低了神经网络推理所需的计算复杂度。
量化可以应用于具有高精度的所有张量,但是通常应用于落入特定范围内的张量。即,为了量化张量,需要首先根据具有高精度的张量的值来决定量化范围。这里,确定量化范围被称为校准。在下文中,确定量化范围的设备被称为范围确定设备或校准设备。
一旦确定了量化范围,就将高精度张量当中的包括在量化范围中的张量映射到低精度值。另一方面,量化范围之外的张量被映射到低精度表示范围的最大值或最小值。将量化范围外的张量映射到低精度表示范围的最大值或最小值的状态称为饱和状态。
图1a和图1b是示出人工神经网络的量化和饱和的图。
图1a和图1b示出了量化以FP32表示的张量以使得它们以INT8表示的进程。
为了降低神经网络推理的计算复杂度,在FP32系统中高精度表示的张量可以通过量化被量化为具有低精度的INT8系统。
对于张量的量化,用于确定量化范围的范围确定设备确定FP32表示系统中的量化范围。即,范围确定设备确定用于限幅张量的量化范围的阈值T。
这里,根据量化范围,由于张量的饱和而发生失真或分辨率降低。由于张量的饱和而导致的失真和分辨率降低处于折衷关系。
如图1a所示,当范围确定设备将量化范围设置为宽时,以FP32表示的所有张量都包括在量化范围中。量化范围中包含的张量不太可能饱和。也就是说,它们被映射到INT8表示系统的最大值或最小值的概率低。这意味着由于张量的饱和而存在较少的失真。
但是,当设置宽的量化范围时,FP32系统中具有不同值的张量在INT8系统中具有相同值的概率增加。当由于量化而将具有高精度的张量映射到相同的值时,张量的分辨率降低。张量的分辨率越低,神经网络的性能越低。
因此,当设置宽的量化范围时,由于张量的饱和导致的失真减小,但是张量的分辨率也减小。
另一方面,当范围确定设备设置如图1b所示的窄的量化范围时,以FP32表示的张量的一部分包括在量化范围内,其它部分在量化范围外。由于窄的量化范围,在FP32系统中具有不同值的张量可能在INT8系统中具有不同的值。这意味着张量的分辨率的降低是有限的。
然而,当设置窄的量化范围时,未包括在量化范围-T到T内的张量可映射到INT8表示系统的最大值或最小值。例如,当INT8表示系统的最大值和最小值分别为127和-127时,量化范围外的张量被映射到127或-127。否则,可以删除或忽略量化范围之外的张量而不进行量化。也就是说,由于张量的饱和而发生失真。由于张量的饱和引起的失真越大,神经网络的性能越低。
因此,当设置窄的量化范围时,存在量化张量的分辨率降低得较少而由于饱和引起的失真增加的问题。
为了控制由于张量的饱和引起的失真和分辨率降低之间的折衷,范围确定设备需要确定适当的量化范围。也就是说,需要确定量化范围以包括表示人工神经网络的任务特性的数据。
图2是示出确定量化范围的传统进程的图。
参照图2,在进程S200中,在人工神经网络中将激活计算为张量。激活可以通过包括在神经网络中的节点的激活函数来计算。
在进程S210中,对所计算的激活进行分类,或者根据激活生成直方图。
在进程S220中,直方图的水平轴表示激活值,垂直轴表示激活的数量。通常,激活的分布具有激活的数量随着激活值的增加而减少的形式。在进程S220和进程S230中,直方图示出了仅将激活表示为正数的情况。这仅仅是一个实施例,并且激活可以包括正数、0和负数中的所有,如图1a和图1b所示。
在进程S230中,确定用于量化范围的限幅阈值。在进程S230中,大于限幅阈值的激活的5%可以被映射到对应于FP32系统中的量化范围的最大值的INT8系统值。作为另一个例子,如果激活包括正数、零和负数,则限幅阈值可以具有上限和下限。大于限幅阈值上限的激活可映射到INT8系统的最大值,而小于限幅阈值下限的激活可映射到INT8系统的最小值。
确定量化范围的常规方法通过直方图生成来分析激活的分布,且基于激活的分布来确定量化范围。
用于确定量化范围的代表性传统方法包括基于熵的确定方法、基于预设比率的确定方法和基于最大值的确定方法。基于熵的确定方法是确定量化范围以使得根据量化前后的分布的Kullback-Leibler散度(KLD)最小化的方法。基于预设比率的确定方法是确定量化范围使得量化范围包括预设比率的张量的方法。基于最大值的确定方法是将激活的最大值确定为量化范围的最大值的方法。
然而,传统的量化范围确定方法由于直方图生成、分类和最小/最大计算而具有计算复杂度高的问题。
由于传统的量化范围确定方法具有高计算复杂度,因此在分配训练的神经网络之前,由PC或服务器以优异的计算性能执行这些方法。这是因为,由于计算复杂性,在具有低计算性能的通用设备或移动设备中难以调整量化范围。换句话说,具有低计算性能的低性能设备别无选择,只能使用固定量化范围来执行推断。这成为降低神经网络性能的因素。存在在人工神经网络的推理阶段量化范围固定的问题。
因此,需要研究通过降低用于确定量化范围的计算复杂度来即使在推理阶段也调整量化范围的方法。
【本公开】
【技术问题】
本公开的实施例的目的是提供一种量化范围确定方法和设备,用于通过在不生成直方图的情况下观测张量的饱和比率并且确定量化范围使得观测到的饱和比率遵循目标饱和比率,来降低计算复杂度同时最小化人工神经网络的性能劣化。
本公开的其它实施例的目的是提供一种量化范围确定方法和设备,其不仅可应用于人工神经网络的训练阶段,而且可应用于推理阶段,即,即使在通过低计算复杂度分配经训练的神经网络之后。
【技术方案】
根据本公开的一个方面,提供了一种确定用于人工神经网络的张量的量化范围的计算机实现的方法,所述方法包括根据所述张量和所述人工神经网络的量化范围来观测在当前迭代中的饱和比率;以及调整量化范围,使得所观测的饱和比率遵循预设的目标饱和比率。
根据本公开的另一方面,提供了一种设备,其包括存储器;以及处理器,被配置为执行存储在存储器中的计算机可执行过程,其中,计算机可执行过程包括观测器,被配置为根据张量以及人工神经网络的量化范围来观测在当前迭代中的饱和比率;以及控制器,被配置为调整量化范围,使得所观测的饱和比率遵循预设的目标饱和比率。
【有益效果】
如上所述,根据本发明的实施例,张量的饱和比率被观测而不生成直方图,并且量化范围被确定,使得观测的饱和比率遵循目标饱和比率,从而最小化人工神经网络的性能劣化并降低计算复杂度。
根据本发明的另一实施例,由于计算复杂度低,因此不仅可以在人工神经网络的训练阶段期间,而且可以在推理阶段(即,分配经训练的神经网络之后),调整量化范围。
根据本发明的另一实施例,可以在人工神经网络的推理阶段调整量化范围,因此可以通过对用户数据的自适应校准来提高神经网络的精度。
根据本发明的另一实施例,由于可以在人工神经网络的推理阶段调整量化范围,因此可以通过在部署人工神经网络之前省略校准来实现便利性和数据安全性。
【附图说明】
图1a和图1b是示出人工神经网络的量化和饱和的图。
图2是示出确定量化范围的传统进程的图。
图3是示出根据本发明实施例的确定量化范围的方法的图。
图4是示出根据本发明实施例的调整量化范围的进程的图。
图5是示出根据本发明实施例的调整量化范围的进程的流程图。
图6是根据本发明实施例的用于确定量化范围的设备的配置图。
【具体实施方式】
在下文中,将参考附图详细描述本公开的一些实施例。在以下描述中,尽管在不同的附图中示出了相同的元件,但是相同的附图标记优选地表示相同的元件。此外,在一些实施例的以下描述中,为了清楚和简洁的目的,将省略对其中结合的已知功能和配置的详细描述。
另外,诸如第一、第二、(a)、(b)等的各种术语仅用于将一个组件与另一个组件区分开,而不是暗示或暗示组件的实质、顺序或次序。在整个说明书中,当部件“包括”或“包含”一种组件时,该部件意味着进一步包括其它组件,除非有相反的具体说明,否则不排除其它组件。诸如“单元”、“模块”等术语是指用于处理至少一个功能或操作的一个或多个单元,其可以通过硬件、软件或其组合来实现。
在本公开中,张量包括权重、偏置和激活中的至少一个。然而,为了便于以下描述,张量被描述为激活。当张量表示激活时,张量可以被称为特征数据,并且可以是人工神经网络中的至少一个层的输出。另外,根据本公开的实施例的确定量化范围的方法可以应用于人工神经网络的训练阶段和推理阶段两者,因此张量可以由层从人工神经网络的训练阶段中的训练数据或推理阶段中的用户数据导出。具体地,通过将根据本公开的实施例的确定量化范围的方法应用于推理阶段,可以根据用户的输入数据来调整量化范围。因此,可以提高根据用户的输入数据的神经网络的精度。
图3是示出根据本发明实施例的确定量化范围的方法的图。
图3示出了量化范围确定设备300(此后称为范围确定设备)、控制器302、观测器304、层N-1 310、层N 312和层N+1 314。范围确定设备300包括控制器302和观测器304。
人工神经网络(ANN)或深度学习架构可以具有包括至少一个层的结构。在图3中,层N-1 310、层N 312和层N+1 314可以构成人工神经网络。人工神经网络可以具有任何神经网络架构(诸如卷积神经网络和循环神经网络),确定量化范围的方法可以应用于该神经网络架构。
人工神经网络可以由输入层、隐藏层和输出层组成,并且每一层的输出可以是后续层的输入。每个层包括多个节点,并且使用多条训练数据来训练。这里,训练数据指的是由人工神经网络处理的输入数据,诸如音频数据和视频数据。
在图3中,激活N-1,其为层N-1 310的信号处理结果,从层N-1 310被传输到层N312,并且对激活N-1执行算术运算。该算术运算指的是根据权重和偏差、卷积运算等计算输入到节点的值。通过激活函数根据层N 312的算术运算的结果计算层N 312的激活。此后,将激活量化,且将量化的激活传输到层N+1 314。
神经网络运算(诸如上述算术运算、激活函数运算和激活量化)由处理神经网络运算的设备(以下称为处理设备)执行。即,处理设备是通过处理包括在神经网络中的层N-1310、层N 312和层N+1 314的操作来执行学习或推断的设备。
根据本公开的实施例的范围确定设备300从人工神经网络的激活和量化范围观测在当前迭代中的饱和比率,并且调整量化范围,使得观测到的饱和比率遵循预设的目标饱和比率。初始迭代的量化范围可以是预设范围,并且可以在每次迭代时调整量化范围。范围确定设备300可以单独地调整每一层的量化范围。重复单元可以指执行量化的单元。
观测器304从层N 312的激活和在当前迭代中的量化范围观测激活的饱和比率。
具体地,观测器304对层N 312的激活的总数进行计数,并且对量化范围之外的激活的数目进行计数。观测器304计算量化范围外的激活的数量与激活的总数之比作为饱和比率。
观测器304可以通过对激活的总数和量化范围之外的激活的数量进行计数而不是生成激活的直方图来计算饱和比率。观测器304可以通过基于量化范围的阈值确定每个激活是否在量化范围之外而不分析激活的分布来计算饱和比率。观测器304可以省略包括直方图生成的复杂操作,从而降低校准的计算复杂度。
同时,观测器304根据激活饱和发生信息计算在当前迭代中的饱和比率的移动平均值。这里,移动平均值可以是指指数移动平均值(EMA)。然而,指数移动平均值仅仅是一个实施例,并且移动平均值可以包括各种移动平均值,诸如简单移动平均值和加权移动平均值。
为了计算在当前迭代中的饱和比率的移动平均值,观测器304根据在先前迭代中观测的饱和比率计算过去(past)的移动平均值。观测器304基于在当前迭代中观测的饱和比率比值和过去的移动平均值来计算当前移动平均值。当前移动平均值成为层N 312中的激活的饱和比率的表示值。用于计算过去的移动平均值的先前迭代的次数可以被设置为任意值。
根据本发明的一个实施例,观测器304可通过在当前迭代中的观测饱和比率与过去的移动平均值的加权和来计算当前的移动平均值。具体而言,观测器304可以通过公式1获得饱和比率的当前的移动平均值。
[公式1]
srema(t)=α·sr(t)+(1-α)·srema(t-1)
在公式1中,srema(t)是饱和比率的当前的移动平均值,α是平滑因子,sr(t)是观测的饱和比率,并且srema(t-1)是过去的移动平均值。平滑因子具有0和1之间的值。
根据本发明的一实施例,观测器304可调整平滑因子的值。随着调整量化范围的次数增加,可以为过去的移动平均值设置较小的权重。或者,范围确定设备可以将过去的移动平均值的权重设置为随着时间的流逝而更小。因此,观测器304可以通过在推断阶段调整平滑因子来使人工神经网络快速适应于用户数据。
例如,观测器304可逐渐地增加或逐渐地减小平滑因子。另外,观测器304可以在分配人工神经网络之后立即将平滑因子设置为大值,并且根据范围调整的次数或随着时间减小平滑因子。另一方面,观测器304可以在分配人工神经网络之后立即将平滑因子设置为小值,并且根据范围调整的次数或随着时间增大平滑因子。另外,观测器304可以在分配人工神经网络之后立即增大或减小平滑因子,然后固定平滑因子。
根据本公开的实施例,观测器304可以根据范围调整的次数或随着时间将平滑系数逐渐设置为更大。具体地,在分配了经训练的神经网络之后,观测的饱和比率与目标饱和比率之间的差将很大。这里,由于控制器302基于观测的饱和比率与目标饱和比率之间的差来确定量化范围,因此观测器304可将平滑因子设置为小值以减小波动。观测器304可以随着时间调整平滑因子。
根据本发明的另一实施例,观测器304可以根据人工神经网络的任务特性来调整平滑因子。如果通过考虑从过去输入的数据中导出的饱和比率来确定量化范围对于人工神经网络的任务性能是有利的,则观测器304可以将平滑因子设置为小值。另一方面,如果通过考虑从最近输入的数据导出的饱和比率大于从过去输入的数据导出的饱和比率来确定量化范围对人工神经网络的任务性能是有利的,则观测器304将平滑因子调整为大值。
根据本发明的另一实施例,当平滑因子变为0时,范围确定设备300可停止量化范围的调整。当激活分布没有显著变化时,确定量化范围会浪费资源。具体地,观测器304可以将平滑因子设置为随着时间流逝而更小,并且可以在预设时间之后将平滑因子设置为0。范围确定设备300可以在平滑因子变为0时停止量化范围的调整。
控制器302调整量化范围,使得观测器304所观测的饱和比率遵循预设的目标饱和比率。调整量化范围意味着确定限幅阈值。目标饱和比率可以被预设或输入。
具体地,控制器302基于目标饱和比率与层N 312中的激活的饱和比率的当前的移动平均值之间的差来调整量化范围。控制器302基于饱和比率的当前的移动平均值与目标饱和比率之间的差来计算量化范围内的变化量,并且根据量化范围内的变化量来调整量化范围。
根据本发明的实施例,控制器302可以确定量化范围的最小值和最大值的尺度不同。这被称为仿射量化。
控制器302可以确定量化范围的最小值和最大值的尺度相同。也就是说,控制器302可以对称地确定量化范围。这被称为尺度符号量化。
控制器302可以确定量化范围的最小值和最大值为等于或大于0的值,例如,控制器302可以确定量化范围的最小值为0,并且确定最大值大于0,这被称为尺度无符号量化。
根据本公开的实施例,控制器302可以基于人工神经网络的批量归一化参数来设置量化范围的初始值。例如,在具有作为平均值的批量归一化偏差并且具有作为标准偏差的尺度的分布中,可以将满足特定标准差(sigma)的限幅边界确定为量化范围的初始值。量化范围的初始值被应用于从一个层输出的张量。即,在初始迭代中,量化范围的初始值被应用于张量。
同时,控制器302可以通过使用基于激活的当前饱和比率和目标饱和比率的反馈控制来确定量化范围。这里,反馈控制包括比例积分微分(PID)控制、PI控制、ID控制、PD控制、比例控制、积分控制和微分控制中的至少一个。
PID控制是广泛用于控制系统中的控制回路反馈机制。PID控制是比例控制、积分控制和微分控制的组合。PID控制具有如下结构,即,取得控制对象的电流值;将该取得的电流值与设定值进行比较,算出误差;使用该误差值算出控制所需的控制值。控制值由比例项、积分项和微分项组成的PID控制函数计算。比例项与误差值成比例,积分项与误差值的积分成比例,微分项与误差值的导数成比例。作为PID参数,各个项可以包括:比例增益参数,其是比例项的增益;积分增益参数,其是积分项的增益;以及微分增益参数,其是微分项的增益。
根据本公开的实施例,控制器302将目标饱和比率设置为设定点,并将饱和比率的当前的移动平均值设置为测量变量。控制器302将量化范围内的变化量设置为输出。通过将PID控制应用于设置,控制器302可获得量化范围中的变化量,该变化量使得当前饱和比率遵循目标饱和比率。控制器302根据量化范围内的变化量来确定量化范围。
同时,确定量化范围的方法可以在算术运算设备中实现。这里,算术运算设备可以是具有低算术运算性能的设备或低性能设备,例如移动设备。例如,算术运算设备可以是接收经训练的神经网络模型并使用该神经网络模型和所收集的用户数据来执行推断的设备。
在使用确定量化范围的传统方法的情况下,低性能设备由于计算复杂度而难以调整量化范围。具体地,尽管低性能设备可以使用经训练的神经网络来执行推断,但是低性能设备难以执行直方图生成、分类、量化调整的最大值计算和最小值计算。因此,低性能设备可能无法在调整量化范围的同时执行推断。
由于低性能设备不能调整量化范围,所以当服务器向低性能设备分配神经网络并基于固定量化范围执行推断时,低性能设备除了从服务器接收关于量化范围的信息之外别无选择。这降低了神经网络的性能和精度。
然而,在使用根据本公开的实施例的确定量化范围的方法的情况下,低性能设备也能够调节量化范围,因为计算复杂度低。低性能设备可以根据目标饱和比率比来调整量化范围,而无需执行诸如直方图生成、分类、最大值计算和最小值计算之类的复杂操作。
此外,在根据本公开的实施例的确定量化范围的方法的情况下,低性能设备可以在使用经训练的神经网络执行推断的同时动态地调整量化范围。这被称为动态校准。
低性能设备可以通过在推断阶段期间对用户数据应用动态校准来提高神经网络的准确度。另外,由于即使在低性能设备中也可以调整量化范围,所以可以省略分配人工神经网络的服务器的校准进程。由于服务器不需要收集数据来进行校准,因此可以实现便利性和数据安全性。
根据本公开的实施例的确定量化范围的方法可以在诸如PC或服务器的高性能设备中实现。在训练人工神经网络之后,高性能设备可以使用根据本公开的实施例的确定量化范围的方法来确定经训练的人工神经网络的量化范围。同时,高性能设备可以将根据本公开的实施例的确定量化范围的方法应用于训练阶段。
根据本公开的实施例的范围确定设备300可以被实现为与处理神经网络操作的处理设备分离的设备,或者可以被实现为单个设备。
根据本发明的实施例,范围确定设备300和处理设备可以在一个算术运算设备中实现。即,运算设备可以包括范围确定设备300和处理设备。在这种情况下,处理设备可以是硬件加速器。算术运算设备还可以包括编译器。算术运算设备使用范围确定设备300确定量化范围,并且使用硬件加速器根据量化范围执行神经网络运算。
具体而言,范围确定设备300确定量化范围,编译器将量化范围转换为硬件加速器可以使用的值。编译器将量化范围转换成每一层的缩放因子。
硬件加速器从范围确定设备300接收关于量化范围的信息,并根据关于量化范围的信息量化激活。关于量化范围的信息包括量化范围或缩放因子。范围确定设备300可以获得由硬件加速器量化的激活。硬件加速器接收缩放因子并根据缩放因子量化激活。
硬件加速器可以包括存储器和处理器。存储器储存至少一指令,处理器执行至少一指令以根据量化范围进行量化。硬件加速器可以基于根据本公开的实施例确定的量化范围量化人工神经网络的张量。
范围确定设备300聚合量化的激活。范围确定设备300基于所聚集的量化激活来调整量化范围。具体而言,范围确定设备300观测在当前迭代中的饱和比率,并调整量化范围,使得观测的饱和比率遵循预设的目标饱和比率。
图4是示出根据本发明实施例的调整量化范围的进程的图。
参照图4,用于确定量化范围的范围确定设备旨在确定量化范围,使得人工神经网络的张量的饱和比率变为0.05。
在进程S400中,范围确定设备从人工神经网络的层中观测饱和发生标志。具体而言,范围确定设备从人工神经网络的输出中检查张量的数量,并且检查量化范围之外的张量的数量。
在进程S402中,范围确定设备对人工神经网络的张量的数量求和,并对量化范围之外的张量的数量求和。
在进程S404中,范围确定设备计算量化范围外的张量与张量的总数的比率作为饱和比率。在时间t-1观测的饱和比率是0.10。在观测的饱和比率与目标饱和比率之间存在0.05的差异。
因此,范围确定设备基于观测的饱和比率与目标饱和比率之间的差来增大限幅阈值。即,范围确定设备扩大量化范围,以使张量的饱和比率降低。
在进程S410和进程S412中,范围确定设备在时间t观测饱和比率。在时间t观测的饱和比率为0.03。在观测的饱和比率和目标饱和比率之间存在0.02的差值。
因此,范围确定设备基于观测的饱和比率与目标饱和比率之间的差来减小限幅阈值。即,范围确定设备缩小量化范围以使张量的饱和比率增加。
此后,范围确定设备可通过进程S420、S422和S424实现目标饱和比率。
该范围确定设备可以通过反馈控制逐渐减小目标饱和比率与观测的饱和比率之间的误差或者目标饱和比率与当前的移动平均值之间的误差。另外,范围确定设备可以在量化期间将饱和比率保持在目标饱和比率。
此外,范围确定设备可以通过对饱和发生标志进行计数而不生成直方图或对张量进行分类来降低用于确定量化范围的计算复杂度。这允许即使在推理阶段也调整量化范围。
图5是示出根据本发明实施例的调整量化范围的进程的流程图。
参照图5,确定人工神经网络张量的量化范围的范围确定设备根据人工神经网络的张量和量化范围观测在当前迭代中的饱和比率(S500)。
范围确定设备可以计算量化范围外的张量的数量与张量的数量的比率作为饱和比率。
范围确定设备根据在先前迭代中观测的饱和比率计算过去的移动平均值,并基于过去的移动平均值和观测的饱和比率计算当前的移动平均值(S502)。
根据本发明的一实施例,范围确定设备可通过过去的移动平均值与观测的饱和比率的加权和来计算当前的移动平均值。在这种情况下,范围确定设备可以调整过去的移动平均的权重和观测的饱和比率的权重。这里,权重指的是平滑因子。
范围确定设备基于当前的移动平均值和目标饱和比率之间的差来计算量化范围内的变化量(S504)。范围确定设备计算量化范围内的变化量,使得饱和比率的当前移动平均值遵循目标饱和比率。
根据本公开的实施例,范围确定设备可以使用PID控制、PI控制、ID控制、PD控制、比例控制、积分控制和微分控制中的至少一个来计算量化范围内的变化量。
范围确定设备根据量化范围内的变化量调整量化范围(S506)。
根据本发明的实施例,控制器302可以确定量化范围的最小值和最大值的尺度不同。
根据本发明的实施例,控制器302可以确定量化范围的最小值和最大值的尺度相同。也就是说,控制器302可以对称地确定量化范围。
根据本发明的实施例,控制器302可以确定量化范围的最小值和最大值为等于或大于0的值。例如,控制器302可以确定量化范围的最小值为0,并且确定最大值大于0。
图6是根据本发明实施例的用于确定量化范围的设备的配置图。
参照图6,范围确定设备60可包括系统存储器600、处理器610、存储设备620、输入/输出接口630和通信接口640中的一些或全部。
系统存储器600可以存储使处理器610执行根据本公开的实施例的范围确定方法的程序。例如,程序可以包括可由处理器610执行的多个指令,并且人工神经网络的量化范围可以由执行多个指令的处理器610来确定。
系统存储器600可以包括易失性存储器和非易失性存储器中的至少一个。易失性存储器包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等,非易失性存储器包括闪存等。
处理器610可以包括能够执行至少一个指令的至少一个核。处理器610可以执行存储在系统存储器600中的指令,并且可以通过执行指令来执行确定人工神经网络的量化范围的方法。
即使提供给范围确定设备60的电力被切断,存储装置620也保持存储的数据。例如,存储装置620可以包括非易失性存储器,诸如电可擦除可编程只读存储器(EEPROM)、闪存、相变随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)或纳米浮栅存储器(NFGM),或者可以包括存储介质(诸如磁带、光盘或磁盘)。在一些实施例中,存储装置620可以是可从范围确定设备60移除的。
根据本公开的实施例,存储装置620可以存储用于确定人工神经网络的张量的量化范围的程序。存储在存储装置620中的程序可以在由处理器610执行之前被加载到系统存储器600中。存储装置620可以存储以程序语言编写的文件,并且可以将由编译器等从文件创建的程序加载到系统存储器600中。
存储装置620可以存储要由处理器610处理的数据和已经由处理器610处理的数据。例如,存储装置620可以存储量化范围内的变化量以调整量化范围。另外,存储装置620可存储先前迭代的饱和比率或过去的移动平均值以计算饱和比率的移动平均值。
输入/输出接口630可以包括诸如键盘或鼠标的输入设备,并且可以包括诸如显示设备或打印机的输出设备。
用户可以通过输入/输出接口630触发处理器610执行程序。另外,用户可通过输入/输出接口630设置目标饱和比率。
通信接口640提供到外部网络的接入。例如,范围确定设备60可以通过通信接口640与其它设备通信。
同时,范围确定设备60可以是诸如台式计算机、服务器、AI加速器等的固定算术运算设备,以及诸如膝上型计算机、智能电话等的便携式算术运算设备。
包括在范围确定设备60中的观测器和控制器可以是作为由处理器执行的多个指令的集合的过程,并且可以存储在可由处理器访问的存储器中。
虽然在图5中顺序地执行进程S500至S506,但是这仅仅是本公开的实施例的技术思想的示例性描述。换句话说,由于在不脱离本公开的实施例的基本特征的情况下,本公开的实施例所属的技术领域的普通技术人员可以以改变图5所示的顺序并执行进程或者并行执行进程S500至S506中的一个或多个的方式来修改和改变上述进程,并应用上述处理,因此图5不限于时间序列顺序。
同时,图5所示的进程可以实现为计算机可读记录介质上的计算机可读代码。计算机可读记录介质包括存储可由计算机系统读取的数据的所有类型的记录设备。即,这样的计算机可读记录介质包括非暂时性介质,诸如ROM、RAM、CD-ROM、磁带、软盘和光学数据存储设备。另外,计算机可读记录介质可以分布在联网的计算机系统上,使得计算机可读代码可以以分布式方式被存储和执行。
尽管为了说明的目的已经描述了本公开的示例性实施例,但是本领域技术人员将理解,在不脱离要求保护的本发明的思想和范围的情况下,各种修改、添加和替换是可能的。因此,为了简洁和清楚起见,已经描述了本公开的示例性实施例。本实施方式的技术思想的范围不受图示的限制。因此,本领域普通技术人员将理解,所要求保护的发明的范围不受上述明确描述的实施例的限制,而是由权利要求及其等同物限制。
相关申请的交叉参考
本申请要求在2021年7月22日提交的韩国专利申请号为10-2021-0096632的优先权,其公开内容通过引用整体并入本文。
(附图标记
300:范围确定设备 302:控制器
304:观测器)。
Claims (15)
1.一种确定用于人工神经网络的张量的量化范围的计算机实现的方法,所述方法包括:
从所述人工神经网络的所述张量和量化范围观测在当前迭代中的饱和比率;以及
调整所述量化范围,使得所观测的饱和比率遵循预设的目标饱和比率。
2.根据权利要求1所述的方法,其中所述饱和比率的所述观测包括计算所述量化范围之外的张量的所述数量与张量的所述数量的所述比率。
3.根据权利要求1所述的方法,其中所述量化范围的所述调整包括:
基于所观测的饱和比率和根据先前迭代中观测的饱和比率计算的过去的移动平均值来计算当前的移动平均值;以及
基于所述当前的移动平均值与所述目标饱和比率之间的差来调整所述量化范围。
4.根据权利要求3所述的方法,其中所述当前的移动平均值的所述计算包括通过所述过去的移动平均值与所观测的饱和比率的加权和来计算所述当前的移动平均值。
5.根据权利要求4所述的方法,还包括调整所述过去的移动平均值的权重和所观测的饱和比率的权重。
6.根据权利要求3所述的方法,其中所述量化范围的所述调整包括:
基于所述当前的移动平均值与所述目标饱和比率之间的所述差来计算所述量化范围中的变化量;以及
根据所述量化范围中的所述变化量调整所述量化范围。
7.根据权利要求1所述的方法,还包括基于所述人工神经网络的批量归一化参数来设置所述量化范围的初始值。
8.根据权利要求1所述的方法,其中所述张量从所述人工神经网络的训练阶段中的训练数据或推断阶段中的用户数据被导出。
9.一种设备,包括:
存储器;以及
处理器,被配置为执行存储在所述存储器中的计算机可执行过程,
其中所述计算机可执行过程包括:
观测器,被配置为从人工神经网络的张量和量化范围来观测当前迭代中的饱和比率;以及
控制器,被配置为调整所述量化范围,使得所观测的饱和比率遵循预设的目标饱和比率。
10.一种计算机可读记录介质,记录用于执行权利要求1至8中任一项所述的方法的计算机程序。
11.一种计算机实现的方法,包括:
从所述外部接收关于量化范围的信息;以及
基于关于所述量化范围的所述信息量化人工神经网络的张量,
其中所述量化范围被调整,使得在当前迭代中从所述人工神经网络的所量化的张量观测的饱和比率遵循预设的目标饱和比率。
12.根据权利要求11所述的计算机实现的方法,其中所述观测的饱和比率是所述量化范围之外的张量的所述数量与量化的张量的所述数量的所述比率。
13.根据权利要求11所述的计算机实现的方法,其中所述量化范围基于在所述当前迭代中的当前的移动平均值与所述目标饱和比率之间的差被调整,
其中所述当前的移动平均值基于所述观测的饱和比率以及根据在先前迭代中观测的饱和比率计算的过去的移动平均值被计算。
14.一种处理设备,包括:
存储器,至少一个指令被存储在所述存储器中;以及
至少一个处理器,
其中所述至少一个处理器被配置为通过执行所述至少一个指令:
从所述外部接收关于量化范围的信息;以及
基于关于所述量化范围的所述信息量化人工神经网络的张量,其中所述量化范围被调整,使得在当前迭代中从所述人工神经网络的所量化的张量观测的饱和比率遵循预设的目标饱和比率。
15.一种算术运算设备,包括:
范围确定单元,被配置为基于人工神经网络的量化的张量来观测在当前迭代中的饱和比率,并且确定量化范围,使得所观测的饱和比率遵循预设的目标饱和比率;以及
量化单元,被配置为基于所述量化范围量化所述人工神经网络的所述张量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210096632A KR20230015186A (ko) | 2021-07-22 | 2021-07-22 | 신경망의 양자화를 위한 포화 비율 기반 양자화 범위의 결정 방법 및 장치 |
KR10-2021-0096632 | 2021-07-22 | ||
PCT/KR2022/010810 WO2023003432A1 (ko) | 2021-07-22 | 2022-07-22 | 신경망의 양자화를 위한 포화 비율 기반 양자화 범위의 결정 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117836778A true CN117836778A (zh) | 2024-04-05 |
Family
ID=84979452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280051582.9A Pending CN117836778A (zh) | 2021-07-22 | 2022-07-22 | 用于确定用于神经网络的量化的基于饱和比率的量化范围的方法及设备 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR20230015186A (zh) |
CN (1) | CN117836778A (zh) |
WO (1) | WO2023003432A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108896B (zh) * | 2023-04-11 | 2023-07-07 | 上海登临科技有限公司 | 模型量化方法、装置、介质及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263518B2 (en) * | 2019-10-04 | 2022-03-01 | International Business Machines Corporation | Bi-scaled deep neural networks |
CN111144511B (zh) * | 2019-12-31 | 2020-10-20 | 上海云从汇临人工智能科技有限公司 | 基于神经网络的图像处理方法、系统、介质及电子终端 |
CN112116061A (zh) * | 2020-08-04 | 2020-12-22 | 西安交通大学 | 一种面向长短期记忆网络的权值和激活值的量化方法 |
CN112132261B (zh) * | 2020-09-04 | 2024-07-05 | 武汉卓目科技股份有限公司 | 一种运行在arm上的卷积神经网络字符识别方法 |
-
2021
- 2021-07-22 KR KR1020210096632A patent/KR20230015186A/ko not_active Application Discontinuation
-
2022
- 2022-07-22 WO PCT/KR2022/010810 patent/WO2023003432A1/ko active Application Filing
- 2022-07-22 CN CN202280051582.9A patent/CN117836778A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023003432A1 (ko) | 2023-01-26 |
KR20230015186A (ko) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Differentiable joint pruning and quantization for hardware efficiency | |
US11275986B2 (en) | Method and apparatus for quantizing artificial neural network | |
EP3629250A1 (en) | Parameter-efficient multi-task and transfer learning | |
US20200218982A1 (en) | Dithered quantization of parameters during training with a machine learning tool | |
WO2020131464A1 (en) | Scaled learning for training dnn | |
US11586904B2 (en) | Adaptive optimization with improved convergence | |
US20200302298A1 (en) | Analytic And Empirical Correction Of Biased Error Introduced By Approximation Methods | |
US11468313B1 (en) | Systems and methods for quantizing neural networks via periodic regularization functions | |
CN113112013A (zh) | 针对分辨率降低的神经网络的优化量化 | |
US20210166106A1 (en) | Residual binary neural network | |
CN113255922B (zh) | 量子纠缠量化方法和装置、电子设备、计算机可读介质 | |
JP2016218513A (ja) | ニューラルネットワーク及びそのためのコンピュータプログラム | |
CN117836778A (zh) | 用于确定用于神经网络的量化的基于饱和比率的量化范围的方法及设备 | |
WO2022040963A1 (en) | Methods and apparatus to dynamically normalize data in neural networks | |
CN114830137A (zh) | 用于生成预测模型的方法和系统 | |
Oh et al. | Application of Deep Learning Model Inference with Batch Size Adjustment | |
US20220300784A1 (en) | Computer-readable recording medium having stored therein machine-learning program, method for machine learning, and calculating machine | |
CN110889316A (zh) | 一种目标对象识别方法、装置及存储介质 | |
Talafha et al. | Biologically inspired sleep algorithm for variational auto-encoders | |
CN115374863A (zh) | 样本生成方法、装置、存储介质和设备 | |
CN117795528A (zh) | 用于量化神经网络参数的方法及装置 | |
Semenova et al. | Impact of white noise in artificial neural networks trained for classification: Performance and noise mitigation strategies | |
US11928185B2 (en) | Interpretability analysis of image generated by generative adverserial network (GAN) model | |
WO2024060727A1 (zh) | 神经网络模型的训练方法、装置、设备及系统 | |
CN117454948B (zh) | 一种适用于国产硬件的fp32模型转换方法 |
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 |