Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

656次阅读
没有评论

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

视觉Transformer(ViTs)已成为计算机视觉领域的主导架构之一,预训练的ViT模型通常通过finetuning适应到新的任务。最近的一些工作提出了几种参数高效的迁移学习方法,例如Adapter,以避免finetuning的训练和存储成本。

在这项工作中,作者观察到Adapter在Adapter维度较小时表现不佳,因此作者提出MiMi,这是一个解决这个问题的训练框架。作者首先使用可以达到高性能的大Adapter,然后逐步减小它们的尺寸。

为了使每个Adapter都能自动估计其隐藏维数,作者还引入了一种专门为Adapter设计的新评分函数,该函数比较不同层之间的神经元重要性。

作者的方法在准确性和训练参数之间的权衡上超过了现有方法,在三个数据集基准域Net、VTAB和Multi-task上的总共有29个数据集。

代码:https://github.com/TemProg/MiMi

1 引言

在深度学习中,视觉Transformer(ViTs)已成为一种主流的卷积神经网络架构,被广泛应用于计算机视觉领域。预训练的ViT模型通常通过finetuning适应到新的任务,但是fine-tuning需要消耗大量的计算和内存资源。为了减少fine-tuning所需的资源和时间,许多参数高效的迁移学习方法被提出,例如Adapter(adapters)。

Adapter是一种可移动的模型,可以用于迁移学习,以减少fine-tuning所需的计算和内存资源。Adapter通常具有较少的参数量,并且可以在不同的模型之间进行快速部署和部署。Adapter还可以在模型之间进行微调,以适应不同的任务和数据集。

在这项工作中,作者提出了一种名为MiMi的训练框架,用于使用Adapter进行迁移学习。作者使用大Adapter开始,逐步减小它们的尺寸,以实现更高效的迁移学习。作者还引入了一种新的评分函数,用于比较不同层之间的神经元重要性,以自动估计每个Adapter的隐藏维数。

作者的方法在多个数据集基准测试域(DomainNet、VTAB和Multi-task)上表现出色,在总共29个数据集上找到了最佳的精度和训练参数权衡。

Transformer因其出色的性能而越来越受到关注。视觉Transformer(ViTs)在大规模数据集上训练后,已经展示出学习新任务的能力。最常用的学习新任务的方法是完全或部分地微调预训练网络;然而,在处理多个任务时,这种方法需要训练多个单独的模型,这导致了大量的存储成本。

最近,为了帮助大型预训练模型适应新任务,最小化添加参数的参数高效的训练(PET)方法已经发展起来。在这些方法中,Adapter及其变体在自然语言处理(NLP)任务中频繁使用。Adapter是插入到Transformer模块中的小模块,可以有效调整数据表示到下游任务:它们提供了与全微调(即更新所有参数)相似的性能,同时只需要非常少的可训练参数。

在视觉任务中,PET方法主要应用于卷积神经网络。相比之下,在自然语言处理(NLP)任务中,已经提出了几种PET方法:在这里,Adapter是配备了残差连接的多层感知器(MLPs)。这些多层Adapter具有足够的表示能力,并且它们的隐藏层大小提供了性能和参数效率之间的简单权衡。

然而,它们存在两个弱点。首先,当多层Adapter的大小太小时,性能会下降。其次,Adapter的最优超参数化是复杂的:每个Adapter在每个层的隐藏层维度必须指定,并且其最优尺寸取决于下游任务。因此,这些Adapter不能在存储有限的情况下使用。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!图1:将层内的小块注入到ViTs中,以高效地适应新领域。MiMi估计每个Adapter权重最佳排名,它减少了参数数量,并在必要时完全移除某些层的注入Adapter。

在这项工作中,作者提出了一种名为MiMi的训练方案(图1),该方案解决了这两个限制。作者的方法通过主要将额外的参数分配给确实需要适应新任务的层,促进了有效的参数分配(图5)。

更具体地说,作者首先训练具有高维隐藏空间的Adapter,然后逐步降低它们的维数,通过识别每个Adapter中可以省略的神经元来实现。此外,作者还引入了一种新的评分标准,用于确定需要更多适应的层,这使得可以在不同层的Adapter之间比较”神经元重要性”。

工作做出了以下关键贡献:

  1. 提出了一种新颖的迭代训练方案,用于学习ViTs中的小型Adapter

  2. 提出了一种新的评分函数,可以有效地比较跨Adapter神经元的显著性。这种方法使作者能够自动估计ViTsAdapter的最佳隐藏维数,从而实现更高效的参数分配

  3. 最后,作者将所提出的方法与用于自然语言处理(NLP)和视觉任务的多种PET方法进行了比较,使用了总共29个数据集。

从这些实验中,作者得出以下结论:

  • 在参数数量相似的情况下,在准确性方面取得了最佳性能

  • 消融研究验证了作者的自适应策略对自动估计Adapter隐藏维数的积极影响

