https://ar5iv.labs.arxiv.org/html/2309.02031
摘要
Vision Transformer (ViT) 架构在计算机视觉应用中越来越受欢迎和广泛应用。其主要特点是通过自注意力机制提取全局信息,性能优于早期的卷积神经网络。然而,ViT的部署和性能随着其规模、可训练参数数量和操作数量的增加而稳步增长。此外,自注意力的计算和内存成本随着图像分辨率的增加呈二次方增长。一般而言,由于许多硬件和环境限制(如处理和计算能力),在现实世界应用中使用这些架构是具有挑战性的。因此,本综述调查了确保次优估计性能的最有效方法。具体而言,将分析四类高效方法:紧凑架构、剪枝、知识蒸馏和量化策略。此外,引入了一种名为高效错误率(Efficient Error Rate)的新指标,用于标准化和比较影响推理时硬件设备的模型特征,如参数数量、位数、FLOPs和模型大小。总而言之,本文首先从数学上定义了使ViT高效的策略,描述并讨论了最先进的方法,并分析了它们在不同应用场景中的性能。在本文的最后,我们还讨论了开放挑战和有前景的研究方向。
关键词:计算机视觉,计算效率,视觉转换器
1. 引言
基于深度学习(DL)基础设施的人工智能(AI)解决方案在各种日常生活和工业应用场景中越来越受欢迎,如聊天机器人和感知系统[10, 38, 11, 39, 73]。这些任务通常基于神经语言处理(NLP)和计算机视觉(CV)解决方案,特别关注文本和图像分析。尽管此类算法通常通过卷积神经网络(CNN)模型开发,即由卷积操作组成的架构,用于在不同尺度上提取信息,但最近(2017年)[57],提出了一种新型的神经网络家族,即transformer模型。这些架构在AI应用中表现出色,得益于自注意力机制,能够同时从每个输入数据(如文本提示和像素)中提取特定信息及其相互关系,优于卷积的不变性特性。一般来说,Bahdanau等人[1](2014)引入的注意力机制旨在解决编码器-解码器架构中的瓶颈问题,将编码输入序列的最相关信息灵活地翻译到解码器部分。在NLP任务中,这个问题尤其在长度和/或复杂序列中尤为明显,而在CV密集预测应用(如语义分割和深度估计)中,这项技术将导致模型输出的重建能力优越,如[6, 71, 47]所示。此外,Vaswani等人[57](2017)重新定义了注意力机制,展示了自注意力在捕捉长程依赖性方面的潜力。
自首次开发以来,transformer模型通常应用于NLP场景,如语言翻译任务[44, 2]。随后,受transformer架构在CV任务中全局感受野所取得的出色性能的启发,Dai等人[9](2017)引入了可变形卷积,以克服CNN模块的固定几何结构。同样,Zhang等人[75](2020)提出通过图卷积神经网络建模长程依赖性。作者介绍了一种动态图消息传递网络(DGMN),能够在使用更少的MAC操作的同时,相对于动态卷积操作取得实质性改进。这些结果得益于图节点捕捉的较大感受野和较少冗余信息。尽管有这些解决方案显示了改善CNN模型的能力,Dosovitskiy等人[13](2021)提出了首个将自注意力应用于二维信号的解决方案,即视觉转换器(ViT)。作者设计了一个通用骨干架构,将输入图像划分为固定大小的补丁,以应用标准自注意力。此初步工作突显了transformer在CV研究领域的出色性能。
然而,ViT架构通常非常深且训练繁重。ViT的主要挑战之一是其关键元素的计算成本,即自注意力本身;这种情况在高分辨率和密集预测任务中尤为明显[61, 7, 71, 47]。特别是,自注意力的计算和内存成本随着图像分辨率的增加呈二次方增长。此外,在注意力块中计算的Softmax操作使这些结构在边缘和低资源设备上计算要求很高。这些苛刻的硬件要求对在资源受限设备(如嵌入式设备和自主系统)上推理ViT模型提出了重大挑战。此外,为了提供高质量的用户体验,集成transformer模型的实时计算机视觉系统必须满足低延迟要求。因此,由于新型ViT架构在估计性能上的不断改进(这以高计算成本为代价)和现实世界AI任务中对资源受限设备的需求的增加,本综述旨在深入分析最新的设计高效ViT模型的解决方案。
一般而言,Han等人[15](2022)、Tay等人[54](2022)和Khan等人[26](2022)先前提出的综述主要集中于transformer模型在NLP和CV任务中的一般概述及其各种应用场景。具体来说,这些早期研究仅依赖于小部分章节、未来调查或有限数量的分析方法与高效ViT策略相关。此外,最近(2023年)由于对能够在现实世界环境中执行任务的更准确模型的需求增加,进行了几项工作,导致该研究领域取得了重大进展。因此,通过对几项当前工作的审查,我们观察到需要一份完全专注于效率领域的综述。正如[15]中简要提到的那样,我们将ViT结构的高效深度学习算法分为四类,并采用以下方法:
- 紧凑架构(CA) - 分析为减少自注意力的计算成本而专门开发的解决方案,以保证ViT对输入特征的全局理解,同时减少(通常通过注意力线性化)此类架构的计算成本。
- 剪枝(P) - 关注于减少ViT模型中的神经元和连接数量的策略,以保持高精度,同时避免模型过度参数化并减少计算操作(乘法)的数量。
- 知识蒸馏(KD) - 分析旨在通过分享和压缩来自更深层模型(教师)的知识,来提高浅层(学生)模型性能的学习策略。
- 量化(Q) - 技术旨在将ViT的权重和激活函数的数据类型从浮点数减少到整数,并将精度从32位降低到较低的位数,以获得轻量且内存高效的模型。
此外,本研究的主要贡献总结如下:
- 我们对高效ViT方法进行了全面回顾,强调数学方面,分析了提出的策略,并在知名基准数据集上比较了它们的性能。
- 我们调查了四个选定高效类别(CA、P、KD和Q)中高效ViT策略的里程碑(截至2023年)。
- 我们引入了一种新颖的评估指标,名为高效错误率(EER),能够考虑推理时影响通用设备的所有参数,如参数数量、位数、FLOPs和模型大小,以公平地比较分析方法在知名基准数据集上的性能。我们还确定了在EER和估计能力(准确性)之间平衡得最好的策略。
- 最后,我们为未来的发展和有前景的研究方向提供了一些有用的见解。
本综述的其余部分组织如下:第2节回顾了ViT和高效策略的一些一般和数学概念,第3节描述了近年来提出的最先进的高效深度学习解决方案。最后,第4节比较了先前介绍的方法在解决不同CV任务时取得的估计性能,第5节讨论了ViT的挑战和有前景的研究方向。
2. 背景
本节旨在定义四类分析高效技术的初步概念和数学公式,以更好地突出第3节报告的最先进研究中引入的新颖性。具体而言,按照综述的四个子集分类,第2.1节、第2.2节、第2.3节和第2.4节分别形式化视觉转换器、剪枝、知识蒸馏和量化策略。
2.1 视觉转换器背景
transformer架构的显著发展主要归因于其捕捉长程依赖性的能力,并在非常大的数据集上训练时相比CNN模型能够整合更多信息[55]。这些架构由三个关键元素组成:补丁嵌入,通过级联自注意力块计算的特征提取和
分类头。一般来说,第一个元素用于在特征提取之前处理输入RGB图像,以获得嵌入数据序列。随后,每个嵌入序列被输入到由多个自注意力块组成的transformer编码器中,以提取低级特征和输入序列不同元素之间的复杂关系。最后,由两个前馈函数组成的多层感知器(MLP)头用于计算输出概率。本节的其余部分组织如下:我们将在以下段落中更详细地数学公式化路径嵌入、自注意力和MLP。
补丁嵌入:transformer结构的第一个关键元素是创建补丁嵌入;为了获得它,输入特征图通常按如下方式处理:首先,输入图像 x ∈ R H × W × C x \in R^{H \times W \times C} x∈RH×W×C 被划分为 N N N 个补丁。类似于NLP任务中的单词序列,补丁是包含部分输入图像的像素矩阵,即输入数据的子集。然后将每个补丁展平以获得 n n n 个实体的序列,并与可训练嵌入张量相乘,该张量学习线性投影每个平展补丁到维度 d d d;这导致形状为 1 × d 1 \times d 1×d 的 n n n 个嵌入补丁,一般将它们表示为 N ∈ R n × d N \in R^{n \times d} N∈Rn×d。随后,一个可训练的位置嵌入被添加到投影序列中,以在图像空间内添加每个补丁的位置表示,让我们定义整体输出嵌入为 z z z。
自注意力:作为接下来的步骤,给定补丁嵌入序列 z n z_n zn,自注意力机制学习如何将一个令牌 t i ∈ z n t_i \in z_n ti∈zn 与序列中的其他令牌( t j t_j tj 其中 j ≠ i j \neq i j=i 且 i , j ∈ d i, j \in d i,j∈d)结合在一起。这种解决方案从输入特征中提取全局信息,改善了众所周知的卷积操作的固定感受野。通常,transformer结构基于多头注意力(MSA)机制,MSA由多个并行运行的单一自注意力层组成;我们在图1中提供了上述操作的图形概述。
图1:Vanilla自注意力和多头自注意力块的图形概述。在Softmax点积自注意力中,操作的二次成本由 $ 𝒪(n^2)$ 突出显示。
因此,自注意力模块可以数学定义如下。给定一个输入向量,该操作首先计算三个矩阵:查询 Q Q Q、键 K K K 和值 V V V,其大小相等( d q = d k = d v d_q = d_k = d_v dq=dk=dv)。随后,该操作通过计算 s o f t m a x softmax softmax 函数将获得的分数转化为概率。因此,Vanilla自注意力[57],也称为Softmax点积自注意力操作,可以用注意力矩阵 A ∈ R n × d v A \in R^{n \times d_v} A∈Rn×dv 形式化定义,如公式1所示,其中输出矩阵 A A A 通过从完整输入序列中聚合全局信息来更新序列的每个组件。
A ( Q , K , V ) = S o f t m a x ( Q ⋅ K T d k ) ⋅ V (1) A(Q, K, V) = Softmax \left( \frac{Q \cdot K^T}{\sqrt{d_k}} \right) \cdot V \tag{1} A(Q,K,V)=Softmax(dkQ⋅KT)⋅V(1)
然而,从计算复杂性方面来看,此操作的时间和内存成本随着图像中补丁数量 n n n 的增加呈二次方增长,即 $ 𝒪(n^2)$。这种成本是由于两个点积操作(在图1中表示为MatMul),即计算 Q ⋅ K T / d k Q \cdot K^T / \sqrt{d_k} Q⋅KT/dk,其成本为 $ 𝒪(n^2 d_k)$,以及在Softmax概率与 V V V 之间的第二次点积,其成本为 $𝒪(n^2 d_v) $。最后,自注意力模块被连接在一起形成多头自注意力(MSA),以便同时从不同区域提取信息。
前馈网络:最后,为了获得输出概率,MSA模块的输入和输出被归一化( N o r m Norm Norm),并传递到由两个前馈层交错非线性激活函数(通常是GeLU)组成的前馈网络(FNN)。然后,通过定义 X X X 作为transformer模块的输入特征,我们可以表达模型输出 X o u t X_{out} Xout 如公式2所示:
X M S A = N o r m ( M S A ( X , X ) ) + X X_{MSA} = Norm(MSA(X, X)) + X XMSA=Norm(MSA(X,X))+X
X o u t = N o r m ( F N N ( X M S A ) ) + X M S A (2) X_{out} = Norm(FNN(X_{MSA})) + X_{MSA} \tag{2} Xout=Norm(FNN(XMSA))+XMSA(2)
2.2 剪枝背景
神经网络剪枝策略由Janowsky等人[23](1989)和Karnin等人[25](1990)提出,灵感来自人类大脑中的突触修剪。在这个过程中,只有一部分连接,即轴突和树突,会在童年和青春期阶段之间保持连接。在神经网络中,这种解决方案不需要干扰训练过程和损失函数;具体来说,剪枝策略在训练阶段后计算,以减少网络的神经元和连接数量;实际上,它也被称为训练后剪枝。这个过程是通过将一些神经元的权重设为零来实现的,通常是那些估计贡献较低的权重(显著性),即对最终预测影响最小的神经元。一般而言,这种策略将导致比原始模型更轻量的模型,由于剪枝后获得的稀疏矩阵(即具有零值),这些模型通常被称为“稀疏”模型。更详细地说,假设使用的框架能够在CPU/GPU设备上利用稀疏计算,这种策略将在推理时减少层之间的乘法次数,节省硬件计算并提高模型的推理频率。此外,通过定义数据集为 D D D,训练模型为 f ( x , W ) f(x, W) f(x,W),其中 x x x 为输入数据( x ∈ D x \in D x∈D),权重为 W W W,我们可以形式化剪枝算法,如算法1所示。
算法1 剪枝策略
输入: f ( ⋅ , ⋅ ) f(⋅, ⋅) f(⋅,⋅),可训练神经网络 D D D,训练数据集 P 0 / 1 P_{0/1} P0/1,剪枝特征矩阵
1: f ( ⋅ , W 0 ) ← f(⋅, W_0) \leftarrow f(⋅,W0)← 权重初始化
2: f ( x ∈ D , W ′ ) ← f(x \in D, W') \leftarrow f(x∈D,W′)← 训练收敛
3: f ( x ∈ d ⊆ D , P 0 / 1 ⊙ W ′ ) ← f(x \in d ⊆ D, P_{0/1} \odot W') \leftarrow f(x∈d⊆D,P0/1⊙W′)← 剪枝
具体来说,在训练阶段之后,剪枝策略通过将训练权重 W ′ W' W′ 与一个二元对角矩阵 P 0 / 1 ∈ { 0 , 1 } ∣ W ′ ∣ P_{0/1} \in \{0, 1\}^{|W'|} P0/1∈{
0,1}∣W′∣ 相乘来实现,该矩阵由一组剪枝特征 p 0 / 1 ∈ { 0 , 1 } p_{0/1} \in \{0, 1\} p0/1∈{
0,1} 组成。此外,为选择这些特征,通常使用子集 d ⊆ D d ⊆ D d⊆D 来计算权重的重要性评分。因此,在剪枝操作之后,只有一部分训练权重 W P 0 / 1 ∈ W ′ W_{P_{0/1}} \in W' WP0/1∈W′ 不会被设为零。
然而,由于原始模型内部神经元和连接数量的减少,这种策略通常会导致泛化能力相对于原始模型的降低。因此,为了定义零权重(快速推理)和估计性能之间的最佳权衡,开发的剪枝策略主要在如何识别可以设为零且准确性减少最小的权重,即如何最佳定义 p 0 / 1 p_{0/1} p0/1 向量方面有所不同。为了提供一个总体概述,剪枝技术通常集中在三组研究:(1)结构和非结构化方法,即关注整个权重集合或特定权重的策略。(2)评分计算,这是计算剪枝向量和识别可以剪枝的网络权重数量的可能方式。(3)训练阶段,即在训练阶段采用的训练-剪枝(或微调)策略。
2.3 知识蒸馏背景
知识蒸馏(KD)策略由Hilton等人[18](2015)提出,旨在减少深度神经网络相对于其他解决方案(如集成学习和专家混合)的计算要求。这种选择特别是由于在内存和计算能力有限的边缘设备上部署大型深度神经网络模型的困难。KD策略背后的基本思想是通过类概率将深度(预训练)模型的泛化和估计能力转移到浅层和轻量模型。通常我们将较深的模型称为教师,浅层模型称为学生。因此,学习策略的目标是训练学生模型以匹配教师产生的类概率( p i p_i pi);作者将这些值定义为软目标。因此,我们可以定义蒸馏损失( L D s t l ℒ_{Dstl} LDstl)如公式3所示,其中 p i t p_{it} pit 和 p i s p_{is} pis 分别是教师和学生的软标签, C E CE CE 是交叉熵损失函数。
L D s t l = C E ( p i t , p i s ) (3) ℒ_{Dstl} = CE(p_{it}, p_{is}) \tag{3} LDstl=CE(pit,pis)(3)
上述过程使得较小的模型能够最小化与教师输出分布的距离,即从非真实标签提供的信息中学习,从而紧密模仿预训练大型教师的行为。此外,通过将学生的硬标签(分类向量)与真实标签之间计算的交叉熵损失添加到总体优化问题中,即我们定义为 L C l a s s ℒ_{Class} LClass,我们可以将vanilla KD学习策略的损失函数( L K D ℒ_{KD} LKD)形式化,如公式4所示。
L K D = L C l a s s + L D s t l (4) ℒ_{KD} = ℒ_{Class} + ℒ_{Dstl} \tag{4} LKD=LClass+LDstl(4)
此外,为了更好地理解新引入的学习策略,我们在图2中展示其方框图表示。
2.4 量化背景
我们在这篇论文中回顾的最后一种压缩方法是量化过程。量化的目的是将神经网络参数(权重和激活值)从浮点精度数据类型(通常是32位)减少到更低位表示,如8/6/4/2位精度和/或转换为不同的数据类型,如整数。因此,量化模型将显著节省存储内存并加快推理过程。然而,由于强压缩,模型可能会出现严重的准确性下降甚至不稳定。
量化函数 Ψ ( ⋅ , ⋅ ) \Psi(\cdot, \cdot) Ψ(⋅,⋅)和量化区间 Δ \Delta Δ(也称为缩放因子,即使用可用的位宽表示数据的方法)是该方法的两个主要关键特征,应该谨慎选择。为了给出一个概述,通过定义 x x x为浮点值, k k k为可用位数,我们在方程5中报告了最流行的函数,即均匀量化函数,其中数据范围被等分。
Ψ k ( x , Δ ) = Clamp ( Round ( x Δ ) , − 2 k − 1 , 2 k − 1 − 1 ) \Psi_{k}(x, \Delta) = \text{Clamp}(\text{Round}(\frac{x}{\Delta}), -2^{k-1}, 2^{k-1} - 1) Ψk(x,Δ)=Clamp(Round(Δx),−2k−1,2k−1−1)
此外,图3展示了从常用的32位表示到一般k位压缩的量化过程的图形表示。
具体来说,存在两种量化方法:量化感知训练(Quantization-Aware Training, QAT)和训练后量化(Post-Training Quantization, PTQ)。第一种策略将训练和量化过程交替进行,即在低精度下微调量化模型,而第二种方法是在训练阶段之后计算的,不需要重新训练或微调。然而,对于ViT架构,由于重新训练阶段的高成本,QAT策略非常昂贵;相反,PTQ可能是更可取的解决方案,能够实现快速量化和部署,只需要少量样本(甚至是未标记的样本)来校准量化过程。
3 高效视觉Transformer
本节回顾了近年来提出的设计高效ViT模型的架构和策略。具体来说,按照调查的四个子集分类,3.1节、3.2节、3.3节和3.4节分别分析了专门为ViT模型设计的紧凑型ViT、剪枝、知识蒸馏和量化策略。我们在图4中展示了压缩技术行为的图形概述,并在表I中总结了回顾的模型。
3.1 紧凑架构设计
基于2.1节介绍的数学基础,本段回顾了多项研究,重点是类似架构的优化,即通过减少或线性化自注意力模块的成本来降低ViT的计算成本。为了更好地理解这些技术的发展,我们根据其发布日期回顾了提出的解决方案。这种直接的解决方案将强调自注意力计算成本的逐步减少。特别是,我们将指出早期研究(2021年)将减少二次计算成本,而不实现完全线性设计,如近期研究(2023年)所提出的那样。
Wang等人[60](2021年)进行了初步工作,提出了Pyramid Vision Transformer(PVT),这是一种用于密集预测任务的多用途无卷积(锥形)骨干网。ViT架构使用基于锥形结构的渐进缩小策略,以处理高分辨率特征图并减少其计算成本。该论文引入并替换了标准的多头注意力(MSA),采用空间缩减注意力(SRA),降低了注意力操作的计算/内存复杂度。此外,SRA减少了ViT的资源消耗,同时使PVT模型灵活地学习多尺度和高分辨率特征,即处理高分辨率图像。然后,SRA在阶段 i i i的注意力层中的缩减比例为 R i R_i Ri。
A S R A ( Q , K , V ) = A ( Q , S R ( K ) , S R ( V ) ) A_{SRA}(Q, K, V) = A(Q, SR(K), SR(V)) ASRA(Q,K,V)=A(Q,SR(K),SR(V))
同年,Liu等人[40](2021年)提出了Swin Transformer,这是一种能够实现输入图像尺寸线性计算复杂度的架构。这个结果通过在每个(不重叠的)窗口内计算局部多头自注意力操作(W-MSA)实现。这个选择避免了Dosovitskiy等人提出的全局自注意力操作,利用通过聚合输入特征图的相邻补丁获得的较小特征窗口。此外,作者引入了在连续自注意力层之间计算的偏移窗口(SW)操作。关于标准滑动窗口操作,所提出的解决方案结合自注意力机制,即偏移W-MSA(SW-MSA),在现实世界应用中显著改善了延迟,促进了硬件中的内存访问。
与之前的研究不同,Lu等人[43](2021年)提出了SOFT,这是一种无softmax的Transformer模型。作者识别出视觉Transformer架构中在自注意力层计算的softmax操作(即 e x p ( ⋅ ) exp(\cdot) exp(⋅))的高计算成本,因此提出通过低秩分解来近似操作。因此,最终的无softmax自注意力( A S O F T A_{SOFT} ASOFT)公式如下,作者通过卷积和平均池化操作从查询 Q Q Q和键 K K K分别生成 Q ~ \tilde{Q} Q~和 K ~ \tilde{K} K~。
A S O F T = e x p ( Q ⊖ K ~ ) ⋅ ( e x p ( Q ~ ⊖ K ~ ) ) † ⋅ e x p ( Q ~ ⊖ K ) A_{SOFT} = exp(Q \ominus \tilde{K}) \cdot (exp(\tilde{Q} \ominus \tilde{K}))^\dagger \cdot exp(\tilde{Q} \ominus K) ASOFT=exp(Q⊖K~)⋅(exp(Q~⊖K~))†⋅exp(Q~⊖K)
次年,Yu等人[70](2022年)提出了一项关于视觉Transformer中token mixer影响的研究;作者将一般结构抽象为所谓的MetaFormer结构。此外,通过用非参数池化( P o o l Pool Pool)操作替换常用的token mixer,如自注意力操作,Yu等人设计了PoolFormer。因此,给定输入特征 X X X,我们可以直接形式化PoolFormer的MSA模块( X P F M S A X_{PFMSA} XPFMSA)如下面的方程所示。
X P F M S A = P o o l ( N o r m ( X ) + X ) X_{PFMSA} = Pool(Norm(X) + X) XPFMSA=Pool(Norm(X)+X)
根据报告的公式,感谢池化操作,所提出的模型能够实现对token序列长度的线性计算复杂度,而无需添加任何可学习参数。
Li等人[30](2022年)提出了MViTv2,这是对Haoqi Fan等人[14](2021年)之前提出的MViT骨干网的改进。更详细地说,MViTv2改进了MViT[14]中引入的池化自注意力,通过残差池化连接,以保持有限的计算复杂度和减少注意力模块的内存需求,同时增加信息流并促进训练过程。这个操作是通过在MViT注意力模块内部的输出序列中添加池化查询张量 P o o l ( Q ) Pool(Q) Pool(Q)来执行的。因此,通过定义池化自注意力 A M V i T A_{MViT} AMViT如方程9所示,我们可以形式化其改进版 A M V i T v 2 A_{MViTv2} AMViTv2如方程10所示。
A M V i T = A ( P o o l ( Q ) , P o o l ( K ) , P o o l ( V ) ) A_{MViT} = A(Pool(Q), Pool(K), Pool(V)) AMViT=A(Pool(Q),Pool(K),Pool(V))
A M V i T v 2 = A M V i T + P o o l ( Q ) A_{MViTv2} = A_{MViT} + Pool(Q) AMViTv2=AMViT+Pool(Q)
此外,受到之前工作中采用池化操作以减少自注意力计算成本的启发,Wang等人[59](2022年)提供了PVT的增强版本,即PVTv2。创新架构设计在新颖的线性空间缩减注意力(Linear SRA)模块上,该模块在注意力操作之前使用平均池化来减少空间维度,而不是之前SRA模块中使用的卷积。此外,作者还引入了重叠补丁嵌入,以防止丢失图像的一些局部连续性。
受到Lu等人[43](2021年)指出的问题的启发,Koohpayegani和Pirsiavash[28](2022年)提出了一种增强策略来管理由softmax层计算的指数操作。作者引入了SimA,这是一种无softmax的注意力块,其中softmax层被 l 1 l_1 l1-归一化操作替换,以归一化查询( Q ^ = ∥ Q ∥ 1 \hat{Q} = \|Q\|_1 Q^=∥Q∥1)和键( K ^ = ∥ K ∥ 1 \hat{K} = \|K\|_1 K^=∥K∥1)矩阵。这种解决方案将原始自注意力的计算修改为标准的矩阵乘法序列。更详细地说,类似于Lu等人[43],这个选择是由于在Transformer架构中softmax层计算的 e x p ( ⋅ ) exp(\cdot) exp(⋅)操作,当输入特征图较大时,它完成了大部分计算。然而,与Lu等人[43]不同,SimA不基于低秩分解;相反,它基于一种适应方法,以在线性化Transformer在测试时的计算成本。此外,作者展示了所提出解决方案应用于最新模型如DeiT、XCiT和CvT时的有效性,在标准自注意力层的基础上实现了相当的准确性。尽管整体计算复杂度已减少(当 n ≫ d n \gg d n≫d时更有效),所提出模型的整体成本仍然是相对于输入tokens数量( O ( n 2 d ) \mathcal{O}(n^2d) O(n2d))或每个token维度( O ( n d 2 ) \mathcal{O}(nd^2) O(nd2))的二次方。然而,SimA能够根据输入tokens数量动态选择最小计算复杂度,线性化整体计算成本( O ( n d ) \mathcal{O}(nd) O(nd));我们可以形式化SimA注意力模块 A S i m A A_{SimA} ASimA如方程11所示。
A S i m A = { Q ^ ( K ^ T V ) if n > d ( Q ^ K ^ T ) V otherwise A_{SimA} = \begin{cases} \hat{Q}(\hat{K}^T V) & \text{if } n > d \\ (\hat{Q} \hat{K}^T) V & \text{otherwise} \end{cases} ASimA={
Q^(K^TV)(Q^K^T)Vif n>dotherwise
总结而言,SimA能够在测试时适应其计算,以在tokens数量或通道数量上实现线性计算;由于无softmax解决方案,即缺乏 e x p ( ⋅ ) exp(\cdot) exp(⋅)操作,使其在边缘和低功耗设备上更高效。
与所有之前的研究不同,Huang等人[22](2022年)提出了Flowformer,这是一种基于Flow-attention模块的Transformer架构。优化的注意力层灵感来自流网络,这是一种被定义为有向图的架构,其中每条边有一个容量并接收信息流,如Waissi等人[58](1994年)所述。具体来说,通过流计算容量的非负和非线性投影 ϕ \phi ϕ。引入的操作聚合了从查询 Q Q Q和键 K K K计算的权重(即注意力图)在信息值 V V V上的权重,实现了相对于输入tokens数量的线性复杂度。作者定义了保存信息流的容量为$\hat{
I} \in \mathbb{R}^{n \times 1} ,输入流量,以及 ,输入流量,以及 ,输入流量,以及\hat{O} \in \mathbb{R}^{m \times 1} 输出流量。因此,我们可以基于流保守原则(竞争、聚合和分配)形式化整体流注意力模块 输出流量。因此,我们可以基于流保守原则(竞争、聚合和分配)形式化整体流注意力模块 输出流量。因此,我们可以基于流保守原则(竞争、聚合和分配)形式化整体流注意力模块A_{Flow}$如方程12所示:
竞争 : V ^ ∈ R m × d = S o f t m a x ( O ^ ) ⊙ V 聚合 : A ∈ R m × d = ϕ ( Q ) I ⋅ ( ϕ ( K ) T ⋅ V ^ ) 分配 : A F l o w ∈ R n × d = S i g m o i d ( I ^ ⊙ A ) 竞争: \hat{V} \in \mathbb{R}^{m \times d} = Softmax(\hat{O}) \odot V \\ 聚合: A \in \mathbb{R}^{m \times d} = \phi(Q)I \cdot (\phi(K)^T \cdot \hat{V}) \\ 分配: A_{Flow} \in \mathbb{R}^{n \times d} = Sigmoid(\hat{I} \odot A) 竞争:V^∈Rm×d=Softmax(O^)⊙V聚合:A∈Rm×d=ϕ(Q)I⋅(ϕ(K)T⋅V^)分配:AFlow∈Rn×d=Sigmoid(I^⊙A)
Huang等人[21](2022年)提出了一种通用骨干网,称为Orthogonal Transformer(Ortho),它能够通过正交自注意力( A O S A A_{OSA} AOSA)降低标准注意力机制的计算成本。注意力通过在局部区域内使tokens正交化,将它们排列成token组来计算;正交矩阵定义为 O ∈ R n × n O \in \mathbb{R}^{n \times n} O∈Rn×n。最终,MSA在正交空间内按组计算。这种解决方案使得能够以比常用图像空间更低的分辨率计算 A O S A A_{OSA} AOSA,减少自注意力的整体计算复杂度,等于将tokens分组的数量 n 0 n_0 n0。作者还引入了位置MLP,以便将位置信息纳入Ortho的任意输入分辨率中。因此,我们可以形式化注意力模块的输出如方程13所示;作者在MSA之后使用反正交矩阵,以从正交表示中恢复视觉tokens。
X o u t = O T ⋅ X M S A ( O ) X_{out} = O^T \cdot X_{MSA}(O) Xout=OT⋅XMSA(O)
最近,Liu等人[36](2023年)提出通过采用极端量化技术来减少自注意力的计算成本。作者引入了EcoFormer,这是一种二值化的自注意力模块,大大减少了标准注意力层中的乘法累加(MACs)操作,以节省大量的片上能量足迹。更详细地说,通过定义每个注意力头的维度数 D p D_p Dp和位数 b b b,所提出的解决方案基于内核化哈希函数 H H H,其中 H ∈ R D p → { 1 , − 1 } b H \in \mathbb{R}^{D_p} \rightarrow \{1, -1\}^b H∈RDp→{
1,−1}b,特别适用于计算资源对高容量深度学习架构构成瓶颈的边缘设备。因此,受到基于内核的线性注意力[49]的启发,我们可以形式化注意力方程( A E c o A_{Eco} AEco)如下。
A E c o = S o f t m a x ( H ( Q ) T ⋅ H ( K ) / d k ) ⋅ V A_{Eco} = Softmax(H(Q)^T \cdot H(K) / d_k) \cdot V AEco=Softmax(H(Q)T⋅H(K)/dk)⋅V
作者利用了一种极端量化方案( b = 16 b = 16 b=16哈希位),能够以二进制代码表示特征向量。然而,尽管该解决方案被证明在节能和内存节省方面有效,二进制压缩需要专门的GPU内核以实现在边缘设备上的实际部署;因此,这些限制导致了在实际场景中使用EcoFormer自注意力模块时的有效性瓶颈。
最后,You等人[66](2023年)引入了一种名为Castling-ViT的新框架,旨在成为一种仅由线性项组成的ViT结构。为解决这个问题,作者引入了一个线性角度注意力模块,其中角度内核被分解成线性项,剩余的高阶残差通过深度卷积和辅助的掩码自注意力操作(即仅关注有限数量的补丁的注意力模块)来近似。尽管后者元素仍具有二次计算成本,但作者指出,它在训练过程中趋向于收敛为零,因此在推理阶段无关紧要。此外,通过定义角度内核( S i m ( Q , K ) Sim(Q, K) Sim(Q,K))为在查询 Q Q Q和键 K K K之间计算的相似度测量函数,我们可以形式化线性角度注意力模块( A C a s t A_{Cast} ACast)如方程15所示。
A C a s t = S i m ( Q , K ) ⋅ V A_{Cast} = Sim(Q, K) \cdot V ACast=Sim(Q,K)⋅V
3.2 剪枝
本节回顾了基于2.2节中介绍的背景概念和数学公式的最新ViT剪枝方法。与之前的分析类似,我们根据其发布日期回顾了用于剪枝ViT架构的解决方案。特别是,我们将强调近年来剪枝算法在计算重要性评分和自适应剪枝/保留比率方面的演变,以最大限度地提高算法的性能。
Zhu等人[77](2021年)进行了初步研究,提出了VTP,这是一种能够减小ViT架构并鼓励维度稀疏性的视觉Transformer剪枝方法。该解决方案主要关注MSA和FNN Transformer结构,以识别信息量较少的特征,即通过控制系数减少嵌入/神经元维度数量。作为一种常见的剪枝策略,VTP的基础是特征重要性评分( p p p)。这种策略基于在训练时学习软剪枝特征 p 0 / 1 ∈ { 0 , 1 } R p^{0/1} \in \{0, 1\}^\mathbb{R} p0/1∈{
0,1}R,同时在推理时根据阈值 τ ∈ { 0 , 1 } R \tau \in \{0, 1\}^\mathbb{R} τ∈{
0,1}R定义硬剪枝特征 p 0 / 1 ∗ ∈ { 0 , 1 } N p^{0/1*} \in \{0, 1\}^\mathbb{N} p0/1∗∈{
0,1}N,即 p 0 / 1 ∗ = p 0 / 1 ≥ τ p^{0/1*} = p^{0/1} \geq \tau p0/1∗=p0/1≥τ。然后,我们可以重新表述硬剪枝自注意力Transformer块( A V T P ∗ A_{VTP*} AVTP∗)如方程16所示,其中 P 0 / 1 P^{0/1} P0/1是对角矩阵,其对角线由 p 0 / 1 ∗ p^{0/1*} p0/1∗元素组成,即 P 0 / 1 = d i a g ( p 0 / 1 ∗ ) P^{0/1} = diag(p^{0/1*}) P0/1=diag(p0/1∗)。
A V T P ∗ ( Q ∗ , K ∗ , V ∗ ) = P 0 / 1 ⋅ A ( Q , K , V ) A_{VTP*}(Q^*, K^*, V^*) = P^{0/1} \cdot A(Q, K, V) AVTP∗(Q∗,K∗,V∗)=P0/1⋅A(Q,K,V)
具体来说,如果算法将值 p = 0 p = 0 p=0分配给特征,则该特征将被丢弃;否则( p = 1 p = 1 p=1),将被保留。
此外,Tang等人[53](2022年)受[42]中提出的CNN架构上的先前方法的启发,提出了PS-ViT,一种用于改进视觉Transformer结构效率的补丁修剪框架。所提出的解决方案是由深度学习算法的过度参数化和冗余信息问题所驱动的。因此,PS-ViT主要关注识别具有冗余信息的Transformer补丁,以丢弃它们并加快推理过程。作为常见的剪枝算法,在PS-ViT中,注意力块中的每个补丁接收一个重要性评分 p = { 0 , 1 } N p = \{0, 1\}^\mathbb{N} p={
0,1}N。与VTP不同, p 0 / 1 p^{0/1} p0/1值是在反向传播阶段通过自上而下的过程学习的,即从输出层到输入层。因此,修剪后的注意力模块 A P S − V i T ∗ A_{PS-ViT*} APS−ViT∗可以重新表述如方程17所示,其中 P 0 / 1 P^{0/1} P0/1是对角矩阵,其对角线由 p 0 / 1 p^{0/1} p0/1元素组成。
A P S − V i T ∗ ( Q ∗ , K ∗ , V ∗ ) = P 0 / 1 ⋅ A ( Q , K , V ) A_{PS-ViT*}(Q^*, K^*, V^*) = P^{0/1} \cdot A(Q, K, V) APS−ViT∗(Q∗,K∗,V∗)=P0/1⋅A(Q,K,V)
具体来说,如果算法将值 p = 0 p = 0 p=0分配给补丁,则该补丁将被识别为冗余并将被丢弃;否则( p = 1 p = 1 p=1),将被保留。此外,Tang等人提出了补丁修剪算法的动态变体,称为DPS-ViT,该算法根据输入样本在推理时自适应选择非冗余特征。
此外,Yu等人[68](2022年)受之前剪枝策略只关注架构宽度的启发,开发了宽度和深度剪枝(WDPruning)框架。所提出的解决方案通过可学习的显著性评分阈值减少架构宽度,类似于之前的工作,同时通过在模型内部引入多个分类器来限制结构深度。WDPruning框架的最终目标是确定精度和效率之间的最佳权衡,具有从深度和宽度角度看都较浅的模型。具体来说,宽度剪枝通常基于对角二元矩阵 P 0 / 1 P^{0/1} P0/1,而阈值 τ \tau τ在训练阶段通过增广拉格朗日方法动态更新剪枝比率,直到达到预定义的评分。此外,深度剪枝程序的目标是识别较浅的分类器;这个程序通过插入到架构中的几个分类器来计算,在验证时评估以确定估计性能和效率之间的最佳权衡。
基于与之前工作不同的方法,Yang等人[64](2023年)提出了一个全局结构剪枝标准,能够保证网络中的参数重新分配。作者提出计算重要性评分( p p p)作为损失的Hessian矩阵范数,这与关注特定层/神经元的局部剪枝策略不同,导致整个架构的全局剪枝。此外,该解决方案应用于DeiT-Base模型,使得可以生成新的高效ViT模型,称为NViT。
最近,Rao等人[50](2023年)引入了DynamicViT,一个用于提高稀疏性和加速ViT模型的框架。这个框架基于[53]的基础工作,仅需要最终预测的一部分图像补丁。因此,在DynamicViT中,作者提出基于预测模块逐步和动态地剪除较少信息量的tokens。后者结构位于Transformer块之间,以识别和丢弃较少信息量的tokens,同时使用一个阈值作为比率来确定保留信息的百分比。此外,为了最小化由空间稀疏化引起的性能下降的影响,作者还利用知识蒸馏技术,以引导修剪后的学生模型向教师行为靠拢。具体来说,原始骨干网络用作教师模型,而相同的结构动态修剪以获得学生变体。
最后,Yu和Xiang[69](2023年)提出了X-Pruner,一种利用可解释AI(XAI)原则的层级剪枝算法。基本思想是从可解释性角度识别和剪除贡献较小的注意力单元。具体来说,作者引入了一个可学习的可解释性感知掩码( M M M),可以根据自适应阈值( θ \theta θ)剪除或取消剪除模型。此外,通过定义阈值比率 r r r,分别设置两个超参数值 h 1 = 10 h_1 = 10 h1=10和 h 2 = 500 h_2 = 500 h2=500,以及返回排序后的 M M M中( 1 − r 1-r 1−r)%元素的函数 Φ \Phi Φ,我们可以定义一个通用层的期望掩码KaTeX parse error: Expected group after '^' at position 2: M^̲如方程18所示。
M = { t a n h ( h 1 ( M − θ ) ) if M ∈ Φ ( M ∣ 1 − r ) t a n h ( h 2 ( h 1 ( M − θ ) ) ) otherwise M^ = \begin{cases} tanh(h_1(M - \theta)) & \text{if } M \in \Phi(M | 1 - r) \\ tanh(h_2(h_1(M - \theta))) & \text{otherwise} \end{cases} M={
tanh(h1(M−θ))tanh(h2(h1(M−θ)))if M∈Φ(M∣1−r)otherwise
3.3 知识蒸馏
本节回顾了专门设计用于验证和设计轻量级ViT模型的知识蒸馏(Knowledge Distillation, KD)学习技术。请参考2.3节了解背景信息。与之前的分析类似,我们根据其发布日期回顾了ViT架构的KD解决方案。特别是,我们将强调知名的基本KD策略首先如何适应ViT架构,并逐步改进以最大限度地提高学生模型模仿教师模型行为的能力。
Touvron等人[56](2021年)首先探索了ViT架构的KD学习策略,通过引入一种基于token的策略,称为DeiT。所提出的专门针对Transformer的办法基于通过注意力进行蒸馏,即作者在自注意力模块中添加了一个蒸馏token,旨在重现教师估计的类别(硬)标签。因此,该token将与学生的注意力和层以及教师标签互动,在反向传播期间学习硬标签。
此外,受到ViT的高计算成本及其在边缘和低功耗设备上应用困难的激励,Hao等人[16](2022年)探索了Transformer模块中存在的补丁级信息,以提出一种精细的流形蒸馏方法。该流形策略在原始特征空间中学习一个平滑流形( M \mathcal{M} M),以构建低维特征( ψ ( F ) \psi(F) ψ(F))。具体来说,作者训练学生模型在补丁级流形空间中匹配预训练的教师。所提出的解决方案引入了流形蒸馏损失函数( L m f \mathcal{L}_{mf} Lmf),如方程19所示。
L m f = ∥ M ( ψ ( F S ) ) − M ( ψ ( F T ) ) ∥ F 2 \mathcal{L}_{mf} = \| \mathcal{M}(\psi(F_S)) - \mathcal{M}(\psi(F_T)) \|_F^2 Lmf=∥M(ψ(FS))−M(ψ(FT))∥F2
Wu等人[62](2022年)提出了一系列名为TinyViT的架构。这些模型的结构是通过受限局部搜索[20]算法在多个约束因素扩展的模型空间中获得的,并通过一种内存高效的KD策略进行训练。具体来说,后者过程专注于将深度和沉重的预训练模型的稀疏soft-labels存储在存储设备中。因此,在训练时,可以重用存储的信息以复制基本的KD过程,同时省略大型教师模型的前向计算和内存占用。此外,用于生成TinyViT架构系列的搜索算法受限于计算上要求高的ViT元素,如模型的深度和补丁大小。
与之前将KD策略从ViT教师应用于ViT学生模型的方法不同,Chen等人[5](2022年)受到训练ViT架构所需的实际样本数量多的激励,提出了一个名为Data-efficient EARly Knowledge Distillation(DearKD)的两阶段学习框架。第一阶段由基本的KD学习策略组成,受[8]的启发,从模型的内部和分类层提取的CNN特征与Transformer token一起蒸馏。此外,在第二阶段,ViT学生模型在没有蒸馏的情况下进行训练。然而,在样本数量有限(或无数据)的情况下,在第二阶段,作者引入了一种基于DeepInversion[65]的边界保持内部发散损失,帮助学习过程在潜在空间中保持最容易的正样本远离其他样本,而不改变其边界。
与Chen等人类似,Ren等人[51](2022年)提出了一种KD策略,该策略不是基于从具有相似架构结构的教师和学生模型(即两个ViT)蒸馏知识,而是通过不同的结构。具体来说,Ren等人依赖于这样一个观点,即具有不同归纳偏差的教师模型可以提取不同的特征,即从不同角度观察样本,从而共同指导学生Transformer以提高其估计性能。因此,所提出的策略基于基本的KD过程,应用于两个轻量级教师,一个是CNN,一个是卷积神经网络(INN)[29],尽管它们在同一数据集上训练,但专注于不同输入样本的特征,从而在训练阶段提高ViT学生(CivT)的准确性。
Zhang等人[74](2022年)提出了MiniViT,这是一种基于KD的压缩策略,从原始(教师)Swin和DeiT Transformer架构生成知名ViT模型的Mini版本,如Mini-Swins和Mini-DeiTs。所提出的策略基于权重复用过程,适用于注意力矩阵和前馈网络。更详细地说,该过程专注于从教师模型( t t t)到学生模型( s s s)的权重共享、变换和蒸馏,以提高训练稳定性和模型性能。描述的过程应用于注意力矩阵和前馈网络。然而,由于学生模型相对于教师模型的尺寸减少,作者在MSA的查询(Q)、键(K)和值(V)关系上应用交叉熵( C E CE CE)损失,通过定义自注意力蒸馏损失( L a t t \mathcal{L}_{att} Latt)和Transformer隐藏状态,通过定义隐藏状态蒸馏损失( L h d d n \mathcal{L}_{hddn} Lhddn)分别如方程21和方程22所示。具体来说,通过表示Q、K和V矩阵为相同大小( d q = d k = d v d_q = d_k = d_v dq=dk=dv),补丁数量为 N N N,并表示前馈网络的输出特征为 X o u t X_{out} Xout,可以计算出以下两个方程。
R i , j ∈ { 1 , 2 , 3 } = S o f t m a x ( M i ⋅ M j T d k ) R_{i,j} \in \{1, 2, 3\} = Softmax(\frac{M_i \cdot M_j^T}{d_k}) Ri,j∈{
1,2,3}=Softmax(dkMi⋅MjT)
L a t t = 1 9 N ∑ p = 1 N ∑ i , j ∈ { 1 , 2 , 3 } C E ( R i j , p s , R i j , p t ) \mathcal{L}_{att} = \frac{1}{9N} \sum_{p=1}^N \sum_{i,j \in \{1, 2, 3\}} CE(R_{ij,ps}, R_{ij,pt}) Latt=9N1p=1∑Ni,j∈{
1,2,3}∑CE(Rij,ps,Rij,pt)
L h d d n = 1 N ∑ p = 1 N C E ( R X o u t , p s , R X o u t , p t ) \mathcal{L}_{hddn} = \frac{1}{N} \sum_{p=1}^N CE(R_{Xout,ps}, R_{Xout,pt}) Lhddn=N1p=1∑NCE(RXout,ps,RXout,pt)
最终的训练过程通过结合基本蒸馏损失函数( L D s t l \mathcal{L}_{Dstl} LDstl)与上述两个注意力蒸馏损失来计算。
在不同的应用场景下,Lin等人[32](2023年)专注于应用于小数据集上的少样本学习(FSL)任务的ViT模型。在这些设置下,ViT倾向于过拟合并由于可训练参数数量多而遭受严重的性能下降。因此,作者专注于一种KD学习策略,称为监督掩码KD(SMKD),其中学生模型仅从掩码输入样本中学习,即减少的补丁数量。此外,作者引入了一种内部路径损失函数( L p a t c h \mathcal{L}_{patch} Lpatch),通过计算学生( s s s)和教师( t t t)嵌入向量匹配补丁的交叉熵损失来比较它们。引入的策略最终通过添加基本的KD学习过程来完成整体学习过程。
3.4 量化
基于2.4节中介绍的数学背景,并考虑到ViT在推理过程中具有内存和计算成本高的特点,本节回顾了多项专门设计的ViT量化策略,以降低内存和计算成本。与之前的分析类似,我们根据其发布日期回顾了这些用于ViT架构的高效解决方案。特别是,我们将重点关注旨在通过较低位宽密切匹配ViT全精度数据分布的一般和硬件特定量化策略。
Liu等人[41](2021年)首次探索了ViT架构的训练后量化。所提出的压缩策略基于混合精度权重,作为一个优化问题而不考虑任何训练或微调过程。基本上,这个问题的目标是找到权重和输入的最佳低位量化区间,以减少内存存储和计算成本。作者重点关注ViT的FNN和MSA模块,旨在为每个注意力模块分配尽可能低的位宽,以最大化全精度模型与量化模型之间的预测相似性。
类似于Liu等人的研究,Yuan等人[72](2022年)提出了一种名为PTQ4ViT的高效训练后量化框架。与之前的解决方案相比,所提出解决方案的主要优势是使用双重均匀量化策略,分别在两个范围内量化负值和正值: R 1 R_1 R1和 R 2 R_2 R2。这个选择主要是由于注意力块的softmax层和GeLU激活函数后的值分布非常不均衡,因此很难量化。因此,基于方程5,并分别为两个范围 R 1 R_1 R1和 R 2 R_2 R2定义量化区间(缩放因子) Δ R 1 \Delta_{R_1} ΔR1和 Δ R 2 \Delta_{R_2} ΔR2,我们可以定义k-bit双重均匀量化,如方程23所示。
T ( x , Δ R 1 , Δ R 2 ) = { Ψ k − 1 ( x , Δ R 1 ) if x ∈ R 1 Ψ k − 1 ( x , Δ R 2 ) otherwise T(x, \Delta_{R_1}, \Delta_{R_2}) = \begin{cases} \Psi_{k-1}(x, \Delta_{R_1}) & \text{if } x \in R_1 \\ \Psi_{k-1}(x, \Delta_{R_2}) & \text{otherwise} \end{cases} T(x,ΔR1,ΔR2)={
Ψk−1(x,ΔR1)Ψk−1(x,ΔR2)if x∈R1otherwise
此外,为了指导每层ViT的最佳缩放因子,作者提出使用Hessian引导指标来确定量化参数。
然而,Ding等人[12](2022年)受到在超低位宽量化(如4-bit)时,使用Hessian引导指标来衡量量化损失会显著降低精度的激励,提出了一种不同的方法,称为视觉Transformer的精确训练后量化框架(APQ-ViT)。具体来说,作者专注于为注意力块的softmax函数设计一种Matthew效应保留量化(MPQ)。APQ-ViT由两个阶段组成:基于统一块状底部消除校准方案的量化损失优化校准指标,以及专门针对ViT模型定制的MPQ。具体来说,通过定义softmax函数为 s o f t m a x ( ⋅ ) softmax(\cdot) softmax(⋅),我们可以定义缩放因子( Δ M P Q \Delta_{MPQ} ΔMPQ)如方程24所示,MPQ函数如方程25所示。
Δ M P Q = m a x ( s o f t m a x ( ⋅ ) ) 2 k − 1 \Delta_{MPQ} = \frac{max(softmax(\cdot))}{2^{k-1}} ΔMPQ=2k−1max(softmax(⋅))
Ψ k ( ⋅ , ⋅ ) = C l a m p ( R o u n d ( s o f t m a x ( ⋅ ) Δ M P Q ) , 0 , 2 k − 1 ) \Psi_k(\cdot, \cdot) = Clamp(Round(\frac{softmax(\cdot)}{\Delta_{MPQ}}), 0, 2^k - 1) Ψk(⋅,⋅)=Clamp(Round(ΔMPQsoftmax(⋅)),0,2k−1)
此外,Liu等人[37](2023年)提出了一种用于训练后ViT激活函数量化的即插即用量化器无关增强方法。所提出的策略,称为NoisyQuant,旨在通过添加从均匀分布中采样的固定NoisyBias( N b N_b Nb)来改进以前的量化方法。具体来说,给定GeLU激活函数的输出分布( X X X),NoisyQuant策略可以表示为 X + N b X + N_b X+Nb。在量化之前计算此操作,使数据峰值平滑,从而使整体压缩过程更加友好。此外,作者证明,这种应用于数据分布的软边界导致量化输出以较低位率密切遵循原始数据分布。
量化方法不仅专注于压缩特定的注意力层及其相应的激活函数,即一般ViT模块,以较低精度数据类型模仿原始数据分布;一些工作还专注于特定硬件设备的ViT压缩策略。这一选择主要是由于量化模型在实际应用中的情况;在某些场景中尤其如此,如Liu等人[36](EcoFormer)提出的二值压缩。具体来说,当分析所提出方法的局限性时,作者指出,尽管EcoFormer由于二值化比以前的解决方案更高效,但在实际应用中,例如在GPU平台上进行推理时,需要特定的GPU内核实现,即CUDA操作,以利用所提出的解决方案。这是由于GPU设备无法在不分配浮点操作的情况下执行二进制计算。
在这种设置中,Lit等人[35](2022年)提出了一个框架,称为Auto-ViT-Acc,专门用于量化ViT架构,以在FPGA设备上进行推理。该框架利用[4]中引入的量化函数,仅应用于注意力块的FNN模块,以增加FPGA资源利用率并加快推理过程。
此外,与之前的所有方法不同,Yu等人[67](2023年)提出了GPUSQ-ViT,这是一个GPU友好框架,结合了多种压缩技术。所提出的混合策略利用了在初步剪枝阶段的知识蒸馏学习技术以及随后的量化感知训练。具体来说,在KD学习策略中,全精度模型(也用作教师)首先以16位浮点权重剪枝,然后量化为定点(精度),以获得最终的学生模型。
4 高效视觉Transformer性能
在本节中,我们回顾并比较了之前描述的高效ViT策略的估计性能。具体来说,按照选择的四个高效类别(CA、P、KD 和Q),我们在ImageNet [52]分类任务上比较了所有模型。准确地说,所有报告的值都取自原始论文,并指的是在ImageNet1K数据集上训练的架构,而未在更大的ImageNet21K上进行微调。ImageNet1K数据集由130万张训练图像和5万张验证图像组成,涵盖常见的1000类,分辨率为224×224像素。此外,对于CA高效策略,我们还在另外两个数据集上比较了获得的结果。COCO [34]目标检测和实例分割数据集,包括118K训练图像(train2017)和5K验证图像(val2017),分辨率为800×1,333像素;以及ADE20K [76]语义分割数据集,包括20K、2K和3K张用于训练、验证和测试的图像,分辨率调整为512×512像素。
我们根据分类的准确率(Top-1)、目标检测和实例分割的平均精度(AP,即APbox和APmask)以及语义分割的平均交并比(mIoU)来评估比较的模型。此外,我们报告了可训练参数数量(#Param)和浮点操作数(FLOPs)作为AC、P和KD策略的效率指标,以及Q方法的权重/激活位宽(#Bit)和模型大小(Size),以量化和评估执行优化的影响。此外,受Li等人[31]的启发,我们引入了一个度量标准,能够衡量模型相对于参考基准的效率;我们定义了效率误差率(EER),如方程26所示。
E E R = 1 ∥ i ∥ ⋅ ∑ i ( M i R i ) EER = \frac{1}{\|i\|} \cdot \sum_{i} \left(\frac{M_i}{R_i}\right) EER=∥i∥1⋅i∑(RiMi)
其中 i ∈ { # P a r a m , F L O P s , … } i \in \{\#Param, FLOPs, \ldots\} i∈{
#Param,FLOPs,…}是效率指标集, M i M_i Mi和 R i R_i Ri分别是分析中的高效模型和参考模型的i值。因此,与特定任务选择的基准模型相比,提出的模型越高效,EER值越低。此外,EER指标仅在分类任务中测量,因为这是一个比较所有识别的高效类别(CA、P、KD 和Q)的应用场景。更详细地说,在以下表格中,我们选择ViT-B/16[13]架构作为基准( R R R)计算EER百分比值。这一选择基于这样一个事实,即参考架构是由Dosovitskiy等人最初提出的ViT里程碑中最浅的非优化模型,因此在#Param、FLOPs、#Bit和Size方面最好地近似了考虑中的高效解决方案。一般来说,ViT-B/16模型可以被认为是分析中高效/轻量架构分布的上限。该架构包含86.6百万(M)可训练参数,17.6千兆(G)浮点操作数(32位精度),模型大小为330兆字节(MB)。我们强调,为了对比之前分析的方法在所选评估指标上的公平和全面的理解,未根据之前报告的标准(即不同的图像分辨率或评估数据集)训练/测试的模型将不出现在以下表格中;同时,所有在各自论文中未给出的值将用符号“−”表示。
本节的其余部分组织如下:4.1节、4.2节、4.3节和4.4节分别回顾了CA、P、KD和Q策略的估计性能。最后,4.5节比较了在著名分类场景中表现最佳的所有策略,即在ImageNet基准数据集的1000类上。
4.1 紧凑架构策略的结果
在本节中,我们比较了4.1节中介绍的紧凑架构(CA)的估计性能。我们报告了在四个不同应用场景下的估计性能:分类、目标检测、实例分割和语义分割任务。
分类:我们在表II中比较了CA方法在ImageNet1K数据集上的分类性能。
表II:CA模型在ImageNet1K分类数据集上的定量比较。最佳结果用粗体表示,最佳(权衡)高效模型用灰色突出显示。
Model | #Param (M) | FLOPs (G) | Top-1 (%) | EER (%) |
---|---|---|---|---|
PVT-Tiny | 13.2 | 1.9 | 75.1 | 13.0 |
PVT-Small | 24.5 | 3.8 | 79.8 | 24.9 |
PVT-Medium | 44.2 | 6.7 | 81.2 | 44.5 |
PVT-Large | 61.4 | 9.8 | 81.7 | 63.3 |
Swin-T | 29 | 4.5 | 81.3 | 29.5 |
Swin-S | 50 | 8.7 | 83.0 | 53.5 |
Swin-B | 88 | 15.4 | 83.5 | 94.5 |
SOFT-Tiny | 13 | 1.9 | 79.3 | 12.9 |
SOFT-Small | 24 | 3.3 | 82.2 | 23.2 |
SOFT-Medium | 45 | 7.2 | 82.9 | 46.4 |
SOFT-Large | 64 | 11.0 | 83.1 | 68.2 |
SOFT-Huge | 87 | 16.3 | 83.3 | 96.5 |
PoolFormer-S12 | 12 | 1.9 | 77.2 | 12.3 |
PoolFormer-S24 | 21 | 3.5 | 80.3 | 22.1 |
PoolFormer-S36 | 31 | 5.1 | 81.4 | 32.4 |
PoolFormer-M36 | 56 | 9.0 | 82.1 | 57.9 |
PoolFormer-M48 | 73 | 11.8 | 82.5 | 75.7 |
PVTv2-B2-LiSRA | 22.6 | 3.9 | 82.1 | 24.0 |
MViTv2-T | 24 | 4.7 | 82.3 | 27.2 |
MViTv2-S | 35 | 7.0 | 83.6 | 40.1 |
MViTv2-B | 52 | 10.2 | 84.4 | 59.0 |
MViTv2-L | 218 | 42.1 | 85.3 | 245.5 |
XCiT-T12/8 → SimA | 7 | 4.8 | 79.4 | 17.7 |
XCiT-T12/16 → SimA | 26 | 4.8 | 82.1 | 28.6 |
Ortho-T | 3.9 | 0.7 | 74.0 | 4.2 |
Ortho-S | 24.0 | 4.5 | 83.4 | 26.6 |
Ortho-B | 50.0 | 8.6 | 84.0 | 53.3 |
Ortho-L | 88.0 | 15.4 | 84.2 | 94.5 |
Flowformer | - | 6.3 | 80.6 | - |
Castling-LeViT-128 | 10.5 | 0.49 | 79.6 | 7.4 |
Castling-LeViT-192 | 12.7 | 0.82 | 81.3 | 9.6 |
Castling-LeViT-256 | 22.0 | 1.4 | 82.6 | 16.7 |
Castling-LeViT-384 |
| 45.8 | 2.9 | 83.7 | 34.7 |
| Castling-MViTv2-T | 24.1 | 4.5 | 84.1 | 26.7 |
| Castling-MViTv2-S | 34.7 | 6.9 | 84.6 | 39.6 |
| Castling-DeiT-B | 87.2 | 17.3 | 84.2 | 99.5 |
| Castling-MViTv2-B | 51.9 | 9.8 | 85.0 | 57.8 |
根据报告的准确率值,我们可以注意到MViTv2-L模型获得了最高的估计性能,为85.3%。然而,在这项调查中,我们感兴趣的是高效DL技术,即旨在找到模型准确性和EER指标之间最佳权衡的解决方案。此外,MViTv2-L是拥有最多可训练参数、FLOPs以及相应EER值的模型。因此,当寻求准确性和EER的帕累托最优性时,MViTv2-L模型可能被视为与所有其他报告方法相比的异常值。此外,基于相同的架构,Castling-MViTv2-B具有4.2×更低的EER和类似的估计性能(85.0%),应被优先考虑。
相反,在需要硬件受限设备(如嵌入式单板计算机)的应用场景中,应考虑仅具有3.9M可训练参数和有限FLOPs操作(0.7G)的Ortho-T模型。同样,我们也注意到,XCiT-T12/8配备SimA优化和Castling-LeViT-128可能是硬件受限场景的可行解决方案。特别是后者模型,仅计算0.49G FLOPs,EER为7.4%,且估计性能可与更重模型(Top-1等于79.6%)相媲美,可能在需要实时推理性能的场景中是一种有价值的架构。
此外,通过比较PVT架构的两个变体,可以强调出在许多CA方法(如PoolFormer、PVTv2和MViT)中广泛使用的池化操作的贡献。更详细地说,基于PVT中最初引入的线性化SRA自注意力的PVTv2,能够实现与PVT-Medium等效的估计性能,并具有与PVT-Small相当的EER值。
最后,对于CA高效类别,我们在准确性和EER评估指标之间确定了帕累托最优性,选择了Castling-MViTv2-T模型。该架构生成准确的估计,即Top-1准确率为84.1%,几乎与较重的MViTv2-L的85.3%相当(相差1.2%),但EER增益为9.2×。此外,与具有类似EER值的模型(如Swin-T 29.5%、MViTv2-T 27.2%和Ortho-S 26.6%)相比,所识别的架构在EER为26.7%的情况下,获得了更准确的性能,平均准确率提升1.8%。
目标检测和实例分割:为了提供更全面的CA技术概述,我们还简要评估并比较了在COCO数据集上的目标检测和实例分割任务中的高效CA解决方案。结果使用Mask R-CNN [17](1x)作为解码器,如表III所示。更详细地说,为了显示所提出模型的性能,一些报告的研究集中在各种解码器上,如RetinaNet [33](1x)和Cascade Mask R-CNN [3]。然而,我们仅在表III中报告了Mask R-CNN(1x)架构的结果,因为它是最广泛使用的结构,也是浅层和深层解码器之间的最佳权衡。因此,根据报告的值,我们得出结论,使用Mask R-CNN 1x作为解码器的MViTv2-T提供了估计性能和EER值(仅针对编码器)之间的最佳编码器-解码器权衡,如表III和表II所示。更详细地说,MViTv2-T结构实现了与更准确的MViTv2-L配置相比的估计性能,即APbox和APmask指标分别减少3.6和2.4,但结构缩小了5.4倍;同时,相对于较轻的PVT-Tiny模型,实现了APbox和APmask指标分别提升11.5和8.7。
表III:CA模型在COCO(val2017)目标检测和实例分割数据集上的定量比较。最佳结果用粗体表示,最佳(权衡)高效模型用灰色突出显示。
Encoder | #Param (M) | APbox | APmask |
---|---|---|---|
PVT-Tiny | 32.9 | 36.7 | 35.1 |
PVT-Small | 44.1 | 40.4 | 37.8 |
PVT-Medium | 63.9 | 42.0 | 39.0 |
PVT-Large | 81.0 | 42.9 | 39.5 |
PoolFormer-S12 | 31.6 | 37.3 | 34.6 |
PoolFormer-S24 | 41.3 | 41.0 | 37.0 |
PoolFormer-S36 | 50.5 | 41.0 | 37.7 |
PVTv2-B2-LiSRA | 42.2 | 44.1 | 40.5 |
MViTv2-T | 44 | 48.2 | 43.8 |
MViTv2-S | 54 | 49.9 | 45.1 |
MViTv2-B | 71 | 51.0 | 45.7 |
MViTv2-L | 238 | 51.8 | 46.2 |
XCiT-T12/16 → SimA | 44.3 | 44.8 | 40.3 |
Ortho-S | 44 | 47.0 | 42.5 |
Ortho-B | 69 | 48.3 | 43.3 |
在这些表格中,我们可以看到MViTv2-T在Mask R-CNN 1x作为解码器时提供了估计性能和EER值(仅针对编码器)之间的最佳编码器-解码器权衡。如表III和表II所示,MViTv2-T结构实现了与更准确的MViTv2-L配置相比的估计性能,即APbox和APmask指标分别减少3.6和2.4,但结构缩小了5.4倍;同时,相对于较轻的PVT-Tiny模型,实现了APbox和APmask指标分别提升11.5和8.7。
语义分割
与之前的研究类似,本节比较了在ADE20K数据集上执行语义分割任务的高效CA解决方案。仅对可用模型的结果如表IV所示。基于报告的架构,我们可以注意到,与目标检测任务类似,使用了不同的解码器,如Semantic FPN [27]和UperNet [63]结构。这些解码器显著影响了所比较的高效架构的可训练参数数量,因为UperNet相对于Semantic FPN多了28M个参数。然而,可训练参数数量的增加并未通过显著的mIoU改进得到合理解释。后者假设可以通过考虑Ortho-S和Ortho-B模型来证明,它们共享相同的编码器但使用不同的解码器;在这些设置中,与Semantic FPN相比,较重的解码器(UperNet)在两个编码器上的性能提升分别为0.3%和0.8%。
最后,我们确定了最佳高效编码器-解码器架构,即与Semantic FPN解码器结合的Ortho-S主干;总体架构实际上在具有约束的可训练参数数量(28M)的情况下实现了显著的估计性能(mIoU = 48.2)。
表IV:CA模型在ADE20K语义分割数据集上的定量比较。最佳结果用粗体表示,最佳(权衡)高效模型用灰色突出显示。
Encoder | Decoder | #Param (M) | mIOU (%) |
---|---|---|---|
PVT-Tiny | Semantic FPN | 17.0 | 35.7 |
PVT-Small | Semantic FPN | 28.2 | 39.8 |
PVT-Medium | Semantic FPN | 48.0 | 41.6 |
PVT-Large | Semantic FPN | 65.1 | 42.1 |
Swin-T | UperNet | 60 | 46.1 |
Swin-S | UperNet | 81 | 49.3 |
Swin-B | UperNet | 121 | 51.6 |
SOFT-Small | UperNet | 54 | 46.2 |
SOFT-Medium | UperNet | 76 | 48.0 |
PoolFormer-S12 | Semantic FPN | 15.7 | 37.2 |
PoolFormer-S24 | Semantic FPN | 23.2 | 40.3 |
PoolFormer-S36 | Semantic FPN | 34.6 | 42.0 |
PoolFormer-M48 | Semantic FPN | 77.1 | 42.7 |
PVTv2-B2-LiSRA | Semantic FPN | 26.3 | 45.1 |
Ortho-S | Semantic FPN | 28 | 48.2 |
Ortho-B | Semantic FPN | 53 | 49.0 |
Ortho-S | UperNet | 54 | 48.5 |
Ortho-B | UperNet | 81 | 49.8 |
4.2 剪枝策略的结果
在本节中,我们比较了剪枝策略的估计性能,这些策略主要在3.2节中介绍并在2.2节中形式化。我们提醒大家,剪枝策略旨在通过将神经网络中的权重设为零来最小化活动连接和神经元的数量。通常由于在训练时DL架构的过度参数化而计算,这个过程不会影响模型参数数量(#Param),因为即使权重为零,它们仍然会保存在网络图中。相反,这种策略将通过减少生成最终预测所需的(非零)乘法数量来提高推理时间的效率。因此,从比较策略中获得的结果可以看出,P方法通常应用于众所周知的架构,如Swin和DeiT,其中相同数量的参数对应较少的FLOPs(请参考表II和表VI中的值)。更详细地说,以X-Pruner策略为例,可以实现Swin和DeiT模型平均减少29.9%和51.3%的非零操作,同时平均准确率(Top-1)分别仅减少0.8%和2.6%。
基于报告的结果,可以看出更准确的策略(Top-1 ≥ 83.5%),如DP/DPS和DynamicViT,利用了LV-ViT [24]结构,正如原始论文中所报告的,即使没有剪枝也能比Swin和DeiT架构实现更好更快的估计。此外,当在相同维度类别下比较DeiT和LV-ViT的PS和DPS时,也可以很容易地注意到这一事实,即S/S和B/M。然而,为了确定准确性和EER之间的帕累托最优性,我们认为LV-ViT-S/07架构的DynamicViT剪枝技术是分析中最佳的权衡解决方案。此外,如表V所示,DynamicViT-LV-S/07在与所有其他报告的方法相比时,获得了高估计性能(Top-1 = 83.0%),同时保持了低EER(28.9%)。相反,从纯粹的效率角度来看,应用于DeiT-Ti结构的X-Pruner策略提供了离散性能,并具有非常低的EER,使其在需要极其受限的计算要求的情况下成为合适的选择。
表V:P模型在ImageNet1K分类数据集上的定量比较。最佳结果用粗体表示,最佳(权衡)高效模型用灰色突出显示。FLOPs*值表示非零操作的数量。
Model | #Param (M) | FLOPs* (G) | Top-1 (%) | EER (%) |
---|---|---|---|---|
VTP-DeiT-B (τ=0.2) | 86.4 | 13.8 | 81.3 | 88.5 |
VTP-DeiT-B (τ=0.4) | 86.4 | 10.0 | 80.7 | 77.9 |
PS-DeiT-S | 22 | 2.6 | 79.4 | 20.1 |
DPS-DeiT-S | 22 | 2.4 | 79.5 | 19.5 |
PS-DeiT-B | 87 | 9.8 | 81.5 | 77.3 |
DPS-DeiT-B | 87 | 9.4 | 81.6 | 76.2 |
PS-LV-ViT-S | 26 | 4.7 | 82.4 | 32.8 |
DPS-LV-ViT-S | 26 | 4.5 | 82.9 | 32.3 |
PS-LV-ViT-M | 56 | 8.6 | 83.5 | 56.7 |
DPS-LV-ViT-M | 56 | 8.3 | 83.7 | 55.9 |
NViT-T | 6.9 | 1.3 | 76.2 | 7.6 |
NViT-S | 21 | 4.2 | 82.2 | 24.1 |
NViT-H | 30 | 6.2 | 82.9 | 34.9 |
NViT-B | 34 | 6.8 | 83.3 | 38.9 |
X-Pruner-DeiT-Ti | 5 | 0.6 | 71.1 | 4.6 |
X-Pruner-DeiT-S | 22 | 2.4 | 78.9 | 19.5 |
X-Pruner-DeiT-B | 87 | 8.5 | 81.2 | 74.1 |
X-Pruner-Swin-T | 29 | 3.2 | 80.7 | 25.8 |
X-Pruner-Swin-S | 50 | 6.0 | 82.0 | 45.9 |
DynamicViT-LV-S/05 | 26.9 | 3.7 | 82.0 | 26.0 |
DynamicViT-LV-S/07 | 26.9 | 4.6 | 83.0 | 28.9 |
| DynamicViT-LV-M/07 | 57.1 | 8.5 | 83.8 | 57.1 |
| DynamicViT-LV-M/08 | 57.1 | 9.6 | 83.9 | 60.2 |
总结,表VI展示了不同方法在各类任务上的性能及其高效性指标,为研究者提供了一个综合的比较参考,以选择最适合特定应用场景的模型和方法。
4.3 知识蒸馏策略的结果
本节比较了在知识蒸馏学习技术下训练的学生模型的估计性能。以下分析主要关注新架构或现有架构(学生)如何从外部监督者(教师)的知识中受益,以在不显著增加参数数量(#Param)和浮点运算次数(FLOPs)的情况下生成更准确的估计。比较模型的结果主要在第3.3节介绍,并在第2.3节形式化,其定量结果如表VI所示。
表VI:使用回顾的知识蒸馏策略在ImageNet1K分类数据集上训练的学生模型的定量比较。最佳结果以粗体显示,最佳(折衷)高效模型以灰色突出显示。
Model (student) | #Param [M] | FLOPs [G] | Top-1 [%] | EER [%] |
---|---|---|---|---|
DeiT-Ti | 5 | 1.3 | 74.5 | 6.6 |
DeiT-S | 22 | 4.6 | 81.2 | 25.7 |
DeiT-B | 87 | 17.6 | 83.4 | 100.2 |
Manifold-DeiT-Ti | 5 | 1.3 | 76.5 | 6.6 |
Manifold-DeiT-S | 22 | 4.6 | 82.2 | 25.7 |
Manifold-Swin-T | 29 | 4.5 | 82.2 | 29.5 |
TinyViT-5M | 5.4 | 1.3 | 79.1 | 6.8 |
TinyViT-11M | 11.0 | 2.0 | 81.5 | 12.0 |
TinyViT-21M | 21.0 | 4.3 | 83.1 | 24.3 |
DearKD-DeiT-Ti | 5 | 1.3 | 77.0 | 6.6 |
DearKD-DeiT-S | 22 | 4.6 | 82.8 | 25.7 |
DearKD-DeiT-B | 87 | 17.6 | 84.4 | 100.2 |
CivT-Ti | 6 | - | 74.9 | - |
CivT-S | 22 | - | 82.0 | - |
Mini-DeiT-Ti | 3 | 1.3 | 72.8 | 5.4 |
Mini-DeiT-S | 11 | 4.7 | 80.7 | 19.7 |
Mini-DeiT-B | 44 | 17.6 | 83.2 | 75.4 |
Mini-Swin-T | 12 | 4.6 | 81.4 | 20.0 |
Mini-Swin-S | 26 | 8.9 | 83.6 | 40.3 |
Mini-Swin-B | 46 | 15.7 | 84.3 | 71.2 |
DynamicViT-LV-S/05 | 26.9 | 3.7 | 82.0 | 26.0 |
DynamicViT-LV-S/07 | 26.9 | 4.6 | 83.0 | 28.9 |
DynamicViT-LV-M/07 | 57.1 | 8.5 | 83.8 | 57.1 |
DynamicViT-LV-M/08 | 57.1 | 9.6 | 83.9 | 60.2 |
根据报告的结果,可以看出从2021年Touvron等人的初步研究开始,引入的DeiT架构已经逐步得到了增强和优化。更详细地说,这种演变可以通过2022年提出的Manifold Distillation和DearKD策略进一步深刻地看到。这些高效技术分别在保持可训练参数数量和FLOPs不变的情况下,实现了平均准确度提高1.5%和1.7%。此外,在计算约束极为严格的应用场景中,使用MiniViT KD学习技术获得的Mini-Deit-Ti模型可能是一个非常有价值的选项,具有非常低的EER和适当的分类性能。然而,我们认为在表VI比较的模型中,最有效的模型是TinyViT-21M学生模型,其能够在限定的EER(24.3%)下实现准确的估计(Top-1 = 83.1%)。特别地,当将TinyViT-21M与类似模型如DearKD-DeiT-S、DynamicViT-LV-S/05和DynamicViT-LV-S/07进行比较时,没有其他学生设计能够在限制的EER值下取得更优越的分类分数。
4.4 量化策略的结果
本节比较了第3.4节介绍并在第2.4节形式化的一般用途量化策略的估计性能。如参考文献中常见的报告,不同策略与相同的架构结构进行比较;具体地说,我们分别在表VII、表VIII和表IX中报告了ViT、DeiT和Swin架构上获得的结果。
表VII:在ImageNet1K分类数据集上应用于ViT模型的量化策略的定量比较。最佳结果以粗体显示,最佳(折衷)高效模型以灰色突出显示。带∗的值为估计值。
Model (ViT) | #Bit W | #Bit A | Size [MB] | Top-1 [%] | EER [%] |
---|---|---|---|---|---|
LiuQ-ViT-B | 6 | 6 | 64.8 | 75.2 | 19.2 |
LiuQ-ViT-L | 6 | 6 | 231.6 | 75.5 | 44.4 |
LiuQ-ViT-B | 8 | 8 | 86.5 | 76.9 | 25.6 |
LiuQ-ViT-L | 8 | 8 | 306.4 | 76.4 | 58.9 |
PTQ4ViT-ViT-S | 6 | 6 | 16.5 | 78.6 | 11.9 |
PTQ4ViT-ViT-B | 6 | 6 | 64.8 | 81.6 | 19.2 |
PTQ4ViT-ViT-S | 8 | 8 | 22.2 | 81.0 | 15.8 |
PTQ4ViT-ViT-B | 8 | 8 | 86.5 | 84.2 | 25.6 |
APQ-ViT-ViT-T | 4 | 4 | 2.9 | 17.6 | 6.3 |
APQ-ViT-ViT-S | 4 | 4 | 11.1 | 47.9 | 7.9 |
APQ-ViT-ViT-B | 4 | 4 | 43.0 | 41.4 | 12.8 |
APQ-ViT-ViT-T | 8 | 4 | 4.1∗ | 38.6 | 9.9 |
APQ-ViT-ViT-S | 8 | 4 | 16.5∗ | 67.2 | 11.9 |
APQ-ViT-ViT-B | 8 | 4 | 64.8∗ | 72.5 | 19.2 |
APQ-ViT-ViT-T | 4 | 8 | 4.1∗ | 59.4 | 18.4 |
APQ-ViT-ViT-S | 4 | 8 | 16.5∗ | 72.3 | 11.9 |
APQ-ViT-ViT-B | 4 |
| 8 | 64.8∗ | 72.6 | 19.2 |
| APQ-ViT-ViT-T | 6 | 6 | 4.1 | 69.5 | 18.4 |
| APQ-ViT-ViT-S | 6 | 6 | 16.5 | 79.1 | 11.9 |
| APQ-ViT-ViT-B | 6 | 6 | 64.8 | 82.2 | 19.2 |
| APQ-ViT-ViT-T | 8 | 8 | 5.4 | 74.8 | 13.3 |
| APQ-ViT-ViT-S | 8 | 8 | 22.2 | 81.2 | 15.8 |
| APQ-ViT-ViT-B | 8 | 8 | 86.5 | 84.3 | 25.6 |
| NoisyQuant-PTQ4ViT-ViT-S | 6 | 6 | 16.5 | 78.6 | 11.9 |
| NoisyQuant-PTQ4ViT-ViT-B | 6 | 6 | 64.8 | 82.3 | 19.2 |
| NoisyQuant-PTQ4ViT-ViT-S | 8 | 8 | 22.2 | 81.1 | 15.8 |
| NoisyQuant-PTQ4ViT-ViT-B | 8 | 8 | 86.5 | 84.2 | 25.6 |
与之前的研究不同,这些表格报告了模型在权重(W)和激活函数(A)压缩时的比特宽度(#Bit),以及量化后的模型大小(Size)。这种选择是由于Q高效策略的基本效果,该策略试图通过较低的数据精度(即将数据从32位压缩到8/6/4位)来保持原始训练模型的估计性能。因此,在Q方法之后,可训练参数的数量(#Param)将保持不变,但每个神经元的数据精度以及模型的总大小将减少。
第一个进行的分析涉及生成高效且准确模型的最佳比特宽度。基于多个表格中提供的数据,可以注意到极端量化(即4位精度)会导致较差的准确性。具体来说,APQ-ViT量化策略应用于ViT-T和DeiT-Ti架构(模型尺寸较小)时,分别产生了17.6%和47.9%的Top-1准确率。相反,具有更高(8/6)比特宽度的相同架构能够实现足够的估计性能,对于ViT-T和DeiT-Ti结构,Top-1分别达到74.8%和72.0%,同时保持较小的模型大小。此外,通过观察较重的Swin模型,如表IX所示,即使在极端量化(4位)下,这些架构也能保证良好的性能,APQ-ViT-Swin-S和APQ-ViT-Swin-B的Top-1准确率分别为77.1%和76.5%。总而言之,极端量化策略应用于小模型通常会导致显著的性能下降;因此,在浅层模型的情况下,最好使用6/8位方法,而在深层架构中使用4位压缩策略可能会更好。然而,极端量化策略可能在计算要求成为ViT推理瓶颈或在特定硬件(如Google Coral TPUs)上受益。
表VIII:Q策略应用于DeiT模型在ImageNet1K分类数据集上的定量比较。最佳结果用粗体表示,最佳(权衡)高效模型用灰色突出显示。用∗报告的值为估计值。
Model (DeiT) | #Bit (W) | #Bit (A) | Size (MB) | Top-1 (%) | EER (%) |
---|---|---|---|---|---|
LiuQ-DeiT-B | 4 | 4 | 43.6 | 75.9 | 12.8 |
LiuQ-DeiT-S | 6 | 6 | 16.6 | 75.1 | 11.9 |
LiuQ-DeiT-B | 6 | 6 | 64.3 | 77.5 | 19.1 |
LiuQ-DeiT-S | 8 | 8 | 22.2 | 78.1 | 15.8 |
LiuQ-DeiT-B | 8 | 8 | 86.8 | 81.3 | 25.6 |
PTQ4ViT-DeiT-S | 6 | 6 | 16.6 | 76.3 | 11.9 |
PTQ4ViT-DeiT-B | 6 | 6 | 64.3 | 80.2 | 19.1 |
PTQ4ViT-DeiT-S | 8 | 8 | 22.2 | 79.5 | 15.8 |
PTQ4ViT-DeiT-B | 8 | 8 | 86.8 | 81.5 | 25.6 |
APQ-ViT-DeiT-Ti | 4 | 4 | 2.5 | 47.9 | 6.6 |
APQ-ViT-DeiT-S | 4 | 4 | 11.0 | 43.5 | 7.9 |
APQ-ViT-DeiT-B | 4 | 4 | 43.6 | 67.5 | 12.8 |
APQ-ViT-DeiT-Ti | 8 | 4 | 3.7∗ | 56.3 | 9.9 |
APQ-ViT-DeiT-S | 8 | 4 | 16.6∗ | 41.3 | 11.9 |
APQ-ViT-DeiT-B | 8 | 4 | 64.3∗ | 71.7 | 19.1 |
APQ-ViT-DeiT-Ti | 4 | 8 | 3.7∗ | 66.7 | 9.9 |
APQ-ViT-DeiT-S | 4 | 8 | 16.6∗ | 77.1 | 11.9 |
APQ-ViT-DeiT-B | 4 | 8 | 64.3∗ | 79.5 | 19.1 |
APQ-ViT-DeiT-Ti | 6 | 6 | 3.7 | 70.5 | 9.9 |
APQ-ViT-DeiT-S | 6 | 6 | 16.6 | 77.8 | 11.9 |
APQ-ViT-DeiT-B | 6 | 6 | 64.3 | 80.4 | 19.1 |
APQ-ViT-DeiT-Ti | 8 | 8 | 5.0 | 72.0 | 10.1 |
APQ-ViT-DeiT-S | 8 | 8 | 22.2 | 79.8 | 15.8 |
APQ-ViT-DeiT-B | 8 | 8 | 86.8 | 81.7 | 25.6 |
NoisyQuant-PTQ4ViT-DeiT-S | 6 | 6 | 16.6 | 77.4 | 11.9 |
NoisyQuant-PTQ4ViT-DeiT-B | 6 | 6 | 64.3 | 80.7 | 19.1 |
NoisyQuant-PTQ4ViT-DeiT-S | 8 | 8 | 22.2 | 79.5 | 15.8 |
NoisyQuant-PTQ4ViT-DeiT-B | 8 | 8 | 86.8 | 81.4 | 25.6 |
总结,表VI展示了不同方法在各类任务上的性能及其高效性指标,为研究者提供了一个综合的比较参考,以选择最适合特定应用场景的模型和方法。
为了确定各比较方法和架构之间的帕累托效率,我们首先将识别每个表中最佳权衡解决方案,然后建立理想的量化策略。基于报告的数据,我们确定NoisyQuant-PTQ4ViT量化方法是比较中最佳的权衡选择。然而,我们强调,APQ-ViT在性能上与NoisyQuant-PTQ4ViT非常接近,也可以作为合适的替代方案。此外,为确保Top-1准确率超过80.0%,我们确定ViT-B、DeiT-B和Swin-B架构是采用6位NoisyQuant-PTQ4ViT量化策略的每个比较表中的最佳权衡解决方案。然而,我们确定NoisyQuant-PTQ4ViT-Swin-B方法是所有分析解决方案中最有效的模型。具体来说,后者架构实现了84.7%的Top-1准确率,模型大小为66.0MB;相反,ViT-B和DeiT-B变体在分类性能上分别低2.3%和4.0%,且EER值和模型大小几乎相同。
表IX:Q策略应用于Swin模型在ImageNet1K分类数据集上的定量比较。最佳结果用粗体表示,最佳(权衡)高效模型用灰色突出显示。
Model | #Bit (W) | #Bit (A) | Size (MB) | Top-1 (%) | EER (%) |
---|---|---|---|---|---|
PTQ4ViT-Swin-T | 6 | 6 | 21.7 | 80.5 | 12.5 |
PTQ4ViT-Swin-S | 6 | 6 | 37.5 | 82.4 | 15.0 |
PTQ4ViT-Swin-B | 6 | 6 | 66.0 | 84.0 | 19.4 |
PTQ4ViT-Swin-T | 8 | 8 | 29.0 | 81.2 | 16.9 |
PTQ4ViT-Swin-S | 8 | 8 | 50.0 | 83.1 | 20.1 |
PTQ4ViT-Swin-B | 8 | 8 | 88.0 | 85.1 | 25.9 |
APQ-ViT-Swin-S | 4 | 4 | 25.0 | 77.1 | 10.0 |
APQ-ViT-Swin-B | 4 | 4 | 44.0 | 76.5 | 12.9 |
APQ-ViT-Swin-S | 8 | 4 | 37.5 | 80.6 | 15.0 |
APQ-ViT-Swin-B | 8 | 4 | 66.0 | 82.0 | 19.4 |
APQ-ViT-Swin-S | 4 | 8 | 37.5 | 80.6 | 15.0 |
APQ-ViT-Swin-B | 4 | 8 | 66.0 | 81.9 | 19.4 |
APQ-ViT-Swin-S | 6 | 6 | 37.5 | 82.7 | 15.0 |
APQ-ViT-Swin-B | 6 | 6 | 66.0 | 84.2 | 19.4 |
APQ-ViT-Swin-S | 8 | 8 | 50.0 | 83.2 | 20.1 |
APQ-ViT-Swin-B | 8 | 8 | 88.0 | 85.2 | 25.9 |
NoisyQuant-PTQ4ViT-Swin-T | 6 | 6 | 21.7 | 80.5 | 12.5 |
NoisyQuant-PTQ4ViT-Swin-S | 6 | 6 | 37.5 | 82.8 | 15.0 |
NoisyQuant-PTQ4ViT-Swin-B | 6 | 6 | 66.0 | 84.7 | 19.4 |
NoisyQuant-PTQ4ViT-Swin-T | 8 | 8 | 29.0 | 81.2 | 16.9 |
NoisyQuant-PTQ4ViT-Swin-S | 8 | 8 | 50.0 | 83.1 | 20.1 |
NoisyQuant-PTQ4ViT-Swin-B | 8 | 8 | 88.0 | 85.2 | 25.9 |
4.5 总体分类性能
在本节中,比较了在CA、P、KD和Q类别中确定的最佳高效策略。此外,为了提供全面的概述,我们在表X中报告了类别间的比较。具体而言,我们分析了每种策略在之前分析中使用的所有评估指标下的表现,即比特宽度(#Bit)、模型大小、参数数量(#Param)、FLOPs、准确率(Top-1)和各类别的EER(EERcatg)值。此外,通过在Equation 26中使用的度量集KaTeX parse error: Expected 'EOF', got '#' at position 3: \{#̲Bit, Size, #Par…,我们生成了一个类别独立的EER值(EERall),该值考虑了所有比较的度量。
表X:各类别最佳高效策略在ImageNet1K分类数据集上的定量比较。最佳结果用粗体表示。
Model | Category | #Bit (W) | #Bit (A) | Size (MB) | #Param (M) | FLOPs (G) | Top-1 (%) | EERcatg (%) | EERall (%) |
---|---|---|---|---|---|---|---|---|---|
Castling-MViTv2-T | CA | 32 | 32 | 98.1 | 24.1 | 4.5 | 84.1 | 26.7 | 21.8 |
DynamicViT-LV-S/07 | P | 32 | 32 | 104.5 | 26.9 | 4.6 | 83.0 | 28.9 | 23.2 |
TinyViT-21M | KD | 32 | 32 | 94.0 | 21.0 | 4.1 | 83.2 | 28.3 | 21.6 |
NoisyQuant-PTQ4ViT-Swin-B | Q | 6 | 6 | 66.0 | 88.0 | 15.4 | 84.7 | 19.4 | 18.5 |
从表X中可以看出,NoisyQuant-PTQ4ViT-Swin-B在所有比较的模型中表现最佳,在考虑所有度量标准时具有最低的EERall值18.5%。该模型在保持高准确率(84.7%)的同时,显著降低了模型大小和计算复杂性。此外,其他类别的最佳策略如Castling-MViTv2-T和DynamicViT-LV-S/07也表现出色,在不同应用场景中具有优越的性能和效率权衡。
综上所述,通过表X的综合比较,我们能够确定在不同应用场景中最有效的模型和策略,为研究者和工程师在选择最适合特定需求的高效模型时提供了宝贵的参考。
表X:在ImageNet1K分类数据集上最佳CA、P、KD和Q策略的定量比较。最佳结果以粗体显示,最佳(折衷)高效模型以灰色突出显示。带∗的值为估计值。EERcatg对应于在各自类别中计算的EER值,EERall对应于在所有报告的指标上计算的EER值。
Category | Model | #Bit W | #Bit A | Size [MB] | #Param [M] | FLOPs [G] | Top-1 [%] | EERcatg [%] | EERall [%] |
---|---|---|---|---|---|---|---|---|---|
CA | Castling-MViTv2-T | 32 | 32 | 96.4 | 24.1 | 4.5 | 84.1 | 26.7 | 45.6 |
P + KD | DynamicViT-LV-S/07 | 32 | 32 | 107.6 | 26.9 | 4.6 | 83.0 | 28.9 | 47.4 |
KD | TinyViT-21M | 32 | 32 | 84.0 | 21.0 | 4.3 | 83.1 | 24.3 | 43.5 |
Q | NoisyQuant-PTQ4ViT-Swin-B | 6 | 6 | 66.0 | 88.0 | 15.4 | 84.7 | 19.4 | 56.5 |
根据报告的结果,可以注意到DynamicViT-LV/07和TinyViT-21M策略都是通过知识蒸馏(KD)学习技术获得的。更具体地说,DynamicViT-LV/07是一种剪枝策略,利用KD动态和逐步缩小剪枝后的学生模型,以最小化由于模型稀疏化导致的性能下降。尽管如此,TinyViT-21M(学生)模型以较小且更轻的模型(即-5.9M可训练参数,-0.3G FLOPs和-23.6MB)实现了可比较的分类性能(≃83%)。此外,感谢Wu等人引入的内存高效的KD策略,TinyViT-21M策略在所有报告的评估指标上计算出的EERall值最低,为43.5%。
相比之下,当将TinyViT-21M与NoisyQuant-PTQ4ViT-Swin-B方法进行比较时,可以注意到以较低精度(6-bit)计算的更多FLOPs对模型大小和估计性能有利。与TinyViT-21M相比,NoisyQuant-PTQ4ViT-Swin-B实现了最高的Top-1准确度(84.7%),其模型大小为66.0MB,而TinyViT-21M为84.0MB。具体来说,这种量化策略实现了+1.6%的Top-1提升,同时模型小了21.4%。然而,正如Liu等人(EcoFormer)所强调的,为了最大化这些基于量化算法的有效性能,可能需要特定的CUDA内核或优化解释器。因此,NoisyQuant-PTQ4ViT-Swin-B可能是特定硬件设置下的有效且高效的策略。
最后,Top-1准确度和EERall之间的Paretian最优性由Castling-MViTv2-T模型的CA策略实现。如表X所示,该架构在保持适当EERall的同时,实现了最佳估计性能(Top-1 = 84.1%)。具体来说,与TinyViT-21M相比,Castling-MViTv2-T模型实现了+1.1%的准确度提升,但EERall增加了2.1%;不同的是,与NoisyQuant-PTQ4ViT-Swin-B相比,准确度降低了0.6%,而EERall增加了10.9%。然而,从报告的结果可以看出,Castling-MViTv2-T模型在任何报告的指标(表X中的粗体)上都不突出;这是因为本次最终分析的目标不是识别使ViT高效的最佳策略,而是识别在通用设置中最佳平衡效率和分类性能的模型。
5 讨论与结论
本文调查了高效ViT策略的文献,这是此类架构的主要瓶颈之一。将现有技术分类为四类:紧凑架构(CA)、剪枝(P)、知识蒸馏(KD)和量化(Q)。此外,我们形式化了它们的算法(第2节),回顾了提出的技术以突出其优缺点(第3节),并最终在知名基准数据集上比较了模型/策略的性能(第4节),以确定在估计性能和效率之间的最佳折衷策略。此外,我们引入了一种名为高效错误率(EER)的新评估指标,用于与预定义和固定的非高效基准解决方案相比,概述回顾模型的效率性能。
总之,根据之前确定和分析的内容,本节将重点讨论可能提高通用ViT模型效率的开放挑战和有前景的研究方向。回顾的工作只是开发有效和高效解决方案的第一步,未来还有很大的改进空间。因此,我们确定了三个潜在的主要限制,分别讨论如下:应用/任务、评估指标和合并策略。
应用/任务:从前面的分析可以看出,许多比较的高效方法仅依赖于测试其在知名分类任务上的性能;相比之下,在CA优化中,测试了各种场景。因此,有必要在不同或更复杂的任务中探索这些高效架构。此外,这些架构是否可以推广到其他任务或对抗攻击的鲁棒性是需要调查和解释的基本概念。正如[46, 48, 45]中广泛分析的那样,已知ViT比CNN更具弹性,因为其全球理解;然而,降低其计算能力或压缩模型本身可能会导致在噪声或操纵输入情况下显著的准确度下降。
评估指标:根据第4节报告的表格和回顾的工作,评估提议解决方案质量的指标,如准确度(Top-1/AP/mIOU)、FLOPs和可训练参数数量,是通用任务中常用的评估指标和架构值。因此,由于高效解决方案的开发旨在确定在实际场景中应用ViT的最佳准确度和效率折衷,开发基于资源受限设备的新评估指标和特定基准测试可以帮助比较在类内和类间提出的解决方案。更详细地说,这些新评估指标可以集中评估优化策略引起的退化效应;这是因为降低模型的计算成本和相关资源需求通常以性能下降为代价。例如,尽管是从常用值计算出来的,由Li等人引入的移动效率得分和提出的高效错误率(EER)仅仅是一些用于更广泛了解现有和未来解决方案的效率性能的可能公式。
合并策略:注意力机制在准确的计算机视觉系统开发中起着关键作用;然而,其计算成本的降低/线性化并非没有性能后果。根据表I的总结,还可以看出比较策略主要集中在确定仅关注特定技术(即CA、P、KD或Q)的最有效解决方案。相比之下,如Rao等人在DynamicViT中所示,结合多种技术的能力可能成功地限制浅层架构相对于深层架构的准确度损失。因此,由于每种高效策略都导致ViT计算需求的减少,研究使用多种高效方法的解决方案并确定这些解决方案可以集成的最佳方式可能是开发未来高效方法的有效途径。
文章评论