AI / Technology
LoRA给大模型的改动装进“小插件”
全量微调需要任务副本;LoRA 复用共享基座,只保存小型任务模块
图 1|教学重绘,不是论文原图。它回答“为什么要做 LoRA”:任务越多,复制完整模型越昂贵;共享一个冻结基座,再替换小模块,存储增长更慢。依据:论文第 1 节与第 4.2 节。
- 大模型不动,小改动单独学。 每个任务只保存很小的 LoRA 模块。
- 低秩不是单纯压缩成更小模型。 它限制的是“微调造成的变化”
ΔW,不是原模型权重W₀。 - 论文证明了“在所测任务上很省且不掉点”,没有证明所有任务都能用极小秩。 作者明确举例:若下游任务语言与预训练语言不同,更完整的重训练可能优于小秩 LoRA。来源:论文第 7.2 节脚注 6,第 10 页。
输入同时经过冻结权重与可训练的低秩支路,结果相加
图 2|机制图。窄支路不是替代原知识,而是学习任务所需的增量。r 是瓶颈宽度,也决定可训练参数量。依据:论文公式(3)与第 4.1 节。
其中 A ∈ ℝ^(r×k)、B ∈ ℝ^(d×r),并让 r 远小于 d 和 k。输入 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 页。
记住三点:
- 大模型不动,小改动单独学。 每个任务只保存很小的 LoRA 模块。
- 低秩不是单纯压缩成更小模型。 它限制的是“微调造成的变化”
ΔW,不是原模型权重W₀。 - 论文证明了“在所测任务上很省且不掉点”,没有证明所有任务都能用极小秩。 作者明确举例:若下游任务语言与预训练语言不同,更完整的重训练可能优于小秩 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 远小于 d 和 k。输入 x 的前向计算成为 h = W₀x + BAx。训练时 W₀ 冻结,只有 A、B 更新;论文用高斯分布初始化 A、用零初始化 B,因此训练刚开始时 BA=0,模型行为仍等于原模型。来源:论文第 4.1 节,第 4 页。
直觉上,可以把完整微调想成“允许每个旋钮都重新调”;LoRA 则假设任务真正需要的改动集中在少数方向,因此只提供少量联动旋钮。这个“更新具有低内在秩”是论文的假设,后续实验给出经验支持,但不是对任意模型和任务的普遍定理。
论文实验主要把 LoRA 加在 Transformer 自注意力的投影矩阵上,并在多数实验中只适配 Wq 与 Wv,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.8M | 73.8 | 89.5 | 52.0 / 28.0 / 44.5 |
| AdapterH | 40.1M | 73.2 | 91.5 | 53.2 / 29.0 / 45.1 |
| LoRA | 4.7M | 73.4 | 91.7 | 53.8 / 29.8 / 45.9 |
| LoRA | 37.7M | 74.0 | 91.6 | 53.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=8 与 r=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。
仍待复核的问题
- 在语言、领域或输出形式与预训练显著不同的任务上,小
r何时失效? - 若严格计入数据处理、通信、检查点 I/O 与服务框架开销,“无额外延迟”和 25% 训练加速能否复现?
- 质量对秩、目标矩阵、随机种子和训练预算的敏感性,在更多任务上是否稳定?
不确定项:论文未给出所有 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 页。这仍是经验解释,不等于低秩假设已被理论证明。