2 相关工作

在深度学习中,ViTs已成为一种主流的卷积神经网络架构,被广泛应用于计算机视觉领域。预训练的ViT模型通常通过finetuning适应到新的任务,但是fine-tuning需要消耗大量的计算和内存资源。为了减少fine-tuning所需的资源和时间,许多参数高效的迁移学习方法被提出,例如Adapter。

Adapter是一种可移动的模型,可以用于迁移学习,以减少fine-tuning所需的计算和内存资源。Adapter通常具有较少的参数量,并且可以在不同的模型之间进行快速部署和部署。Adapter还可以在模型之间进行微调,以适应不同的任务和数据集。

Adapter及其变体在自然语言处理(NLP)任务中广泛使用。在视觉任务中,PET方法主要应用于卷积神经网络。然而,Adapter在处理多个任务时,可以适应不同的任务和数据集,因此可以广泛应用于各种任务。

2.1 视觉Transformer

最初是针对自然语言处理(NLP)任务设计的,最近已经适应了视觉任务,如图像分类。视觉Transformer(ViTs)将图像分割成块,将它们处理为Token嵌入,并使用具有自注意力的Transformer编码器来学习图像表示。ViTs在某些情况下超过了卷积神经网络的性能。

然而,由于它们的参数量较大,导致存储成本高,限制了对每个新任务的完整微调。这促使作者进行研究。尽管Swin是一种广泛应用的ViT,因为它在视觉任务上表现出出色的性能,但作者的使用微小Adapter的做法可以应用于任何ViT架构。

2.2 网络剪枝

当提到深度神经网络时,剪枝是指减少预训练模型的参数数量。它可以大致分为两组:

  1. 无结构剪枝,它根据某些标准(如权重大小或梯度大小)删除权重,而没有特定的结构要遵循;
  2. 结构剪枝,它专注于删除模型子结构,如通道或注意力头。

剪枝技术通常会减少为特定任务训练的网络中的参数数量,而MiMi通过Adapter减少添加的参数数量,这些Adapter使模型适应新的任务,而不改变原始模型的参数。SparseAdapters(SA)表明,将无结构剪枝应用于Adapter可以实现可比的性能。

与SA相比,作者的方法采用了向前看策略,考虑了上采样层的影响,而SA没有。此外,MiMi采用结构剪枝,而SA利用无结构剪枝技术来减少Adapter的尺寸并删除它们(如果需要的话)。GraSP使用每个层的Hessian-梯度产品,一次抛弃得分较高的权重,强调那些可以改善梯度流动的权重。相反,SNIP使用采样小批量数据计算层梯度,为每个Adapter分配分数并一次性删除得分最高的权重。然而,这两种方法都不适合剪枝Adapter。作者的实验表明,在应用到Adapter时,它们的表现不佳。

2.3 高效Transformer微调

ViTs缺乏典型的卷积神经网络(CNN)归纳偏差,使其在新任务上的微调容易过拟合。此外,需要更新所有参数并存储每个任务单独的模型副本以提高可扩展性和实际应用性。

为了解决这个问题,出现了三种方法:

  1. 只更新新增参数
  2. 稀疏参数更新
  3. 权重更新采用低秩分解

虽然Prompt技术(如_VPT_)可以实现出色的性能,但它们在下游任务与预训练存在显著差异时缺乏灵活性。

作者的工作属于第一类,基于Adapter进行自然语言处理(NLP)任务。然而,作者引入了一种特定的训练算法,可以实现高性能,具有适用于下游任务的微小Adapter。与先前的Adapter方法中的固定大小Adapter不同,MiMi动态评估Adapter大小,甚至在其必要时将其删除。

通过最小化可训练参数,MiMi在多任务场景中提高了性能并减少了存储空间。作者的初步结果表明,不同层需要不同的Adapter大小,这一点在补充材料中有详细说明。

相比之下,利用神经架构搜索(NAS)来识别最优PET配置,方便各种代表PET方法的广泛配置搜索空间的填充。然而,这种方法明显计算密集,并使用不同的PET模块。作者的工作主要集中在确定每个层适当的Adapter大小,并在认为必要时删除某些Adapter。

3 提出的方法

在本节中,作者将介绍作者的方法MiMi,它是一种训练框架,用于学习针对ViTs的微小Adapter。作者的方法基于Adapter进行自然语言处理(NLP)任务,并引入了一种特定的训练算法,可以实现高性能,同时具有适用于下游任务的微小Adapter。

3.1 Preliminaries

作者的方法主要应用于ViTs的微调,以适应不同的任务和数据集。通过使用作者的方法,可以实现更高效的参数分配和更高的性能。

