返回报告库

AI / Technology

LoRA给大模型的改动装进“小插件”

全量微调需要任务副本;LoRA 复用共享基座,只保存小型任务模块

图 1|教学重绘,不是论文原图。它回答“为什么要做 LoRA”:任务越多,复制完整模型越昂贵;共享一个冻结基座,再替换小模块,存储增长更慢。依据:论文第 1 节与第 4.2 节。

  1. 大模型不动,小改动单独学。 每个任务只保存很小的 LoRA 模块。
  2. 低秩不是单纯压缩成更小模型。 它限制的是“微调造成的变化” ΔW,不是原模型权重 W₀
  3. 论文证明了“在所测任务上很省且不掉点”,没有证明所有任务都能用极小秩。 作者明确举例:若下游任务语言与预训练语言不同,更完整的重训练可能优于小秩 LoRA。来源:论文第 7.2 节脚注 6,第 10 页

输入同时经过冻结权重与可训练的低秩支路,结果相加

图 2|机制图。窄支路不是替代原知识,而是学习任务所需的增量。r 是瓶颈宽度,也决定可训练参数量。依据:论文公式(3)与第 4.1 节。

其中 A ∈ ℝ^(r×k)B ∈ ℝ^(d×r),并让 r 远小于 dk。输入 x 的前向计算成为 h = W₀x + BAx。训练时 W₀ 冻结,只有 A、B 更新;论文用高斯分布初始化 A、用零初始化 B,因此训练刚开始时 BA=0,模型行为仍等于原模型。来源:论文第 4.1 节,第 4 页

选择一个任务模块并合并后常规推理;混合任务批次受到限制

图 3|部署权衡。上半部是 LoRA 的工程吸引力;下半部是论文明确指出的限制。依据:论文第 4.1–4.2 节。

部署时可以先计算 W = W₀ + BA,随后像普通模型一样推理,所以从结构上不增加额外推理路径;切换任务时再减去旧模块、加上新模块。论文还报告 GPT‑3 175B 相对全量微调约有 25% 的训练加速,因为大多数参数不再计算梯度。来源:论文第 4.1–4.2 节,第 4–5 页

研究附录

论文:Edward J. Hu 等,LoRA: Low-Rank Adaptation of Large Language Models,arXiv v2(2021)。摘要页 · 论文 PDF

一、结论先行

LoRA 解决的是一个很现实的问题:如果每个下游任务都复制并微调整个大模型,训练显存和模型存储会随任务数迅速膨胀。它的改变是冻结预训练权重,只学习一个可合并的低秩权重增量。在论文的 GPT‑3 175B 设置中,这把训练显存从 1.2 TB 降至 350 GB;当秩 r=4 且只改注意力中的 query/value 投影时,任务检查点从 350 GB 降至 35 MB。来源:论文第 4.2 节,第 5 页

记住三点:

  1. 大模型不动,小改动单独学。 每个任务只保存很小的 LoRA 模块。
  2. 低秩不是单纯压缩成更小模型。 它限制的是“微调造成的变化” ΔW,不是原模型权重 W₀
  3. 论文证明了“在所测任务上很省且不掉点”,没有证明所有任务都能用极小秩。 作者明确举例:若下游任务语言与预训练语言不同,更完整的重训练可能优于小秩 LoRA。来源:论文第 7.2 节脚注 6,第 10 页

二、问题:为什么全量微调越来越难承受

全量微调会为每个任务学习一个与原模型同维度的参数变化 ΔΦ。对 GPT‑3 175B,这意味着每个任务都可能带来一套约 1750 亿参数的独立模型。论文把现有高效适配路线概括为两类:adapter 在 Transformer 层间插入串行模块,可能增加在线推理延迟;prefix/prompt 类方法占用可用于任务输入的序列长度,而且优化表现可能不随参数量单调改善。来源:论文第 2–3 节,第 3 页

一个具体的延迟对照来自 GPT‑2 medium、单张 Quadro RTX8000、100 次前向传播:在 batch size 1、序列长 128 时,Fine‑Tune/LoRA 为 19.8±2.7 ms,两种 adapter 为 23.9±2.1 ms(+20.7%)和 25.8±2.2 ms(+30.3%)。这是特定硬件与负载下的测量,不应外推成所有部署环境的固定比例。来源:论文表 1,第 4 页

