论文笔记——统一视角看待参数高效迁移学习

以统一的视角看待 Parameter-Efficient Transfer Learning --ICLR spotlight 2022

OR 《Towards a Unified View of Parameter-Efficient Transfer Learning》

Abstract & Introduction

由于模型大小和任务数量的增长,传统的微调预训练模型的所有参数是不可取的。

==>一些方法提出只微调一小部分(或者额外的)参数取得了很好的表现,但是不太好理解。

==>本文打破了SOTA的 参数高效 (parameter-efficient)的迁移学习的方法并且呈现了一个能够建立不同方法之间联系的统一框架。

==>将这些方法重新定义为对预训练模型中特定隐藏状态的修改,并定义了一组设计维度,用于区分不同方法的差异。

微调小部分(额外的)参数的方法:三种主流方法,都是冻结 PLM 参数,仅仅微调新增参数。

  • adapter tuning
  • prefix tuning / prompt tuning
  • LoRA

研究问题

  1. 关联性:这些方法之间如何关联?
  2. 设计元素:这些方法是否共享关键设计元素?是什么?
  3. 有效性转移:各方法的有效成分能否转移到其他方法,以生成更高效的变体?

研究方法

  1. 替代形式的前缀调优:揭示前缀调优(prefix tuning)与适配器(adapter)的紧密联系。
  2. 统一框架:将现有方法重新定义为对预训练语言模型(PLM)隐藏表示的修改,并沿三个设计维度分解:
    • 修改的函数(function used)
    • 修改的位置(position where to impose modification)
    • 如何集成修改(how to integrate)
  3. 新变体设计:通过跨不同方法,迁移设计选择(transfer design choices across approaches),提出如多头适配器等的新变体,并在实验中进行验证表现,与现有方法比较。

方法架构分析和统一框架

Adapter

  • 机制:将 Adapter 插入在不同层(FFN,ATTN)之间
  • 计算方式:使用一个 bottlenet 处理输入,然后激活函数,然后残差连接。

神经网络中的Adapter层计算公式:

\[h \leftarrow h + f(hW_{\text{down}})W_{\text{up}} \]

  • \(h\) 是神经网络中某一层的输入特征向量(或隐藏状态)
  • \(f(\cdot)\) 为激活函数(如ReLU)
  • \(W_{\text{down}} \in \mathbb{R}^{d \times r}\)(降维矩阵)
  • \(W_{\text{up}} \in \mathbb{R}^{r \times d}\)(升维矩阵)
  • \(r\) 表示bottleneck中的降维维度(\(r \ll d\)),bottleneck(瓶颈) 是一种通过低维中间表示压缩高维特征的设计.

Prefix Tuning

  • 机制:将 \(l\) 个 prompt vectors 放在每个multi-head attention 的 key 矩阵和 value 矩阵之前。

  • 计算方式:相当于每个原始 token 要多和 l 个 soft prompt token 计算相似度,然后聚合。

\[\text{head}_i = \text{Attn}\left( xW_q^{(i)}, \ \text{concat}\left(P_k^{(i)}, CW_k^{(i)}\right), \ \text{concat}\left(P_v^{(i)}, CW_v^{(i)}\right) \right) \]

$ C \in \mathbb{R}^{m \times d} $:输入token序列,长度为m,维度为d,这里是指训练使用的token序列数据

  • $ W_q^{(i)}, W_k^{(i)}, W_v^{(i)} \in \mathbb{R}^{d \times d_h} \(:\)d$ 为embedded size,\(d_h\)为attention hidden size,多头注意力情况下维度为\(\mathbb{R}^{d/N_h}\)​(\(N_h\)为多头数量)。
  • $ P_k^{(i)}, P_v^{(i)} \in \mathbb{R}^{l \times d/N_h} $:可学习的prompt向量,数量为 \(l\)

LoRA

trainable low-rank matrices 插入到模型层中,使用类似残差连接的方式模拟参数的更新。

\[W + \Delta W = W + W_{\text{down}} W_{\text{up}} \]

LoRA 对多头注意力(Multi-head Attention)层中的 QueryValue 矩阵进行上述操作,将其对嵌入(Embedding)的变换输出转化为:

\[h \leftarrow h + s \cdot x W_{\text{down}} W_{\text{up}} \]

其中s是一个 scale 因子,这里考虑 s>=1,为超参数

统一架构 A UNIFIED VIEW

A CLOSER LOOK AT PREFIX TUNING

先从prefix tuning讲起,它其实是在「原始key序列」和「原始value序列」前面分别拼接了长度为 \(l\) 的「prompt key序列」和「prompt value序列」。

每个attention layer的输入为embedding序列C,prefix tuning的计算方式变为:

\[\text{head} = \text{Attn}(xW_q, \text{concat}(P_k, CW_k), \text{concat}(P_v, CW_v)) \]