ViT架构,如原始的ViT或Swin,包括两个主要子层:多头自注意力(MSA)层和全连接层(MLP)。在每个子层之前应用层规范化,并使用残差连接来跳过MSA和MLP。在作者的方法中,在每个子层后引入两个Adapter。Adapter直接应用到相应子层的输出,如图1(a)所示。Adapter的内部结构如图1(b)所示。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!图2:将Adapter结构注入到ViT模型中(a),以及作者调整Adapter大小的方法(b)。MSA和MLP分别表示多头自注意力(multi-head self-attention)和前馈块(feed-forward blocks)。

考虑作者为预训练的ViT添加的第个Adapter,用表示其输入,大小为。Adapter使用一个全连接层将降维为,并使用一些非线性激活函数。这个层由线性投影矩阵参数化。

然后,一个具有参数的全连接层将上采样,生成输出。最后,在Adapter模块内部使用残差跳跃连接,如果接近零,整个Adapter模块将退化为恒等函数。总之,对于输入向量,输出向量的计算如下:

Adapter的总参数数量等于:由于是固定的,作者通常选择,使得,以获得较少的参数。作者定义Adapter的压缩率

以前的工作使用了具有统一隐藏维数的Adapter,但这种方法可能不是最优的,因为模型输入的不同层可能关注不同类型的模式。如果作者允许Adapter的隐藏维数(或等价于)动态调整,并确定它们的注入点,作者可以有效地增强对下游任务的适应性。

3.2 MiMi的概览

MiMi是一种训练框架,用于学习针对ViTs的微小Adapter,以实现高性能和较少的参数。Adapter是小型模块,可以注入到ViTs的现有层中,以适应不同的任务和数据集。MiMi使用动态调整Adapter的隐藏维数(或等价于压缩率)和确定Adapter的注入点来增强Adapter对下游任务的适应性。MiMi还包括一种新的评分函数,可以比较Adapter之间的神经元重要性,以实现更高效的参数分配。

MiMi的训练过程包括训练Adapter参数、线性分类器参数和原始模型参数,同时保持原始模型的权重不变。MiMi采用了一种特定的训练算法,可以在较短的时间内收敛并实现高性能。

总之,MiMi是一种有效的Adapter学习方法,可以实现高性能和较少的参数。

假设是ViT模型的初始参数,它们在整个适应过程中保持不变。MiMi的目标是学习,其中包含每个ViT子层中的Adapter参数,其中表示每个ViT子层。在以前的工作中,使用随机梯度下降(SGD)等优化方法直接学习;然而,在作者的实验中,作者发现在Adapter非常小(小值)的情况下,这种方法表现不佳。

作者从观察到开始,使用现有的优化器,顺序训练和剪枝一个大的网络是找到具有良好性能的小网络的成功策略,而直接训练小网络通常会受到优化问题的影响。因此,作者提出从大的Adapter开始,并采用迭代剪枝策略,该策略逐步减少它们的维度,如算法1中所述。作者初始化每个Adapter的隐藏维数与输入维度成比例。作者从一个层的压缩率开始,其中是初始压缩率。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

在第一个训练阶段(第2行),使用随机梯度下降(SGD)通过交叉熵损失最小化学习Adapter参数。然后,估计一个用于衡量每个Adapter神经元重要性的分数。这个分数用于选择对Adapter输出影响最小的神经元;更精确地说,在不影响Adapter输出的情况下删除这些神经元。

来自的底部的分数个神经元(第5行)。其余的将组成新的Adapter配置,相应的隐藏空间大小将得到更新。如果实现的平均压缩率仍然低于目标,将进行另一个压缩迭代;否则,将返回实现的配置并停止方法。注意,总的训练Epoch由:

其中表示上取函数。因此,作者的训练方案在可以预先计算的确定性迭代次数后停止。虽然作者使用基于特定目标压缩率的停止准则,但也可以使用目标验证集上的目标性能作为停止条件。

3.3 Importance Score in MiMi

在MiMi中,作者使用一个分数来衡量每个Adapter神经元的重要性。这个分数是基于神经元的输入权重和激活值计算的。具体来说,作者将每个神经元的输入权重乘以它们的激活值,并将结果归一化到[0,1]区间内。这个分数越高,说明该神经元对Adapter输出的影响越大。在训练过程中,作者将这个分数用于选择对Adapter输出影响最小的神经元,以达到压缩Adapter参数的目的。

在这一节中,介绍在训练算法中使用的权重重要性评分函数。设计评分函数的动机是观察到,如果的第行和的第列都等于零,那么Adapter就严格等于具有较小维度的Adapter。因此,提出了一种新的评分函数,使用相应行在和相应列在上的L1范数。

更具体地说,定义权重重要性评分函数如下:

其中表示Adapter所在的子层,表示Adapter中的每个神经元。该函数通过计算Adapter权重的和来衡量每个神经元对Adapter输出的重要性,并将其归一化到[0,1]范围内。

这里,表示矩阵索引运算符。这个重要性评分可以被解释为一种“向前看”的策略,作者在观察特定个神经元的隐藏空间输出时,也观察到这种输出在下一层的影响。请注意,这种表示方法是基于同一神经元所属的降采样和相应升采样参数的大小,而不是激活的大小。