三、方法:把大矩阵的改动拆成两块窄矩阵

对一个预训练权重矩阵 W₀ ∈ ℝ^(d×k),LoRA 不直接训练完整的 ΔW,而令:

W = W₀ + ΔW = W₀ + BA

其中 A ∈ ℝ^(r×k)B ∈ ℝ^(d×r),并让 r 远小于 dk。输入 x 的前向计算成为 h = W₀x + BAx。训练时 W₀ 冻结,只有 A、B 更新;论文用高斯分布初始化 A、用零初始化 B,因此训练刚开始时 BA=0,模型行为仍等于原模型。来源:论文第 4.1 节,第 4 页

直觉上,可以把完整微调想成“允许每个旋钮都重新调”;LoRA 则假设任务真正需要的改动集中在少数方向,因此只提供少量联动旋钮。这个“更新具有低内在秩”是论文的假设,后续实验给出经验支持,但不是对任意模型和任务的普遍定理。

论文实验主要把 LoRA 加在 Transformer 自注意力的投影矩阵上,并在多数实验中只适配 WqWv,MLP 保持冻结。可训练参数量写作 2 × L̂LoRA × dmodel × r。对 MLP、LayerNorm 和 bias 的系统研究被留作未来工作。来源:论文第 4.2、5.1 节,第 5–6 页

四、证据与边界:省多少,效果是否保住

最强的规模证据

论文在 RoBERTa、DeBERTa、GPT‑2 与 GPT‑3 上测试理解和生成任务。最醒目的 GPT‑3 175B 对照如下;不同任务指标不可横向比较,只应在同一列比较方法。来源:论文表 4,第 8 页

方法可训练参数WikiSQL 准确率MNLI-m 准确率SAMSum ROUGE-1/2/L
全量微调175,255.8M73.889.552.0 / 28.0 / 44.5
AdapterH40.1M73.291.553.2 / 29.0 / 45.1
LoRA4.7M73.491.753.8 / 29.8 / 45.9
LoRA37.7M74.091.653.4 / 29.2 / 45.1

作者报告的典型波动约为:WikiSQL ±0.5%、MNLI-m ±0.1%、SAMSum 三项分别 ±0.2/±0.2/±0.1;由于 GPT‑3 训练成本高,论文没有为表中每个条目分别给出随机种子统计。因此,“LoRA 全面胜过全量微调”应谨慎理解为:在这三个验证集及该实验配置下,结果持平或更高。来源:论文第 5.5 节,第 8 页

为什么很小的秩可能够用

在 GPT‑3 的 WikiSQL 与 MultiNLI 实验中,同时适配 Wq、Wv 时,r=1 已有竞争力:WikiSQL 为 73.4,r=8 为 73.8;MultiNLI 为 91.3 与 91.6。论文还比较 r=8r=64 学到的子空间,发现最主要奇异向量方向显著重叠,并据此解释小秩为何奏效。来源:论文表 6,第 10 页第 7.2 节分析,第 11 页。这仍是经验解释,不等于低秩假设已被理论证明。

不能忽略的限制

  • 实验只覆盖若干 NLP 模型与数据集;论文没有建立跨模态、跨架构或分布外任务的普遍结论。
  • 作者明确说,小 r 不会适合每个任务或数据集;任务与预训练分布差得越远,可能越需要更高秩或全量更新。来源:论文第 7.2 节脚注 6,第 10 页
  • 若把 BA 合并进 W₀ 以消除额外推理延迟,就不容易在同一个 batch 中让不同样本使用不同 LoRA 模块;若不合并则可以动态选择,但会牺牲“无额外延迟”这一优势。来源:论文第 4.2 节,第 5 页
  • GPT‑3 对照受训练成本限制,只报告每类任务的典型波动,不是每个结果的完整重复实验统计。来源:论文第 5.5 节,第 8 页

五、实际意义:何时值得用,决策时还要问什么

部署时可以先计算 W = W₀ + BA,随后像普通模型一样推理,所以从结构上不增加额外推理路径;切换任务时再减去旧模块、加上新模块。论文还报告 GPT‑3 175B 相对全量微调约有 25% 的训练加速,因为大多数参数不再计算梯度。来源:论文第 4.1–4.2 节,第 4–5 页

