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

news/2025/3/1 13:36:30/文章来源:https://www.cnblogs.com/mercurystraw/p/18744762

以统一的视角看待 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),实现了更突出的效果,稍逊于微调但是强于三种方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/891532.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大厂开源项目,真的太爽啦,字节跳动出品!这个设计系统开源神器,让你的产品颜值与效率齐飞

Semi Design是由抖音前端团队开源的企业级设计系统,**同时支持React/Vue双框架**,提供超过60+高质量组件。不同于普通UI库,它从**设计工程化**角度出发,打通Figma设计资源与前端代码的桥梁,真正实现设计稿到代码的"零误差还原"。目前已在字节跳动200+项目中验证…

微信小程序安装VantWeapp组件

1、网址 https://vant-ui.github.io/vant-weapp/#/popup 2、安装教程:点击快速上手 这里我们通过 npm i @vant/weapp -S --production 来安装 1、右键点开 app.js 点 在内建终端中打开 2、把 npm i @vant/weapp -S --production 放到这里来 按回车安装完成后显示这个 3…

一道面试题——python

写法一:1 paths=[D:\lser\local file1.txt(abcd)file2.txt(wxsd)file3.txt(qqw),E:\path\jdk file2.txt(abcd)file5.txt(vv),C:\duafile\dublock\dufell file4.txt(vv)]2 3 #如题,paths列表中有不同文件路径,对应了n个文件和不同文件内容4 #期望输出,相同文件内容的文件路径…

【Linux应急】find命令在应急实战中的使用

一、使用场景 linux系统下排查主机异常时间点是否存在异常落地文件,例如:主机被上传了webshell后,排查当天是否落地其他webshell或其他异常文件。 二、命令介绍 find [路径] [选项] [条件]指定要搜索的目录。如果不指定,默认是当前目录【.】参数介绍:-type:f代表普通文件…

【自荐】Catime v1.0.4 一款贼好用的计时器

Github: https://github.com/vladelaina/Catime仅1.3MB!!!!! 🌟特点极简设计: 透明界面、点击穿透、可调大小和位置、多语言支持 丰富字体: 47种字体,支持实时预览 灵活计时: 快速预设、自定义时间输入、显示当前时间(12/24小时制)、倒计时、正计时 超时动作: 通知、锁屏、关…

L2G2-Lagent 自定义你的 Agent 智能体

L2G2-Lagent 自定义你的 Agent 智能体 1. Agent 入门 1.1 Agent 是什么 Agent 的核心是将感知,推理和行动结合成一个闭环。Agent 通过感知器感知外部的环境,获取输入的数据。然后输入数据到某种形式中(比如模型),它负责处理输入数据,制定行动策略。随后执行器根据模型的输…

L2G3-LMDeploy 量化部署进阶实践

L2G3-LMDeploy 量化部署进阶实践 1. LMDeploy部署模型 1.1 什么是模型部署?1.2 一个大语言模型部署框架可以提供什么? LMDeploy提供了大语言模型部署的全链条开源工具,能够十分便捷地帮助用户部署自己大模型应用。推理引擎与大模型的关系(from claude 3.5 sonnet): 大模型…

L1G4-InternLM + LlamaIndex RAG 实践

L1G4-InternLM + LlamaIndex RAG 实践 1. RAG技术 1.1 RAG技术概述 解决的问题:生成幻觉:不知道的东西乱说 过时知识:大模型的训练是一次性的而不是实时的,不能及时获取最新的知识 缺乏透明和可追溯的推理过程:大模型给出的答案可能是对的,但我们不知道是怎么得到的。即不…

L1G6-OpenCompass 评测书生大模型实践

L1G6-OpenCompass 评测书生大模型实践 1. 大模型评测入门 1.1 评测重要性和挑战 解释:超级对齐的必备组件:大模型安全问题日益突出,人工监管能力有限,需要有基于评测的安全监督。 数据污染:有的模型可能在评测集上训练,得到的分数不可信。 评测成本:客观题数量较多时,大…

DeepSeek引发的AI发展路径思考

在规模法则(Scaling Law)之外,DeepSeek 引领人工智能行业进入以算法和模型架构优化为主,同时高度重视数据质量与规模、理性提高算力的新时期。DeepSeek引发的AI发展路径思考 参考文章来源于科技导报 ,作者李国杰院士 1. DeepSeek 的科技突破7 天之内 DeepSeek 的用户增长超…

【Linux应急】Redis写入计划任务

免责声明 本文发表的文章仅用于学习和交流,请勿用于非法途径,如果文章中涉及到侵权,请及时联系公众号进行删除。一、漏洞原理 通过未授权或弱密码连接数据库之后,修改redis备份目录和参数,实现在主机的计划任务文件中写入定时反弹shell的命令,从而获取主机权限。 二、漏洞…

Minitab 21软件下载与安装教程

【Minitab 21软件下载与安装教程】 1-安装包 扫描下方二维码关注「软知社」,后台回复【036】三位数字即可免费获取分享链接,无广告拒绝套路; 2-安装教程解压下载安装包,双击Setup.exe安装,弹窗安装对话框语言默认中文,点击下一步点击下一步勾选我接受 ,点击下一步选择开…