论文汇总
存在的标题
1.从前的提示微调方法那样只关注修改输入,而应该明确地研究在微调过程中改进自留意机制的潜力,并探索参数服从的极限。
2.探索参数服从的极值来减少可调参数的数量?
解决办法
提示嵌入举行transformer中
提示剪枝
Token-wise Pruning
Token-wise Pruning对prompt生成一个mask, ρ = { ρ 1 , ρ 2 , … , ρ M } , ρ k ∈ { 0 , 1 } \rho=\{\rho_1,\rho_2,\ldots,\rho_M\},\rho_k\in \{0,1\} ρ={ρ1,ρ2,…,ρM},ρk∈{0,1} ( M M M为可视提示符的长度)。 ρ k ∈ { 0 , 1 } \rho_k\in \{0,1\} ρk∈{0,1} 代表第 i i i 个token的重要程度,0代表这个token被丢弃, P ~ k = ρ k ⋅ P k \tilde{P}_k=\rho_k\cdot {P}_k P~k=ρk⋅Pk。
Segment-wise修剪
Segment-wise修剪对Token-wise Pruning之后的Token做进一步的剪枝,具体来说就讲Token-wise Pruning之后的Token分为 R R R 个part,将每个part视为一个整体。每一个part也有一个类似于Token-wise Pruning的 ρ \rho ρ 变量,表示每一个part的Token是否需要被扬弃。
摘要
随着基于transformer的模型的规模不停增长,为新使命微调这些大规模预训练的视觉模型已经变得越来越参数密集。参数高效学习是为了减少微调过程中可调参数的数量。只管这些方法显示出很好的效果,但与完全微调相比,仍旧存在显着的性能差距。为相识决这一挑战,我们提出了一种有效和高效的视觉提示调谐(E2VPT)方法,用于大规模基于变压器的模型自适应。具体来说,我们在自留意层和输入层分别引入了一组可学习的键值提示和视觉提示,以提高模型微调的有效性。别的,我们设计了一个提示剪枝程序,在保持模型性能的同时系统地修剪低重要性提示,大大提高了模型的服从。实证效果表明,我们的方法在两个基准上优于几个最先辈的基线,参数使用率相当低(比方,VTAB-1k上的模型参数使用率为0.32%)。我们的代码可在https://github.com/ChengHan111/E2VPT上得到。
1. 介绍
人工智能(AI)的发展不但应优先思量性能进步,还应夸大可连续部署[64,78,80,87]。只管人们对视觉相关使命的性能改进有着迷人的追求,但现在模型的规模一直在迅速增加,这导致了能量密集型和计算成本高昂的训练[31,73,92]。基于transformer的架构现在主导着视觉相关模型,如ViT-Huge [12] (632M)和Swin-Large [54] (197M),它们的参数明显多于卷积神经网络(CNN)像ResNet [26] (25M)。从头开始训练云云大的模型存在着数据有限[5,20,75]和低精度下缓慢收敛[37,47]等挑战。克服这些挑战的一个常见范例是预训练-然后微调,它减少了对大量训练数据的需求,并加快了各种视觉使命的处理速度。然而,传统的全调优涉及到为每一个使命存储和部署backbone参数的完整副本[34],计算成本很高,不得当快速模型部署。
图1所示。在预训练之后微调的范式下,$ \text{E}^2 \text{VPT} $(我们的)与其他工作(即部门调谐[91],额外模块[6]和提示调谐[34]方法)。与最先辈的微调方法相比,我们的方法得到了可靠的性能提拔,并且在接纳预训练的ViT-Base/16[12]作为主干的广泛分类使命上具有完全微调的竞争力,参数使用量相当低(见表1)。颜色分别表示VTAB-1k[96]上的效果:Specialized, Natural和Structure。
为相识决这个标题,已经开辟了各种方法,可分为三大类(见图1):部门调优、额外模块和提示调优方法。部门调优方法[10,35,58]只对骨干的一部门举行微调,如分类器头部或最后几层,而冻结其他部门。额外的模块方法将可学习的偏置项[6]或额外的适配器[70,98]插入网络以举行适应。提示调谐方法在变压器的输入层添加提示令牌[34,36,94],而不改变或微调主干自己。所有这些方法都是在预训练后微调的模式下运行的,与完全微调相比,这减少了可学习参数的数量[10,35,58,70,98]。
然而,只管取得了令人鼓舞的效果,但现有的参数高效方法存在两个主要局限性。首先,他们没有细致查抄transformer自关注机制的核心架构,导致完全微调的性能差距很大。其次,它们通常需要对相对大量的参数举行微调以达到公道的性能,而无法探索参数服从的极值。
以上概述的观点引出了两个基本标题:
1:我们如何才气为大规模基于transformer的视觉模型创建快速调解的有效性?
2:我们如何探索参数服从的极值来减少可调参数的数量?
这两个标题是我们工作的基础。直觉是,我们不应该像从前的提示调解方法那样只关注修改输入,而应该明确地研究在微调过程中改进自留意机制的潜力,并探索参数服从的极限。
为了回答标题1,我们讨论并分析了transformer的自关注机制,该机制对于在全局上下文中捕获远程令牌依靠关系至关重要[21,38,49]。除了输入视觉提示外,我们还引入了可学习的键值提示,并将它们集成到自留意层的键值矩阵中。在微调期间,键值提示与输入可视提示一起学习。这种方法有效地利用了设计良好的transformer提示体系布局,从而显著提高了性能。别的,它为电流互感器架构提供了一个通用的即插即用提示模块,其微调解决方案在概念上不同于前面提到的视觉范畴的所有技能。
在标题2的鼓励下,我们提出了一种修剪策略,在保持模型性能的同时进一步减少参数的数量。我们的方法从彩票假设(LTH)中得到灵感[16,102],它假设对于给定的使命,存在一个子网络,该子网络可以匹配原始过参数化网络的测试精度,而不需要不必要的权重[22,23,41,43,44]。在此范例的基础上,我们重新审视了提示调优方法的核心设计,并进一步减少了可学习参数的数量。具体来说,我们的目标是保留对性能有重大贡献的提示令牌,同时在微调期间修剪冗余或不必要的提示令牌。通过修剪这些不必要的提示,我们可以在保持性能的同时显著提高提示调优服从。
为了回答标题1-2,我们提出$ \text{E}^2 \text{VPT} $,即Effective and Efficient Visual Prompt Tuning。e2vpt是一种新颖的提示调优框架,它既具有架构意识,又具有修剪锚定(见图1)。在§2中,我们举行了文献综述并讨论了相关工作。我们提出的方法在§3中提出,在那里我们详细描述了我们如何设计视觉和键值提示,以更少的参数实现卓越的性能。在§4中,我们在各种基准、主干和不同的预训练目标上提出了令人信服的实行效果。具体来说,我们的方法在VTAB-1k上的准确率比完全调优平均提高了5.85%,比VPT平均提高了1.99%[34]。别的,我们的方法使用的可学习参数比现有方法少得多,平均只占VTAB-1k主干参数的0.32%,而VPT平均需要0.68%(见图1)。我们进一步证明并解释了我们的方法比双曲可视化的VPT的优越性。最后,我们在附录中展示了我们的方法在语言范畴的强大算法泛化。我们相信这项工作能为相关范畴提供有代价的见解。
2. 相关工作
2.1. 视觉Transformers
受transformer在天然语言处理(NLP)中取得的巨大成功的启发[5,11,52,69,79,83],研究人员将transformer架构扩展到各种监视视觉使命,包括图像分类[12,53,54,56],图像分割[46,51,74,82,84,86,100],目标检测[4,7,50,66,93,101]和姿态估计[29,30,48,90])。自监视预训练范式[3,10,24]也得到了探索,并得到了最先辈的效果。与卷积神经网络(cnn)相比,transformer因其优越的性能和可扩展性而在视觉相关学科中占据主导职位[27,34]。然而,使transformer适应各种视觉使命所需的大量计算和参数开销也不容忽视[15,33,97]。比方,最近基于transformer的模型,如MViTv2Large [45] (218M)、vitg [95] (1.8B)、SwinV2-G [53] (3.0B)和V-MoE [72] (14.7B),会产生大量的计算成本。因此,我们提出$ \text{E}^2 \text{VPT} $,旨在降低基于transformer的架构的计算成本,同时在预训练-然后微调范式中保持高性能。
2.2. 参数高效微调
高效的模型训练已经引起了视觉界的广泛关注,尤其是随着视觉transformer的鼓起[1,8,12,54,85]。然而,只管这些模型非常有效并被广泛使用,但它们对于现实部署和调解来说通常过于庞大。因此,通常接纳预训练-然后微调范式。虽然完全微调确保了强大的性能,但这是一种涉及更新所有网络参数的昂贵方法[27,75]。为了克服这一挑战,研究人员正在探索均衡参数服从和鲁棒性能的替代方案,可大致分为三组:部门调优、额外模块和提示调优方法。
部门调优方法被广泛用于参数高效的微调。这些方法包括冻结大部门主干,只微调一小部门参数,如线性[32]或MLP磁头[9],或主干的几个块/层[24,65,91,99]。虽然这些方法直接且易于实现[10,35,58],但与完全微调相比,它们通常存在很大的性能差距。额外的模块方法设计了额外的可学习的插件架构举行微调。比方,[98]中的工作在冻结原始网络的同时交替引入了一个侧布局。[6,70]中的作品将额外的残余单元插入主干。然而,这些方法的一个缺点是插入的模块通常是针对特定的体系布局定制的,可能无法推广到其他体系布局。
别的,与部门调优方法相比,这些模块通常消耗更多的参数。提示调解或提示[28,42,57,89]最初被提出用于语言范畴的快速模型自适应。这些方法将一组可学习的向量添加到主干的输入中,并且仅在微调期间更新这些特定于使命的提示。最近,在视觉范畴引入了视觉相关提示[18,34,88],它在输入序列中设计视觉提示,并在完全微调的环境下显示出具有竞争力的性能。然而,现在的方法没有思量基于transformer的体系布局的内部设计,导致不太有效的提示解决方案。相比之下,我们的方法留意到架构并锚定在修剪上,这在概念上将其与上述方法区分开来。
3. 我们的E2VPT方法
在本节中,我们将介绍E2VPT,这是一种新颖的视觉提示调谐方法,用于有效和高效的大规模基于transformer的模型微调。我们首先在§3.1中界说这个标题和记号。在§3.2中介绍了通过设计视觉和键值提示符举行有效的提示调优,然后在§3.3中介绍了有效的提示修剪。总体框架如图2所示。
3.1. 标题界说
在本节中,我们界说了 E 2 VPT \text{E}^2 \text{VPT} E2VPT 标题并提供了相关符号。假设我们有一个主干视觉transformer器模型 T \textbf{T} T,它在大量数据和使命上举行了预训练。视觉transformer的输入是一系列图像补丁 I = { I 1 , I 2 , … , I m } I=\{I_1,I_2,\ldots,I_m\} I={I1,I2,…,Im},此中 m m m为图像补丁总数。然后用位置编码将每个patch投影到 d d d维嵌入中,即 E = { E j ∣ 1 ≤ j ≤ m } E=\{E_j|1\le j\le m\} E={Ej∣1≤j≤m},此中 E j = Emb ( I j ) E_j=\text{Emb}(I_j) Ej=Emb(Ij)。视觉transformer T \textbf{T} T 由 N N N 个雷同的transformer层组成,表示为:
这里的每个transformer层都是多头自关注(MSA)和前馈网络(FFN)的堆栈:
给定一个新的视觉使命,目标是微调一个模型 T ^ \hat{\textbf{T}} T^,在只调解少量参数的环境下,在使命上提供良好的性能。在视觉提示调优的上下文中, T ^ = { T , P } \hat{\textbf{T}}=\{\textbf{T},\textbf{P}\} T^={T,P},此中包括一个冻结的主干 T \textbf{T} T,以及具有很少可调参数的可训练提示 P \textbf{P} P。
3.2. 有效的提示
图2。E2VPT框架概述。在预训练-然后微调范式下,只有transformer输入和主干(§3.2)中的提示在微调过程中更新,而所有其他组件保持冻结。在(d)中,我们进一步在两个粒度级别(即,标记明智和分段明智)上引入修剪(§3.3),以消除倒带期间不利的输入提示。
大多数现有的提示调优方法侧重于通过将一组视觉提示添加到transformer层的输入序列来调优,而没有思量变压器体系布局的内部设计。然而,为了提高提示调优的有效性并实现最佳的微调性能,我们提出了一种新的方法,在我们的视觉提示调优框架中,除了输入视觉提示( P I \textbf{P}_I PI )外,还包含一组键值提示( P K \textbf{P}_K PK 和 P V \textbf{P}_V PV )。直观地,输入视觉提示被插入到每个编码器层的输入序列中,这些编码器层学习表示新使命。键值提示与自留意模块中的键和值参数矩阵连接在一起,该模块学习从数据中捕获新的留意模式。
视觉提示。视觉提示是一组与输入视觉标记具有雷同维度的 d d d 维嵌入向量。它们被附加到每个transformer编码器层的输入序列中,并与所有输入令牌交互。视觉提示的作用与传统提示调优方法中的提示符号类似[34,42],它们学习特定于使命的嵌入,以指导模型在新使命上执行。
正式地,这些视觉提示被界说为 P I = { P I 1 , P I 2 , … , P I N } P_I=\{P^1_I,P^2_I,\ldots,P^N_I\} PI={PI1,PI2,…,PIN},此中 P I i P^i_I PIi 为可学习视觉在第i层编码器中提示, N N N为总层数。然后编码器层表示为:
此中 Z i Z^i Zi 表示由第 i i i层编码器计算的上下文嵌入。不同的颜色分别表示可训练参数和固定参数。对于输入图像patch E E E的嵌入,它们是用主干的冻结Emb投影举行初始化的。
键-值提示。视觉提示对于学习新使命的知识很有效。然而,它们在指导transformer编码器层之间的信息交互方面存在不足。缘故原由是当对新数据举行微调时,图像分布可能与用于预训练骨干模型的图像示例中的图像分布有很大不同。因此,增强模型从微调数据中捕获新信息的本领以及在输入令牌之间举行更有效的关注以学习新模式是至关重要的。
为此,我们提出了一种新的方法,通过引入一组新的键值提示, P K P_K PK 和 P V P_V PV,它们被合并到每个编码器层的留意力模块中(如图2(a)所示)。这些键-值提示是只有几列的小矩阵,但与原始留意力模块中的键和值矩阵共享雷同的行数。为了执行新的留意力计算,键和值矩阵分别与相应的 P K P_K PK 和 P V P_V PV 提示符相连接。这个过程界说如下:
此中FFN为前馈网络,MSA为编码器层内的多头留意。 h h h 表示第 h h h 个头。 K ′ K' K′ 和 V ′ V' V′ 是新的键和值嵌入矩阵,界说为:
此中, K K K 和 V V V 表示主干中的原始键矩阵和值矩阵。通过这种方式,键值提示可以帮助指导模型适应新数据。在我们的实现中,我们更进一步,在每个transformer层中启用 P K P_K PK 和 P V P_V PV 提示的参数共享,而不是调解单独的可学习向量。我们的动机是双重的:首先,我们的实行效果表明,在共享提示的环境下,跨实例的微调性能连续提高;其次,使用共享提示向量将可学习transformer部门的参数使用减少了一半,使其更具参数服从。我们在§4.3中提供了关于探索提示位置(即,在 K K K 和 V V V 之前或之后)的讨论。
值得留意的是,查询矩阵 Q Q Q 是自留意机制中的另一个关键元素。然而,不需要对 Q Q Q 举行额外的提示,缘故原由有二:首先,对 Q Q Q 举行提示类似于对 K K K 举行前置以计算每对 Q Q Q 和 K K K 之间的留意分数,因此,对 Q Q Q 和 K K K 都举行提示是不必要的;其次, Q Q Q 的变革会影响留意力图的输出外形,需要对下一层不匹配的维度举行额外的线性投影。在参数高效设计下,这是无法蒙受的。更多的实行和讨论将在附录中提供。
3.3. 有效的促使
我们的有效提示方法旨在提高微调模型的性能。然而,一个天然的标题出现了:我们能否在不牺牲模型性能的环境下减少可调提示的数量?彩票假设(lottery ticket hypothesis, LTH)[16,102]指出,对于给定的使命,存在一个子网络,在不需要不必要的权重的环境下,可以达到与原始过参数化网络雷同的测试性能。在这一假设的推动下,我们举行了一个实行,我们掩盖了不同的视觉提示,发现不同的提示对模型的性能有不同的影响,有些乃至有负面影响。这一观察效果与以往的研究同等[43,57]。
基于我们的发现,我们提出了一种对视觉提示举行快速修剪的方法。这种方法的主要目标是保留最有影响的提示,同时消除冗余或不必要的提示。通过删除不太重要的提示,我们可以在保持性能的同时显著提高提示调优的服从。
为了实现这一目标,我们设计了一个级联修剪策略,该策略在两个粒度级别上运行,即令牌修剪和分段修剪,如图2(d)所示。标记智能修剪最初识别并删除最不重要的视觉提示。在此步调之后,分段式修剪将每个剩余提示划分为多个片段并过滤掉负面片段。通过共同减少可学习视觉提示中的参数使用,我们的两级修剪方法创建了软过滤提示,可以在倒带阶段重新训练。
Token-wise修剪。我们引入一个可学习掩模变量 ρ = { ρ 1 , ρ 2 , … , ρ M } \rho=\{\rho_1,\rho_2,\ldots,\rho_M\} ρ={ρ1,ρ2,…,ρM} ( M M M为可视提示符的长度),并将其与各transformer层的输入可视提示符相关联。式中 ρ k ∈ { 0 , 1 } \rho_k\in \{0,1\} ρk∈{0,1},此中0表示对相应的可学习输入提示举行剪枝。然后,屏蔽版本的视觉提示变成 P ~ k = ρ k ⋅ P k \tilde{P}_k=\rho_k\cdot {P}_k P~k=ρk⋅Pk 。为了确定修剪位置,我们计算每个提示符号的重要性分数[16,57],并消除得分最低的位置。重要性分数界说为模型对掩模变量 ρ k \rho_k ρk 的盼望灵敏度[60]:
式中, L \mathcal{L} L 为损失函数, D x \mathcal{D}_x Dx 为训练数据分布[60]。分配给每个视觉提示的重要性分数反映了它对微调性能的贡献。低重要性分数表明提示对微调过程的贡献很小,乃至是负的。相反,高重要性分数表明提示是故意义和有效的,对微调过程有重大贡献。
Segment-wise修剪。我们进一步研究了分段修剪,以清除每个提示内的负面提示段。每个提示令牌的嵌入首先平均分成$ R $部门。每个部门作为一个独立的单元,可以共同优化。类似于标记式修剪,然后我们为提示标记内的每个片段分配一个掩码变量,并过滤掉那些重要性分数低的片段。
Rewinding。在执行两级级剪枝之后,权值倒卷阶段的重点是重新训练软过滤的提示令牌。这个过程包括在修剪阶段对每个层的重要性评分举行排序,当其重要性评分相对较低时,将相应的掩码变量设置为0。接下来,在微调过程中,使用学习率和权重衰减的原始组合,将软过滤输入提示与其他可学习参数一起重新训练。
4. 实行
参考资料
论文下载(ICCV 2023)
https://arxiv.org/abs/2307.13770
代码地点
https://github.com/ChengHan111/E2VPT
参考资料
https://zhuanlan.zhihu.com/p/671299605
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |