从全局到局部,MGRQ 如何优化 Vision Transformer 的量化效果 ?

点击下方卡片,关注 「AI视界引擎」 公众号

picture.image

后续训练量化(PTQ)有效地压缩了视觉模型,但不幸的是,它伴随着一定程度的准确度下降。

重建方法旨在通过缩小量化模型与全精度模型之间的差距来提高模型性能,通常能取得很有希望的结果。然而,在Vision Transformer(ViT)中通过重建显著提高PTQ性能的努力显示出有限的效果。

在本文中,作者彻底分析了这种有限有效性的原因,并提出了一种名为MGRQ(混合粒度重建量化)的方法来解决这一问题。

与先前的重建方案不同,MGRQ采用了一种混合粒度的重建方法。具体来说,MGRQ通过引入额外的块全局监督和块内局部监督来增强PTQ的性能,基于优化块重建。

额外的块全局监督考虑了块输出与模型输出之间的关系,通过全局监督辅助块重建。同时,块内局部监督通过在每个块的各层对齐输出分布来减少泛化误差。随后,MGRQ通过混合粒度损失融合进一步优化重建。

在各种ViT模型上进行的广泛实验证明了MGRQ的有效性。

值得注意的是,MGRQ在低比特量化中展示了强大的性能,从而增强了量化模型的实用性。

1 Introduction

最近,基于Transformer的视觉模型快速发展,展示了在图像分类[1],目标检测[2],实例分割[3]方面显著的成功。ViT[4]的进展拓宽了传统上由卷积神经网络主导的计算机视觉任务的视野。然而,与CNN相比,ViT的计算成本和内存占用提出了重大挑战,阻碍了进一步的发展和模型部署。

因此,越来越多的关注点放在了模型压缩技术上,以减少内存占用并加快模型推理。常见的如蒸馏[5],剪枝[6]和量化等方法被广泛应用于这一追求中。量化将模型中的浮点参数(如权重和激活)转换为低比特整数参数。这种方法由于其降低模型内存成本和加速推理过程的好处而被广泛应用于模型压缩。

此外,量化可以在不改变结构的情况下实现非常高的压缩比。

量化不可避免地导致模型准确度的下降。量化感知训练(QAT)[8, 9]和后训练量化(PTQ)都旨在解决这一挑战。PTQ通过不重新训练获得量化模型,在计算开销和时间效率方面具有显著优势。尽管通过PTQ获得的量化模型的准确度低于QAT获得的模型,但可以采用有效的策略来缩小这一差距。最近关于PTQ的研究集中在利用重建技术提高量化模型的准确度。

重建方案旨在通过最小化量化模型与全精度模型之间的距离来缩小性能差距。Brecq[14]在CNN上表现出优秀的性能增益,但在ViT中并不明显。作者的分析表明,由于ViT中的独特结构,一旦量化,准确度显著下降。认识到这个问题,RepQ-ViT[10]采用了逐通道量化以及分别为LayerNorm和Softmax使用量化。这个解决方案显著减轻了问题,并将4比特PTQ的性能提升到了实用水平。然而,正如图1所示,作者在基于RepQ-ViT实施重建优化时,并没有观察到性能的显著提升。这表明,除了ViT本身带来的挑战外,重建优化方案也遇到了一些问题。鉴于Brecq仅依赖于块级重建粒度,作者认为这种方法在减少泛化误差方面未能充分对齐每个层的输出。此外,它还忽略考虑了块输出与最终输出之间的关系。

picture.image

在本文中,作者的分析表明,单一粒度的重建并不是最优的,如图1所示。尽管当前块级重建取得了成功,但它忽视了块之间的依赖关系。这种疏忽归因于单一粒度重建的固有局限性,这些局限性难以独立克服。因此,迫切需要探索混合粒度重建,不同的粒度重建相互补充,从而带来更优的性能。

因此,作者提出了MGRQ,一种具有混合粒度重建的后训练量化方法,用于视觉Transformer。

作者的方法MGRQ,通过额外的块全局监督(EBGS)和块内局部监督(IBLS)改进了块级重建。EBGS通过最终输出为块重建提供全局监督,而IBLS对齐层输出以最小化泛化误差。该方法以混合粒度损失融合结束,提升整体性能。

