点击下方卡片,关注「集智书童」公众号
视觉 Transformer (ViTs)在各种视觉任务上表现出惊人的性能。然而,ViT模型存在大量的计算和内存需求,这使得在资源受限的平台部署起来具有挑战性。量化是一种流行的减少模型大小的方法,但大多数研究主要关注整个网络的等位比特量化,导致次优解决方案。虽然有一些关于ViTs混合精度量化的研究,但它们通常依赖于搜索空间方法或随意使用混合精度。
在这篇论文中,作者引入了LRP-QViT,这是一种基于可解释性的方法,用于根据不同层在分类过程中的重要性分配混合精度比特分配。具体来说,为了衡量每个层在预测目标类别时的贡献分数,作者采用了分层相关传播(LRP)方法。LRP在输出层分配局部相关性,并通过所有层传播,直到达到输入层。这些相关性分数作为计算层贡献分数的指示器。此外,作者还引入了一种剪切通道量化,旨在消除后LayerNorm激活中的异常值,从而减轻严重的跨通道变化。
为了验证和评估LRP-QViT,作者在各种数据集上使用LRP-QViT,包括ViT、DeiT和Swin Transformer 模型。作者的实验结果表明,无论是固定比特还是混合比特的预训练量化方法,在4位和6位量化方面都超过了现有模型。
1 Introduction
视觉 Transformer (ViTs)在各种视觉任务上取得了最先进(SOTA)的性能,包括图像分类,目标检测和分割。然而,它们的计算需求高、内存占用大且能源消耗大,这使得在资源受限的平台部署起来不切实际。压缩和加速技术已经被研究用于ViTs,旨在在保持性能的同时减少原始网络大小。用于模型缩减的各种方法包括网络剪枝,低秩分解,量化,知识蒸馏,以及动态标记减少。
模型量化是一种有效且流行的方法,通过将浮点参数转换为低位表示来减少模型大小,但其缺点是伴随着性能的降低。因此,研究量化方法以减轻性能下降的影响非常重要。量化感知的训练(QAT)涉及将模型参数转换为较低位精度,并在整个数据集上进行再训练以优化量化的模型并恢复性能下降。然而,这种方法在时间和资源上的训练成本很高。相反,后训练量化(PTQ)被认为是高效且实用的压缩技术。它不需要重新训练,而是直接对模型进行量化。相反,它只使用一小部分图像来校准量化的参数。
已经进行了一系列关于ViTs量化后训练量化的研究。这些工作已经识别出几个限制量化模型性能的瓶颈组件,例如LayerNorm、Softmax和GELU,并提出了后训练量化方案以获得改进。然而,大多数现有的工作是基于假设ViTs中的所有层对模型输出的贡献相等,因此使用整个网络的相等位精度量化,导致次优解决方案。固定位量化强制重要层以与非重要层相同的位精度量化,错过了进一步减小模型大小并提高性能的机会。
混合精度量化(MPQ)通过允许不同层使用不同的位精度量化来解决这个问题。这使得关键层可以使用比其他层更高的位精度。大多数关于MPQ的前期工作都集中在卷积神经网络(CNNs)上,并使用基于策略搜索的方法,或基于准则的方法来确定最优位精度。
在本文中,作者提出了一种可解释性方法,用于视觉 Transformer 模型的混合比特量化。作者利用每层对模型性能的贡献来获取所有层的贡献分数,以指导不同层的精度比特分配策略。作者采用层相关传播来获取每个层的贡献分数,这些分数可以用来指导不同层的量化策略。
在LRP-QViT中,作者采用了并改进了RepQViT框架进行模型量化。具体来说,对于LayerNorm后的激活,作者引入了剪切通道量化的方法,以去除异常值并减轻推理阶段过大的跨通道变化的影响。这种剪切是通过调整LayerNorm的仿射因子和下一层权重来实现的。对于Softmax后的激活,作者完全采用了[23]中的修改,最初使用量化器进行量化,以实现更高的准确性,并在推理过程中使用量化器进行友好的量化。
通过改进的量化模型和可解释的混合精度比特分配,作者的主要贡献如下。
-
提出了LRP-QViT,一种用于视觉 Transformer 模型混合精度量化的框架。
-
LPR-QViT使用层相关传播为每个层分配贡献分数,并使用它们来指导比特分配。
-
作者还引入了剪切通道量化的方法,用于处理LayerNorm后的激活,它能够移除异常值并改进固定比特和混合精度量化下的性能。
-
在ViT、DeiT和Swin模型上的结果表明,与固定比特量化方法相比,LRP-QViT在分类、检测和分割基准测试上的优越性。
2 Related Work
Vision Transformer
Transformer 在自然语言处理(NLP)领域的成功激发了将视觉 Transformer 模型应用于计算机视觉任务的应用。ViT架构将图像块作为标记,并应用基于 Transformer 的模型进行图像分类,实现了显著的成功,这主要归因于强大的自注意力(SA)机制捕获的全局感受野。
ViT的成功之后,诸如Swin、DeiT和PVT等几项工作进一步提高了性能。DeiT引入了知识蒸馏策略,它依赖于蒸馏标记,并采用了各种数据增强技术,显著增强了ViTs的有效性和效率。Swin采用了一种分层架构,其中窗口发生偏移,以捕获局部和全局上下文信息,从而提高性能。除了图像分类之外,视觉 Transformer 已经被成功应用于其他任务,例如目标检测,分割和姿态估计。
为了解决ViTs的高计算需求,已经针对开发更小、更快变体进行了各种努力,如DynamicViT,EfficientFormer,TinyViT和MiniViT。然而,这些模型仍然保留了全精度参数。在这篇论文中,作者专注于模型量化来解决高计算资源的挑战。
Model Quantization
量化通过用比标准全精度模型更低的精度表示网络参数来减少内存使用和计算需求。以前的研究主要关注在QAT 和PTQ中使用固定比特精度在整个网络中。PTQ作为一种有效且实用的压缩方法,直接量化模型而不需要重新训练。PTQ4ViT使用双统一量化方法来减少Softmax和GELU激活的量化误差,并提出了Hessian引导的度量来搜索量化尺度。APQ-ViT引入了一种块校准方案来解决量化网络的优化挑战,并提出了保持马特效应的量化以保持Softmax层的幂律重新分配。
FQ-ViT提出了二进制指数因子来处理LayerNorm中的跨通道变化,并使用对数量化Softmax层。RepQ-ViT将量化阶段和推理阶段分开,以实现精确的量化和高效的推理。在量化阶段,它使用通道校准来解决LayerNorm中的跨通道变化,并使用对数量化来增强Softmax层的表示能力。在推理阶段,它重新参数化通道校准为层校准,并对数量化为对数2量化,以实现硬件友好的推理。
现有的关于混合精度的工作主要集中在使用准则方法或搜索方法的卷积神经网络(CNNs)上。对于视觉 Transformer (ViTs)的混合精度研究很少。在[29]中,ViTs中的多头自注意力(MHSA)和多层感知器(MLP)模块的混合精度基于敏感性,该敏感性通过MHSA的注意力图的核范数和MLP的输出特征进行计算。PMQ通过测量网络在删除层时产生的误差来估计层的敏感性,并使用帕累托前沿方法分配最优比特宽度。
在本论文中,作者利用 Transformer 可解释性来估计ViT层的敏感性,以便为量化分配混合精度。此外,作者采用并改进了RepQ框架,以实现有效的混合精度后训练量化的 Transformer 。
Explainability for Transformers
先前的可解释性研究主要集中在卷积神经网络(CNNs)上,主要关注梯度方法或归因方法。然而,随着视觉 Transformer (ViTs)架构的进步,对于 Transformer 的可解释性研究已经显著增加。在Attention Rollout方法中,来自不同层的注意力分数线性组合,然而这种方法很难区分正负贡献。层相关传播(LRP)方法将预测类别相关的相关性从后向前传播到输入图像。
已有几项工作将LRP应用于 Transformer。然而,许多这些研究忽视了注意力在所有层之间的传播,并忽略了网络中执行两个激活图混合的部分,例如 Short-Cut 和矩阵乘法。此外,大多数工作没有区分各层对模型决策的正负贡献。如果没有这种区分,正负贡献都混合在一起,导致不必要的相关性分数。
在[6]中,相关性和梯度信息被用来迭代地消除负贡献并计算每个注意力头在每个 Transformer 模型层中的准确相关分数。在这项工作中,作者采用了[6]中提到的相关性分数计算方法,并将其扩展到计算其他层,例如qkv层、线性投影层、矩阵乘法层和全连接层的相关性分数。
3 Methodology
Vision Transformer Architecture
视觉 Transformer (ViT)将一张图像转换为个扁平的2D块的序列。每个块通过一个线性投影层映射到一个维的向量,该向量表示为。标准ViT的核心结构包含多个块,每个块都包含一个多头自注意力(MHSA)模块和一个多层感知器(MLP)模块。
MHSA模块旨在理解标记之间的关系,并提取具有全局视角的特征。在个 Transformer 块中,MHSA模块处理输入序列,该序列经过初步线性投影得到 Query ,键和值,简写为qkv。接下来,计算 Query 和键之间的注意力分数,然后通过softmax层进行归一化。MHSA的最终输出是通过将MHSA中的多个头输出连接在一起得到的:
在MLP模块中,两个全连接层之间通过GELU激活进行分隔,将特征映射到高维空间并学习表示,如下所示:
在每个模块之前应用LayerNorm(LN),并在每个模块之后添加残差, Transformer 块可以表示为:
作者量化矩阵乘法、线性嵌入和softmax中涉及的权重和输入,同时保持层规范化全精度。
Model Quantization
在本文中,作者使用统一的量化函数对线性层、卷积层和矩阵乘法的权重和激活进行量化,并使用对数2量化函数对softmax激活进行量化。统一的量化将数据范围平均分成两部分,定义如下:
(7)
在这里,是原始的浮点权重或输入,表示量化后的值,是量化的比特精度,表示向下取整运算,clip表示超过量化域范围的张量元素将被截断。是量化的比例,是零点,两者均由的下界和上界确定。在去量化过程中,去量化后的值近似地恢复。
对数2量化函数将量化过程从线性转换为指数,并定义为:
3.2.1 Clipped Reparameterization for LayerNorm Activations
在ViTs中,在推理阶段,LayerNorm在每个前向步骤中计算统计量和,并归一化输入。然后,线性变换参数和重新缩放归一化后的输入到另一个学习的分布。LayerNorm的过程定义如下:
其中表示哈达马乘法。
当作者观察到Post-LayerNorm激活时,作者发现存在极端的跨通道变化,这是一个关键因素,它降低了后训练量化性能。许多研究已经探讨了这个问题,并提出了解决方案。在[35]中,实现了分组量化,将MHSA中与每个头相关的单个矩阵视为一组,并为每个组分配不同的量化参数。在[26]中,应用了通道量化的方法,根据二进制指数因子方法为每个通道分配不同的参数。在[23]中,使用了量化推理解耦技术,使用通道量化的方法进行量化。然后,在推理阶段,通道量化的参数通过取平均值重新参数化为层量化。
受到[23, 26]的启发,作者采用量化推理解耦范式,并提出了一种简单但有效的策略,使用剪裁重参化(CRL)进行LayerNorm激活。这涉及通过在通道均值周围一定数量的标准差内剪裁异常值来限制跨通道变化。
具体来说,对于第个 Transformer 块,给定输入,作者进行通道量化以获得尺度和零点。接下来,作者计算一个剪裁的通道量化的尺度和零点,如下所示:
原始参数和剪裁参数之间的变化因子分别表示为和。根据公式(8),作者可以将其表示为:
在公式(13)中,将中的每个通道除以得到。同样,在公式(14)中,将中的每个通道加上得到。这些操作可以通过调整LayerNorm的仿射因子来实现如下:
这一重参化导致了激活分布的变化,具体表示为。在MHSA模块中,LayerNorm后面的层是一个线性投影器层,用于qkv。qkv层的重参化移动可以表示为:
在这里,和分别表示qkv层的权重和偏差。为了抵消这种分布偏移,后续层的权重可以按照以下方式进行调整:
类似地,对MLP模块中的输入也应用了类似的调整策略。因此,通过修改LayerNorm的仿射因子和下一层的权重和偏置,作者实现了通道量化,从而实现了剪裁通道量化,有效地解决了跨通道变化的问题。
3.2.2 Nonlinear Quantization for Softmax Activations
在ViTs中,softmax操作将MHSA模块中的注意力分数转换为概率,表现出高度不平衡和不适宜量化的幂律分布。作者观察到,分布中的大多数值非常小,只有少数几个值具有较大的绝对值。以前的方法[26]直接应用了量化器,而在[10]中,提出了一种保持马特效应的量化。尽管这些方法在均匀量化方面表现更好,但它们并不能始终获得令人满意的性能。
在[23]中,采用量化推理解耦方法。使用对数量化器来量化softmax激活,而不是对数2,因为它提供了更高的量化分辨率,并准确描述了幂律分布。在推理阶段,将对数量化器的参数重新参数化为对数2量化器,实现对数和硬件效率的平衡,在这里作者采用了RepQ-ViT。
Layer-Wise Relevance Propagation
Layer-wise Relevance Propagation是一种可解释的人工智能方法,可以提供每个特征对模型输出的贡献的洞察。它通过为输出层分配一个相关性分数,然后反向传播所有层以计算输入特征的贡献分数。这些相关性分数作为计算每个层贡献分数的指示器。作者使用这些贡献分数来分配混合精度比特分配给PTQ。
3.3.1 Relevance and Gradients
假设分类头有个类别,其中表示要可视化的类别。作者传播相关性和梯度,以相对于类别。令表示网络的第层输入,其中,是网络的输入,是网络的输出。分类器输出在类别处的梯度,即,可以通过以下公式计算:
其中,索引对应于中的元素,对应于中的元素。令表示两个张量和之间的层操作。相关性传播遵循通用深度泰勒展开式如下:
Transformer 块包含GELU,输出正负值。为了保持保守规则,即所有层的相关性之和始终相同,作者移除所有负相关性元素。作者构造了一个索引子集,从而得到以下传播:
为了开始相关性传播,作者设置,其中是一个one-hot编码的目标类。
3.3.2 Layer Importance Score
在LRP中,相关性和梯度都从分类头通过每个块内的所有层向后传播到输入patch嵌入层。在此过程中,网络中的每个层学习到一个相关性得分映射。
具体来说,对于图像样本,在 Transformer 块中的注意力层,层梯度和相关性定义了注意力层的相关性得分映射为:
其中是在多头中的平均值,作者的分析仅关注梯度与相关性乘积的正值。为了定量衡量个注意力层对样本图像输出贡献分数,作者简单地取相关性得分映射的平均值。
由于LRP方法产生的相关性得分映射是针对不同图像样本的特定地图。第个块中注意力层的整体贡献分数通过在ImageNet1k训练数据集的50,000个随机选择的图像上取平均得到:
对于所有其他量化层,包括qkv层、矩阵乘法层(matmul1和matmul2)、投影层和全连接层(fc1和fc2),作者采用相同的方法计算它们的贡献分数以计算对输出分类的贡献。任何块中任何层的相对重要性分数是其对所有贡献分数的平均归一化值。第个块中注意力层的相对重要性分数的表达式如下:
在这里,表示第个 Transformer 块中的所有量化层。作者使用相对重要性分数来确定模型量化时的比特宽度,将更多的比特分配给相对重要性分数较高的层。
3.3.3 Mixed-Precision Bit Allocation
Transformer 架构的前几个块通常负责捕捉输入数据中的低级特征和细节。这些特征对网络有效地学习表示至关重要。
此外,前几个块对输入数据的微小变化敏感。如果这些块过于激进地进行量化,网络可能会失去其表示能力,可能导致整体性能下降。因此,为了避免在处理阶段早期损失信息,作者在后训练量化时,将第一二个块中的所有层分配更高的精度。为了保持模型大小,作者使用层重要性分数来识别重要层并减少它们的比特分配。
4 Experiments
Experimental Setup
对于后训练量化,作者采用了Timms库中的所有预训练权重和Backbone架构。作者从ImageNet1K训练集中随机采样32张图像用于图像分类,并从COCO数据集中采样1个样本用于目标检测和实例分割来校准量化参数。作者采用百分位数方法进行校准过程。所有块中的后LayerNorm激活都应用了剪裁比例参数化,所有MHSA模块也应用了比例参数化。对于层重要性分析,作者使用Timms库中获得的预训练权重,并采用[6]中的Backbone架构。
Results on ImageNet1K
为了证明LRP-QViT在图像分类中的优越性,作者在ImageNet1K数据集上进行了广泛实验,采用了各种视觉 Transformer 架构,包括ViT,DeiT和Swin。将量化结果与PTQ方法进行比较,结果如表1所示。作者的固定比特剪裁重参化层方法(CRL-QViT)和混合比特方法(LRP-QViT)明显优于当前最先进的方法,例如RepQViT。通过添加混合精度策略,LRP-QViT显著提高了平均准确性,比RepQ-ViT提高了4%。
对于特定的模型,如ViT-S和ViT-B,作者的混合精度LRP-QViT分别比RepQ-ViT提高了5.76%和6.89%。同样,对于6位量化,固定比特CRL-QViT和混合比特LRP-QViT都超过了其他所有方法。LRP-QViT可以达到与全精度 Baseline 相当的精度。
在DeiT-B和Swin-S量化中,混合精度LRP-QViT分别达到了81.44%和82.86%的准确率,分别比全精度模型降低了0.36%和0.37%。作者还观察到,当将模型量化到4位时,FQViT崩溃了,但LRP-QViT实现了最佳性能。此外,LRP-QViT不依赖于超参数调优或重构过程,正如FQViT、PTQ4ViT和APQ-ViT所看到的那样。
Results on COCO
为了进一步评估LRP-QViT的有效性,作者在COCO数据集上进行目标检测和实例分割任务评估,使用Mask R-CNN和Cascade Mask R-CNN检测器作为Backbone,结果如表2所示。PTQ4ViT表现出严重的性能退化,而APQ-ViT展示了改进但仍然不理想的结果,且两种方法都需要超参数调整和重构过程。
与最先进的RepQ-ViT相比,LRP-QViT方法实现了优越性能。对于使用Swin Backbone 的Mask R-CNN框架的4位量化,作者的混合精度LRP-QViT平均比RepQ-ViT多2个box AP和1.55个mask AP。在Cascade Mask R-CNN框架中,作者的混合精度LRP-QViT方法与RepQ-ViT相比略好一些。
同样,对于6位量化,LRP-QViT与RepQViT相比略好一些。当使用Swin-T Backbone 进行量化时,LRP-QViT实现了45.6个box AP和41.3个mask AP,仅比全精度 Baseline 低0.4个box AP和0.3个mask AP。同样,使用Swin-S Backbone 可以获得类似的结果,达到48.1个box AP和43.3个mask AP,仅比全精度 Baseline 低0.4个box AP和0.3个mask AP。
Ablation Study
为了验证LRP-QViT的有效性,作者进行了两个消融研究:对于后LayerNorm的剪切通道量化,如表3所示,以及对于后训练量化的混合比特分配,详细如表4所示。
表3呈现了DeiT-S和Swin-S模型在各种量化方案下,后LayerNorm激活的准确率。对于这两种模型,直接层量化导致了严重的性能下降,分别达到了33.17%和57.63%,因为其无法充分表示数据分布。应用通道量化解决了这些问题,导致了准确率的提高,分别达到了70.28%和80.52%。使用尺度参数化方法,在量化过程中使用通道量化并将学习到的参数转换为层量化以实现高效推理,导致了约1.25%和1.07%的准确率下降。剪切通道量化方法,通过移除异常值,保持了并提高了模型的准确性。
从后LayerNorm参数中。这种方法相对于通道量化在DeiT-S上的性能提高了0.5%。此外,添加混合精度策略进一步增强了两种网络的性能,分别提高了1.7%和0.8%。
表4展示了在不同位配置下,量化过程的分类任务结果。当将4位量化应用于DeiT-S时,将Block 1中所有层()的比特数提高到5位,同时保持其他层在Block 2中()为4位,可以将性能从70.78%提高到74.35%。类似地,将5位比特分配给Block 1和2中所有层(),而将其他块保持在4位,可以进一步提高性能,从70.78%提高到75.66%。
显然, Transformer 块的前两个层具有至关重要的作用,因为它们的输出会影响到所有后续层。因此,在本研究中,作者将这些层的比特精度提高到4位,以保持模型大小为4位平均量化。作者通过减少另一个块的相同层但为3位来达到这一目的,并受到层重要性分数的指导。有两种混合精度情况:
Efficiency Analysis
作者评估各种方法在量化校准的数据要求和时间消耗方面的有效性,具体如表5所示。校准时间使用单个3090 GPU测量。
FQViT无需重建即可快速运行。然而,即使有1000个校准图像,其4位量化性能也只有0.10%。另一方面,PTQ4ViT涉及重建过程,导致校准时间要求显著提高。LRP-QViT方法只需要32个样本(与RepQ-ViT相同),实现了可比的校准时间,同时性能远远超过PTQ4ViT。
5 Conclusions
在本文中,作者提出了一种新的方法LRP-QViT,用于视觉 Transformer 模型的后训练混合比特量化。LRP-QViT通过反向传播相关性和梯度来学习层重要性分数,并基于重要性分数选择最佳比特数进行混合精度量化。
此外,作者还引入了剪切通道量化,用于后LayerNorm激活,以移除异常值并防止跨通道变化,从而提高模型的性能。全面的实验表明,LRP-QViT在低位后训练量化方面优于现有方法。
参考
[1].LRP-QViT: Mixed-Precision Vision Transformer Quantization via Layer-wise Relevance Propagation.
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)
想要了解更多:
前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」
行业技术方案👉「AI安防、AI医疗、AI自动驾驶」AI模型部署落地实战👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」
欢迎扫描上方二维码,加入「集智书童-知识星球」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!
免责声明凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“阅读原文”,了解更多AI学习路上的「武功秘籍」