前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >清华/浙大/川大 来拟合提出Sparse-Tuning | 显著提高预训练ViT模型在微调和推理上的效率!

清华/浙大/川大 来拟合提出Sparse-Tuning | 显著提高预训练ViT模型在微调和推理上的效率!

作者头像
集智书童公众号
发布2024-06-11 18:39:26
1600
发布2024-06-11 18:39:26
举报
文章被收录于专栏:集智书童

参数高效的微调(PEFT)已成为将预训练的视觉 Transformer (ViT)模型适配到下游应用的一种流行方法。尽管当前的PEFT方法在达到参数效率的同时,却忽略了在微调和推理过程中GPU内存和时间的效率,这是由于在ViT架构中重复计算了冗余的标记。 这不符合下游任务适配的实际要求。在本文中,作者提出了Sparse-Tuning,一种新型的调优范式,它显著提高了预训练ViT模型在微调和推理上的效率。 Sparse-Tuning通过稀疏地保留信息性标记并合并冗余标记,有效地微调预训练的ViT,使ViT能够专注于图像中的前景,同时减少对背景区域的计算成本。 为了准确区分信息性标记和非信息性标记,作者引入了一种定制的Dense Adapter,它在ViT的不同编码层之间建立密集连接,从而提高标记稀疏化的表示能力和质量。 在VTAB-1K、三个完整图像数据集和两个完整视频数据集上的实证结果表明,Sparse-Tuning将GFLOPs降低到原始ViT-B的**62%-70%**,同时实现了最先进的性能。 源代码可在https://github.com/liuting20/Sparse-Tuning获取。

1 引言

大规模视觉 Transformer (ViT)模型已经在广泛的下游视觉任务中展示出强大的泛化能力。将这些模型适配到特定任务的普遍方法是遵循先预训练后微调的范式,模型最初在大规模数据集上进行预训练,然后针对每个下游任务进行微调。然而,随着这些预训练的ViT模型规模的不断扩大[57; 7],完全微调它们变得计算上更加密集。此外,在有限的下游数据集上进行微调时,还存在灾难性遗忘和过拟合的风险。

近期,提出了各种参数高效微调(PEFT)方法[21; 34; 22; 25; 5],以解决完全微调大型模型所涉及的高计算成本和风险。通过更新模型中插入的附加参数[21; 5]或附加到输入数据上的参数[34; 25],PEFT方法可以达到与全量微调相似甚至更好的性能。当前的PEFT方法主要关注于高效微调预训练的ViT以适应下游视觉任务。

然而,尽管它们在微调效率上有所成就,却因在多头注意力(MHA)和前馈网络(FFN)块中重复计算冗余标记而在推理效率上存在不足,无法满足实际需求。

受到针对ViT的模型加速方法[49; 51; 36; 37]的启发,作者旨在减少在微调和推理阶段中的冗余标记,以提高效率。由于大多数加速方法在ViT的编码器层中逐步剪枝标记,作者考虑建立浅层编码器层(捕捉局部信息)与深层编码器层(捕捉全局信息)之间的互动。通过将全局信息与局部细节相结合,作者旨在准确区分信息性标记和非信息性标记。

为此,在本文中,作者引入了Sparse-Tuning,这是一种新颖的调优范式,可实现在ViT适配中的高效微调和推理。Sparse-Tuning通过稀疏地适配标记来高效微调预训练的ViT,使模型能够关注信息区域,从而在微调和推理阶段提高计算和内存效率。

具体来说,作者设计了一种新颖的无需参数的标记稀疏化方法,它允许预训练的ViT在集成非信息性标记到一个代表性标记的同时,逐步保留信息性标记,从而减少冗余的计算成本。此外,为了减轻标记稀疏化造成的信息损失,并高效微调预训练的ViT,作者提出了密集 Adapter (Dense Adapters),它接收来自不同编码器层的多个特征作为输入,以在多个标记稀疏化步骤之间建立密集连接。正如图1所示,通过这些非平凡的设计,Sparse-Tuning在提高性能的同时,相比大多数PEFT方法,减少了训练和推理时间、GPU内存消耗以及ViT适配的计算成本。