总结来说,作者的贡献如下:

  • 作者的分析表明,依赖单一粒度的重建方法并不是最优的。尽管当前主流的块级重建表现出值得称赞的性能,但其固有的局限性仍然存在,阻碍了进一步的优化。
  • 作者的MGRQ方法巧妙地利用了不同粒度的优点,显著提升了模型的性能。作者的工作提出了混合粒度重建,将选择最优重建粒度的初始挑战转变为混合粒度融合的问题。
  • 作者在ImageNet上进行了大量实验,以验证MGRQ的优势。值得注意的是,这种方法不仅提升了量化模型的性能,还与混合精度量化等方法很好地集成。

2 Preliminaries

Vision Transformer Framework

总的来说,Vision Transformer由一系列的 Transformer 编码器块组成。每个编码器结构主要由多头自注意力(MSA)和多层感知机(MLP)组成。最初,ViT将输入图像转换为个扁平的图像块。在嵌入投影之后,每个图像块相继映射到一个向量。这个张量随后被送入编码器块进行后续操作。此外,在每个块之前和之后分别应用LayerNorm(LNorm)和残差连接。对于一个具有块结构的ViT,第块的实现流程如下:

其中。MSA可以捕获图像块之间的全局相关性。第块中MSA的输入表示为。在线性投影之后,作者分别获得 Query 、键和值。

其中, 和是权重矩阵。随后,通过将softmax操作应用于 Query 和键值来计算注意力分数。将个 Head 的注意力分数拼接起来,得到MSA的输出。

注意力权重的计算方式如下:使用软最大化函数对和的转置的点积除以后,再与相乘。多层自注意力的计算如下:将个注意力头的结果拼接起来,并与权重矩阵相乘。

多层感知机(MLP)旨在将特征投射到高维空间以捕捉它们的表示。这个过程是通过两个全连接层实现的,并包含了GELU激活操作。当输入为时,计算如下:

多层感知机的计算为:GELU激活函数应用于后,再乘以并加上。

模型量化

对于预训练模型参数,量化的目标是在保持高模型准确性的同时,使用低比特精度表示。这个过程通常由均匀量化器执行,操作如下:

量化:等于将除以缩放因子后取整并加上偏移量,然后限制在0到的范围内。

去量化:等于缩放因子乘以量化值减去偏移量,近似等于原始值。

缩放因子:

零点:

在量化中, 表示32位浮点参数, 指示要量化的位数, 表示取整操作,裁剪函数用于将取整后的结果缩放到指定的范围 ,其中 表示量化结果。值得注意的是, 是缩放因子, 是零点,都由 的边界值确定。这些参数在PTQ的校准操作中至关重要。去量化操作从量化结果中恢复原始数据。由于取整操作,结果可能无法精确匹配初始的全精度值。

3 Method

从块输出进行重构可以取得良好的效果,但它仍然忽略了块之间的依赖关系。从网络输出进行重构似乎很直观,但由于重构的粒度较粗,可能不适合数据。基于层输出进行重构作为一种正则化技术,通过微调每层的输出分布来减轻泛化误差。然而,在追求近似全精度模型的过程中存在过拟合的风险。很明显,采用不同粒度的重构方法遇到了技术瓶颈,由于其固有的局限性,这些瓶颈难以自行解决。这促使作者利用混合粒度重构,并减轻因单一依赖粒度重构方法可能引发的问题。

作者提出的方法MGRQ包含三个组件:优化块重构(OBWR),额外块全局监督(EBGS)和块内局部监督(IBLS)。EBGS基于块重构进行操作,对模型的最终输出进行逻辑匹配。此外,EBGS考虑了在块重构过程中被忽视的方面,提高了整体性能。IBLS在块内的层中引入特征匹配,使块重构过程更接近于全精度模型。MGRQ的流程在算法1中总结。

picture.image

Optimized Block-wise Reconstruction

