参数高效的微调(PEFT)方法在计算机视觉领域的语言模型和生成模型中得到了广泛应用。尤其是在推理阶段,可以利用多个这些模型来改变基础模型的行为。 在本文中,作者研究了在计算机视觉任务上训练的多个LoRA Adapter 是否可以合并在一起并在推理阶段使用,而不损失性能。 通过实现这一点,只需要将不同的LoRA合并在一起,就可以创建多任务模型。合并这些将减少推理时间,且不需要额外的再训练。 作者在六个不同的任务上训练了 Adapter ,并评估了它们在合并在一起时的性能。为了进行比较,作者使用了一个带有冻结骨架的模型,并对其 Head 进行了微调。作者的结果表明,即使通过略微损失一些性能,使用简单的合并技术创建多任务模型也是可行的。 在作者的实验中,作者将多个 Adapter 合并在一起,最多合并了三个。根据任务和数据集的相似性, Adapter 合并可以超过 Head 微调。 作者观察到使用不同数据集训练的LoRA相对于在类似数据集上训练的模型表现更好。
微调大型预训练模型在不同的任务和领域一直很受欢迎。然而,随着这些预训练模型的规模不断扩大, finetuning它们的计算成本也变得非常昂贵。最近,参数高效的 finetuning(PEFT)方法变得越来越受欢迎,因为它们能够用较少的资源 finetune 模型。一些流行的 PEFT 方法包括 LoRA [1],DoRA[2],O-LoRA[3],Q-LoRA [4] 和 MultiLoRA [5]。
一些PEFT方法,如LoRA,仅允许在基础模型上添加较小的权重文件。在一个存在多个大型预训练模型的场景中,通过使用LoRA,只需要存储每个任务的小权重文件,而不是整个模型。多个LoRA Adapter 也可以合并,以便在不引起灾难性遗忘的情况下为模型添加新任务能力。由于这些原因,LoRA微调在大型语言模型(LLMs)中得到了广泛应用。它们尤其用于通过与LoRA合并或在新的数据上高效地微调模型来更新知识,从而在LLMs中添加新任务。与计算机视觉相比,在LLMs中使用多个LoRA Adapter 更为流行。
在计算机视觉领域,多种LoRA融合在生成任务中几乎只被使用。每个LoRA通常对应一种风格或字符。通过这些融合,可以在基础模型中添加新的风格和字符。这样,可以同时使用多个概念和风格,而无需为融合进行额外的再训练。
除了生成模型LoRA外,在计算机视觉领域,LoRA微调也被用于各种任务,如分割[16]、分类[15, 17]和目标检测[18]。然而,正如前面提到的,使用多个LoRA几乎只用于生成任务。
利用多个LoRa在视觉领域具有多种益处:
在需要重新训练一个任务时,而不是重新训练整个模型以适应所有任务,只需训练该任务的LoRA(Localized Regularization Autoencoder)即可。
使用多个LoRa Adapter 需要每个LoRa都独立工作,不影响彼此。在本研究中,作者探讨了多个共享相同基础模型的LoRa模型是否可以合并在一起,创建一个多任务系统。作者在五个不同的数据集上选择了四个分类和两个回归任务来探索这些模型的 Adapter 如何互动。其中一个数据集包含地球的卫星图像,另一个数据集包含星系图像,其余的由人脸图像组成。作者故意选择这些数据集,看看具有相似和不同内容的的数据集在合并模型时会对它们产生什么影响。作者还比较了回归和分类任务,看看任务类型是否因为预训练的 Backbone 模型而受到影响。为了看看使用LoRa的有效性,作者比较了使用不同秩的LoRa以及使用冻干 Backbone 模型的微调模型作为 Baseline 。通过将多个 Head 与冻干 Backbone 模型合并,可以轻松创建一个多任务模型,而不会因为合并而损失性能。然而,仅微调 Head 可能无法为每个任务提供足够的性能,因为训练的参数数量较少。
在作者的实验中,作者观察到将多个LoRA Adapter 合并会导致性能下降。下降的幅度由 Adapter 组合确定,这种选择可以在性能上产生巨大差异。作者观察到在作者训练的所有 Adapter 中,有两条 Adapter 在与几乎所有其他 Adapter 结合时保持性能。根据结合的任务和数据集,合并的模型可以超过仅对 Head 进行微调的场景。
在作者的实验中,作者使用了五个不同的数据集进行六个不同的任务。这些数据集的选择是为了确保数据与基础模型预训练时使用的数据不同。作者选择了四个与面部相关的数据集,期望 Adapter 学习相似的特征,以及两个不相似的数据集。为了使数据集大小相似,作者对每个数据集进行了下采样,使其大小约为10-17k样本。
[19] FireRisk 是一个用于遥感领域的数据集。它包含7个类别的卫星图像,评估火险。总共有91k张图像,但这些类别的数据分布非常不平衡。如前所述,为了使每个数据集大小相似,作者对每个数据集进行了降采样。在 FireRisk 中,作者将类别数量减少到3个:不可燃、高、低。为了减少类别数量,作者将水和不可燃、高、非常高和适中以及最后低和非常低合并为3个类别。合并后,作者从每个类别中随机采样数据以减少数据量。
UTKFace [20] 包含 23000 张图像。每张图像都标注了年龄、性别和种族。作者将这个数据集用于两个不同的任务,预测年龄,这两个任务是分类和回归。在分类任务中,作者将数据集划分为 6 个类别。这些类别包括 0-3 岁、4-16 岁、17-30 岁、31-45 岁、46-59 岁和 60+ 岁。将每张图像添加到这些类别中后,数据集被下采样到 11000 张图像。除了 0-3 类,其他类别都被下采样到 2000 张图像,因为该类别中的图像数量较少。下采样后的数据集在回归任务中没有做任何改变。作者使用了 Dlib [21] 面部检测器来检测和裁剪图像中的脸部。
在野外表达(Expw)[22,23]是一个包含91万张人脸图像的数据集。每张图像都包含一个人表达出其中一个基本情绪类别。作者将该数据集减少到12k张图像。
WFLW [24] 是一个在面部 landmark 检测中广泛使用的数据集。它包含7500张训练图像和2500张测试图像。在每张图像中,landmarks 都被表示为98个2D点。与其他数据集相比,WFLW在表达、姿态等方面的图像多样性较高。此外,测试集图像针对这六个类别进行了标注。
星系10 DECals [25] 是一个包含10类星系图像的数据集。总共约有17k张图像。该数据集由星系动物园 [26] 和DESI遗产成像调查 [27,28,29] 创建。作者删除了只有一个类别的样本,即“ cigar形状的光滑星系 ”,该类别共有334个样本。这个类别的样本数量远低于其他所有类别。最终的数据集包含9个类别。
作者使用预训练的视觉Transformer(ViT)[30]作为作者模型的基础。此外,作者将LoRA与使用固定后背的模型基准、多合并LoRA模型进行了比较。对于合并多个LoRA Adapter ,作者使用了连接合并方法。尽管作者没有报告结果,但作者还进行了线性合并实验,并观察到类似的结果。
作者使用ViT模型作为基础。模型的池化输出提供一个768维的特征向量。遵循基础模型后,每个任务上都应用了两层多层感知机(MLP)。这些MLP由一个512维的隐藏层和ReLU激活,以及根据任务特定需求大小的输出层组成。LoRA应用到了基础模型中的 Key和Value 向量。
在分类任务中,作者使用交叉熵损失,包括火险分类、星系分类、情感识别和年龄组分类。对于面部年龄回归和关键点检测任务,作者使用L1损失。此外,作者还报告了面部关键点检测任务的归一化平均误差(NME)分数。NME是评估关键点检测准确性的常用指标,计算方法为预测和真实关键点位置之间的平均误差,除以双眼距离,以考虑不同人脸的尺度变化。在作者的实验中,作者使用了Adam优化器。
所有数据集均分为训练、测试和验证集。模型训练直至收敛。作者报告了LoRA Adapter 在六个不同任务上的性能:火险分类、年龄分类(UTKFace)、情感识别(Expw)、星系分类(Galaxy10 DECals)、年龄回归(UTKFace)和关键点检测(WFLW)。这些任务根据准确率(Acc)、宏F1分数、均方根误差(RMSE)和归一化均方误差(NME)指标进行评估,以全面了解每个模型的有效性。
在作者的实验中,作者比较了16和64秩LoRA微调以及仅冻结后背骨的模型 Head 微调。这些模型的性能比较可以参见表1。尽管没有结论确定秩相对于其他哪个更好,但在所有场景中,LoRA相对于 Baseline 表现更好。在关键点检测和星系分类中, Baseline 方法表现非常差,这意味着后背骨需要一定程度的微调。似乎在大多数情况下, Baseline 的性能与LoRA相当。作者认为,由于关键点检测需要像素坐标,从后背骨提取的信息可能需要调整。星系10 DECals数据集可能由于其数据源与预训练模型训练的数据不同,需要在后背骨中进行额外的调整。
在本节中,作者研究了当与其他 Adapter 合并时,每个 Adapter 在其自身任务上的性能变化。火灾风险和星系分类 Adapter 对合并具有弹性,除了与里程碑 Adapter 合并外。从表4和IV可以看出,这些 Adapter 在与其他模型合并时,性能仅有轻微下降。然而,即使如此轻微的下降,它们仍然优于 Baseline 。
地标 Adapter 在各情况下的性能均有所降低。它在与非面部包含任务中表现最佳,如星系和火险 Adapter 。具有相似内容的dataset的 Adapter 与星系和火险 Adapter 的性能相比有所下降。然而,尽管地标模型在其他合并方法上表现不佳,但仍然优于 Baseline ,因为 Baseline 在此任务上的表现较差。总的来说,地标 Adapter 在其他合并方法上的性能有所降低,但仍然表现良好。
年龄回归 Adapter 与地标 Adapter 类似。在与非人脸相关任务合并时,表现最佳。在排名64的情况下,与星系和火灾风险 Adapter 合并,超过了基准。
年龄分类 Adapter 只有在与Fire和Galaxy Adapter 合并时才能超过基准。然而,情感 Adapter 在排名16时表现相似。有趣的是,年龄回归 Adapter ,尽管在同一数据集上但执行不同的任务,在这个任务上的性能出现了巨大的下降。最后,情感 Adapter 在大多数情况下超过了基准。
在本节中,作者研究了每个 Adapter 对其他 Adapter 的影响。星系和火灾风险 Adapter 使得其他 Adapter 能够保持其性能。在每种情况下,它们与其他 Adapter 的合并都优于 Baseline 。此外,当与地标 Adapter 合并时,尽管它们在自身任务上的性能下降,但在地标任务上仍然保持了性能。它们两者都保持了地标检测任务的性能。
地标 Adapter 对其他 Adapter 影响很大,导致它们的性能急剧下降。在所有任务中,表现最差的合并组合都包含地标 Adapter 。有趣的是,它允许火险 Adapter 和星系 Adapter 在某种程度上保留性能,而其他分类任务则甚至低于随机猜测阈值。地标 Adapter 在这些与面部相关的任务中导致了巨大的性能下降。值得注意的是,地标模型的输出大小要大于其他 Adapter ,因为它预测了98个具有2D坐标的 landmark 点。因此,输出大小和任务作为回归任务这两个因素都可能对 Adapter 主导其他 Adapter 产生如此大的影响。
然而,年龄回归 Adapter 在降低性能方面并没有像关键 Adapter 那样造成巨大损失,但它的性能下降却超过了其他 Adapter 。最后,情感和年龄分类 Adapter 对其他 Adapter 没有显著影响。除了一些例外,它们在其他 Adapter 的性能水平上保持了良好的表现,但并未达到星系或火险 Adapter 的水平。
总体而言,作者观察到每种融合都会在不同程度上降低性能。在数据集内容不相似的情况下训练的 Adapter 对保留自身性能和另一个 Adapter 的性能具有弹性。而在类似内容的数据集上训练的 Adapter 往往会在不同程度上降低彼此的性能,甚至降至随机猜测阈值。
为了查看是否可以合并超过两个 Adapter ,作者尝试将三个模型进行合并。由于模型组合过多,作者首先选择了火险和星系分类 Adapter 作为前两个 Adapter ,并检查它们与其他 Adapter 的兼容性。
在表4中,给出了三个合并 Adapter 的性能,其中每个案例中星系和火险 Adapter 都是基础 Adapter ,而第三个 Adapter 有所不同。为了防止混淆和冗余,只给出了第三个 Adapter 的名称,以及用于评估性能的指标。
三个 Adapter 合并的结果表明,合并模型在除基准 Adapter 外,仍然可以击败 Baseline 模型,因为基准 Adapter 降低了火险和星系 Adapter 的性能。
作者可以看出,与合并两个 Adapter 相比,整体性能略有下降。然而,由于合并模型仍然击败了 Baseline 合并三个模型的实现似乎是可行的。
在本研究中,作者的目标是探讨是否可以使用LoRA适配器合并技术在计算机视觉任务中创建一个多任务模型。
作者训练了多个LoRA适配器以处理多个任务,并研究了它们合并后的性能。
在实验中,作者报告了将最多三个模型合并的结果。研究结果显示,尽管合并后的模型性能有所下降,但仍然有可能合并多个LoRA以创建一个多任务模型。
作者发现,针对不同内容训练的LoRA适配器往往能更好地协同工作。因此,并不能保证每次合并都能保留原始适配器的性能。
另一个限制是,与不同任务相比,内容相似的LoRA模型更可能被合并。
[0]. Multi LoRA Meets Vision: Merging multiple adapters to create a multi task model.