\[= \text{softmax}(xW_q \text{concat}(P_k, CW_k)) \cdot CW_v \]

\[= (1 - \lambda(x)) \text{softmax}(xW_q CW_k) \cdot CW_v + \lambda(x) \text{softmax}(xW_q P_k) \cdot P_v \]

\[= (1 - \lambda(x)) \text{Attn}(xW_q, CW_k, CW_v) + \lambda(x) \text{Attn}(xW_q, P_k, P_v) \]

其中$ \text{Attn}(xW_q, CW_k, CW_v)$ **是 standard attention **

\(\text{Attn}(xW_q, P_k, P_v)\) 是independent of C

这里 \(x\) 为具体的一个token embedding,和原来相比,其实就是在计算attention score时多和 \(P_k \in \mathbb{R}^{l \times d_h}\)计算了attention score;然后聚合时,使用这部分attention score进行softmax,加到\(P_v\)

第二行到第三行表示将整体prompt+sequence的softmax,拆分成单独的in-prompt softmax和in-sequence softmax,所以\(\lambda(x)\)的计算方式为:(具体推导过程可以参看LIVE)

\[\lambda(x) = \frac{\sum_i \exp(xW_q P_{k_i})}{\sum_i \exp(xW_q P_{k_i}) + \sum_j \exp(xW_q W_{k_j})} \]

其中:

  • \(\sum_i \exp(xW_q P_{k_i})\) 为prompt token所有attention score的和。
  • \(\sum_j \exp(xW_q W_{k_j})\) 为原始序列所有attention score的和。

于是原始公式中的第二项\(\text{Attn}(xW_q, P_k, P_v)\)就是一个独立于原始序列的position-wise modification,作用在原始的单头注意力(多头注意力中的单个注意力头)上,于是token \(x\)的「单头注意力的输出」变为:

\[h \leftarrow (1 - \lambda(x)) h + \lambda(x) \Delta h \]

其中:

\[\Delta h = \text{softmax}(xW_q P_k^T) P_v \]

The Connection with Adapters

令:

\[W_1 = W_q P_k^T \]

\[W_2 = P_v \]

\[f = \text{softmax} \]

则上式变为:

\[h \leftarrow (1 - \lambda(x)) h + \lambda(x) f (x W_1) W_2 \]

  • 门控机制
    和上述Adapter的公式类似,只不过这里有一个门控制输入(即$ \lambda(x) $)。

  • Prefix Tuning 也是一种类似Adapter的plug-in module

  • 当 $ W_1 = W_q P^T \in \mathbb{R}^{d_h \times l} $ 且 $ W_2 = P_v \in \mathbb{R}^{l \times d_h}$ 时,当 prompt 序列长度 \(l\) 小于 attention head embedding size \(d_h\) 时这是一种低秩(low-rank)计算方式,与Adapter的设计类似。

  • Prompt序列长度 $ l $Adapter的bottleneck dimension $ r $ 效果一致,都表示「降维维度」。

本质上,上述三种方法全都是学习一个 modification vector $ Δh$ ,作用在 \(h\) 上:

在计算变换的同时进行改变:parallel,使用输入计算 \(Δh\)
在计算变换后进行改变:sequential,使用输出计算 \(Δh\)

归纳为下图:(4个维度)

  • \(\Delta h\) 函数形式
  • 插入形式(parallel or sequential)
  • 修改的层/位置
  • 作用在 \(h\) 函数形式

作者同样提出了三种组合方法:Parallel AdapterMulti-head Parallel AdapterScaled Parallel Adapter
Multi-head Parallel Adapter 是将 Parallel Adapter 作用在 每个注意力头 上,实现方法类似 prefix tuning。

实验验证

尽管在 GLUE 上,很多 paper 中提出的方法效果都很好,仅微调很少的参数就能比肩 fine-tune,但是在其他数据集上这些方法还是比不上 fine-tune,表示其对任务的泛化性不佳。

三个主要问题:

1.WHICH INSERTION FORM – Sequential OR Parallel?

==>prefix > attn sequential adapter,parallel adapter > sequential adapter:parallel 方法比 sequential 方法好。

2.WHICH MODIFIED REPRESENTATION – ATTENTION OR FFN?

  • 微调参数量比较大时,FFN modification > ATTN modification:作者认为是因为 FFN 学习到的是 task-specific patterns
  • 微调参数量很小时(eg. 0.1%),ATTN modification > FFN modification。

3.WHICH COMPOSITION FUNCTION?

scaling composition > additive

变体模型

基于结论,作者提出他们自己的模型 Mix-And-Match adapter (MAM Adapter),实现了更突出的效果,稍逊于微调但是强于三种方法。

posted @ 2025-03-01 13:30  ZonHu1  阅读(78)  评论(0)    收藏  举报