这使得重要性评分在计算上更加高效,因为基于激活的评分依赖于输入图像,因此需要对批或数据集进行统计,从而导致非可忽略的计算开销。此外,这种选择在文献中得到了许多支持,如[4, 15, 53, 4]。

值得注意的一点是,是通过与Adapter特定维数相关联的总参数进行归一化的,这使得可以在Adapter之间进行公平的比较,尽管它们的输入和隐藏层大小不同。有关作者选择方程3背后的动机的更多信息,请参阅补充材料。

4 实验

数据集

作者使用[35]中采用的协议来评估作者的方法,该协议包括十个用于图像分类任务的基准数据集,分为两个基准。第一个基准被称为_DomainNet_。它包含了六个不同的视觉领域,使得微调实验变得非平凡。由于_DomainNet_没有Token的测试集,作者使用验证数据集进行测试,如[48]中所示。

第二基准包含CIFAR-10/CIFAR-100,Oxford Flowers102,和SVHN,这些数据集被广泛用作低资源训练数据集。与DomainNet不同,这些数据集不是单任务导向的,而是包含更多种类的域/任务。作者将它们称为属于_Multi-task_基准。此外,作者还提供了对_VtAB_基准的评估,该基准包括19个不同的视觉任务。

实现细节

作者遵循[35]中采用的训练协议。作者使用官方预训练的Swin-T(约27M参数)在ImageNet-1K上进行训练。在作者的所有实验中,作者使用AdamW[37]优化器,并使用余弦退火学习率调度器,在80个epochs后进行。在所有实验中,图像被重新缩放到相同的固定分辨率(224 x 224)。使用MiMi时,设置为,即在每个100个epoch后,Adapter中的神经元数量减半。

4.1 主要结果

作者将作者提出的MiMi方法与其他多种PET方法进行了比较。作者注意到,所有的Baseline都是在个Epoch训练后获得的,而MiMi在表1中总是具有较低或等于的训练Epoch数。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

Table 1:在多任务基准上的结果。C100,C10,F和S分别表示CIFAR100,CIFAR10,Flowers和SVHN。等同于具有的Adapters。根据可训练参数的相对数量(如表2所示,在_Adapters_(图2)的架构中,与仅作用于MLP块相比,AdaptFormer_的做法不同),方法被分组。

作者包括了以下方法:

  1. 全量微调:微调模型的所有参数。
  2. Att/MLP微调:只微调Attention/MLP层和分类 head
  3. 线性探测:除了任务特定的分类层外,所有参数都被冻结
  4. Adapter:在每个Adapter中添加了具有比例为输入维度的隐藏维数的Adapter,并包括固定大小为所有层上的Adapter:。这些Baseline被认为强调了在整个层上参数分配对最终性能的影响
  5. BitFit:只微调偏置
  6. PHM-Adapter:Adapter的权重使用参数化的超复数乘法层(PHM)进行学习
  7. Compacter:Adapter权重使用共享的PHM层进行学习
  8. AdaptFormer:引入了Adapter,但只在应用了注入模块的MLP块的缩放参数后的输出上
  9. VPT:为ViT的每个层在嵌入空间中注入可学习的参数(即Prompt)
  10. SSF:旨在调整特征激活缩放并将其输出进行平移
  11. Fact-TK:一种将权重更新存储为单个3D张量的张量化-分解方法

讨论

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

图3可视化了在多任务基准上达到的平均准确率与可训练参数数量之间的关系,而表1报告了多任务基准上的可训练参数数量和平均准确率。域Net和VTAB基准的详细表格请参阅补充材料。对于所有基准,都报告了百万级别的可训练参数数量,并在右most列中报告了数据集上的平均top-1准确率。

作者观察到全量微调实现了可观的性能,尽管需要为每个数据集进行广泛的参数微调。相比之下,仅对_attention/MLP_层进行微调在纯量微调Baseline中表现出色。然而,这种方法仍需要大量的任务特定参数,而不同于其他PET方法。值得注意的是,_线性探测_的性能不佳强调了在适应新任务时更改模型内的特征表示的重要性。

值得注意的是,_PHM_和_Compacter_通过调整少于2%的参数实现了令人印象深刻的表现。与在只需要少量可训练参数的自然语言处理任务中PETs的成功相比,视觉任务在如此有限的参数调整下无法达到_全量微调_的性能。此外,_VPT_的性能不佳表明,当预训练数据集与下游任务不同,将tokens注入嵌入空间几乎无益。值得注意的是,所有PET方法在所有任务上都保持相似的性能排名,这表明最佳适应策略与具体下游任务无关。

Adapter在时,使用稍微较高的可训练参数数量(1.37M,占总数的4.90%)实现了令人印象深刻的结果。值得注意的是,_Adapter_在较少参数下(1.37M参数与总数的92.91%相比,而2.98M参数与总数的92.27%相比)优于AdaptFormer,尽管使用了更多的参数。这一结果突显了在MSA和MLP块之后调整表示的优势,正如所证明的那样。