为了全面评估泛化能力,作者在常见的PEFT基准测试VTAB-1K [58]上进行了大量实验,以及三个完整的图像数据集:CIFAR-100 [33]、SVHN [13]和Food-101 [2],还有两个完整的视频数据集:Kinetics-400 (K400) [4]和Something-Something V2 (SSv2) [14]。

在VTAB-1K上的实证结果显示,仅使用11.65 GFLOPs,约**66%**的原始ViT-B的计算成本,Sparse-Tuning在性能、微调和推理效率方面均超过了所有现有最佳方法。此外,在完整的数据集上,Sparse-Tuning在图像和视频识别方面都取得了卓越的性能,同时显著提高了微调和推理的效率。

2 Related Work

Parameter-efficient Fine-tuning

随着对视觉Transformer(ViT)[10; 18; 57; 7]的扩展趋势以增强性能和泛化能力,将整个模型适应到下游任务变得越来越计算昂贵。为了缓解这一问题,参数高效的微调(PEFT)[21; 34; 22; 25; 55; 54]作为一种策略方法应运而生。PEFT方法只更新一小部分附加参数,同时保持大部分预训练模型冻结,从而减轻灾难性遗忘和过拟合的风险。

为Transformer[50]设计的多数PEFT方法可以分为三类:

(1) 部分调优,只更新固有参数的一小部分,同时冻结大多数原始参数。

(2) 提示调优,集成固定长度的可学习标记(即提示)附加在输入数据上。在微调期间只更新提示。

(3) Adapter 调优,在微调期间只更新插入模型中的模块(即 Adapter )中的附加参数。

尽管大多数PEFT方法在ViT的微调阶段提高了参数效率,但它们常常引入新的参数,这些参数妨碍了推理效率。重参化方法,如LoRA[22]和FacT[29],引入了可以通过推理过程中的重参化集成到原始模型中的可学习参数。

因此,这些方法可以保持原始模型的推理效率。然而,当前的PEFT方法在实现参数高效微调的同时未能提高推理效率,这不符合适应大型ViT(例如,ViT-L[10])的实际需求。在本文中,作者旨在提高预训练ViT的微调和推理过程的效率。

Model Acceleration for ViT

近期,许多研究致力于提高ViT的推理效率[15, 49, 36, 6, 37],其中大部分工作旨在减少ViT中的标记冗余以降低计算复杂度。例如,DynamicViT [49]通过预测模块识别并剪枝信息量较少的标记,有效地稀疏化ViT。DVT [51]通过为每个输入图像自动适配标记数量来提高计算效率。SuperViT [37]使用单一模型处理不同的图像块大小,在推理过程中自适应地调整标记保持。

现有的ViT加速方法通常要么需要微调所有预训练参数[49, 51],要么从零开始训练模型[36, 37]。因此,这些方法需要大量的训练或微调时间来将ViT适配到下游视觉任务。最近,动态调整(DyT)[60]保持预训练的ViT参数冻结,只更新 Adapter 和标记分发器以提高参数效率和推理过程中减少冗余计算。与直接跳过非信息性标记的DyT不同,作者的方法将这些标记合并为一个代表性标记,以保留对分类有益的视觉特征。

此外,与需要计算所有标记以更新所 Proposal 的标记分发器参数的DyT不同,作者的方法在标记稀疏化过程中不引入任何附加模块。作者的方法通过选择性地适配标记,有效地微调了预训练的ViT,从而在微调和推理阶段都提高了效率。

3 Method

在本节中,作者详细介绍了所提出的稀疏调优(Sparse-Tuning)。首先,在3.1节中简要回顾了视觉 Transformer (Vision Transformer)和 Adapter 调优(Adapter Tuning)的基础知识。

接下来,在3.2节中,作者提供了关于稀疏调优整体框架的一般性介绍。

然后,作者详细阐述了稀疏调优的核心技术:标记稀疏化(Token Sparsification)和密集 Adapter (Dense Adapter)。

Preliminaries