逐块重建(BWR)是不可或缺的。从BWR得到的量化模型为额外的块全局监督和块内局部监督奠定了基础,强调了BWR在塑造最终模型性能中的重要作用。在Brecq [14] 中的实验观察表明,当专注于单一重建粒度时,BWR被证明是最有效的方法。作者在ViT的每个 Transformer 编码器块上采用逐块重建,并且作者的实验提供了支持这种配置有效性的证据。作者假设在完成第块的重建后,量化模型的输出与全精度模型相应块的输出非常接近。因此,在重建第块时,预期会有良好的重建结果。作者以全精度模型为引导,从开始逐块系统地完成重建。然而,在实际场景中,随着模型层次的加深,逐块重建结果逐渐退化,这是由于校准数据集的限制和误差积累造成的。

为了解决这个问题,作者使用全精度模型中第块的输出作为量化模型中第块的输入,从而产生了优化的逐块重建(OBWR)。需要强调的是,作者的目标是计算损失,并不涉及对量化模型正常推理过程的任何实际修改。对于全精度模型和相应的量化模型,第块的作用分别表示为和。全精度模型中第块的输出表示为。如图2所示,量化模型中第块的OBWR计算如下:

picture.image

这意味着每个块独立地近似全精度模型中相应块,而不受前一个块积累误差的影响。然而,这种方法忽略了块输出与模型最终实际输出之间的关联。因此,作者引入额外的块全局监督来解决这一限制。

Extra-Block Global Supervision

在实际过程中,由于块输出累积的错误,作者提出的方法MGRQ引入了外部块全局监督( EBGS )。尽管中间块输出可能与全精度模型的输出接近,但它并不能明确证明最终输出的一致性。模型的总体性能也受到最终输出的影响。在这里,作者用和分别表示全精度模型和量化模型中第块的作用。对于全精度和量化模型,都使用相同的输入数据。如图2所示,量化模型中的EBGS计算如下:

每个模型块的输出随后被用作后续块的输入,以实现连续推理。校准数据集,由训练集中随机选择的图像组成,在获取相应的标注信息时存在挑战。因此,直接应用均方误差来评估两个模型输出之间的误差大小。

Intra-Block Local Supervision

为了在逐块重建输出时提高准确性,作者的方法引入了块内局部监督(Intra-Block Local Supervision,简称IBLS)。如图3所示,IBLS关注块内卷积或线性层在更细粒度上的影响。通过特征匹配,实现了在IBLS中对量化模型与全精度模型之间差异的评估。IBLS在逐层操作的层面上,作为一种正则化方法,通过调整每层的输出分布,最小化泛化误差。

picture.image

对于全精度和量化模型中的第块,每个块由个卷积或线性层组成,每个卷积或线性层的输出分别表示为和。第块的IBLS计算如下:

Mixed Granularity Loss Fusion

在作者的提出的MGRQ方法中,优化块状重建作为基础。额外的块全局监督通过分析块输出与模型最终输出之间的相关性来增强块重建。此外,块内局部监督充当正则化器,对齐每个块内各层的输出分布以减轻泛化误差。

因此,总损失需要根据不同损失的范围和重要性进行调整。有效的损失融合策略直接影响最终的重建结果。作者引入超参数 和 来加权损失,并在实验设置中提供选择这些值的依据。值得注意的是,这些超参数也是块状的,反映了在重建的每个阶段损失的变化。如图2和图3所示,在获得三个损失后,MGRQ执行混合粒度损失融合。简而言之,在重建第 块时,总损失可以表述如下:

4 Experiments

Experimental Setup

作者针对各种ViT网络架构进行了广泛的实验,包括DeiT-Tiny [19],DeiT-Small [19],DeiT-Base [19],ViT-Small [4]和ViT-Base [4]模型。为了评估作者提出的方法MGRQ的有效性,作者将其在ImageNet分类任务上的准确度与其他方法进行了比较。所有实验都在一个配备了GeForce A6000 GPU和AMD EPYC 7272 CPU的硬件平台上进行。校准数据集由从ImageNet训练集中随机选择的1024张图像组成。在重建过程中,每个模块使用Adam优化器进行3000次迭代优化,学习率设置为。每次迭代通过从校准数据集中随机选择32张图像进行优化。为了提高重建质量,作者的MGRQ方法采用了混合粒度损失融合技术。作者引入超参数和,以促进在不同重建粒度下的损失融合。考虑到各个ViT模块的独特特性,作者采用模块化的方法构建超参数,将不同的损失标准化到同一尺度。"Wn/An"表示将权重和激活值都量化到n位。