对产品团队,LoRA 最适合这样的情形:已有一个昂贵的共享基座,需要维护许多相近的专用任务,同时在意训练显存、检查点存储和推理延迟。它不是自动保证质量的按钮。上线前至少要验证:目标任务所需的 r;适配哪些矩阵;与全量微调在同一数据切分上的质量差;真实硬件上的训练峰值显存、吞吐与延迟;是否需要在同一批次混用不同任务模块。

一句话收束: LoRA 的价值不是把大模型变小,而是把“每个任务都复制一座大楼”改成“共用主体,只更换一套很小、可合并的内部装置”。


研究附录:来源、术语与复核问题

证据账本

关键主张论文证据置信边界
冻结 W₀,训练 A、B公式(3),第 4.1 节方法定义,强
GPT‑3 训练显存 1.2 TB → 350 GB第 4.2 节特定 GPT‑3/Adam 设置
检查点 350 GB → 35 MB,约 10,000×第 4.2 节,r=4、只适配 q/v条件限定不可省略
GPT‑3 三任务持平或更高表 4仅所测验证集;统计重复有限
小秩可能足够表 6、子空间相似度分析经验支持,不是普遍定理
合并后无额外推理延迟第 4.1 节架构层面;真实系统仍应实测
混合任务 batch 不便第 4.2 节选择合并权重时成立

术语

  • 秩(rank):矩阵中独立变化方向的数量;r 越小,LoRA 支路参数越少。
  • 权重增量 ΔW:模型为适应任务而相对预训练权重发生的变化。
  • query/value 投影(Wq/Wv:自注意力中生成 query 与 value 表示的线性变换。
  • 合并权重:部署前把 BA 加进 W₀,得到普通形状的权重 W

仍待复核的问题

  1. 在语言、领域或输出形式与预训练显著不同的任务上,小 r 何时失效?
  2. 若严格计入数据处理、通信、检查点 I/O 与服务框架开销,“无额外延迟”和 25% 训练加速能否复现?
  3. 质量对秩、目标矩阵、随机种子和训练预算的敏感性,在更多任务上是否稳定?

不确定项:论文未给出所有 GPT‑3 表项各自的多随机种子明细;也没有覆盖现代多模态模型或 2021 年之后的架构。本解读不将后续实践经验倒推为原论文结论。

关于这篇论文的三个关键问题

LoRA:给大模型的改动装进“小插件” 解决了什么问题?

全量微调会为每个任务学习一个与原模型同维度的参数变化 ΔΦ。对 GPT‑3 175B,这意味着每个任务都可能带来一套约 1750 亿参数的独立模型。论文把现有高效适配路线概括为两类:adapter 在 Transformer 层间插入串行模块,可能增加在线推理延迟;prefix/prompt 类方法占用可用于任务输入的序列长度,而且优化表现可能不随参数量单调改善。来源:论文第 2–3 节,第 3 页。

LoRA:给大模型的改动装进“小插件” 的核心结论有哪些证据?

作者报告的典型波动约为:WikiSQL ±0.5%、MNLI-m ±0.1%、SAMSum 三项分别 ±0.2/±0.2/±0.1;由于 GPT‑3 训练成本高,论文没有为表中每个条目分别给出随机种子统计。因此,“LoRA 全面胜过全量微调”应谨慎理解为:在这三个验证集及该实验配置下,结果持平或更高。来源:论文第 5.5 节,第 8 页。

阅读 LoRA:给大模型的改动装进“小插件” 时最需要注意什么局限?

在 GPT‑3 的 WikiSQL 与 MultiNLI 实验中,同时适配 Wq、Wv 时,r=1 已有竞争力:WikiSQL 为 73.4,r=8 为 73.8;MultiNLI 为 91.3 与 91.6。论文还比较 r=8 与 r=64 学到的子空间,发现最主要奇异向量方向显著重叠,并据此解释小秩为何奏效。来源:论文表 6,第 10 页;第 7.2 节分析,第 11 页。这仍是经验解释,不等于低秩假设已被理论证明。

今天还可免费读 2 篇新报告订阅 Pro 后无限阅读,并获得每月 10 篇新论文生成额度。升级 Pro