NLP参数高效迁移学习:Adapter方法——论文简读

简介: 本研究深入探讨了自然语言处理中参数高效的迁移学习方法——Adapter。通过在预训练模型中引入小型可训练模块,仅调整少量额外参数即可完成模型适配。理论分析表明,该方法在初始化时保持网络行为稳定,并通过瓶颈结构大幅压缩参数规模。实验结果显示,Adapter在GLUE基准上仅用3.6%的参数便达到接近全微调的性能,且对学习率具有更强的鲁棒性。相比传统微调和其他参数高效方法,Adapter在多任务场景下展现出更优的存储效率与泛化能力,为大规模模型的实际部署提供了高效可行的解决方案。

NLP参数高效迁移学习:Adapter方法的深度解析

Houlsby N, Giurgiu A, Jastrzebski S, et al. Parameter-efficient transfer learning for NLP[C]//International conference on machine learning. PMLR, 2019: 2790-2799.

第一章 引言与研究背景

近年来,预训练模型的迁移学习已成为自然语言处理领域的主导范式。BERT等大规模Transformer模型通过在大规模语料上进行无监督预训练,然后在下游任务上进行微调,取得了前所未有的性能突破。然而,这种方法面临一个根本性挑战:在线学习场景中,当任务以流的形式不断到达时,为每个新任务训练一个完整的新模型在参数效率上是不可接受的。

考虑一个具有参数 $w \in \mathbb{R}^n$ 的神经网络函数 $\phi_w: \mathcal{X} \rightarrow \mathcal{Y}$。传统的特征提取方法通过组合预训练函数与新函数 $\chi_v$ 来实现迁移学习,得到复合函数 $\chi_v(\phi_w(x))$,其中只有新参数 $v$ 被训练。全参数微调则创建参数 $w'$ 的副本并对其进行调整,这意味着对于 $K$ 个任务,需要 $K \times |w|$ 的参数存储。

第二章 Adapter理论框架

2.1 数学形式化

Adapter方法的核心创新在于引入了一种新的参数化形式。定义新函数 $\psi_{w,v}: \mathcal{X} \rightarrow \mathcal{Y}$,其中原始参数 $w$ 从预训练模型复制并冻结,新参数 $v$ 被初始化为 $v_0$,使得:

$$\lim_{v \rightarrow v_0} \|\psi_{w,v}(x) - \phi_w(x)\|_2 = 0, \quad \forall x \in \mathcal{X}$$

这个性质确保了在训练开始时,适配后的网络行为与原始网络相同,从而保证了训练的稳定性。

2.2 瓶颈架构设计

Adapter模块采用瓶颈架构,对于输入 $h \in \mathbb{R}^d$,Adapter的前向传播定义为:

$$\text{Adapter}(h) = h + f(h \cdot W_{\text{down}} + b_{\text{down}}) \cdot W_{\text{up}} + b_{\text{up}}$$

其中 $W{\text{down}} \in \mathbb{R}^{d \times m}$,$W{\text{up}} \in \mathbb{R}^{m \times d}$,$m \ll d$,$f$ 是非线性激活函数。

每层的参数量计算为:
$$P_{\text{adapter}} = d \cdot m + m + m \cdot d + d = 2md + m + d$$

当 $m \ll d$ 时,参数量近似为 $2md$,相对于原始层的参数量 $d^2$,压缩比为 $\frac{2m}{d}$。

第三章 Transformer集成策略

3.1 插入位置分析

fig2.png

图2描述:左图展示了Adapter模块在Transformer层中的集成位置。Adapter被插入两次:一次在多头注意力投影之后,一次在两个前馈层之后。右图详细展示了Adapter的内部结构,包含向上投影、非线性激活、向下投影和跳跃连接。绿色标记的层(Adapter、层归一化和最终分类层)在下游任务训练时被更新。

在标准Transformer层中,设原始输出为 $h_{\text{sublayer}}$,集成Adapter后的计算流程为:

$$h' = \text{LayerNorm}(h_{\text{input}} + \text{Adapter}(\text{Sublayer}(h_{\text{input}})))$$

这种设计确保了梯度可以通过两条路径反向传播:通过Adapter的主路径和通过跳跃连接的直接路径。

3.2 初始化策略

