本技术涉及人工智能技术领域,具体公开了一种用于ViTs的逐图像块后训练量化方法及系统,方法包括:获取全精度Vision transformer预训练模型、校准数据和量化器;将预训练模型中的全部模块替换为对应的量化模块,得到待量化的ViT模型,所述量化模块中包括激活值和权重的量化器,所述激活值采用逐图像块均匀量化器;利用所述校准数据,计算得到各量化器的缩放因子和零点偏移的初始值;利用校准数据和预训练模型,对缩放因子进行迭代优化,得到量化后的ViT模型。本发明允许每个图像块享有独立的量化参数,极大提升了量化分辨率并且使量化的激活值具有更强的表征能力。
背景技术
Vision Transformers (ViTs)在许多下游计算机视觉任务中取得了优异性能。然而,大量参数和存储需求严重阻碍其被部署于资源受限的硬件设备上。为了将ViTs运用于实际应用中,模型量化技术获得了研究人员的广泛关注。模型量化是最为高效和普遍的模型压缩方法之一,其用更低比特的形式来表示全精度的模型权重和/或激活值。
模型量化方法可大致被分成两大类流程:量化感知训练(Quantization AwareTraining, QAT)和后训练量化(Post Training Quantization, PTQ)。QAT利用完整的数据集以重训练或微调方式恢复量化模型的预测准确率。虽然量化模型的准确率可以恢复成与全精度模型相同的等级,但对于大规模的模型如ViTs,整个量化过程将极其消耗时间和能源。近来,越来越多的研究人员转向PTQ方法的研究。PTQ仅需要一个小型无标签的校准数据集并且无需微调来量化预训练模型,极大促进了模型的快速和高效部署。其缺点在于后训练量化后的ViTs模型的预测准确率会发生急剧下降,因此大部分工作集中在如何恢复量化后的模型准确率上。
大部分现有ViTs的PTQ工作将准确率下降归因于post-LayerNorm激活值的通道间差异以及post-Softmax激活值即注意力特征的非均匀分布。这些特殊模块设计了大量精巧的量化器和量化方法来消除数值差异对量化的有害影响并适应具有特殊分布的激活值。然而,现有方法仍存在两个问题:首先,所有具有严重通道间差异的post-LayerNorm激活值共享或部分共享对于量化性能而言非重要的量化参数。这种粗粒度的量化降低了量化分辨率并阻碍了激活值的表征能力,导致量化误差增加。其次,注意力特征相关量化参数的优化和其他量化参数的优化被认为同等重要,这可能会造成次优的注意力特征量化参数并使量化后注意力特征崩溃。崩溃后的注意力特征难以精准地捕获构成ViTs归纳偏置的全局依赖,对量化后ViTs的性能造成挑战。
Vision transformer模型的结构如图1所示,其部分模块的输入激活值的部分通道数值的箱型图和散点图如图2所示。图2中(a)-(h)显示出不仅是post-LayerNorm激活值具有严重的通道间差异,其他激活值也具有不同程度的数值差异。激活值的每个通道中还可能存在少量异常值。这些不同程度的数值差异和异常值将对量化参数产生负面影响,同时粗粒度的量化参数会使量化分辨率降低。一方面,很难找到一个共同的量化参数来适应所有的通道。粗粒度的量化参数意味着量化域中的一个整型数值对应着浮点域中较大的数值间隔。另一方面,异常值很可能主导量化参数的计算。这些异常值严重偏离其他数值,无法充分利用量化域中的量化等级即整型数值。因此,现有PTQ方法难以达到令人满意的准确率,尤其在低比特情形下。
实现思路