作者观察到,_MiMi_在多任务基准上通过迭代训练程序显著降低了参数数量,减少了初始大小的4倍(0.40M,占总数的1.43%),同时超过了所有PET方法的表现。特别是,尽管_MiMi_具有较少的参数(_Adapters_-),但仍然优于具有更多参数的Adapter,这表明作者的迭代训练过程提高了参数效率。为了进一步强调两种方法之间的性能差距,作者引入了图4,说明了VGG-Flowers上的性能如何作为可训练参数数量函数。作者观察到,与原始Adapter相比,使用MiMi方法训练的Adapter之间存在显著的性能差距。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

Figure 4:VGG-Flowers上的top-1精度与压缩率的比较。所有MiMi结果均来自同一MiMi运行。Adapter训练的Epoch与MiMi对应的结果相同。Token的大小表示可训练参数的数量。

此外,MiMi在所有压缩范围内都超过了具有相似训练参数的方法。特别是,在最具有挑战性的(具有0.30M参数)情况下,MiMi超过了最近的接近方法BitFit,尽管训练参数为0.34M,在多任务基准和域Net基准上分别实现了平均准确率提高超过3%和2%。

在比较_Adapter_与均匀和比例参数分布()时,结果表明将参数按比例分配到层维度更有利。值得注意的是,具有的Adapter在多任务基准和域Net基准上都优于具有的Adapter(对于所有)。这一观察表明,最后几层具有更高维度的任务特定性质,需要更大的适应性。此外,作者证明了将Adapter大小减小()会负面影响,在多任务基准上边际下降0.23%,而在域Net基准上的一致下降1.01%。这些发现强调了用常规方式训练Adapter的不满意性能,并为作者具体的训练过程提供了动力。

MiMi与纯量训练的对比

观察多任务基准(图3,表1),作者发现_MiMi_通过迭代训练程序显著减少了参数数量,降低了4倍(0.40M,占总数的1.43%),并在多任务基准上超过了所有PET方法。特别是,尽管_MiMi_具有较少的参数(_adapters_-),但仍然优于具有更多参数的Adapter,这表明作者的迭代训练过程提高了参数效率。为了进一步强调两种方法之间的性能差距,作者引入了图4,作者观察到_纯量Adapter与使用MiMi方法训练的Adapter之间存在显著的性能差距。

为了进一步强调两种方法之间的性能差距,作者引入了图4,作者观察到纯量Adapter与使用MiMi方法训练的Adapter之间存在显著的性能差距。

4.2 消融实验

Importance score for MiMi

接下来,作者讨论MiMi中在适应Epoch内对Adapter进行维度降采样的设计选择。作者报告了MiMi中不同设置的各种组件的贡献。

  • 纯量Adapter:对应于注入具有压缩率的Adapter。
  • 随机:作者随机选择每个Adapter中百分比随机的一个神经元进行删除。
  • 基于梯度的L1范数):作者根据梯度的L1范数确定要删除的神经元。
  • 局部神经元选择:作者均匀选择一个百分比的数据点,独立地应用于降采样和上采样层。
  • 全局神经元选择:每个Adapter要删除的神经元数量使用方程3给出,考虑了缩放因子(如果适用)。此外,作者还评估了不包含缩放因子的作者的评分函数。这个修改后的版本被称为
  • MiMi:作者的方法如算法1所示。

为了比较不同的方法,作者采取以下步骤。当使用迭代方法时,作者始终从具有的基准模型开始。当使用非迭代方法时,作者首先使用的Adapter,并在第一次迭代后仅进行一次剪枝。训练将在个Epoch后继续,以确保与迭代方法进行公平比较。结果报告在表2中。

讨论

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

表2总结了Adapter局部和全局神经元选择的性能。首先,作者观察到使用纯量Adapter(图4中值较高的)减少参数数量会导致性能下降。此外,作者发现使用参数大小而不是激活值更有利。基于激活的评分方法依赖于输入图像,需要进行批或数据集级别的统计,这在计算效率上较低。

其次,全局神经元选择证明优于局部神经元选择。前者方法专注于finetuningAdapter的同时完全移除其他Adapter,而后者则从每个Adapter层中移除相同数量的神经元。此外,MiMi通过使用结构剪枝(神经元删除)而不是无结构剪枝(权重删除)来减少Adapter的大小,从而超过了SparseAdapters。此外,MiMi采用了向前看的策略,考虑了上采样层的影响,确保了持续的高性能。值得注意的是,与SparseAdapters不同,MiMi可以通过减少Adapter的大小来实现高效的计算。