视觉 Transformer (ViTs)[10]基本上由一个块嵌入层和一系列 Transformer 编码器层组成。块嵌入层首先将输入图像分割并展平成一个块序列,其中表示输入图像的大小,表示每个图像块的大小,是通道数,是图像标记的数量。这些块,前面加上一个可学习的[CLS]标记,被送入一系列 Transformer 编码器层中,每个编码器层包括一个多头注意力(MHA)块和一个前馈网络(FFN)。在MHA中,标记被线性投影并打包成三个向量,即,和。自注意力操作可以写成:

是注意力图,其中表示[CLS]标记对所有标记的注意力,反映了每个标记的重要性。随后,输出标记被发送到一个层归一化(LayerNorm)[1]和一个FFN,FFN由两个全连接层组成,中间有一个GELU激活函数[20]。通过一系列编码器层处理标记后,提取[CLS]标记并用于分类。

** Adapter 调整**是ViT[5, 45, 27]有效微调的流行策略,通常涉及在与FFN并行的地方插入一个MLP。 Adapter 包括一个下投影层,ReLU非线性激活,和一个上投影层依次排列。给定输入特征,标准 Adapter 的功能可以正式表示为:

其中表示缩放因子。与标准 Adapter 不同,在本文中,作者引入了密集 Adapter ,它接收来自不同编码器层的多个适配特征,以在ViT的编码器层之间建立联系。

Sparse-Tuning for Efficient ViT adaptation

现有的工作[49, 51, 36]已经证明,在ViT中的最终预测在很大程度上依赖于最具信息性的token子集。动态调整(DyT)[60]保持预训练参数冻结,并使用所提出的token分配器更新 Adapter 以区分并丢弃非信息性token。

这种设计可以提高ViT的推理速度,但存在两个主要缺点

(1) _效率低下的微调_,因为DyT需要通过所有token反向传播梯度以更新所提出token分配器的参数,从而在GPU内存消耗和微调速度方面效率低下。

(2) _信息丢失_,因为token分配器直接移除了那些未激活的token,这可能导致信息的直接丢失,从而降低分类精度。

受到上述分析的启发,作者引入了带密集 Adapter 的稀疏调整(Sparse-Tuning with Dense Adapters),通过选择性地调整token以关注信息性区域,高效地微调预训练的ViT,提高了微调和推理阶段的效率。

如图2所示,整体框架包括两部分:

(1) 经过精心设计的Token Sparsification过程的预训练ViT-B/16[10],包括一个图像块嵌入层和12个 Transformer 编码层;

(2) 作者的密集 Adapter 。在微调期间,作者冻结预训练的ViT,只更新一系列密集 Adapter 以促进对下游任务的高效适配。在第4、第7和第10编码层(作者在表6上进行相关分析),作者实施Token Sparsification(见图3),使ViT更关注信息性token并减少冗余的计算成本。

Token Sparsification. 稀疏调整的主要思想是减少对非信息性token的计算负载,进而降低在微调和推理期间对ViT和密集 Adapter 的计算成本,从而提高整体效率和速度。一个有趣的问题产生了:_如何从其他信息较少的token中区分出信息性token?_ Dense Adapter. 为了进一步减轻Token Sparsification造成的信息丢失,并高效地使预训练的ViT适应下游任务,作者考虑利用 Adapter 调整方法。目前大多数用于ViT的 Adapter 调整方法[5, 26]遵循ResNet[19]的基本 残差连接 方法,该方法只能建立两个相邻ViT编码层之间的连接,大大限制了微调期间适应特征的有效传播。ViT中从局部特征到全局特征的跨编码层转换影响了Token Sparsification的有效性。考虑到Token Sparsification在ViT的编码层之间发生,作者受到DenseNet[23]的启发,引入了密集 Adapter (DA),以建立跨多个编码层的 _密集连接_。

如图2(右)所示,与标准 Adapter [21]不同,DA取不同编码层的多个特征作为输入,以建立多个Token Sparsification步骤之间的交互,从而补偿Token Sparsification造成的信息丢失。

根据位置,DA由一到三个下投影层(即 ,,),ReLU非线性激活和一个上投影层 组成。具体来说,作者将第N个DA表示为DA。DA的输出可以表示为:

和 分别代表第N个编码器层的DA和MHA的输出。值得注意的是,当 3<n\leq 4="" 12x_{\text{da}_{\text{n},1}}="" 和="" x_{\text{da}_{\text{n},3}}="" 可能会被相应的token稀疏化步骤稀疏化,以确保="" x_{\text{da}_{\text{n}}}x_{\text{da}_{\text{n},1}}="" 的token长度一致。密集="" adapter="" 促进了vit编码器中低层与高层之间的多次交互,从而增强了token稀疏化的表示能力和质量。##="" 实验部分<="" p="">

Experimental Setup

数据集。 作者在常用的PEFT基准测试VTAB-1K [58] 上将作者的Sparse-Tuning与其他最先进的方法进行比较,以评估在训练数据有限时的适应性能。对于VTAB-1K [58] 中的每个下游分类任务,训练数据极其稀少,只包含1,000个训练样本。因此,遵循[5, 60]的做法,作者在三个完整的图像数据集:CIFAR-100 [33],SVHN [13] 和 Food-101 [2],以及两个完整的视频数据集:Kinetics-400 (K400) [4] 和 Something-Something V2 (SSv2) [14] 上进行实验,以进一步评估作者的Sparse-Tuning的适应性能和效率。

实现细节。 作者使用ViT-Base (ViT-B/16) 模型 [10] 作为作者的基础模型,该模型在ImageNet21K数据集 [8] 上以完全监督的方式进行预训练。作者的Dense Adapter的瓶颈维度 默认设置为32,并且在VTAB-1K上遵循大多数现有工作[5, 60],将 减少到8。缩放因子 设置为1。作者默认将注意力 Token 的保留率 设置为0.7,除非另有说明。作者遵循[5, 60]中报告的相同训练计划。对于所有下游任务,作者采用top-1准确度作为主要评估指标。作者在A800 GPU上进行所有实验。更多细节在附录C中提供。

Main Results

在VTAB-1K上的比较。

表1展示了与现有技术水平(SOTA)的PEFT方法在VTAB-1K [58]上的比较结果,从表中作者可以观察到:

(1) Sparse-Tuning优于所有SOTA PEFT方法。与先前的最佳模型DyT [60]相比,Sparse-Tuning在三个子组上的平均准确度提高了**1.18%**。

(2) Sparse-Tuning大幅提高了推理效率。仅使用11.65 GFLOPs,约等于原始ViT-B 66%的计算成本,保持率的Sparse-Tuning在性能和推理效率上都超过了所有现有技术水平的方法。

(3) 当保持率增加时,Sparse-Tuning继续展现出更好的性能。即使是的Sparse-Tuning也能超过最近的一些强方法,如Res-Tuning [26]和FacT [29],这验证了作者的Sparse-Tuning的有效性和效率。

在完整数据集上的比较。 作者在综合图像和视频数据集上进行了实验,以评估在丰富训练数据下的适应性能。

表2展示了在完整图像和视频数据集上的结果,从中作者发现:

(1) Sparse-Tuning在图像和视频数据集上都优于所有 Baseline 方法,证明了其在完整数据集上的强大迁移能力。

(2) Sparse-Tuning在图像和视频数据集上展现出异常的推理效率。特别是在视频数据集上,Sparse-Tuning将原始ViT-B的计算复杂度降低了约30%,突显了其在视频应用中的强大效率。仅更新了1.11M个参数,作者的Sparse-Tuning在图像和视频识别中取得了卓越的性能,同时显著提高了推理效率。

Ablation Studies

在本小节中,作者首先分析了Token稀疏化和Dense Adapter (Dense Adapters)的有效性。然后深入探讨了作者的Dense Adapter 中特征输入及其融合方法。随后,作者研究了Token稀疏化在不同位置对实现最优性能的影响。最后,作者验证了在预训练的ViT扩展时Sparse-Tuning的有效性。作者在三个完整图像数据集上进行了所有消融研究。

组件有效性。在表3中,作者报告了使用Sparse-Tuning不同组件的性能,以研究Token稀疏化和Dense Adapter 的有效性。

作者可以观察到以下情况:

(1) Token稀疏化可以降低计算复杂性,但它会导致性能显著下降,平均准确率降低了7%(表3(a,b))。

(2) Dense Adapter 可以在三个数据集上显著提高性能(表3(a,c)),这证明了它们在ViT适配中的有效性。

(3) Sparse-Tuning将Token稀疏化和Dense Adapter 整合到预训练的ViT中,实现了性能与微调及推理效率之间最佳的权衡(表3(a,b,c,d))。

与仅使用Dense Adapter 进行有效的ViT适配(表3(b))相比,Sparse-Tuning在只牺牲0.48%平均准确率的同时,将计算成本从17.89 GFLOPs显著降低到11.70 GFLOPs,突显了其强大的适配性能和效率。

不同特征输入的效果。为了研究密集连接的有效性,作者比较了Dense Adapter 中不同的输入。如表4所示,当将来自不同编码器层的多个特征输入到Dense Adapter 时,性能会增加。这表明作者的Dense Adapter 有效地促进了ViT的低层和高层之间的密集交互,增强了表示能力,从而与标准 Adapter 调整(adapter-tuning)相比提高了性能(表4(a))。值得注意的是,尽管作者的Sparse-Tuning引入了更多需要计算的特征交互,但与 Adapter 调整相比,GFLOPs仍然减少,这表明Token稀疏化也减轻了Dense Adapter 中的计算成本。

不同特征融合方法的效果。由于Dense Adapters将多个特征作为输入,作者考虑了三种Dense Adapters的变体,这些变体可以融合这些多级特征,如图4所示。

作者在表5中报告了不同特征融合方法的性能。

在将多级特征输入到Dense Adapters之前融合它们(图4(a))需要较少的可训练参数,但会降低性能。这是因为这种融合方法会导致信息丢失;不同层的特征可能包含互补的信息,简单的相加可能无法有效地整合这些信息。在将特征输入到Dense Adapters之后再融合它们(图4(c))也会降低性能。这是因为多级特征被映射到不同的空间,直接融合它们可能会掩盖重要信息,从而降低分类性能。作者的Dense Adapters首先将多级特征投射到同一空间,然后在同一空间内融合它们,并最终将融合后的特征重新上投射回原来的形状(图4(b))。这确保了密集交互过程发生在同一特征空间内,从而带来更好的性能。** Token 稀疏化不同位置的效果。**由于 Token 稀疏化在ViT的不同编码器层中发生,作者研究其在不同位置的效果,以实现性能与计算成本的最佳权衡。如表6所示,第一个 Token 稀疏化的位置越浅,需要处理具有完整 Token 的编码器层数越少,因此计算成本越低。然而,在早期阶段,ViT无法可靠地识别重要 Token ,因此基于不可靠的注意力图合并 Token 可能会导致重要信息的丢失,导致性能下降(表6(a,b))。

相比之下,如表6(d,e)所示,较浅层 Token 经过Dense Adapters后期处理可能已经失去了局部特征,与表6(a,b)相比,整体性能更好但仍然不是最优的。作者发现,在第4、第7和第10个编码器层采用 Token 稀疏化可以获得最佳性能。这表明在ViT的相对中间编码器层进行多次密集交互在 Token 稀疏化时能更有效地平衡局部和全局特征。因此,作者选择在ViT的第4、第7和第10个编码器层进行 Token 稀疏化,以实现性能与计算成本的最佳权衡。

通过稀疏调优扩展ViT。作者将稀疏调优应用于ViT-L [10],以评估在扩展预训练模型时其性能和效率。

如表7所示,稀疏调优将可调参数减少了99.03%,并且与完全微调相比,GFLOPs减少了7.82-30.97,同时性能也超越了完全微调。此外,稀疏调优在性能和效率上都超过了DyT [60],证明了它对于大型预训练模型的有效性。

5 Conclusion

