前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >复旦 & 上海 AI 实验室提出 Adapter-X ,参数显著减少,实现2D图像和3D点云模态的卓越性能 !

复旦 & 上海 AI 实验室提出 Adapter-X ,参数显著减少,实现2D图像和3D点云模态的卓越性能 !

作者头像
用户5536580
发布2024-07-04 15:31:44
1180
发布2024-07-04 15:31:44
举报
文章被收录于专栏:未来先知未来先知

参数高效的微调(PEFT)随着基础模型的普及和规模的增长变得越来越重要。Adapter (Adapter)因其潜在的参数减少和适应多样化任务的能力而特别受欢迎。然而,对于基于 Adapter 的方法来说,在任务之间平衡高效率和强大的泛化能力仍然是一个挑战。 作者分析了现有方法,发现:

  1. 参数共享是减少冗余的关键;
  2. 更多的可调参数、动态分配和针对特定块的设计是提高性能的关键。不幸的是,之前的工作没有考虑到所有这些因素。

受到这一洞见的启发,作者引入了一种名为Adapter-X的新框架。首先,提出了一个共享 Adapter 混合(SMoA)模块,以同时满足 Token Level 的动态分配、增加可调参数以及块间共享。 其次,引入了一些针对特定块的设计,如提示生成器(PG),以进一步增强适配能力。在2D图像和3D点云模态的广泛实验表明,Adapter-X代表了重要的里程碑,因为它首次在2D图像和3D点云模态中,在参数显著减少的情况下,即只有2D和3D分类任务原始可训练参数的和,超过了全量微调的性能。

1 Introduction

在模型变得越来越大、越来越复杂的时代,高效地将它们适应到特定任务和数据集上的能力变得日益重要。参数高效微调(PEFT)已经成为这一挑战的有前景的解决方案。在提出的PEFT技术中,基于 Adapter 的方法因其可训练参数少且有可能提高模型在不同下游任务上的性能而受到广泛关注。

基于 Adapter 的方法主要可以分为两类,专注于两个不同的优势:在各种任务上的性能能力以及微调所需的最小参数规模所带来的效率。关注性能改进的方法有三种不同的途径。[29][11]旨在创建一个多功能的 Adapter 结构,能够处理广泛的任务。[27][1][11][16]旨在结合不同PEFT方法的优势,或者通过分析不同 Adapter 及其他PEFT方法之间的相似性来建立一个统一的视角。[52][53]利用神经架构搜索(NAS)来发现更优秀的PEFT组合方法。对于 Adapter 效率方面,特定方法[13][26][12][18]已经被设计出来。它们从冗余的不同角度,包括秩、密度和精度,进一步提高了 Adapter 的效率。尽管这些方法努力平衡 Adapter 的双重优势,但还没有能够在多种模态和任务上同时实现高效率和良好的泛化能力,这让作者思考:如何进一步激发 Adapter 的效率潜力同时提高其泛化能力?

为了回答这个问题,作者分析了现有方法,并总结了对效率和性能影响的以下因素。从效率的角度来看,许多方法[26][13][19][37][42]在不同块之间采用了共享策略,这表明参数共享机制确实可以减少冗余,从而提高PEFT方法的参数效率。从性能的角度来看,作者发现提高现有PEFT方法在不同任务上的性能大致可以分为三个主要视角。首先,增加可训练参数,如增加 Adapter 的秩,可以提高 Adapter 的性能。其次,可调参数的动态分配在PEFT的背景下已被证明是非常有益的。例如,基于NAS的策略[52][53]可以被视为根据数据分布的变化来分配参数。第三,不同的方法对架构中不同位置的块实施不同的设计,比如使用不同的PEFT方法。这些块特定的设计使模型能够更好地适应一系列数据集。以前的工作只关注一个或几个关键点,使得它们无法很好地处理平衡问题。作者设想,如果作者能同时考虑所有这些有效因素来设计一种方法,作者可以在效率和性能上同时实现改进。

为此,作者提出了一种新的通用参数高效的微调框架,名为Adapter-X。该框架的核心是不同的块递归地从块共享的 Adapter 专家库中选择最合适的 Adapter 。

作者将这一组件称为共享 Adapter 混合(SMoA)。这个元素为作者提供了前述三个优点:共享策略、动态分配以及每个块可调整参数数量的增加。首先,共享 Adapter 混合被用于所有块,显著减少了参数数量。其次,对于任何给定的 Token 集,Adapter-X将为不同的块选择不同的 Adapter 专家来处理它们,从而实现 Token Level 的微调参数动态分配。第三,由于每个块都将递归访问共享专家库中的所有 Adapter 专家,这意味着每个块可以访问比之前传统方法更多的 Adapter 。最后,为了增强块特定设计,Adapter-X使用不同的规范层和提示生成器来生成块特定提示,进一步提高了模型的性能。