在最后几个Epoch中,MiMi识别出对适应至关重要的Adapter,并优先进行微调。这种方法通过调整针对下游任务的特定潜在表示,使用较少的参数来提高模型性能。由于MiMi采用迭代剪枝方法,它始终优于GraSP和SNIP,因为它们可以调整所有值。剪枝在初始化阶段,如SNIP/GraSP所做的那样,在Adapter尚未训练之前,效果较差。由于初始化是随机的,它们错过了保留可能重要的权重。

表2揭示了MiMi在VGG-Flowers数据集上相对于纯量Adapter训练取得了优越的性能,当使用时,性能差距为6.14%(无论采用局部/全局神经元选择)。值得注意的是,当将Adapter大小减小到时,性能差距增大。此外,当与纯重要性评分相比时,作者观察到考虑Adapter的降采样和上采样参数的好处。这种方法在压缩率从0.5%到超过3%范围内始终可以提高性能。值得注意的是,在更高的压缩率下,性能差距变得更加明显。

最后,根据公式3调整重要性分数可以大约将全局方法在所有值上的性能提高1%。

MiMi的参数分配分析

在图5中可视化了通过在VGGFlowers和CIFAR-10上应用MiMi获得的移除和剩余神经元的分布。值得注意的是,这幅图强调了局部神经元选择和全局神经元选择之间的对比结果,局部神经元选择将神经元从Adapter中均匀地移除。值得注意的是,我们观察到后一种方法从模型中完全删除了某些Adapter(在VGG Flowers的第4、5、7和8层中很明显),同时将大量参数重新分配给其他Adapter。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

此外,全局神经元选择对每个数据集都表现出不同的适应性,如图所示5。值得注意的是,去除的神经元的分布在CIFAR-10和VGG Flowers之间有所不同。在CIFAR-10的情况下,与VGG Flowers相比,完全移除的Adapter更少。相反,对于VGG Flowers,只保留了后期的Adapter,这表明早期的层表示非常适合这个特定的数据集。然而,对于CIFAR-10,剩余的Adapter分散在ViT模型的所有层中,这表明几乎所有层的表示都需要进行微调。这些观察结果突出了通过全局神经元选择实现的适应性和数据集特定优化。为了提供更全面的分析,我们还在补充材料中提供了归一化图。

MiMi的ViT变体

评估MiMi在不同ViT Backbone 上的性能,包括Swin-S/L(~50M/~197M参数)、ViT(~86M参数)和CVT(~20M参数)。
对于3个训练Epoch,作者比较了3个基线:微调、Adapter和MiMi。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

表3列出了在最后一个Epoch中取得的最佳成绩。值得注意的是,MiMi实现了与全模型微调相当的性能,ViT-B/16、SwinS和CvT的裕度分别为1.2%、1.2%和1.4%。这是通过微调小于1.5%的参数来实现的,包括Head分类器。MiMi在所有ViT Backbone(ViT、Swin-T和CvT)中的参数减少了4倍,超过了普通Adapter的性能。这些实验证明了MiMi对各种ViT Backbone的可推广性。

评估推断成本/存储Footprint

在本节中,我们对多任务学习背景下PET方法在推理时间和存储足迹方面的GFLOPS进行了全面分析。表4给出了研究结果,包括每个任务T微调后保存Swin-T模型的可训练参数的数量和以兆字节(MB)为单位的存储要求。为每个任务存储完整的ViT可能会给存储空间和计算资源带来巨大负担。

由于ViT包含数百万个参数,这些存储需求在多任务设置中快速积累。但是,通过只存储模型参数的子集,训练时间大大缩短,存储成本和计算资源也可以显著降低。更大的模型组件(如自注意力和MLP块)需要大量的存储空间,因为它们具有广泛的可训练参数。另一方面,仅微调头部(_Linear-prob_)是轻量级的,但代价是性能。值得注意的是,与Adapters 相比,MiMi实现了+6%的性能提升,同时保持了相似的存储需求。然而,MiMi提供了强大的性能和降低内存需求的优点,使其成为更好的选择。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

在推理时,全量微调,以及类似的变体,如Att-block和MLP-blocks,在8.72 GFLOPS处达到最低值。然而,它们以高内存占用为代价。另一方面,VPT-Deep(100个Token)在将每个层中的嵌入空间增加到100个Token时,实现了最高的GFLOPS值,为18.40。这强调了更少的参数并不一定保证计算效率。MiMi的3个Epoch和4个Epoch版本分别实现了8.92和8.82的GFLOPS值。这种效率归因于作者的方法在推理过程中完全移除某些Adapter的 ability,有效降低了计算成本。

5 MiMi设计的示例

在本节中,作者将介绍MiMi设计的关键要素。作者将展示如何将Adapter添加到ViTs模型中,以及如何使用迭代训练策略来逐步减小Adapter的尺寸。作者还将介绍如何使用新的评分函数来估计每个Adapter的最佳隐藏维度。

在作者的工作中,作者将一个预先存在的ViT模型与一个“Adapter”模块相结合。对于每个Adapter,输入被表示为,具有维度。Adapter经历两个主要变换。

