没有合适的资源?快使用搜索试试~ 我知道了~
113169ZeroQ:一种新的零镜头量化框架蔡耀辉,1,姚哲伟,2,董振伟,2,阿米尔·戈拉米,2,迈克尔·W。马奥尼2、库尔特·库茨2、1北京大学;2加州大学伯克利分校caiyaohui@pku.edu.cn{zheweiy,zhendong,amirgh,mahoneymw,and keutzer} @berkeley.edu摘要量化是一种很有前途的方法,以减少神经网络的推理时间和内存占用。然而,大多数现有的量化方法需要访问原始训练数据集,以便在量化期间进行再训练。对于具有敏感或专有数据的应用程序,这通常是不可能的,出于隐私和安全考虑。现有的零拍量化方法使用不同的算法来解决这个问题,但是它们导致性能差,特别是当量化到超低精度时。在这里,我们提出了ZERO Q,一种新的零拍量化框架来解决这个问题。Z ERO Q启用混合精度量化,无需访问任何训练或验证数据。这是通过对蒸馏数据集进行优化来实现的ZERO Q支持均匀和混合精度量化.对于后者,我们引入了一种新的基于帕累托边界的方法来自动确定所有层的混合精度位设置,而不需要手动搜索。我们在不同的 模 型 集 上 广 泛 测 试 了 我 们 提 出 的 方 法 , 包 括ImageNet上的ResNet 18/50/152,特别是,我们表明ZERO Q在MobileNetV2上可以实现1.71%的高精度,与最近提出的DFQ方法一致[32]。重要的是,Z ERO Q的计算开销非常低,它可以在不到30秒的时间内完成整个量化过程(ImageNet上ResNet50一个epoch训练时间的0.5%)。我们已经开源了Z ERO Q框架1。1. 介绍尽管深度神经网络(NN)模型在各个领域取得了巨大成功,但由于其亲核性,现代NN模型在边缘的部署一直具有挑战性同等贡献。1https://github.com/amirgholami/ZeroQ过高的存储器占用、推理时间和/或能量消耗。随着当前硬件对低精度计算的支持,量化已成为解决这些挑战的流行过程。通过将NN中的权重和/或激活的浮点值量化为整数,可以显著缩小模型大小,而无需对架构进行任何修改。这也允许一个人使用更快,更省电的精度降低的算术逻辑单元(ALU),作为COM的浮点ALU。更重要的是,量化减少了内存流量,这是能源消耗的重要来源[15]。然而,从单精度到低精度的量化模型往往会导致显着的精度下降。缓解这种情况的一种方法是执行所谓的量化感知微调[46,34,5,42,45,18],以减少原始模型和量化模型之间的性能差距。基本上,这是一个重新训练过程,在几个时期内执行,以调整NN参数,以减少精度下降。然而,量化感知微调在计算上可能是昂贵且耗时的。例如,在在线学习的情况下,模型需要根据新数据不断更新并每隔几个小时部署一次,可能没有足够的时间完成微调过程。更重要的是,在许多现实场景中,训练数据集是敏感的或专有的,这意味着不可能访问用于训练模型的数据集。好的例子是医疗数据、生物计量数据或推荐系统中使用的用户数据。为了解决这个问题,最近的工作提出了训练后量化[19,32,44,3],它直接量化NN模型而无需微调。然而,如上所述,这些方法导致非平凡的性能降级,特别是对于低精度量化。此外,以前的后训练量化方法通常需要有限的(未标记的)数据来辅助后训练量化。然而,对于诸如MLaaS的情况(例如,AmazonAWS和Google Cloud),可能无法访问用户的任何训练数据。一个示例应用案例是医疗保健信息,它可以-113170图1:ImageNet上ResNet18的灵敏度计算示意图该图示出了我们如何根据等式(1)计算当被量化为4比特时的第8层的灵敏度二、 我们将蒸馏数据输入到全精度ResNet18(顶部)和相同的模型中,只是将第8层量化为4位(底部)。第8层在量化为4比特的KL 8(4)时的灵敏度被定义为这两个模型的输出之间的KL发散。为了简单起见,我们在这里省略了剩余连接,尽管同样的分析适用于ZERO Q中的剩余连接。由于各种隐私问题和/或监管限制,不能上传到云。另一个缺点是,通常后量化方法[30,44,3]仅关注标准NN,如ResNet [13]和InceptionV3 [38]用于图像分类,并且它们不考虑更需要的任务,如对象检测。在这项工作中,我们提出了ZERO Q,一种新的零拍量化方案,以克服上述问题。特别是,ZERO Q允许量化NN模型,而无需访问任何训练/验证数据。它使用了一种新的方法来自动计算混合精度的具体而言,我们的贡献如下。• 我们提出了一种优化公式来生成分散数据,即,合成数据被设计为匹配批量标准化层的统计数据。这一回-它具有较小的计算开销。例如,在8-V100系统上的ImageNet上为ResNet 50生成32张图像• 我们使用上述重建框架来执行量化和原始之间的灵敏度分析最终模型我们表明,蒸馏数据与原始训练数据的灵敏度相匹配(详细信息请参见图1和表7然后,我们使用蒸馏数据而不是原始/真实数据来执行训练后量化。这里的整个灵敏度计算仅花费12 s(一个epoch训练时间的0.2%),是ResNet50的缩写。重要的是,我们从不在整个过程中使用任何训练/验证数据。• 我们的框架支持均匀和混合精度量化。对于后者,我们提出了一个新的基于帕累托边界优化的自动精度选择方法(参见图4)。这是通过以小的计算开销基于蒸馏数据计算量化灵敏度来实现的。例如,我们能够在14秒内自动确定ResNet50的混合精度设置。我们广泛地测试了我们提出的ZERO Q框架在广泛的NN图像分类和对象检测任务,实现国家的最先进的量化结果在所有测试。特别地,我们给出了两个标准模型的量化结果(例如,ResNet 18/50/152和Incep-tionV3 ) 和 高 效 / 紧 凑 模 型 ( 例 如 , MobileNetV2 、ShuffleNet和SqueezeNext)用于图像分类任务。重要的是,我们还使用RetinaNet [27]在Microsoft COCO数据集[28]上测试了ZEROQ的对象检测。除此之外,我们还 表 明 , 与 最 近 提 出 的 DFQ 方 法 相 比 , ZEROQ 在MobileNetV2上的准确度高出1.71%[32]2. 相关工作在这里,我们提供了一个简短的(而不是广泛的)重新审视文学的相关工作除了已经提出的量化之外,还有广泛的方法11317110110010010−110−110−210−210−310−410−316111621263136Blocki→41465110−510−616111621263136Blocki→414651图2:(左)量化为4位权重时ResNet50中每层的灵敏度,使用不同类型的数据测量(右)量化为2/4/8位权重精度时ResNet 50的灵敏度(使用蒸馏数据测量)。以解决现代NN架构的过高的存储器占用和推理延迟/功率。这些方法通常与量化正交,并且它们包括有效的神经架构设计[17,9,16,36,43],知识蒸馏[14,35],模型修剪[11,29,24],以及硬件和NN协同设计[9,21]。这里我们关注量化[2,6,34,41,23,48,45,46,5,8,42],它通过降低用于表示参数和/或激活的位精度来压缩模型。量化的一个重要挑战是,它可能导致显著的性能下降,特别是在超低位精度设置中。为了解决这个问题,现有方法提出量化感知微调以恢复丢失的性能[20,18,4]。重要的是,这需要访问用于训练原始模型的完整数据集。这不仅非常耗时,而且通常无法访问训练数据。为了解决这个问题,几篇论文专注于开发训练后量化方法(也称为后量化),而没有任何微调/训练。特别地,[19]提出了OMSE方法来优化量化张量和原始张量之间的L2此外,[3]提出了所谓的ACIQ方法来解析地计算限幅范围,以及每个通道的比特分配的神经网络,它取得了相对较好的测试性能。然而,它们使用每通道量化用于激活,这在实践中对于有效的硬件实现是困难的。此外,本发明还提供了一种方法,[44]提出了一种离群信道分裂(OCS)方法来解决离群信道问题。然而,这些方法需要访问有限的数据以减少性能下降[19,3,44,30,22]。最近[32]的工作提出了无数据量化(DFQ)。它进一步将后量化推到零-镜头场景,其中在量化期间训练数据和测试数据都不可访问。[32]使用方法权重均衡方案[30],以去除权重和激活两者中的离群值,并且与先前的信道量化的后量化工作[20]相比,它们利用逐层量化实现了类似的结果。然而,[32]当NN被量化到6位或更低时,它们的性能显着我们最近的一篇独立论文提出使用批量归一化统计来重建输入数据[12]。他们提出了一种基于知识蒸馏的方法,通过使用所谓的Inceptionism [31]生成与原始训练数据集相似的输入数据来进一步提高准确性。然而,尚不清楚后一种方法如何用于诸如如目标检测或图像分割。此外,这种知识蒸馏过程增加了零激发量化所需的计算时间。正如我们将在我们的工作中展示的那样,可以使用与混合精度量化相结合的批范数统计量来实现最先进的精度,重要的是这种方法不仅限 于 图 像 分 类 任 务 。 特 别 是 , 我 们 将 展 示 使 用RetinaNet-ResNet 50进行对象检测的结果,除了在各种图 像 分 类 模 型 上 测 试 Z ERO Q ( 使 用 ResNet18/50/152,Mo-bileNetV 2,ShuffleNet,SqueezeNext和InceptionV 3)之外,我们还将展示所有这些情况下ZERO Q都超过了最先进的量化性能。重要的是,我们的ap-proach有一个非常小的计算开销。例如,我们可以在8 V-100系统上在30秒内完成ResNet 50量化(相当于ImageNet上ResNet 50一个epoch训练时间的0.5%)。直接量化所有NN层到低精度可能会导致显著的精度下降。一个有前途的ap-GAUSSIANDISTILLEDDATA TRAININGDATAW-BIT=2W-BIT=4W-BIT=8量化为4位的灵敏度:乌布(4)→量化为2/4/8位的灵敏度:Ω i (2/4/8) →113172我2k−1N解决这个问题的方法是执行混合精度量化[8,7,40,47,39],其中不同的位精度用于不同的层。混合精度量化背后的关键思想是,并非卷积网络的所有层对量化都一个简单的混合精度量化方法在计算上可能是昂贵的,因为用于确定每一层精度的搜索空间与层数成指数关系为了解决这个问题,[39]使用基于NAS/RL的搜索算法来探索配置空间。然而,这些搜索方法可能是昂贵的,并且通常对超参数和基于RL的算法的初始化或者,[8,37,7]的最近工作引入了基于Hesian的方法,其中位精度设置基于每层的二阶灵敏度然而,这种方法确实需要访问原始训练集,这是我们在ZERO Q中解决的限制。3. 方法ZERO Q框架支持固定精度和混合精度量化。在后一种方案中,模型的不同层可以具有不同的比特精度(不同的k)。混合精度量化背后的主要思想是保持更高精度的敏感层,以及更积极的不敏感层,而不增加整体模型大小。正如我们稍后将展示的,这种混合精度量化是实现超低精度设置(如4位量化)的高精度的关键。化每个层的k的典型选择是{2,4,8}点注意,这种混合精度量化导致前这意味着搜索空间非常大,因为每一层都可以具有这些位精度设置中的如果我们可以测量模型对每层量化的敏感度,就可以避免这种禁止性的搜索空间[8,37,7]。对于训练后量化的情况(即,没有微调),一个好的灵敏度度量是使用原始模型和量化模型之间的Kullback-Leibler(KL)散度,定义为:1NX直径对于一个典型的有监督的计算机视觉任务,我们寻求最小化经验风险损失,即,i(k)=Nj=1KL(M(θ;xj),M(θ∈i(k-bit);xj)).(二)minL(θ)=1Xf(M(θ;x),y),(1)我我其中,当第i(k)层的灵敏度为量化为k-bi t,θ i(k-bi t)表示量化模型θi=1其中θ∈Rn是可学习参数r,f(·,·)是损失函数(通常是交叉熵损失),(xi,yi)是训练输入/标签对,M是具有L层的NN模型,N是训练数据点的总数。在这里,我们-确保输入数据经过零均值(µ0= 0)和单位方差(σ0= 1)的标准预处理归一化此外,我们假设该模型具有表示为BN1,BN2,.,BNL.我们用zi表示第i个BN层之前的激活(换句话说,zi是第i个卷积层的输出在推断期间,zi通过第i个BN层(BNi)中的参数的运行均值(μi)和方差(σ2)进行归一化,其在训练过程期间预先计算通常,BN层还包括缩放和偏置校正,我们分别将其表示为γ i和β i。我们假设在量化之前,所有NN参数和激活都以32位精度存储,并且我们无法访问训练/验证数据集。为了构造一个张量(无论是权重还是激活),我们将参数裁剪到[a,b](a,b∈R)的范围内,并且我们uni-将空间离散为2k−1个偶数区间,非对称量子化也就是说,每个in的长度时间间隔将是b=b−a。 因此,原始的32位单精度值被映射到[0,2k− 1]范围内的无符号整数。 一些工作已经提出了非均匀量化方案,其可以捕获权重/激活分布的更精细细节[33,10,42]。怎么-由于非均匀方法通常不适用于高效的硬件执行,因此我们只使用非对称均匀量化。第i层中具有k位精度的参数。 如果k(k)很小,则当将第i层量化为k比特时,量化模型的输出将不会显著偏离全精度模型的输出,并且因此第i层将被量化为k比特。第三层对k比特量化相对不敏感,反之亦然。ResNet18的这个过程示意性地显示在图1然而,一个重要的问题是,对于零激发量化,我们无法访问等式中的原始训练数据集xj二、我们通过“提取”合成输入数据来匹配原始训练数据集的统计数据来解决这个问题我们通过单独分析训练模型本身来获得蒸馏数据,如下所述。3.1. 蒸馏数据对于零拍量化,我们无法访问任何训练/验证数据。这带来了两个挑战。首先,我们需要知道每个层的激活值的范围,以便我们可以裁剪量化的范围(上面提到的[a,b]范围)。但是,如果不访问训练数据集,我们就无法确定这个范围。这对于均匀和混合精度量化都是一个问题。第二,另一个挑战是对于混合精度量化,我们需要在等式(1)中计算Δi2,但我们无法访问训练数据xj。解决这些问题的一个非常简单的方法是从具有零均值和单位方差的高斯分布中创建一个随机输入数据然而,这种方法不能捕获对应于原始训练数据集的激活数据图2(左)中说明了这一点,我们绘制了灵敏度-N113173ImageNet上ResNet50每层的完整性,使用原始训练数据集(以黑色显示)和基于高斯的输入数据(以红色显示)测量。正如人们所看到的,高斯数据显然没有捕捉到模型的正确灵敏度。例如,对于前三层,红线的灵敏度顺序实际上与原始训练数据相反。图3:高斯数据(左)和蒸馏数据(右)的可视化在我们的根据算法1生成的分散数据中可以看到更多的局部结构。为了解决这个问题,我们提出了一种新的方法来从NN模型本身“提取”输入数据,即,以生成基于NN的特性精心设计的合成数据。特别是,我们解决了蒸馏优化问题,以学习最匹配模型BN层中编码的统计数据更详细地,我们解决了以下优化问题:XL算法1:蒸馏数据的生成输入:模型:MwithL批量归一化图层输出:一批经过提炼的数据:xr从高斯生成随机数据:xr从M的批量归一化层中获取µi,σi,i ∈ 0,1,. . . ,L//注意µ0=0, σ0= 1对于j= 1,2,. .. 做与使用高斯输入数据(以红色显示)相比我们在图3中显示了随机高斯数据以及ResNet50的蒸馏数据的可视化。我们可以看到,Distilled Data可以捕获细粒度的局部结构。3.2. 帕累托前沿21 .一、51minkµr-µk2+kσr-σk2,(3)xrii2i=0时ii2其中,Xr是重构的(蒸馏的)输入数据,并且µr/σr是蒸馏的平均值/标准差0的情况。5我我数据在层i处读取存储在BN层中的平均值/标准偏差参数。换句话说,在解决这个优化问题之后,我们可以提取输入数据,当输入到网络中时,可以具有与原始模型紧密匹配的统计分布。请参见算法1的描述。然后可以使用此蒸馏数据 来应对前面提到的两个挑战。 一是0图4:8 10 12 14 16 18 20 22 24型号大小(MB)ImageNet上ResNet50的Pareto边界可以使用蒸馏数据请注意,一些先前的工作[3,22,44]通过使用有限的(未标记的)数据来确定激活范围来解决这个问题。然而,这与零激发量化的假设相矛盾,并且可能不适用于某些应用。第二,我们可以使用蒸馏数据并将其输入方程。2来确定量化灵敏度(quantization sensitivity,QSI)。后者在图2(左)中以纯蓝色显示可以看出,蒸馏数据每个点显示一个混合精度位设置。 x轴显示了每个配置的结果模型大小,y轴显示了结果灵敏度。在实际应用中,对模型的尺寸进行了约束然后,帕累托前沿方法选择一个位精度的配置,结果在最小的扰动。我们展示了4位和6位混合精度配置的两个示例,分别以红色和橙色显示。相应结果见表1a。如前所述,混合的主要挑战是:前向传播M(xr)并收集中间激活从中间行为中获得µi和σi,i ∈ 1,. . .,n计算xr的µ0和σ0根据Eq.计算损失。3反向传播和更新xr混合6位配置混合4位配置PL整体灵敏度:i=1i(ki)113174i=1精度量化是为了确定整个NN的精确位对于具有m个可能精度选项的L层模型,混合精度搜索表示为S的空间具有mL的指数大小。例如,对于仅具有{2,4,8}的三位精度的ResNet 50(即, m =3),则搜索空间包含7。2×1023个单位。然而,我们可以使用等式中的灵敏度度量2以减少搜索空间。其主要思想是对更敏感的层使用更高的位精度,对不太敏感的层使用较低的位精度。这给了我们一个关于位数的相对排序。为了计算精确的位精度设置,我们提出了一种类似于[7]中使用的方法的帕累托前沿方法。帕累托边界方法的工作原理如下。对于S目标的目标量化模型大小,我们测量了导致S目标模型大小的每个位精度配置的模型我们选择与最小总灵敏度相对应的位精度设置。更详细地,我们解决了以下优化问题:表1:ResNet50,MobileNetV2和ShuffleNet在ImageNet上的量化结果。我们将用于权重的量化位表示为这里,与后量化方法OCS [44],OMSE [19]和DFQ [32]相比,ZERO Q实现更好的准确性。ZERO Q†表示使用百分位数进行量化。(a) ResNet50方法编号D否FT W位A位大小(MB)Top-1min{ki}Lsum=XLi=1阿吉(凯)有限公司XLi=1(4)第一次世界大战结束后,其中k i是第i层的量化精度,并且P i是第i层的参数大小。请注意,这里我们做了一个简化假设,即不同层的灵敏度与其他层的比特选择无关(因此,Epi仅取决于第i层的比特精度)。2.利用动态规划方法,对不同S目标下的最佳设置进行了求解,并绘制了Pareto前沿。ResNet 50模型的示例如图4所示,其中x轴是每个位精度配置的模型大小,y轴是整体模型扰动/灵敏度。图中的每个蓝点表示混合精度配置。在ZERO Q中,我们选择具有特定模型大小约束的最小扰动的位精度设置。重要的是,请注意,最后的结果是O(k)。 这是因为我们将每一层的灵敏度与其他层分开计算。也就是说,我们计算灵敏度i(i= 1,2,.,L),这导致了O(mL)的计算复杂度。我们应该注意到,这种帕累托边界方法(包括动态编程优化器)在理论上并不能保证产生最佳配置,在指数级大的搜索空间中的可能性。然而,我们的研究结果表明,最终的混合精度配置达到了最先进的精度与小的per-perception损失,相比,在单一精度的原始模型。2请参见A节,其中描述了我们如何放松此约束,而不必对每个位精度设置的灵敏度执行指数级的大型计算。(b) MobileNetV2方法编号D否FT W位A位大小(MB)Top-1基线––323213.3773.03ZERO Q33MP81.6768.83ZERO Q†33MP81.6769.44[18]第十八话77662.5070.90ZERO Q33MP62.5072.85RvQuant [33]77883.3470.29设计确认[32]33883.3471.20ZERO Q33883.3472.91(c) ShuffleNet方法编号D否FT W位A位大小(MB)Top-1基线––32325.9465.07ZERO Q33MP80.7458.96ZERO Q33MP61.1162.90ZERO Q33881.4964.944. 结果在本节中,我们将在各种模型和数据集上广泛测试ZEROQ。我们首先在第4.1节中讨论ResNet 18/50,MobileNet- V2和ShuffleNet在ImageNet上的零拍量化。量化ResNet152、InceptionV3和基线––323297.4977.72OMSE [19]3343212.2870.06OMSE [19]7343212.2874.98PACT [5]774412.1976.50ZERO Q33MP812.1775.80ZERO Q†33MP812.1776.08[44]第四十四话736818.4674.80ZERO Q33MP618.2777.43ZERO Q338824.3777.67113175ImageNet上的SqueezeNext以及Cifar10上的ResNet20在附 录 C 中 提 供 。 我 们 还 在 第 4.2 节 中 展 示 了 使 用RetinaNet在Microsoft COCO数据集上测试的对象检测结果。我们强调,ZERO Q实现的所有结果都是100%零拍摄,无需任何微调。我们还强调,我们使用了完全相同的超参数(例如 , 生 成 离 散 数 据 的 迭 代 次 数 ) , 包 括MicrosoftCOCO数据集上的结果4.1. ImageNet我们首先讨论ImageNet数据集上的结果。对于每个模型,在基于Eq.3,我们计算每一层的灵敏度使用Eq。2位精度不同。接下来,我们使用Eq。4和第3.2节中介绍的Pareto前沿,以获得基于给定模型大小约束的整体灵敏度的最佳位精度配置。我们将量化结果表示为WwAh,其中w和h表示用于NN模型的权重和激活的位精度。我们在表1a中给出了ResNet50的零拍量化结果。可以看出,对于W8A8(即,8-位量化的权重和激活),ZERO Q的结果只有0.05%的精度下降。将模型进一步量化为W6A6,ZERO Q达到了77.43%的准确率,比OCS [44] 高 2.63% , 即 使 我 们 的 模 型略 小(18.27MB,而OCS为18.46MB)。3我们证明,我们可 以 使 用 混 合 精 度 量 化 将 ResNet50 进 一 步 压 缩 到12.17MB,并且我们获得了75.80%的准确率。请注意 ,这 比 访问 训 练数 据 的 OMSE [19]高 0.82%, 比OMSE的零射击版本高重要的是,请注意,OMSE将激活位保持在32位,而对于此比较,我们的结果使用8位进行激活(即,激活内存占用比OMSE小4倍)。为了比较,我们包括PACT [5]的结果,ods [33,18],如表1b所示。对于W8A8,与基线相比,ZEROQ的精度下降小于0.12%,与DFQ方法相比,其精度高出1.71%通过权重的混合精度量化将模型进一步压缩到W6A6,即使ZERO Q不使用任何数据或微调,ZEROQ仍然可以以1.95%的准确度超越仅整数[18]ZERO Q可实现68.83%的精度,即使在重量压缩-Sion为8×,相当于平均使用4位量化权重。我们还尝试了基于百分位数的限幅来确定量化范围[25](详情请参见D节)。对应于基于百分位数的限幅的结果表示为ZeroQ*,并在表1中报告。我们发现,使用基于百分位的限幅有助于低精度量化。在文献中已经提出了用于限幅方法的其他选择。在这里,我们注意到,我们的方法是正交于这些改进,ZE-RO Q可以与这些方法相结合。我们还将ZERO Q应用于高效和高度紧凑的模型,例如ShuffleNet,其模型大小仅为5.94MB。据我们所知,该模型不存在ZERO Q在W8A8上实现了0.13%的微小精度下降。我们可以进一步将模型的权重降低到平均 4 位 , 这 使 得 模 型 大 小 仅 为 0.73MB , 准 确 率 为58.96%。表2:使用RetinaNet在Microsoft COCO上进行对象检测。通过将激活保持为8位,我们的4位权重结果与最近提出的依赖于微调的方法WNN [25]相当。(Note这是一个很好的例子,它使用4位激活,[25]中使用的基线是35.6 mAP)。方法编号D否FT W位A位大小(MB)mAP它 能 够 以 非 常 低 的 计 算 开 销 执 行 量 化 。 例 如 ,ResNet50的端到端量化在8 Tesla V100 GPU上需要不到30秒在时序分解方面,生成蒸馏数据需要3秒,计算ResNet50所有层的灵敏度需要12秒,执行帕累托边界优化需要14秒。我们还展示了MobileNetV2上的ZERO Q结果,并与DFQ [32]和基于微调的方法进行了比较3重要的是,注意OCS需要访问训练数据来进行激活量化,而不需要仅用于权重激活的数据。ZERO Q不使用任何训练/验证数据进行权重和激活量化。ZEROQ3 3MP 6 24.1735.9ZERO Q33 8 8 36.2536.4我们还与最近的无数据压缩(DFC)[12]方法进行了比较ZEROQ和DFC之间有两个主要区别。首先,DFC提出了一种微调方法来恢复超低精度情况下的精度。这可能是耗时的,正如我们所示,这是不必要的。特别是,我们表明,与混合精度量化实际上可以实现更高的精度,没有任何需要微调。这在表3中显示了ImageNet上的ResNet18量化。特别是,注意W 4A 4的结果,其中DFC方法没有精细-需要访问训练数据的量化方法基线333232145.1036.4并且还需要微调。[25]第二十五话774418.1332.5ZERO Q框架的一个重要特征是,ZERO Q33MP818.1333.7113176调谐导致超过15%的精度下降,最终精度为55.49%。为此,作者提出了一种后量化训练的方法,中间层采用 W4A4 , 首 末 层 采 用 8 位 , 可 将 准 确 率 提 高 到68.05%。相比之下,ZERO Q实现了69.05%的更高精度,无需任何微调。此外,ResNet 18的端到端零拍量化在8-V100系统上仅需12秒(相当于0. ImageNet上ResNet18的一个epoch训练的45分钟时间的4%)。其次,DFC方法使用Inceptionism [31]来促进具有随机标签的数据的生成,但很难将其扩展到对象检测和图像分割任务。表3:使用ResNet18在ImageNet上进行均匀后量化。我们对W4A4和W4A8设置使用百分位限幅ZERO Q†表示使用百分位数进行量化。效果很好。具体来说,我们提取Reti- naNet的主干并创建Distilled Data。然后,我们将蒸馏数据输入RetinaNet以测量灵敏度并确定整个NN的激活范围。这是其次是优化帕累托边界,讨论了较早。结果示于表2中。我们可以看到,对于W8A8 ZEROQ没有性能下降。对于W6A6,ZERO Q达到35.9 mAP。进一步将模型量化为权重的4位平均值,Z_ERO_Q达到33.7 mAP。我们的结果与最近的结果相当,即使它不是一个零拍量化方法(即,它使用完整的训练数据集并且需要微调)。然而,应该提到的是,ZERO Q将激活保持为8位,而REVN使用4位激活。五、结论方法编号D否FT W位A位大小(MB)Top-1基线––323244.5971.47PACT [5]77445.5769.20DFC [12]33445.5855.49DFC [12]37445.5868.06ZERO Q†33MP45.5769.05[18]第十八话77668.3667.30设计确认[32]33668.3666.30ZERO Q33MP68.3571.30RvQuant [33]778811.1570.01设计确认[32]338811.1569.70DFC [12]378811.1569.57ZERO Q338811.1571.43我们在附录C中包括ImageNet上量化ResNet152,InceptionV3和SqueezeNext的其他结果,以及Cifar10上的ResNet20。4.2. Microsoft Coco目标检测通常比ImageNet分类复杂得多。为了证明我 们 的 方 法 的 灵 活 性 , 我 们 还 测 试 了 ZERO Q 在Microsoft COCO数据集上的对象检测任务。RetinaNet[27]是最先进的单阶段检测器,我们使用以ResNet50为骨干的预训练模型,可以实现36.4 mAP。4RetinaNet与我们在ImageNet上测试的以前NN的主要区别之一是RetinaNet中的一些卷积层后面没有BN层。这是因为存在特征金字塔网络(FPN)[26],这意味着BN层的数量略小于卷积层的数量。然而,这不是一个限制,ZERO Q框架仍然是4这里我们使用COCO数据集上的标准mAP 0.5:0.05:0.95度量我们引入了ZERO Q,这是一种新的训练后量化方法,不需要访问任何训练/验证数据。我们的方法使用了一种新的方法来提取输入数据分布,以匹配模型的批量归一化层中的统计数据。我们表明,这种蒸馏数据是非常有效的捕捉敏感性的不同层的网络。此外,我们提出了一个帕累托前沿的方法来自动选择的位精度配置的混合精度设置。ZEROQ的一个重要方面是其低计算开销。例如,在8- V100 GPU系统上,ResNet50的端到端零拍摄量化时间小于30秒。我们在各种数据集和模型上广泛测试ZEROQ。这包括ImageNet上的各种ResNets,InceptionV3,MobileNetV2,ShuffleNet和 SqueezeNext , Cifar10 上 的 ResNet20 , 甚 至 是Microsoft COCO数据集上用于对象检测的RetinaNet。与以前的训练后量化方法相比,我们相信,在相同或更小的模型大小所有结果表明,ZEROQ可以超过严格的零拍量化方法。我们有开源的ZERO Q框架[1]。113177引用[1] https://github.com/amirgholami/zeroq.git,12月2019年。[2] Krste Asanovic和Nelson Morgan 人工神经网络反向传播训练精度要求的实验确定。国际计算机科学研究所,1991年。[3] Ron Banner,Yury Nahshan,Elad Hoffer,and DanielSoudry.卷积网络的后训练4位量化,用于快速部署。CoRR,abs/1810.05723,1(2),2018。[4] Chaim Baskin,Brian Chmiel,Evgenii Zheltonozhskii,Ron Banner , Alex M Bronstein , and Avi Mendelson.Cat:压缩感知训练,用于降低带宽。arXiv预印本arXiv:1909.11481,2019。[5] Jungwook Choi,Zhuo Wang,Swagath Venkataramani,Pierce I-Jen Chuang , Vijayalakshmi Srinivasan , andKailash Gopalakrishnan. Pact:量化神经网络的参数化裁剪激活。arXiv预印本arXiv:1805.06085,2018。[6] Matthieu Courbariaux , Yoshua Bengio 和 Jean-PierreDavid。Binaryconnect:在传播过程中使用二进制权重训练深度神经网络。神经信息处理系统的进展,第3123-3131页,2015年[7] Zhen Dong , Zhewei Yao , Yaohui Cai , DaiyaanArfeen,Amir Gholami,Michael W Mahoney,and KurtKeutzer.Hawq-v2:神经网络的Hessian感知迹加权量化arXiv预印本arXiv:1911.03852,2019。[8] Zhen Dong , Zhewei Yao , Amir Gholami , MichaelMahoney , and Kurt Keutzer.Hawq : Hessian awarequantizationofneur-ralnetworkswithmixed-precision.ICCV,2019。[9] Amir Gholami 、 Kiseok Kwon 、 Bichen Wu 、 ZizhengTai 、 Xiangyu Yue 、 Peter Jin 、 Sicheng Zhao 和 KurtKeutzer。Squeezenext:硬件感知神经网络设计。2018年CVPR工作室论文[10] Song Han,Huizi Mao,and William J Dally.深度压缩:使用修剪、训练量化和霍夫曼编码压缩深度神经网络。2016年学习表征国际会议[11] Song Han,Jeff Pool,John Tran,and William Dally.学习权值和连接以实现高效的神经网络。神经信息处理系统的进展,第1135-1143页,2015年[12] Matan Haroush,Itay Hubara,Elad Hoffer,and DanielSoudry. 其中的知识:无数据模型压缩方法。arXiv预打印arXiv:1912.01274,2019年。[13] Kaiming He,Xiangyu Zhang,Shaoying Ren,and JianSun.用于图像识别的深度残差学习。在Proceedings ofthe IEEE conference on computer vision and patternrecognition,第770-778页[14] Geoffrey Hinton Oriol Vinyals和Jeff Dean。在神经网络中提取知识。研讨会论文,NIPS,2014年。[15] 马克·霍洛维茨计算2014年IEEE国际固态电路会议技术论文摘要(ISSCC),第10IEEE,2014。[16] Andrew G Howard,Menglong Zhu,Bo Chen,DmitryKalenichenko,Weijun Wang,Tobias Weyand,MarcoAn-dreetto和Hartwig亚当。Mobilenets:用于移动视觉应用的 高 效 卷 积 神 经 网 络 。 arXiv 预 印 本 arXiv :1704.04861,2017。[17] Forrest N Iandola、Song Han、Matthew W Moskewicz、Khalid Ashraf 、 William J Dally 和 Kurt Keutzer 。Squeezenet:Alexnet级别的精度,参数减少50倍,模型大小为0.5 MB。arXiv预印本arXiv:1602.07360,2016.[18] Benoit Jacob、Skirmantas Kligys、Bo Chen、MenglongZhu、Matthew Tang、Andrew Howard、Hartwig Adam和Dmitry Kalenichenko。神经网络的量化和训练,有效的整数算术推理。在IEEE计算机视觉和模
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功