为了验证所提出方法Adapter-X的有效性和泛化能力,在不同数据集上进行了广泛的实验,这些数据集跨越了2D图像和3D点云模态。结果表明,Adapter-X能够以显著减少的参数数量实现卓越的性能,如图1所示。据作者所知,这是首次在2D图像和3D点云模态上都超越全量微调的工作。特别是在2D VTAB数据集上,与原始Adapter方法相比,作者的方法在参数减少7.5倍的情况下取得了更好的分类结果。

在3D ScanObjectNN数据集上,作者的方法在可调整参数不到SOTA PEFT方法一半的情况下,性能提高了多达。作者的贡献可以总结为:

作者首先分析了现有的参数效率微调(PEFT)工作,并概括了四个与提高效率和性能相关的因素:共享策略、更大的可调整参数数量、动态分配以及针对特定块的 设计。基于上述因素,作者设计了一种新颖的通用参数高效微调框架,名为Adapter-X。作者提出了一种共享 Adapter 混合(SMoA),以动态共享 Adapter ,从而增加了每个块可以访问的参数数量。作者进一步采用针对特定块的设计思想,并为每个块引入不同的规范层和生成的提示,进一步提升了性能。

作者提出的Adapter-X首次在二维图像和三维点云模态上都超过了全量微调的表现,甚至在可调整参数更少的情况下,比针对点云模态定制的最新PEFT方法表现更好。

2 Related Works

Adapter 系列 如[14]中所述,是一种轻量级模块,通过包含线性下投影器、非线性激活、上投影器和残差连接的结构来增强Transformer层。通过[29][11]的持续改进,目前主流的 Adapter 使用方法[55][20][8]是在每个块的FFN位置添加一个并行的原始 Adapter ,并对输出进行缩放。

现有方法通过为各个块引入专用设计来提高 Adapter 在特定任务上的性能。例如,[27][1][11][16]等方法要么在不同的块中激活各种PEFT技术,如LoRA[15],prefix-tuning[21],要么以不同比例混合它们的输出。此外,[52][53]等方法使用NAS发现对不同任务都更优的PEFT配置。另外,一些工作专注于 Adapter 的更紧凑设计。[26][13]将 Adapter 的权重视为两个较小矩阵的Kronecker积,其中一个在 Adapter 之间共享。

在微调之前对 Adapter 的密集权重进行剪枝。在计算机视觉领域,对于2D图像处理任务,[2]结合 Adapter 采用缩放机制以适应不同的视觉任务。[52]利用搜索方法为适应在每个块中识别不同的配置。

从精度冗余的角度,通过量化提高了 Adapter 的参数效率。对于3D点云,[49]将Prompt tuning与DGCNN[30]结合,以提取实例感知的提示进行模型微调,而不是使用静态提示。

DAPT[54]提出动态 Adapter 并将其与Prompt Tuning结合,以减少可调整的参数并实现卓越的性能。尽管各种策略被用来减少可训练参数,但作者在不同任务上跨块共享 Adapter 的方法提供了独特的优势。此外,它很容易与其他先进的 Adapter 方法集成。

参数共享作为一种减少模型大小和计算成本的方法,已被应用于各种研究。例如,探索了在Transformer的不同层之间共享参数的策略,以减少可训练参数的数量并提高模型计算速度。[10][31]共享整个Transformer模块以减少参数数量。最近的研究通过将参数共享与PEFT方法结合,进一步推进了这一方法。VERA[19]在所有层之间共享两个冻结的随机矩阵,并为每个层更新解耦的组合向量,而Tied-LoRA[37]通过权重绑定和选择性训练提高效率。PRoLoA[42]引入了层内共享机制,极大地减少了可训练参数的数量。

与为不同块简单地共享相同的微调参数以减少可训练参数不同,作者提出的Adapter-X方法,通过共享机制从块通用 Level 实现微调参数的分配,作者认为这对 Adapter 至关重要。

专家混合体(MoE)是一种集成方法,通常被视为一组专业子模块,称为专家,每个专家都擅长处理不同类型的输入数据。这些专家由路由器控制,路由器根据输入动态选择最相关的专家。受到MoE及其高级变体MH-MoE[44]和X-MoE的启发,作者首先在作者框架内重新定义了标准 Adapter 的角色作为专家,并引入了一种更高效和有效的处理输入的过程,以选择与每个块更兼容的 Adapter 。

3 Method

Adapter-X的结构概览如图2所示。以下内容首先在3.1节简要回顾了Adapter和MoE。然后,作者在3.2节和3.3节分别介绍作者的共享MultiHead-MoA(SMMoA)和特定块设计,特别是Prompt生成器(PG)。最后,在3.4节简要介绍框架的优化函数。

Preliminaries