为实现近恒等初始化,权重矩阵初始化为:

$$W_{\text{down}} \sim \mathcal{N}(0, \sigma^2 I), \quad W_{\text{up}} \sim \mathcal{N}(0, \sigma^2 I)$$

其中 $\sigma = 10^{-2}$,并截断到两个标准差。偏置项初始化为零。这确保了:

$$\mathbb{E}[\text{Adapter}(h)] \approx h + \mathbb{E}[f(h \cdot W_{\text{down}})] \cdot \mathbb{E}[W_{\text{up}}] \approx h$$

第四章 实验设计与结果分析

4.1 GLUE基准测试

fig1.png

图1描述:该图展示了准确率增量(相对于全微调的百分比)与每个任务训练参数数量之间的权衡关系。橙色线代表不同大小的Adapter,蓝色线代表微调不同数量的顶层。阴影区域表示GLUE基准九个任务的第20、50和80百分位数。Adapter在使用少两个数量级参数的情况下达到了与全微调相当的性能。

实验使用BERT$_{\text{LARGE}}$模型(24层,330M参数)。超参数搜索空间包括:

  • 学习率:${3 \times 10^{-5}, 3 \times 10^{-4}, 3 \times 10^{-3}}$
  • 训练轮数:${3, 20}$
  • Adapter大小:${8, 64, 256}$

4.2 消融实验

fig6.png

图6描述:展示了从连续层跨度移除训练好的Adapter后的性能影响。左图为MNLIm数据集,中图为CoLA数据集。热图中每个单元格$(i,j)$表示移除第$i$层到第$j$层(含)的Adapter后验证准确率的相对下降。对角线(绿色高亮)表示仅移除单层。右上角单元格表示移除所有Adapter。右图展示了不同初始化标准差下的性能,x轴为初始化分布的标准差。

消融实验揭示的关键发现:

  1. 移除单层Adapter的影响较小($\Delta_{\text{acc}} < 2\%$)
  2. 低层Adapter(0-4层)的影响明显小于高层
  3. 移除所有Adapter导致性能降至随机水平

4.3 参数效率分析

fig3.png

图3描述:展示了聚合跨任务的准确率与训练参数数量的关系。左图为GLUE(BERT${\text{LARGE}}$)结果,右图为额外17个分类任务(BERT${\text{BASE}}$)的结果。橙色线表示不同大小的Adapter($2^n$,$n=0...9$),蓝色线表示微调顶部$k$层($k=1...12$)。线条和阴影区域表示任务间的第20、50和80百分位数。

关键发现:在GLUE上,Adapter仅用3.6%的参数达到了全微调99.5%的性能(80.0 vs 80.4)。在额外的17个分类任务上,Adapter用1.14%的参数达到了99.5%的性能(73.3 vs 73.7)。

第五章 不同任务的泛化能力

5.1 SQuAD问答任务

fig5.png

图5描述:SQuAD v1.1验证集上的F1分数与训练参数数量的关系。误差条表示三个随机种子的标准误。图中显示即使是极小的Adapter(大小为2,占0.1%参数)也能达到89.9的F1分数,而64大小的Adapter(2%参数)达到90.4,接近全微调的90.7。

5.2 学习率鲁棒性

fig7.png

图7描述:不同学习率下的最佳模型性能。实验测试了$[2 \times 10^{-5}, 10^{-3}]$范围内的学习率。Adapter在整个范围内保持稳定性能(橙色线),而顶层微调(蓝色线)在高学习率下性能急剧下降。这表明Adapter方法对超参数选择更加鲁棒。

第六章 与其他方法的详细比较

6.1 层归一化调优

仅调整层归一化参数的方法虽然极其参数高效(BERT$_{\text{BASE}}$仅需40k参数),但性能显著下降:

fig4.png

图4描述:MNLIm(左)和CoLA(右)数据集上验证准确率与训练参数数量的关系。绿色点表示仅调整层归一化参数,橙色线表示不同大小的Adapter,蓝色线表示微调顶部$k$层。层归一化方法在两个数据集上分别下降约4%和3.5%的准确率。

6.2 变量微调(Variable Fine-tuning)