首先,它通过一个具有参数矩阵的完全连接层将映射到。在此步骤中,也应用了一个非线性激活函数。随后,通过另一个具有参数矩阵的完全连接层,将转换回一个输出

Adapter的一个特殊之处是其残差跳跃连接。如果接近零,Adapter基本上会作为一个恒等函数,对输入做出最小的改变。

作者设计MiMi的影响来源于一个观察:如果的第i行和的第i列都是零,那么Adapter的行为就像其复杂性降低,实际上就像它具有较小的维度,如图6所示。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

6  MiMi versus Vanilla training on CIFAR-100

在CIFAR-100数据集上,MiMi相对于纯量训练取得了显著的性能提升,具体来说,在压缩率时,MiMi的性能提高了,而在压缩率时,性能提高了。这说明MiMi通过Adapter的迭代训练,可以提高模型的性能,同时减少训练参数的数量。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

观察图7作者发现_与使用MiMi方法训练的Adapter相比,纯量Adapter的表现有显著差距。在作者的方法中,在Adapter大小较小时,与纯量Adapter相比,准确性差距超过10%。

7 局部神经元选择与全局神经元选择

表5和6报告了MiMi算法与纯量训练(-Baseline-)在VGG-Flowers,CIFAR-10和CIFAR-100上的性能。MiMi在所有Adapter上都显著优于纯量Adapter。有趣的是,随着Adapter大小的减小(,更高的压缩比),这种性能差距也在扩大。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

此外,这些结果强调了MiMi中每个重要性评分组成部分的重要性。作者注意到,应用全局神经元选择、归一化和迭代训练在VGG-Flowers(表5)和CIFAR-100(表6)上的Adapter大小几乎上都优于局部神经元选择。这表明MiMi中每个重要性评分组成部分对提高性能和减少参数都至关重要。

8 Vanilla和MiMi的Adapter训练

在本节中,作者将比较纯量Adapter训练(Vanilla)与MiMi训练(MiMi)在Adapter上的表现。作者将使用VGG-Flowers,CIFAR-10和CIFAR-100数据集进行实验。作者将在每个Adapter的大小上进行比较,以展示MiMi相对于Vanilla的优势。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

为了验证MiMi相对于Vanilla的更大优化性能,作者在图8和图9中分别显示了Vanilla和MiMi训练的Adapter在CIFAR-100和SVHN上的训练损失曲线。在训练结束时,两个模型(即Vanilla训练和MiMi训练)具有相似的训练参数数量。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

作者注意到,使用MiMi算法训练的损失曲线比纯量训练更平滑,导致Adapter在下游任务上具有良好的泛化能力,如图4所示。此外,作者还注意到在Adapter大小较小时(即压缩率较高时),训练损失出现峰值。

由于MiMi在每次迭代后会删除一些神经元,因此MiMi的训练损失会随着迭代次数的增加而减小。最终,连续训练和神经元选择是一种成功的方法,可以找到具有良好性能的小网络,而直接训练小网络则不能提供类似的结果。

9 参数分配的影响

Adapter的参数分配对性能有很大的影响。Adapter的大小(即Adapter中的神经元数量)决定了Adapter的学习能力和表达能力。如果Adapter的大小太小,那么它可能无法学习到足够的特征,从而影响其性能。另一方面,如果Adapter的大小太大,那么它可能会过拟合到特定的数据分布,从而在泛化能力方面表现不佳。因此,Adapter的参数分配需要仔细考虑,以实现最佳的性能和效率。

在本消融研究中,作者验证了ViTs的每个层需要以不同的方式适应以学习新任务的理念。作者使用的Swin-B视觉Transformer模型包含4个阶段。因此,作者提出在各个阶段中变化Adapter大小的评估方法。结果如表7所示。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

首先,它表明Adapter的尺寸对模型性能有很大影响。一般来说,使用具有更多参数的Adapter可以获得最佳性能。此外,更大的Adapter尺寸(更高的压缩率)可以提高性能,如图7所示。

Adapter本身并不足以实现更好的性能,但它们需要被注入到合适的阶段。

作者观察到,将Adapter()添加到晚期阶段(即III和IV阶段)比添加到早期阶段(即I和II阶段)可以更好地提高性能:将Adapter添加到CIFAR-10的III和IV阶段而不是I和II阶段,可以分别将性能从95.29%提高到97.40%,从73.38%提高到87.04%。

10 局部与全局神经元删除的示例

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

图10和图11展示了使用MiMi在VGG-Flowers和CIFAR-10上删除和保留的神经元的分布。作者展示了本地和全局神经元选择方法在不同Epoch下学习的Adapter。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

作者还完成了这些可视化(图12和图13),其中作者显示了剩余神经元的百分比。总体而言,这些实验表明作者的方法能够获得针对每个任务的具体参数分配。

11 详细评估MiMi在多任务/DomainNet基准测试上的性能。