在这项工作中,作者旨在在适应预训练的ViT时,提高微调和推理阶段的效率。为此,作者提出了一种称为Sparse-Tuning的新颖调优方法,该方法选择性地调整标记,使预训练的ViT在微调阶段更多地关注前景,较少关注背景区域。通过逐渐保留信息性标记并将非信息性标记合并为一个代表性标记,作者的Sparse-Tuning显著减少了冗余的计算成本,实现了ViT适应的微调和推理效率。

作者在VTAB-1K基准、三个完整图像数据集和两个完整视频数据集上进行了实证实验,以确保作者的Sparse-Tuning对高效ViT适应的泛化能力。

大量的实验结果证明,作者的Sparse-Tuning不仅可以提高性能,还可以显著提高微调和推理的效率。在本文中,由于作者的实验主要关注分类任务,将作者的Sparse-Tuning扩展到其他视觉任务(如分割和检测)将是未来的研究方向。

在CIFAR-100上的性能与效率

作者展示了在CIFAR-100数据集[33]上,作者的Sparse-Tuning方法与其它主流PEFT方法在微调期间更新的参数数量、微调和推理期间的GPU内存使用、微调和推理时间、GFLOPs以及准确性的比较。显然,作者的Sparse-Tuning在显著提高微调和推理阶段效率的同时,实现了最先进的性能。

Effects of Different Bottleneck Dimensions of Dense Adapter

作者探讨了在稀疏调优中,作者的密集 Adapter 的瓶颈维度 对性能、更新参数和计算成本之间最佳权衡的影响。如表格9所示,更高的瓶颈维度 会引入更多参数和更高的GFLOPs。然而,较小的 可能会导致下投影丢失原始特征的显著信息,从而导致性能下降。作者观察到,当瓶颈维度为32时,性能达到峰值,之后逐渐下降。因此,考虑到可训练参数、GFLOPs和性能之间的权衡,作者选择了32作为瓶颈维度。

Appendix B More Visualizations of Token Sparsification

作者展示了更多关于Token稀疏化的可视化结果,如图5所示。结果表明,对于各种图像,作者Sparse-Tuning中的Token稀疏化可以有效维持前景区域的token。

Appendix C Implementation Details for Each Task

表8:与主流PEFT方法在CIFAR-100上的比较。本表完全复制了图1中展示的数据。

在VTAB-1K上的实验设置。遵循先前的工作[28, 26],作者在VTAB-1K [58]的每个数据集上对模型进行100轮的微调。在这些实验中,作者不使用任何数据增强策略。作者采用AdamW [43]优化器。基础学习率设置为0.01,并根据余弦调度[42]逐渐衰减至0。在完整图像数据集上的实验设置。作者使用表10中的设置对提出的Sparse-Tuning进行ViT的微调。对其他参数高效方法,如AdaptFormer [5],LoRA [22],和VPT [25]的实验也遵循表10中的设置[60]。

在视频数据集上的实验设置。作者使用两个视频数据集,Kinetics-400 (K400) [4]和Something-Something V2 (SSv2) [14],来评估随着标记数量增加时的性能。

实验设置如表11所示。输入帧数设置为8。在测试期间,作者使用多视图,这是视频动作识别中的一个常见做法。其他PEFT方法的实验也遵循这些实验设置。

Appendix D Pseudocode of Sparse-Tuning

作者在算法1中提供了类似于PyTorch的伪代码,以帮助更好地理解整个Sparse-Tuning过程。

参考

[1].Sparse-Tuning: Adapting Vision Transformers with Efficient Fine-tuning and Inference.

免责声明

凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 集智书童 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 引言
  • 2 Related Work
    • Parameter-efficient Fine-tuning
      • Model Acceleration for ViT
      • 3 Method
        • Preliminaries
          • Sparse-Tuning for Efficient ViT adaptation
          • Experimental Setup
          • Main Results
          • Ablation Studies
          • 5 Conclusion
            • 在CIFAR-100上的性能与效率
              • Effects of Different Bottleneck Dimensions of Dense Adapter
                • Appendix B More Visualizations of Token Sparsification
                • Appendix C Implementation Details for Each Task
                  • Appendix D Pseudocode of Sparse-Tuning
                  • 参考
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档