实验比较了微调顶部$n$层的策略,其中$n \in {1,2,3,5,7,9,11,12}$。结果表明,当参数数量相当时,Adapter显著优于部分层微调。例如,在MNLIm上:

  • 微调顶层(9M参数):77.8% $\pm$ 0.1%
  • Adapter-64(2M参数):83.7% $\pm$ 0.1%
  • 全微调(110M参数):84.4% $\pm$ 0.02%

附录A:理论推导

A.1 近恒等初始化的数学证明

给定Adapter函数:
$$A(h) = h + g(h)$$

其中 $g(h) = \text{ReLU}(hW{\text{down}} + b{\text{down}})W{\text{up}} + b{\text{up}}$

当权重初始化为小值时,我们可以通过泰勒展开分析:

$$g(h) = \text{ReLU}(hW_{\text{down}})W_{\text{up}} + \mathcal{O}(\|W\|^2)$$

对于ReLU激活函数,当输入接近零时:
$$\mathbb{E}[\text{ReLU}(x)] = \frac{1}{2}\mathbb{E}[|x|] \approx \frac{\sigma}{\sqrt{2\pi}}\|h\|$$

因此:
$$\mathbb{E}[g(h)] = \mathbb{E}[\text{ReLU}(hW_{\text{down}})] \cdot \mathbb{E}[W_{\text{up}}] = \mathcal{O}(\sigma^2)$$

当 $\sigma = 10^{-2}$ 时,$\mathbb{E}[A(h)] \approx h + \mathcal{O}(10^{-4}) \approx h$

A.2 梯度流分析

考虑损失函数 $\mathcal{L}$ 对Adapter输入 $h$ 的梯度:

$$\frac{\partial \mathcal{L}}{\partial h} = \frac{\partial \mathcal{L}}{\partial A(h)} \cdot \frac{\partial A(h)}{\partial h}$$

其中:
$$\frac{\partial A(h)}{\partial h} = I + \frac{\partial g(h)}{\partial h}$$

由于跳跃连接的存在,即使 $\frac{\partial g(h)}{\partial h} \approx 0$(在初始化时),梯度仍然可以通过恒等项 $I$ 传播,避免了梯度消失问题。

A.3 参数效率的理论界限

设原始网络有 $L$ 层,每层维度为 $d$。全微调的参数量为 $\mathcal{O}(Ld^2)$。使用瓶颈维度 $m$ 的Adapter,参数量为:

$$P_{\text{total}} = 2L \times (2md + m + d) \approx 4Lmd$$

压缩比为:
$$\rho = \frac{P_{\text{total}}}{P_{\text{original}}} = \frac{4Lmd}{Ld^2} = \frac{4m}{d}$$

对于BERT$_{\text{LARGE}}$($d=1024$),使用 $m=64$ 时,$\rho \approx 0.25$,但由于只有Adapter和层归一化被训练,实际可训练参数比例约为3.6%。

A.4 多任务场景的存储复杂度

对于 $K$ 个任务:

  • 全微调:$\mathcal{O}(KLd^2)$
  • Adapter:$\mathcal{O}(Ld^2 + 4KLmd)$

当 $K \gg \frac{d}{4m}$ 时,Adapter方法的优势变得显著。例如,当 $d=1024$,$m=64$ 时,$K > 4$ 即可实现存储节省。

结论

这项研究通过引入Adapter模块,为大规模预训练模型的参数高效迁移学习提供了一个优雅而有效的解决方案。通过严格的数学分析和广泛的实验验证,论文证明了Adapter方法在保持接近全参数微调性能的同时,将参数需求降低了两个数量级。这种方法不仅在理论上具有坚实的基础,在实践中也展现了强大的泛化能力和鲁棒性,为构建可扩展的NLP系统开辟了新的方向。

目录
相关文章
|
7天前
|
人工智能 运维 安全
|
5天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
626 22
|
6天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
12天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
997 110
|
5天前
|
人工智能 数据可视化 数据挖掘
Quick BI 体验&征文有奖!
瓴羊生态推出Quick BI 征文激励计划,鼓励用户分享数据分析实践经验与技术洞察,征集高质量原创文章。内容围绕AI功能体验与BI案例实践,设季奖、年奖及参与奖,优秀作者可获现金奖励、产品内测资格及官方认证形象。投稿截止至2026年3月31日。
Quick BI 体验&征文有奖!