【论文笔记】LoRA: Low-Rank Adaptation of Large Language Models

🍎个人主页:小嗷犬的个人主页

🍊个人网站:小嗷犬的技术小站

🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


基本信息

标题 : LoRA: Low-Rank Adaptation of Large Language Models
作者 : Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen
发表 : ICLR 2022
arXiv : https://arxiv.org/abs/2106.09685

摘要

自然语言处理的一个重要范例是在通用领域数据上进行大规模预训练,并适应特定任务或领域。

随着我们预训练更大规模的模型,全量微调,即重新训练所有模型参数,变得越来越不可行。

以GPT-3 175B为例------部署独立实例的微调模型,每个模型都有175B个参数,成本过高。

我们提出了低秩适应,或称LoRA,它冻结预训练模型的权重,并将可训练的秩分解矩阵注入到Transformer架构的每一层,极大地减少了下游任务的可训练参数数量。

与使用Adam微调的GPT-3 175B相比,LoRA可以将可训练参数数量减少10,000倍,并将GPU内存需求减少3倍。

尽管LoRA的可训练参数更少,训练吞吐量更高,并且与adapter不同,没有额外的推理延迟,但它在RoBERTa、DeBERTa、GPT-2和GPT-3上的模型质量与微调相当甚至更好。

我们还对语言模型适应中的秩不足进行了实证研究,这有助于了解LoRA的有效性。

我们发布了一个包,用于将LoRA与PyTorch模型集成,并在https://github.com/microsoft/LoRA上提供了我们的实现和RoBERTa、DeBERTa和GPT-2的模型检查点。

方法

现有方法的缺点

Adapter Layers Introduce Inference Latency

使用Adapter会引入推理延迟。

Directly Optimizing the Prompt is Hard

我们观察到prefix tuning难以优化,并且其性能在可训练参数中非单调地变化,这与原始论文中的观察结果相似。更基本的是,为适应保留一部分序列长度必然减少可用于处理下游任务的序列长度,这使我们怀疑微调prompt的性能不如其他方法。

LoRA

神经网络包含许多密集层,这些层执行矩阵乘法。这些层的权重矩阵通常具有满秩。

当适应特定任务时,Aghajanyan等人表明,预训练的语言模型具有较低的"内在维度",即使在随机投影到较小的子空间后,仍能高效地学习。

受此启发,我们假设权重更新在适应过程中也具有较低的"内在秩"。

对于预训练权重矩阵 W 0 ∈ R d × k W_0 \in \mathbb{R}^{d \times k} W0∈Rd×k,我们通过将后者表示为低秩分解 W 0 + Δ W = W 0 + B A W_0 + \Delta W = W_0 + BA W0+ΔW=W0+BA 来约束其更新,其中 B ∈ R d × r B \in \mathbb{R}^{d \times r} B∈Rd×r, A ∈ R r × k A \in \mathbb{R}^{r \times k} A∈Rr×k,且秩 r r r 满足 r ≤ min ⁡ ( d , k ) r \leq \min(d, k) r≤min(d,k)。在训练过程中, W 0 W_0 W0 被冻结,不接收梯度更新,而 A A A 和 B B B 包含可训练参数。注意 W 0 W_0 W0 和 Δ W = B A \Delta W = BA ΔW=BA 都与相同的输入相乘,并且它们的输出向量在坐标上相加。对于 h = W 0 x h = W_0x h=W0x,我们修改的前向传递结果为:

h = W 0 x + Δ W x = W 0 x + B A x h = W_0x + \Delta Wx = W_0x + BAx h=W0x+ΔWx=W0x+BAx

我们使用随机高斯初始化 A A A 和零初始化 B B B,因此训练开始时 Δ W = B A \Delta W = BA ΔW=BA 为零。然后我们将 Δ W x \Delta W x ΔWx 按 α r \frac{\alpha}{r} rα 缩放,其中 α \alpha α 是 r r r 中的常数。在Adam优化中,如果我们适当地缩放初始化,调整 α \alpha α 大致等同于调整学习率。因此,我们只需将 α \alpha α 设置为尝试的第一个 r r r,而不对其进行调整。这种缩放有助于减少我们在改变 r r r 时重新调整超参数的需求。

优势
  • 预训练模型可以共享并用于构建针对不同任务的许多小型LoRA模块。我们可以冻结共享模型,并通过替换矩阵A和B来高效切换任务,显著降低存储需求和任务切换开销。
  • LoRA通过使用自适应优化器使训练更加高效,并将硬件门槛降低了3倍,因为我们不需要计算大多数参数的梯度或维护优化器状态。相反,我们只优化注入的、远小得多的低秩矩阵。
  • 我们的简单线性设计使我们能够在部署时将可训练矩阵与冻结权重合并,与完全微调的模型相比,在构造上引入了零推理延迟。
  • LoRA与许多先前的方法正交,可以与其中许多方法结合,例如prefix-tuning。

实验

相关推荐
跨境卫士-小汪21 分钟前
TikTokShop欧洲商品接口架构调整跨境技术团队需要做好哪些准备
大数据·人工智能·新媒体运营·跨境电商·跨境·营销策略
康小汪1 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
收放扳机2 小时前
多机连线(In-Line)场景下,收放板机“缓存工位”的容量与架构选型参考
人工智能·科技·自动化·制造·pcb工艺
武天旭2 小时前
AI安全--AI大模型的后门攻击检测与防御
人工智能·深度学习·安全·机器学习
智能运维指南2 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
人工智能AI技术2 小时前
DeepInfer开源炸场!别再妄想个人电脑跑满血DeepSeek
人工智能
深蓝电商API2 小时前
用AI生成拟人行为:让鼠标轨迹更“有人味”
人工智能·爬虫
znnnk2 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
深蓝AI2 小时前
网站正在对 AI Agent 集体关门:亚马逊封锁 Muse、银行拒绝登录,开发者怎么活下去
人工智能
jason_renyu2 小时前
Vue 4 × AI:流式对话、Agent 状态与高性能渲染的下一代组合
人工智能·vue4·vue4和ai·vue4xai