智客公社

标题: 北大华为鹏城结合初次提出视觉 Transformer 后量化算法 [打印本页]

作者: 樱木迷    时间: 2021-7-6 16:57
标题: 北大华为鹏城结合初次提出视觉 Transformer 后量化算法
(, 下载次数: 910)


AI 科技回复报道

编辑 | 陈大鑫

AI 科技回复明天为大家引见一篇由北京大学、华为诺亚实验室结合鹏城实验室的研讨人员最新提出的一种针对视觉Transformer的后训练量化方法,这种方法表现优于CNN中的量化算法。

这篇论文发现量化前后除了数据分布以外,留意力层的排序也存在分明差异,因此研讨人员提出运用量化前后分布的相似度损失和留意力层的排序损失来结合优化以得到最优的量化步长。

除此之外,论文还提出了一种基于矩阵核范数的混合精度量化算法。在不停止额外训练的状况下,Deit-B的8bit模型在ImageNet图像分类义务上可以完成81.29%的精度。

(, 下载次数: 923)


论文链接:https://arxiv.org/abs/2106.14156

1引言


近期,Transformer结构在计算机视觉义务中获得了令人注目的成果,比如图像分类、目的检测、图像超分等等。这些模型通常在大数据集上停止训练,并且具有相当多的权重参数。例如,ViT-L模型具有307M参数,需求64G FLOPs的计算量。这使得在一些计算资源受限的设备(比如手机和智能汽车)上运用这些模型带来了很大的应战。由于,实践运用中非常需求对基于Transformer的这些模型停止紧缩和加速。

量化是一种很有效的紧缩神经网络的方法,它是经过运用低比特宽度的权重值来代替全精度值而不会改变本来的网络结构,这一点对于一些精心设计的网络(比如Transformer)非常敌对。在自然言语处理义务中,曾经有一些研讨人员针对BERT停止训练感知的量化。但是,这些方法需求额外的训练,添加了计算资源的耗费。此外,在某些场景下,训练数据并不是都可以直接获得了,而在边缘设备上停止重训练的代价是不可忍受的。后训练量化是一种可以在不停止额外训练的状况下停止紧缩的算法,但是现有的算法都是针对卷积神经网络而设计(比如忽略了留意力层的影响),因此论文提出了一种针对视觉Transformer的后训练量化算法。

研讨人员首先将后训练量化建模为寻觅最优的量化步长成绩。为了更好地保留留意力层的功能,他们分析了留意力层量化前后特征的不同,引入了留意力层排序的损失函数。并与量化前后特征分布的相似度损失停止了结合优化。此外,论文还提出思索到不同网络层的特征多样化不同,可以根据留意力特征和输入特征权重矩阵的核范数来决议每个网络层的量化比特。


2方法





图1 视觉Transformer后训练量化算法框架图

视觉Transformer量化

Vision Transformer的计算量次要集中在多层自留意力(MSA)和多层感知机(MLP)模块。论文中对一切矩阵乘法的输入和权重停止了量化,与BERT量化中的算法相似,它们也没有对softmax操作和layer normalization层的参数停止量化,由于这些层的参数量很少并且量化它们对结果会产生很大的不良影响。

后训练量化优化

对于量化而言,我们需求将浮点数约束为整数,其中量化步长的选择尤为关键。平均量化函数是一种被广泛运用的选择,这样数据范围会被平均分割:

(, 下载次数: 1052)




其中代表量化步长,代表量化比特宽度,代表被量化的数据(比如权重或者网络层的输入)。Clip操作代表超出量化范围的数据会被截断在范围之内。

对于线性操作的相似度感知量化:对于MSA模块和MLP模块当中的线性操作,本来的输入可以被表示为

(, 下载次数: 1010)


。那对于权重和输入停止平均量化所对应的反量化函数可以描画为:

(, 下载次数: 953)


,

其中代表量化网络层的输入。经过上述两个公式,我们可以看出量化步长实践上也控制了量化过程中的截断阈值,从而影响了量化前后特征的相似度。相似度感知量化算法可以表示为:

(, 下载次数: 966)


其中

(, 下载次数: 975)


代表原始和量化输入特征之间的相似度,输入数据是由一个远小于训练数据集

的校验数据集得到。论文当中采用了比尔森相关系数作为特征相似度的度量:

(, 下载次数: 1003)


对于留意力层的排序感知量化:自留意力层是Transfomer结构中非常重要的部分,也是transformer与传统的卷积神经网络不同的地方。对于自留意力层,作者发现量化使得留意力特征的相对顺序变得不同,会带来很大的功能下降,由于,他们在量化过程中引入了一个排序损失:

(, 下载次数: 993)


其中

(, 下载次数: 1002)


表示成对的排序损失函数,表示权衡系数。损失函数的公式为:

(, 下载次数: 996)


为了处理上述的优化成绩,作者提出了一种简单且有效的迭代搜索方法来寻觅最优量化步长。首先,网络层输入的量化步长会被固定,然后搜索最优的权分量化步长。然后,权重的量化步长会被固定,搜索最优的输入量化步长。二者的量化步长交替迭代直到收敛或者达到了最大的迭代次数。为了疾速收敛,量化步长根据权重和输入的最大值停止初始化,并且将量化搜索空间

(, 下载次数: 1004)


平均分为了C个选择。

误差纠正:为了进一步减大批化带来的误差,在搜索之后作者采用了偏向纠正的方法。由于假如输入的希冀值不为0,那么输入的均值就会改变。这种偏向能够会对之后的网络层带来影响。因此作者对每个网络层的输入停止了偏向纠正。

(, 下载次数: 963)


在完成过程中,误差的希冀值可以经过校验数据集来计算,然后在网络层的bias参数中减去它。

混合比特量化:不同的transformer网络层拥有不同的数据分布,由于有不同的量化“敏感度”。本文作者提出了混合精度量化,对于愈加“敏感”的网络层分配更多的比特宽度。思索到transformer中特殊的结构,作者对MSA和MLP模块内的一切操作运用了相反的比特宽度,这样对硬件的完成也会比较敌对。

在论文中,作者提出运用MSA模块中留意力层特征和MLP中输入特征矩阵的核范数来作为度量网络层“敏感度”的方法。与HAWQ-V2中的方法相似,作者运用了一种帕累托最优的方式来决议网络层的量化比特。该方法的次要思想是对每个候选比特组合停止排序,详细的计算方式如下所示:

(, 下载次数: 896)


给定一个目的模型大小,会对一切的候选比特组合停止排序并寻觅值最小的候选比特组合作为最终的混合比特量化方案。

3 实验




图像分类义务虚验

作者首先在图像分类义务上对后训练量化算法停止了验证。从表1可以看出,在VIT和DeiT两种经典的transformer模型上,论文的量化算法均优于之前的卷积神经网络量化算法。在较小的数据集CIFAR-10上,论文的算法都接近或超过了全精度的transformer模型的功能,在ImageNet数据集上,Deit-B模型也获得了 81.29% 的Top-1准确率。

表1图像分类义务上的后训练量化结果

(, 下载次数: 955)


表2 目的检测义务上的后训练量化结果

(, 下载次数: 947)


目的检测义务虚验

作者还将后训练量化算法运用于目的检测义务中,在COCO2017数据集上,对DETR停止量化,8bit模型的功能可以达到41.7 mAP,接近全精度模型的功能。

表3 消融实验

(, 下载次数: 949)


消融实验

作者进一步对所提出的模块停止了消融实验,可以发现所提出的相似度感知量化、留意力层排序感知量化、误差纠正以及混合比特都对量化的功能有较好的增益效果。

4

总结




该研讨提出了一种针对视觉Transformer的后训练量化方案,该方案根据留意力层以及多层感知机层的特征图的核范数来决议各个网络层的比特宽度。

为了处理量化的优化成绩,作者提出经过寻觅最佳量化步长以保持量化后的特征图与原始特征图之间的相似性。此外,作者深化分析了留意力层与传统卷积层的区别,并引入了留意力层排序损失来保持留意力层的相对顺序。

最后,运用迭代搜索策略优化每个transformer层的量化步长。实验结果表明,与传统的后训练量化方法相比,该方法在网络精度和存储开支方面都有较大的提高。

由于微信公众号试行乱序推送,您能够不再能准时收到AI科技回复的推送。为了第一工夫收到AI科技回复的报道, 请将“AI科技回复”设为星标账号在看”。
作者: 猫猫2008    时间: 2021-7-6 17:04
分享了
作者: 邱国平    时间: 2021-7-7 15:08
打酱油的人拉,回复下赚取积分
作者: 周扒皮丨    时间: 2021-7-8 16:25
顶顶更健康
作者: 秋朵·樱    时间: 2021-7-9 13:40
佩服佩服!




欢迎光临 智客公社 (https://bbs.cnaiplus.com/) Powered by Discuz! X3.5