UniPT: Universal Parallel Tuning for Transfer Learning with Efficient Parameter and Memory
- 论文链接:https://arxiv.org/pdf/2308.14316.pdf
- 源码链接:https://github.com/Paranioar/UniPT
简介
在海量因特网数据上训练的大规模深度神经网络已经在各种CV和NLP任务缺德了成功。最为流形和直观的迁移预训练模型知识到下游任务的策略是全微调。然而全微调整个模型是计算上禁止的昂贵,特别是有百万级参数的大模型。而且这也容易在相对小的下游数据集遭到过拟合问题。为了解决这些问题,探索参数有效迁移学习(PEFT)收到了越来越多的兴趣,它促进了通过调整部分网络参数或插入小的可训练模块到预训练网络的域自适应。
主流的SOTA PEFT方法可以粗糙地划分为三类:1. 部分调整:只更新一些任务特定参数并冻结大部分原始参数。2. 适配器调整:通常在每个backbone层后插入新的瓶颈形状模块,这是唯一需要更新地部分。新的模块包括一个线性下投影、一个非线性激活和一个线性上投影。3. 提示调整:首先融合固定数量地可学习向量作为额外的输入令牌。之后它只学习提示并在微调阶段冻结预训练模型的参数。尽管所有这些PEFT方法能剧烈减少可训练参数和存储约束,但训练阶段它们内存消耗仍然是巨大的。如图1(a-c)所示,后传梯度仍然需要经过几乎整个几乎模型。忽视的内存昂贵特性严重限制了PEFT在现实世界有计算资源限制的应用。
因此,最近的一些研究强调了在整个训练过程中参数和记忆效率的要求。特别是,实现良好平衡的最成功方法是梯子侧调整(Ladder Side Tuning,LST)。如图1d所示,首先通过保持与预训练的网络相同结构但将每个原始层维度减少预定义的缩减因子来构建轻量级侧网络。然后他学习静态门控梯子连接,以组合侧网络和预训练网络之间每层的成对令牌特征。然而,这种设计有几个潜在缺点:1. 可扩展性:侧网络与原始预训练网络共享线性结构复杂性,使其效率受到原始架构影响,即预训练网络越大,侧网络效率越低。2. 适应性:静态门机制无法动态适应不同样本的最佳聚合策略。相反,只是简单地总结了相应层的输出,并忽略了来自侧边和预训练网络的成对令牌。3. 泛化性:大部分之前策略主要适合Transformer家族。例如,在其他流形的神经网络中(CNN),LST的梯子门连接无法直接处理跨层特征之间空间维度和通道维度差异。因此,如何将这些PETL方法扩展到更多不同体系结构仍然是一个棘手的问题,而且还没有得到充分的探索。
基于上述考虑,本文提出了一种新的内存有效PETL策略,称为通用并行调整(Universal Parallel Tuning,UniPT)。本文通过一个轻量级可学习并行网络促进迁移过程,该网络结构独立于backbone(可扩展性),并在不同架构上进行了推广(泛化性)。具体地,本文的UniPT由两个模块组成:1. 并行交互结构将各层之间的固有顺序连接解耦,并分离地处理每层的中间层,从而平等地对待各层之间令牌特征,并突出显示每层内部更具判别性表示,2. 置信度聚合模块基于不同的输入嵌入和模型结构学习用于集成跨层特征的自适应和最优策略,在保持有效性和效率同时不需要手动调整。
本文方法
本文提出的UniPT包含一个并行交互层(Parallel Interaction layer)和置信度聚合层(Confidence Aggregation layer)。
通用并行调整
如图2所示,本文在预训练的网络之外构建一个微小的并行网络,该网络将所有中间层特征转换话新于的最终表示并行网络的更新不需要。并行的网络更新不需要通过大型预训练backbone的代价高昂的后向梯度,并且大大减少了训练过程中内存消耗。
并行交互层
本文构建了轻量级并行交互层,这些层独立于预训练的网络。如图2a所示,它们从预训练的backbone中提取每一层中间层作为输入,并独立地处理每一层特征。由于最后的输出具有相对更强大的表示范式和自适应能力,因此本文利用预训练网络最后输出作为每一层内交互指导。它们不仅自动选择每层内部的适当特征来补充最终表示,而且有效地保证了跨层相同位置特征在集成后具有良好的语义一致性。具体地,首先通过约简率
r
r
r映射所有N层的K隐藏特征到统一维度
d
=
D
/
r
d=D/r
d=D/r。在获得所有层特征
F
=
{
F
i
∈
R
K
×
d
∣
i
∈
0
,
1
,
…
,
N
}
F=\{F_{i}\in \mathbb{R}^{K\times d}|i\in {0,1,\ldots,N}\}
F={Fi∈RK×d∣i∈0,1,…,N},计算第N层(查询)和其他层特征(键)层特征键内积矩阵。之后采用ReLU激活
σ
\sigma
σ和L1范数消除所有负连接并生成查询特征和所有键特征之间的归一化注意力权重。考虑到这些权重偶尔是0,添加一个额外的单位矩阵偏差来获得最终的注意力权重
M
=
{
M
i
∈
R
K
×
K
∣
i
∈
{
0
,
1
,
…
,
N
−
1
}
}
M=\{M_{i}\in \mathbb{R}^{K\times K}| i\in \{0,1,\ldots,N-1\}\}
M={Mi∈RK×K∣i∈{0,1,…,N−1}}。最后混合特征计算表示为:
M
i
=
L
1
N
o
r
m
F
i
σ
(
F
N
F
i
T
)
+
I
,
F
i
′
=
M
i
F
i
M_{i}=L1Norm_{F_{i}}\sigma(F_{N}F_{i}^{T})+I,\quad F_{i}^{\prime}=M_{i}F_{i}
Mi=L1NormFiσ(FNFiT)+I,Fi′=MiFi
置信度聚合层
本文探索了一个自适应置信模块,该模块平等地对待每一层的合并特征,并动态学习各种输入和模型结构的最优聚合策略。通过这种方式,它可以从多粒度层中突出更多的判别性特征并丢弃信息量较小的特征,以实现更好的领域自适应。给定混合特征
F
′
,
F
F^{\prime},F
F′,F,首先通过平均化所有令牌特征
F
F
F获得每一层的整体表示
F
g
=
{
F
i
g
∈
R
d
∣
i
∈
{
0
,
1
,
…
,
N
}
}
F^{g}=\{F_{i}^{g}\in \mathbb{R}^{d}|i\in \{0,1,\ldots,N\}\}
Fg={Fig∈Rd∣i∈{0,1,…,N}}。比较
F
N
g
F_{N}^{g}
FNg与其他
F
g
F^{g}
Fg管辖,需要使用全连接层和Softmax函数获得混合特征
F
′
F^{\prime}
F′一致化置信度权重
C
∈
R
N
−
1
C\in \mathbb{R}^{N-1}
C∈RN−1。一旦所有混合特征融合,它们传入一个两层前向模块以转换到一个共享空间
F
N
F_{N}
FN:
C
=
Softmax
F
\
N
g
W
1
(
F
N
g
⊙
F
\
N
g
)
,
F
c
=
W
3
σ
(
W
2
C
F
′
T
)
+
F
N
C=\text{Softmax}_{F_{\backslash N}^{g}} W_{1}(F_{N}^{g}\odot F_{\backslash N}^{g}),\quad F^{c}=W_{3}\sigma(W_{2}CF^{\prime T})+F_{N}
C=SoftmaxF\NgW1(FNg⊙F\Ng),Fc=W3σ(W2CF′T)+FN
W
1
∈
R
1
×
d
,
W
2
∈
R
D
×
d
,
W
3
∈
R
d
×
D
W_{1}\in \mathbb{R}^{1\times d},W_{2}\in \mathbb{R}^{D\times d},W_{3}\in \mathbb{R}^{d\times D}
W1∈R1×d,W2∈RD×d,W3∈Rd×D是可学习参数。最后累加它们之后原始输出
F
N
F_{N}
FN即
F
c
∈
R
K
×
d
F^{c}\in \mathbb{R}^{K\times d}
Fc∈RK×d通过一个新的FC层上采样产生最终表示。最后UniPT输出的维度与预训练backbone在新任务领域输出一致。
不同backbone应用
本文方法在各种架构 ϕ \phi ϕ上有广泛应用,包括CNN、Transformer和编码器-解码器架构。UniPT包括两个部分:并行交互层 ψ \psi ψ和置信度聚合层 θ \theta θ。
在Transformer应用
如图3a所示,UniPT可以无缝地融合已有的Transformer架构。对于将文本或图像作为输入的单一模态特征编码器例如BERT或ViT,收取单词或补丁其纳入,所有隐藏状态和原始最后状态,之后传入对应的 ψ 1 : N \psi_{1:N} ψ1:N层并通过 θ \theta θ层融合入最终特征输出。对于像CLIP ViL这样的跨模态特征对应,图像和文本特征首先映射到相同维度中,并连接到后续的跨Transformer ψ 1 : N \psi_{1:N} ψ1:N层。类似地,保留了与预训练Transformer输出结果相同数值和维度,通过平行的 ψ 1 : N \psi_{1:N} ψ1:N层和 θ \theta θ层增强了最终输出的特征表示。
CNN应用
CNN(例如ResNeXt)使用二维卷积核处理图像输入,其中每一层都有不同块数和结构,如图3b所示。更重要地,跨层的中间特征图空间尺寸和通道维度是不同的,并在数值上加倍。因此对于跨层特征图,不可能像LST那样执行一对一门控加法,但由于单独的处理,他不会干扰本文的UniPT。在本质上浅特征上直接使用交互层 ψ \psi ψ将不可避免地增加计算成本。为了进一步提升内存效率,本文分解标准交互层为预交互(Pre-interaction)和后交互(Post-Interaction)。特别地,从划分每一层的窄特征图为多个无交叉块,数量与输出特征图尺寸对其。考虑到由于相对有限的感受野,每个块表示与对应最后特征图上对应的位置特征最相关,因此本文在最后一个特征与其相应前层之间受限区域进行交互过程,称为预交互。利用Conv2-5 ψ 1 : 4 \psi_{1:4} ψ1:4层,总共获得了四个具有相同空间分辨率的空间缩减特征表示,然后通过与Transformer中使用相同的过程,表示为后交互。
编码器-解码器应用
作为传统Transformer扩展,图3c中预训练编码器-解码器充当自回归任务的特定backbone(例如,用于多模态检测的MDETR)。对于编码器,实现了编码器UniPT(
ψ
E
,
θ
E
\psi^{E},\theta^{E}
ψE,θE)以与Transformer中相同方式实现了具有图像和文本特征的编码器UniPT。对于解码器,解码器UniPT输入(
ψ
D
,
θ
D
\psi^{D},\theta^{D}
ψD,θD)包括额外的编码器UniPT输出。受到原始backbone流的启发,本文还将整个交互层
ψ
D
\psi^{D}
ψD分解为前交互和后交互。具体地,首先在解码器中间特征和编码器UniPT输出之间进行交互,以增强每个解码器层特征表示,然后再原始解码器输出指导下完成后交互,以进行最终域自适应。