点击下方卡片,关注「集智书童」公众号
导读
训练后量化(PTQ)已成为降低视觉Transformer(ViT)存储和计算成本的有前景的解决方案。最近的研究主要集中在设计量化器来处理ViT特有的激活。然而,大多数现有方法低估了权重量化引起的信息损失,导致性能显著下降,尤其是在低比特率的情况下。此外,在量化ViT的Softmax后激活时,一个常见的做法是使用对数变换,不幸的是,这种方法优先考虑了零附近的低信息值。这种方法引入了额外的冗余,最终导致量化效果不佳。为了解决这些问题,本文提出了一种针对ViT的创新PTQ方法,称为AIQViT(针对ViT的架构感知训练后量化)。首先,作者设计了一种架构感知的低秩补偿机制,其中引入了可学习的低秩权重来补偿权重量化引起的退化。其次,作者设计了一种动态聚焦量化器,以适应Softmax后激活的不平衡分布,该量化器动态选择最高量化分辨率的最高价值区间。在包括图像分类、目标检测、实例分割、点云分类和点云部件分割在内的五个视觉任务上的大量实验表明,AIQViT优于最先进的PTQ方法。
- 引言
得益于强大的可扩展性和构建长距离依赖关系的能力,视觉Transformer(ViT)在各种视觉任务中取得了前沿的性能,例如图像分类、图像目标检测和点云分析。然而,现成ViT的计算强度和大量内存需求为它们在资源受限设备上的广泛应用设置了重大障碍。为此,已经研究了多种模型压缩技术,包括网络剪枝、知识蒸馏和模型量化,以降低复杂模型的存储和计算成本,同时保持其性能。
在模型压缩技术中,模型量化已成为一种广泛采用的范式,通过减少权重和激活的位宽来压缩模型。一些量化感知训练方法需要重新训练过程以恢复精度,这既计算量大又耗时。此外,它们通常依赖于完整的训练数据集,由于隐私问题,这可能不可行。为了应对这些问题,近年来PTQ(PTQ)越来越受欢迎。与量化感知训练方法相比,基于PTQ的方法仅调用原始训练数据的小子集进行校准,为模型压缩提供了一个更可行的选择。
早期基于PTQ的计算机视觉任务研究主要针对压缩卷积神经网络(CNNs),并取得了显著的性能。然而,由于ViT模型具有与CNNs不同的独特组件(例如Softmax),将PTQ应用于ViT模型仍然具有挑战性,尤其是在低比特率情况下。为此,一些方法探索了适用于ViT的PTQ技术,其中考虑了特定的特征分布(即Softmax后和LayerNorm后)。不幸的是,这些工作在低比特率情况下仍然表现出有限的表现。这是因为全精度模型的参数空间与它们的量化版本并不固有地对齐,导致权重中存在大量的量化误差。此外,常用的对数运算倾向于保留零点附近的精度,这可能涉及大量的冗余信息,从而干扰了量化的有效性。
为解决这些挑战,本文提出了AIQViT(基于架构信息的ViTPTQ),这是一种针对不同任务中ViTs的PTQ方法,如图1所示。首先,作者提出了一种架构信息低秩补偿机制,以减轻权重量化引起的退化。具体来说,作者为每个线性层引入可学习的权重,以弥补权重量化造成的信息损失。为了降低训练成本并防止过拟合,这些权重以低秩格式设计,其秩由网络架构搜索确定。其次,作者设计了一种DFQ(动态聚焦量化器)来处理ViTs的后Softmax激活。具体而言,DFQ学习识别后Softmax激活中最有价值的区间,并随后在此区间内应用标准均匀量化,而不是对数运算,从而获得更好的量化效率。
总之,作者的主要贡献如下:
- • 作者提出了AIQViT,它由一个基于架构的低秩补偿机制和一个动态聚焦量化器组成,旨在以训练后方式对ViTs进行量化,即使在低比特率情况下也能实现。
- • 作者开发了一种基于架构的低秩补偿机制,用于补偿ViT模型权重量化导致的信息损失。
- • 作者设计了一种DFQ来处理Softmax激活后的不平衡分布,无需使用对数运算,从而实现更高的量化效率和更好的性能。
- • 在五个任务(包括图像分类、目标检测、实例分割、点云分类和点云部件分割)上进行的广泛实验,使用多个ViT变体验证了AIQViT相对于几种最先进的PTQ方法的优越性。
- 前言
ViTs概述
ViTs主要由嵌入层和一些堆叠的Transformer块组成,有助于捕捉不同 Patch 中隐藏的长距离关系。具体来说,输入图像首先被分割成几个 Patch ,然后输入到线性层以获得其特征表示,其中表示 Patch 的数量,表示嵌入维度。随后,被送入一个包含多头自注意力(MHSA)和多层感知器(MLP)模块的Transformer块。从数学上讲,对于第个Transformer块,上述过程可表示为:
MHSA模块通过以下方式处理所有 Patch :
(4) 其中 , , 分别代表第 个注意力头的 Query 、 Key和Value 。 表示每个注意力头的特征维度。 是注意力头的数量。为了便于阅读,作者省略了偏置项。然后,MLP 对 Patch 特征进行单独编码,其定义如下:
和 表示线性层中的权重。
量化器
均匀量化器。由于其广泛的硬件平台兼容性,它被广泛使用,定义为:
其中, 是一个浮点值, 是量化值。、 和 分别代表量化尺度、零点和位宽。与先前的研究(Li等,2023b;Zhong等,2023)一致,作者在推理过程中对权重采用通道量化,对激活采用层量化。
基于Log2的量化器。它专门设计用于解决非负长尾激活量化的问题,这可以数学上表述为:
低秩自适应(LoRA)
LoRA在大语言模型领域被广泛研究,以实现参数高效的微调。从数学角度来看,给定一个预训练权重矩阵 ,LoRA的过程如下:
其中 是与输入 对应的隐藏状态,,,且秩 。在训练过程中,仅通过梯度下降更新 和 ,而将剩余的 冻结。训练完成后,通过将 赋值,将 无缝地合并到 中。
- 方法
基于架构的低秩补偿
与CNNs不同,ViTs由大量全连接(FC)层组成,这需要大量的计算和存储资源。然而,由于ViTs的架构更为复杂,直接对这些层应用权重量化可能会造成显著的信息损失,从而导致精度下降。为了解决这个问题,引入了一些可学习的权重用于FC层以补偿信息损失。这些可学习的权重以低秩格式进行公式化,有效地降低了优化成本,同时防止了由于数据有限可能出现的过拟合。该过程如图2所示。
低秩补偿过程。受LoRA的启发,作者将可学习的低秩权重引入量化,并重新表述公式(8):
在固定的情况下,更新和以最小化以下重建损失:
表示第 次迭代中第 个块的输入数据集, 表示第 个块中所有可学习的低秩权重, 表示Frobenius范数, 和 分别表示第 个全精度块和量化块的输出。由于可学习的低秩权重,量化模型被鼓励学习一个与量化兼容的参数空间,从而显著减轻了由权重量化引起的重建误差,而不会产生大量的优化开销。在重建过程中,对LayerNorm激活后的输出使用通道量化。之后,作者使用尺度重新参数化(Li等,2023b)将它们转换为层量化。
秩的选择。由于的选择对量化模型的性能有深远影响,作者因此有动力自动化的搜索过程。具体来说,作者将的搜索建模为一个网络架构搜索问题,并因此使用高效的可微分架构搜索来处理这个问题。给定秩的候选集,全连接层的正向传播过程如下:
表示输入 的量化值, 是关于 的候选权重, 是一组可学习的参数,用于控制每个架构的重要性, 表示drop-path操作。同时,作者将校准集 划分为训练集 和验证集 ,并定义优化目标:
上述双层优化问题可以通过(Liu, Simonyan, 和 Yang 2018)中使用的近似架构梯度有效地解决。之后,对于每个线性层,最优的秩由 确定。请注意,尽管作者的 AIQViT 和 QLLM使用 LoRA 来补偿量化误差,但 AIQViT 和 QLLM 之间的差异是显著的。首先,QLLM 旨在量化大语言模型,而作者的 AIQViT 是为 ViTs 设计的。其次,QLLM 通过经验设置 的值。然而,发现秩 对于最终性能至关重要。因此,作者通过使用网络架构搜索来确定 ,而不是手动设置。
动态聚焦量化器
如图3(a)所示,Softmax激活后的分布不均衡,这已成为量化ViTs的核心挑战之一。为了应对这一问题,一些方法(Li等,2023b;Lin等,2022)利用对数运算的非线性特性,采用基于log2的量化器对Softmax激活后的值进行量化。在此,作者在图3(b)中可视化了log2量化器的执行过程。可以观察到,较小值的输入通常对应更高的量化分辨率,反之亦然。
这种方案表明,最有价值的激活位于部分区间内,而不是整个区间。然而,log2量化器倾向于保留接近O的值,这些值可能包含大量冗余信息,从而干扰量化的有效性。此外,log2量化器为每一层保持固定的区间,这可能不是最佳解决方案。基于上述见解,作者设计了一种DFQ(动态聚焦量化器)来动态选择每个Softmax层的最有价值区间。具体来说,设为所选区间,其中和是可学习参数,该区间为:
是Softmax后的激活值, 是位宽。通过动态选择 和 ,DFQ 将关注最有价值的区间,并相应地优先分配更多位。然后,作者对 区间内的值使用均匀量化器,并将 区间内的值直接转换为 0,将 区间内的值直接转换为 。这样,Softmax后的激活值就可以在不进行对数运算的情况下进行量化,作者发现DFQ可以达到与基于 的量化器相当的结果,如图3(c)所示。
优化策略
为了最小化公式(10),作者偏离了BRECQ中使用的标准训练流程。这是因为作者发现,以有意义的方式排列样本可以获得更好的性能,尤其是在超低比特率情况下(即3比特)。受课程学习启发,作者通过首先提供较容易的样本,然后逐渐引入较难的样本来优化公式(10)。具体来说,作者选择重建损失来衡量每个样本的难度,第次迭代的训练数据为:
其中, 表示校准数据, 和 分别代表 和 的大小, 用于在第 次迭代中调度训练样本的比例,该比例由一个线性函数定义:
₀
₀
是训练样本的初始比例,在AIQViT中设置为 0.5, 是迭代的总次数。因此,量化模型在早期训练阶段倾向于学习高置信区域,减轻了异常值的影响,并为稳定优化准备了更有利的参数空间。
- 实验
实验设置
数据集与竞争方法。作者采用ImageNet、Mode1Net40和ShapeNetPart分别用于图像分类、点云分类和点云部件分割。COCO数据集用于评估目标检测和实例分割任务。作者使用BRECQ、QDrop、PTQ4ViT、RepQ-ViT、APQ-ViT、Min-Max作为竞争方法。
实现细节。对于图像分类,作者采用(Zhong et al. 2023)中的实验设置,并从ImageNet数据集中随机选取一个包含1,024个样本的校准集。作者在包括ViT、DeiT和Swin Transformer在内的多种模型上评估AIQViT,批处理大小设置为24。对于目标检测和实例分割,作者在COCO数据集上使用Mask-RCNN和Cascade Mask-RCNN,使用一个包含256个样本的校准集和批处理大小为1。
对于点云分类和部分分割,作者在Point Transformer上评估AIQViT,批处理大小为32,校准集包含512个样本。网络架构搜索和校准的迭代次数分别设置为2,000和6,000。作者通过实验将应用于所有视觉任务中的所有模型变体。
图像Net上的图像分类
在ViT-S和ViT-B的量化中,分别达到了和的Top-1准确率,这远远达不到实际应用的实用性。相比之下,BRECQ和QDrop通过利用块级重建,在RepQ-ViT的基础上表现略好,这使得可以获得更准确的量化参数。
在W4/A4量化设置中,APQViT在DeiT-T和DeiT-S量化中分别达到了和的准确率,而RepQ-ViT通过应用尺度重参化技巧,测试准确率提高了超过。此外,在W6/A6量化设置中,所有竞争方法都取得了令人满意的性能,不同方法之间的性能差距最小。尽管如此,作者的AIQViT在大多数情况下都实现了最高的Top-1准确率。例如,与全精度DeiT-B相比,作者的AIQViT在W6/A6量化情况下实现了的测试准确率,这仅对应的准确率损失。
COCO上的目标检测与实例分割
与RepQ-ViT一致,作者在COCO数据集上评估了目标检测和实例分割任务的性能,量化结果如表2所示。值得注意的是,PTQ4ViT在不同量化设置中表现最差,这可以归因于其精致的双尺度机制在应用于更复杂的架构时失去了通用性。
此外,作者的实验表明,当使用Swin-S作为主干网络时,APQViT能够达到预期的结果,但当使用Swin-T作为主干网络时,其性能显著下降,这表明其对主干网络的选择缺乏鲁棒性。相比之下,作者的AIQViT在采用W4/A4量化对Mask R-CNN进行量化时表现出优异的性能,在SwinS作为主干网络的情况下,比BRECQ高出了4.6个box AP和2.7个mask AP。值得注意的是,对于使用Swin-T作为主干网络的级联Mask R-CNN的W6/A6量化,作者的AIQViT获得了50.2的box AP和43.6的mask AP,与全精度版本非常接近,仅相差0.2个box AP和0.1个mask AP。
模型Net40上的点云分类
作者还在3D点云分类任务上展示了AIQViT的有效性。具体来说,作者选择了Point Transformer作为 Backbone,并在ModelNet40上验证了AIQViT。实验结果如表3所示。观察可知,Min-Max在W4/A4和W6/A6量化中均取得了最差的表现,这主要是由于min-max标准估计的量化参数不准确所致。此外,作者的AIQViT在W4/A4量化中比BRECQ高出5%,这表明AIQViT可以很好地应用于3D点云分类任务。
ShapeNetPart上的点云部分分割
对于3D点云部件分割任务,AIQViT在ShapeNetPart数据集上通过使用平均交并比(mIoU)作为评估指标,其优越性得到了验证。实验结果如表4所示。如表4所示,可以很容易地观察到,AIQViT在W4/A4和W6/A6量化方面始终优于其他竞争方法。具体来说,对于W4/A4的情况,AIQViT比BRECQ有大幅度的提升。在W6/A6量化情况下,AIQViT实现了76.99 c.mIoU和81.76 i.mIoU,这仅比全精度模型低1.58 c.mIoU和1.50 i.mIoU。
消融研究
为了展示AIQViT关键组件的有效性,作者在ImageNet数据集上使用DeiT-T进行了消融实验。为了方便起见,架构指导的低秩补偿、动态聚焦量化和课程学习策略分别简称为AILoC、DFQ和CL。定量实验结果详见表5。请注意,当排除DFQ时,使用均匀量化器对Softmax激活后的输出进行量化。
结果表明,当所有变体都使用时,AIQViT取得了最佳结果。具体来说,与未使用任何变体的原始版本相比,AILoC在W3/A3、W4/A4和W6/A6量化下分别提高了测试准确率15.31%、10.80%和7.61%,证实了AILoC中使用的低秩补偿机制的有效性。此外,当DFQ不存在时,AIQViT的准确率下降了11.93%,这表明DFQ在处理低比特情况下的优越性。作者还观察到,CL策略对低比特量化的改进比高比特量化更为显著。这可以归因于低比特模型从CL中使用的更平滑的优化目标中受益更多。
为了验证在 AILoC 中搜索到的架构的优越性,作者在 ImageNet 数据集上使用 DeiT-T 和 DeiT-S 进行了实验。结果如表6 所示。AIQViT 在自动 的设置下,其性能始终优于固定 的设置。这主要归因于可微架构搜索,它为模型量化带来了更合适的架构。对于 DeiT-S 来说,在 W4/A4 和 W6/A6 量化情况下, 的模型比 的模型分别高出 1.0% 和 0.3%,这表明直接增加 并不能保证更好的性能。
图4(a)展示了DFQ学习到的量化区间。结果显示,不同的层对应着不同的区间,一个明显的趋势是浅层层通常比深层层具有更大的区间。作者还研究了校准数据集大小的影响。如图4(b)所示,与W3/A3量化相比,W4/A4量化对校准大小的鲁棒性更好。当仅使用256个样本时,W4/A4和W3/A3量化都产生了不理想的结果,这可以归因于有限数据导致的过拟合。
参考
[1]. AIQViT: Architecture-Informed Post-Training Quantization for Vision Transformers
扫码加入👉「集智书童」交流群
(备注: 方向+学校/公司+昵称 )