Quantization Results on ImageNet Dataset

作者在各种用于图像分类的 Transformer 模型上进行了实验,特别是应用了W4/A4和W6/A6量化,使用了ImageNet数据集,取得了卓越的结果。鉴于MGRQ的优点,作者重点关注低比特量化的性能。在W4/A4量化中,如表格1所示,FQ-ViT的准确度显著下降,仅达到0.1%。尽管PTQ4ViT和APQ-ViT涉及优化,但它们并没有明显地将准确度提升到实际水平。利用额外的块全局监督和块内局部监督的优势,MGRQ在W4/A4上展示了强大的性能。

在W4/A4量化中,MGRQ分别使ViT S、ViT-B、DeiT-S和DeiT-B模型的准确度提高了4.97%、7.11%、4.02%和2.07%。作者得出结论,MGRQ在提升低比特量化性能方面发挥着关键作用。MGRQ在分类任务中的准确度提升是显著的,缩小了与全精度模型的差距,并在低比特量化后提升了模型的可使用性。遗憾的是,作者观察到MGRQ在DeiT-T模型上并没有取得最优秀的结果。作者认为这是由于DeiT-T参数数量的限制,这限制了MGRQ的潜力。

在W6/A6量化中,尽管MGRQ的结果仍然有利,但相对于W4/A4并没有显著提升。作者观察到,当前方法在将模型量化到6比特时已经达到了满意的准确度性能。通过当前主流方法获得的全精度模型与6比特量化模型之间的差距小于1%。这在一定程度上限制了MGRQ的有效性。尽管如此,作者认为MGRQ有能力在未来缩小与全精度模型的差距,并将模型的低比特量化提升到更高的可使用水平。

Ablation Studies

为了验证MGRQ中关键组件的有效性,作者进行了消融实验,重点关注Extra-Block Global Supervision(EBGS)和Intra-Block Local Supervision(IBLS)。在作者涉及各种 Transformer 模型的广泛消融实验中,作者观察到MGRQ的组件在模型量化中显示出显著的结果。

在消融研究中,作者将模型量化到4位,并将其作为 Baseline 。随后,作者引入了优化后的块状重构(OBWR)并取得了积极的结果。作者分别为Extra-Block Global Supervision(EBGS)和Intra-Block Local Supervision(IBLS)设置了单独的实验设置,如表2所示。然而,当仅依赖网络级重构如EBGS时,模型的性能显著下降。作者推测这种退化可能是由于拟合不足造成的。具体来说,DeiT-S、ViT-S和ViT-B分别经历了5.34%、3.69%和6.62%的退化,这被认为是不可接受的。相比之下,仅使用层级重构,如IBLS,则显示出比 Baseline 更好的性能提升。这表明层级重构是有效的,但随着训练迭代次数的增加,存在过拟合的风险。

picture.image

在优化后的块状重构的基础上,引入Extra-Block Global Supervision(EBGS)使DeiT-S、ViT-S和ViT-B的准确率分别提高了1.60%、1.24%和0.87%。这强调了EBGS通过全局监督提高模型准确率的有效性。随后加入Intra-Block Local Supervision(IBLS)后,不同的ViT模型上准确率又额外提升了大约0.3%。这表明IBLS通过局部监督继续提升模型性能,尤其是当模型已经表现出高性能时。

5 Conclusions

作者提出MGRQ,一种针对ViT的混合细粒度重建的后训练量化方法。MGRQ起始于对ViT现有重建方案固有局限性的彻底分析。

随后,作者提出了两个关键组件:基于优化的块状重建的EBGS和IBLS。

EBGS旨在考虑块输出之间的关系以及模型输出的关系,以实现全局监督。

同时,IBLS专注于通过在每个块内对齐层输出分布来减少泛化误差。通过一系列广泛的实验,作者验证了MGRQ的有效性。结果表明,MGRQ具有显著优势,尤其是在低位量化方面。

MGRQ有效地缓解了后训练量化导致的模型精度下降问题。此外,它将低位量化带到了实际和可用的水平。

参考

[1].Mgrq: Post-Training Quantization for Vision Transformer.

点击上方卡片,关注 「AI视界引擎」 公众号

0
0
0
0
评论
未登录
暂无评论