Table 8报告了在DomainNet基准测试上,训练参数的数量和各个数据集的平均Top-1准确率。对于两种情况,训练参数的数量均以百万为单位报告,而各个数据集的平均Top-1准确率则报告在表格的最右侧列中。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

作者观察到,全量微调通常具有最高的准确率,但需要为每个数据集调整大量参数。在纯量微调Baseline中,作者观察到调整注意力/MLP层的参数的效果出人意料地好。然而,与其他PET方法相比,它仍然需要大量任务特定参数。线性探测并未表现出在适应新任务时更改模型特征表示的必要性。

在调整参数数量小于2%的情况下,与全模型微调相比,MiMi的性能更优,同时保持了较高的参数效率。与自然语言处理任务[20]不同,视觉任务中的PET方法在低参数数量的数据集上无法达到全量微调的性能。VPT表现不佳,说明如果预训练数据集与下游任务不同,将Token注入嵌入空间帮助不大。总的来说,所有PET方法在所有任务上的性能排名相似。这表明最佳适应策略的选择与下游任务无关。

_Adapters_在压缩率时,在域Net上的准确率为,在多任务上的准确率为,但只需要更高的可训练参数数量(1.37M,占总数的)。

_Adapters_在参数数量更少的情况下(1.37M,占总数的)优于_AdaptFormer_(92.91%对域Net,92.27%对多任务),这表明在MSA和MLP块之后调整表示,就像在_Adapters_中做的那样,允许比仅通过并行分支(就像在_AdaptFormer_中做的那样)更好地适应。

在比较_adapter_与均匀和比例参数分布时,作者观察到按比例分配参数到层维度的效果更好。确实,具有的Adapter优于具有的Adapter(在域Net上的,在多任务上的),这表明具有更高维数的最后几层更具有任务特定性,因此需要更多的适应性。作者还表明,减小Adapter大小()会损害性能,尽管对于多任务()影响较小,但在域Net()上更为一致。这强调了以常规方式训练微小的Adapter会导致不满意的性能,并激励作者采用特定的训练过程。

在本节中,作者将研究参数对MiMi的影响。作者将在CIFAR-10和CIFAR-100数据集上进行实验,并比较不同值下的性能。作者将分析对Adapter大小、性能和训练时间的影响,并探讨Adapter大小与性能之间的关系。通过这些实验,作者将探讨在MiMi中如何选择最佳的值。

Impact of  ρ

在本节中,作者将研究超参数(神经元删除数量)对作者方法MiMi的影响。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

在图15中,作者注意到更高的值会损害性能,因为作者在每个Epoch后都会删除许多参数,但会显著减小Adapter的尺寸。另一方面,如果较小(例如25%),作者在VGG-Flowers数据集上可以保持良好的性能,但需要更高的训练Epoch才能达到目标压缩率

作者需要在性能和训练预算之间进行权衡,以达到目标压缩率。在每个Epoch中删除太多参数会损害性能。要维持良好性能,需要更高的训练Epoch数

在VTAB基准测试上进行评估

作者在VTAB基准测试集上进行实验。VTAB是一个包含19个不同视觉分类任务的集合,分为三个组:自然组(包含使用标准相机捕获的自然图像)、专业组(包含使用专业设备捕获的图像,如医学和卫星图像)和结构组(需要几何理解的任务,如物体计数)。每个任务包含1000个训练示例。作者使用提供的800-200训练集划分超参数,并在使用全部训练数据进行最终评估。作者在三个运行的平均准确率报告在测试集上。

12 结论

本文提出了一种名为MiMi的训练框架,用于学习针对ViTs的微小Adapter。实验结果表明,与全量微调和其他Adapter学习方法相比,MiMi在多任务基准和域Net基准上具有更高的性能。此外,MiMi在迭代训练过程中通过减小Adapter大小和采用结构剪枝来提高参数效率,从而实现了更好的性能与计算效率的权衡。本研究为深度学习模型的可扩展性和高效训练提供了新的解决方案。

在这项工作中,作者提出了MiMi,一种用于学习ViTs有效微调的小Adapter训练算法。作者提出了一种不同于直接训练少量参数的Adapter的方法,即从大的Adapter开始,然后逐步选择每个Adapter中更重要(即更隐藏)的神经元。作者的训练过程估计每个Adapter的隐藏维度,从而减少可训练参数的数量,甚至可以删除不必要的Adapter。作者通过实证实验证明了MiMi在Adapter上的更好性能,并表明作者的方法可以在可训练参数数量较少的情况下实现出色的性能。作者的消融研究验证了作者新提出的重要性评分对估计每个Adapter隐藏维度的影响是正面的。

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!

Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!Mini but Mighty | 简直就是微调ViT神器,有了Mimi微调方法,别的不用选了!又稳又快!想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶AI模型部署落地实战👉CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入集智书童-知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“阅读原文”,了解更多AI学习路上的「武功秘籍」

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy