【VLA与模仿学习】LoRA低秩适配论文精读
一句话定位
微调大模型时冻结原权重,只在每层旁路训练一对很小的矩阵 A,BA,BA,B(低秩分解),部署时可合并回原权重——省显存、任务可热切换、推理不添延迟;效果常能打平甚至超过全参微调。
本页概念卡
- 主方法:LoRA · PEFT · 低秩 / Intrinsic Rank
- 对照方法:Adapter · Prefix Tuning(文中对照,未单独建卡)
- 工程延伸:训练阶段管线 · VLA · openpi LoRA 微调
1. 背景概念(给新人)
站在 大模型高效微调(Parameter-Efficient Fine-Tuning,PEFT) 这条线上:底座已经很大,下游任务很多,不能也不该「每个任务复制一份整模」。
| 术语 | 白话 |
|---|---|
| LoRA | Low-Rank Adaptation:用低秩 BABABA 近似权重更新 ΔW\Delta WΔW |
| PEFT | 参数高效微调:只训很少参数,底座冻结 |
| 全参微调(Full Fine-Tuning) | 所有权重都更新;GPT-3 175B 时存储与多任务部署几乎不可行 |
| Adapter | 在 Transformer 块里串入小瓶颈 MLP;参数少,但推理常多一段串行延迟 |
| Prefix / Prompt Tuning | 在输入侧加可训练「虚 token」;会占掉可用序列长度 |
| Intrinsic Rank(内在秩) | 论文假设:适配时权重变化 ΔW\Delta WΔW 本身可以用很低的秩近似 |
| Rank rrr | A,BA,BA,B 中间的「窄通道」宽度;r≪dmodelr\ll d_{\mathrm{model}}r≪dmodel 才省参数 |
| α\alphaα(alpha) | 对 ΔWx\Delta W xΔWx 的缩放常数;文中常设为首次尝试的 rrr,少调 |
旧范式痛点(生活类比)
- 全参微调像:每开一家分店就复印整套百科全书再改几页——仓库爆了。
- Adapter 像:百科旁边加插页本,读的时候必须多翻几页 → 线上延迟上去。
- LoRA 像:百科不动,只订两页活页;上架前可以把活页胶进原书,读者翻页路径不变。
2. 论文在干什么
- 问题:预训练→下游适配时,全参微调对 GPT-3 级模型存储/显存/多任务部署成本爆炸;已有 Adapter / Prefix 要么加推理延迟,要么占序列长度,且常打不过全参微调。
- 设定:
- 动机场景:自回归语言建模(条件生成),目标形式见式 (1)(2)
- 评测:RoBERTa / DeBERTa 上 GLUE;GPT-2 上 E2E 等 NLG;GPT-3 175B 上 WikiSQL、MNLI、SAMSum
- 贡献概览:
- 提出 LoRA:冻结 W0W_0W0,用 BABABA 参数化 ΔW\Delta WΔW
- 相对 Adam 全参微调:可训参数约 10,000× 减少,训练显存约 3× 下降(GPT-3 175B)
- 质量上与全参微调持平或更好;相对 Adapter 无额外推理延迟(可 merge)
- 经验分析:适配更新确实近似低秩;常优先挂 Wq,WvW_q,W_vWq,Wv;很小的 rrr 往往够用
3. 核心创新点
-
低秩参数化权重更新
假设适配时 ΔW\Delta WΔW 内在秩低:W0+ΔW=W0+BAW_0+\Delta W=W_0+BAW0+ΔW=W0+BA,只训 A,BA,BA,B。这是对「全秩更新」的约束,不是另开一套深度模块。 -
可合并 → 零额外推理延迟
部署时显式算 W←W0+BAW\leftarrow W_0+BAW←W0+BA,前向与全参微调模型同构;换任务可减回 BABABA 再加另一套 B′A′B'A'B′A′。 -
与 Adapter / Prefix 正交且可组合
不占序列长度、不加深串行层;附录里可与 prefix 组合。 -
对「适配到底改了什么」的可解释分析
子空间重叠实验表明:增大 rrr 并不必然学到更多「有意义」方向;ΔW\Delta WΔW 更像放大预训练里已有但未被强调的特征方向。
4.1 前向公式
对预训练权重 W0∈Rd×kW_0\in\mathbb{R}^{d\times k}W0∈Rd×k:
h=W0x+BAx,B∈Rd×r, A∈Rr×k, r≪min(d,k) h = W_0 x + B A x,\quad B\in\mathbb{R}^{d\times r},\; A\in\mathbb{R}^{r\times k},\; r\ll\min(d,k) h=W0x+BAx,B∈Rd×r,A∈Rr×k,r≪min(d,k)
- 初始化:A\boldsymbol{A}A 高斯随机,B=0B=\mathbf{0}B=0 → 开训时 ΔW=0\Delta W=\mathbf{0}ΔW=0,不破坏预训练行为。
- 缩放:输出侧常乘 α/r\alpha/rα/r(实现里写法因库而异;直觉是换 rrr 时少重调学习率)。
- 训练:只对 A,BA,BA,B(及可选 bias)求梯度;Adam 不必为冻结参数存优化器状态 → 显存大降。
4.2 挂在 Transformer 哪里
- 注意力有 Wq,Wk,Wv,WoW_q,W_k,W_v,W_oWq,Wk,Wv,Wo;MLP 有两套线性层。
- 本文主实验:只适配注意力权重,冻结 MLP(简单 + 省参)。
- GPT-3 预算固定约 18M 可训参数时(Table 5):同时适配 WqW_qWq 与 WvW_vWv 整体最好;只砸在 WqW_qWq 或 WkW_kWk 上明显更差。
- 工程习惯(含后来的 VLA / openpi):常见
q_proj/v_proj(或更多线性层),rank 常用 8–64。
4.3 实操好处与局限
| 好处 | 含义 |
|---|---|
| 共享底座 + 多套小 LoRA | 100 个任务 ≈ 底座 + 100× 几十 MB,而非 100 份整模 |
| 训练吞吐 | GPT-3 175B 上相对全参约 +25% tokens/s(同并行配置) |
| 任务切换 | 热换 A,BA,BA,B 即可 |
局限:若为去延迟而merge 进 WWW,则同一 batch 里混多种任务 LoRA 不方便;不 merge、动态选模块则仍可,但放弃「零延迟」优势。
5. 整体框架(Mermaid)
6.1 主结果(记数量级即可)
- RoBERTa base:LoRA 0.3M 可训参,GLUE 平均 87.2,高于全参微调 86.4 与多种 Adapter(Table 2)。
- GPT-3 175B(Table 4):LoRA 4.7M 参数时 WikiSQL 73.4 / MNLI-m 91.7 / SAMSum Rouge 优于多数对照;37.7M 时 WikiSQL 74.0,可超过全参微调 73.8。
- 相对全参:可训参数约 10,000× 少(r=4r=4r=4 且只改 Q/V 时 checkpoint 从约 350GB 量级任务副本降到约 35MB 量级增量);训练 VRAM 约 1.2TB → 350GB。
6.2 秩与挂载消融(§7)
- Table 6:在 {Wq,Wv}\{W_q,W_v\}{Wq,Wv} 上,r=1r=1r=1 已很强;盲目加大 rrr 到 64 未必更好。
- 子空间分析:不同 rrr / 不同随机种子学到的主奇异方向高度重叠 → 「有用更新」确实低维;其余方向更像噪声。
- ΔW\Delta WΔW vs WWW:ΔW\Delta WΔW 不是简单重复 WWW 的主方向,而是放大预训练已有、但对下游不够强调的方向(放大倍数可很大)。
6.3 局限(论文诚实点 + 工程提醒)
- 任务与预训练语言差很远时,很小的 rrr 可能不够(文中 thought experiment)。
- 本文未系统扫 MLP / LayerNorm / bias 的 LoRA(留给后续工作;今天工程里常挂更多层)。
- 后人常见变体:QLoRA(量化底座 + LoRA)、DoRA、生成式 LoRA(如 EverWalker 超网络出 A,BA,BA,B)——本精读只钉死 2021 原文。
7. 要点总结
- LoRA = 冻结 W0W_0W0 + 低秩 ΔW=BA\Delta W=BAΔW=BA,不是另造一层深度 Adapter。
- 可 merge → 推理延迟与全参微调同构;这是相对 Adapter 的关键产品优势。
- 预算紧时优先挂 WqW_qWq+WvW_vWv;rrr 从小试起,别迷信「越大越好」。
- 在 VLA / openpi / 4090 场景:LoRA 是「一张卡能微调大策略」的前提砖块。
- 终身 / 多场景时:固定多套 LoRA vs 超网络生成 LoRA是下一层问题。
8. 开放问题
- 在动作策略(π₀ / GR00T)上,挂注意力 vs 也挂 MLP / action head,经验秩该怎么选?
- merge 后做量化部署时,数值误差如何控制?
- 与 QLoRA / DoRA 在机器人小数据上谁更稳?
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)