Adapter (Adapters 通过将紧凑的辅助层嵌入到Transformer架构的结构中来实现。通常,一个 Adapter 层由一个下投影矩阵 组成,后面跟着一个非线性激活函数 和一个上投影矩阵 。在这个背景下, 表示隐藏层的维度,而 作为瓶颈维度,是配置 Adapter 时使用的超参数。设 为 Adapter 的输入, Adapter 模块内的计算(带残差)可以总结如下:

专家混合(Mixture-of-Experts, MoE) [46] 是一种有望在相同计算限制内扩大参数数量的方法。与标准Transformer模型不同,每个MoE层由 个独立的前馈网络 作为专家,以及一个门控函数 来建模这些专家输出权重的概率分布。对于输入 Token 的隐藏表示 ,将 路由到专家 的门值表示为:

其中 表示 的可训练嵌入。然后,根据前 个门控值激活相应的 个专家,MoE层的输出 为:

Sharing MoA

共享策略。 如图2所示,Adapter-X采用跨 Transformer 块的参数共享,从层间角度考虑可训练参数的分配。与在所有层共享唯一相同 Adapter 的方法[19]、[37]不同,混合 Adapter (MoA)被用于提高模型的灵活性,因为路由器可以为每个块选择最合适的 Adapter 专家。由此,作者实现了参数分配而非简单的共享。为了使路由器和专家能够学习所有块的特性,以便进行更准确、更全面的参数分配,Adapter-X在所有块上使用相同的路由器和 Adapter 专家库。正式地,令表示第一个Transformer块的输入隐藏表示。作者将模型内的参数共享定义为,这与现有混合专家(MoE)模型的典型方法不同。

值得注意的是作者方法的一个关键区别:虽然MoE层(包括路由器)在模型中共享可训练参数,但每个 Transformer 块中同一标记的表示并不相同。这意味着在层中给定标记的表示,与它在层中的表示可能会被导向不同的专家。因此,对于不同位置的块,即使是相同的标记,由于它的不同特征和块位置,路由器仍然可能为它分配不同的 Adapter 专家。基于这一原理,作者实现了标记 Level 的分配。这一方法在第4.5节中得到验证。

MoA的详细设计。 为了更细致地处理特征,作者首先将输入隐藏状态拆分为多 Head ,然后对子隐藏状态进行投影,将其投射到低维度的专家嵌入空间中。正式地,作者用一个序列的输入标记表示为,其中是标记的数量,表示标记维度的长度。首先,中的每个标记沿标记维度被拆分为个子标记,这些子标记根据原始标记序列并行排列,形成一个新特征空间,如下所示:

作者用

表示,其中函数 表示 Token 分割操作:,并且每个子 Token 表示为 ,意味着它是从第 个 Token 分割出的第 个子 Token 。

然后,作者首先用低维嵌入 参数化专家,使得 比 Transformer 的隐藏大小 小得多,简单起见, 定义为 Adapter (adapters)的秩(rank)。作者用一个冻结的 规范函数对其进行归一化,得到 。对于输入 Token ,作者使用一个线性投影 ,使得 。因此, Token 与专家之间的路由评分函数可以写成 。将路由 到专家 的门控值表示为:

使用多 Head 分割和低维投影器,输入的维度可以逐渐大幅减少,这比 Transformer 较大的隐藏大小更适合专家的数量。因此,这两个设计的结合可以更好地适应路由的低秩特性。算法流程在算法 1 中展示。

代码语言:javascript
复制
导入torch
导入torch
将torch.nn模块导入为nn

class Sharing_MoA(nn.Module):
    def __init__(self, n_experts, rank, expert, d_model):
        super().__init__()
        self.experts = nn.ModuleList([expert() for _ in range(n_experts)])
        self.switch = nn.Parameter(torch.randn(n_experts, rank))
        self.switch_reduction = nn.Linear(d_model // self.num_heads, rank, bias=False)

    def forward(self, x):
        b, 1, d = x.shape()

请注意,公式和代码部分已经按照您的要求保持原始输出,并且非主语类的引用已经被删除。在翻译过程中,主语类的引用已经被保留。图5:在作者的消融研究中,对2D VTAB-1K数据集进行的更多t-SNE可视化结果。

可视化实验设置

作者遵循原始代码库的实现:NOAH2、Bi-adapter3和DAPT4。作者从Switch Transformer5中获得灵感来实现MoA。共享MoA模块中涉及的超参数有:头数是3,专家数是4。降低的维度与每个 Adapter 专家的秩保持相同。

参考

[1].Adapter-X: A Novel General Parameter-Efficient Fine-Tuning Framework for Vision.

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

本文分享自 未来先知 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Introduction
  • 2 Related Works
  • 3 Method
  • Preliminaries
  • Sharing MoA
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档