大模型数学速成(16):LoRA——低秩适配在算什么
全参数微调要更新整网权重,贵且易伤通用能力。AI 系列的 Fine-tuning vs RAG 从产品视角对比过两条路;本篇补 LoRA(Low-Rank Adaptation)在算什么——冻住巨大的 $W$,只训练两个瘦矩阵 $A,B$。
这是「大模型数学速成」续篇第 16 篇。建议先读 第 02 篇矩阵乘 与 第 15 篇量化。下一篇讲 Flash Attention。
一、全参微调为什么贵?
一层线性变换(第 02 篇):
\[\mathbf{h}' = W \mathbf{x}\]
若 $W \in \mathbb{R}^{d \times d}$(示意方阵),可训练参数量是 $d^2$。
$d=4096$ 时单层已约 $1.7\times 10^7$ 个参数;模型有几十上百层、还有多组投影——微调 = 存优化器状态 + 梯度 + 可能的全精度副本,显存与存储都爆炸。
更麻烦的是:在小领域数据上拧全体权重,容易 灾难性遗忘——通用能力掉点。
二、低秩假设:更新往往「很扁」
微调时我们真正需要的,常常不是一张全新的满秩 $W$,而是一个增量:
\[W' = W_0 + \Delta W\]
$W_0$ 预训练冻住;$\Delta W$ 才是任务相关的改动。
经验与理论动机(不必深究证明):许多任务上的 $\Delta W$ 近似落在低维子空间里——可用低秩矩阵逼近:
\[\Delta W \approx B A\]
其中:
| 矩阵 | 形状(示意) | 角色 |
|---|---|---|
| $W_0$ | $d_{\mathrm{out}} \times d_{\mathrm{in}}$ | 冻住的预训练权重 |
| $A$ | $r \times d_{\mathrm{in}}$ | 降到秩 $r$ |
| $B$ | $d_{\mathrm{out}} \times r$ | 升回输出维 |
| $r$ | $\ll \min(d_{\mathrm{in}}, d_{\mathrm{out}})$ | 秩,LoRA 的核心超参 |
前向变成:
\[\mathbf{h}' = W_0 \mathbf{x} + B A \mathbf{x}\]
(实现里常对 $BA\mathbf{x}$ 再乘缩放 $\alpha/r$。)
1 | x ──► W0 ──► (+) ──► h' |
三、参数量手算
设 $d_{\mathrm{in}} = d_{\mathrm{out}} = d = 4096$,$r = 8$(公开配置里常见量级,仅示意):
| 方案 | 参数量 | 相对满秩 $\Delta W$ |
|---|---|---|
| 直接训 $\Delta W$ | $d^2 = 4096^2 \approx 1.68\times 10^7$ | 100% |
| LoRA $A,B$ | $r\cdot d + d\cdot r = 2rd = 65536$ | 约 0.4% |
同一层可训练参数差两个数量级——这就是 LoRA 省显存、省存盘的数学来源。多层、多模块(如 $W_q,W_v$)时把各处的 $2rd$ 加起来即可。
四、初始化与缩放(知道即可)
常见做法:
- $A$ 随机初始化,$B$ 初值为 0 → 训练开始时 $\Delta W=0$,不扰动预训练输出
- 有效更新 $\frac{\alpha}{r} BA$,用 $\alpha$ 控制步子大小,与学习率解耦一点
细节因库而异;读代码时认准:前向多了一路 $BAx$,反传只进 $A,B$。
五、推理:可以合并,也可以外挂
训练完后两种用法:
| 方式 | 做法 | 延迟 |
|---|---|---|
| 合并(merge) | $W \leftarrow W_0 + BA$(含缩放) | 与原模型相同,无额外分支 |
| 外挂 | 运行时仍算 $W_0x + BAx$ | 略多一次小矩阵乘;方便热插拔多个适配器 |
多任务时,可存多套小 $A,B$,按需加载——比存多份全模小得多。
六、和量化:QLoRA 一句话
第 15 篇 把基座压成 4-bit 省显存;QLoRA 类做法是:
- 基座 $W_0$:量化冻住
- LoRA $A,B$:通常仍用较高精度训练
数学上仍是 $h' = W_0x + BAx$,只是 $W_0$ 的存储变成整数码 + scale。本篇不展开实现。
七、适用边界
| 更适合 LoRA | 更谨慎 / 考虑别的 |
|---|---|
| 风格、格式、语气、领域术语适应 | 要灌入大量新事实且需可靠引用 → 优先 RAG |
| 资源有限、要快速多适配器 | 任务与预训练差极远、低秩不够 → 加大 $r$ 或考虑更重微调 |
| 与指令数据 SFT 搭配 | 安全/对齐目标变化大 → 后面第 19 篇 DPO/RLHF 另一条线 |
LoRA 改的是「怎么映射」,不自动解决「知识库过时」。
八、小结
| 概念 | 要点 |
|---|---|
| 动机 | 全参微调贵、易遗忘 |
| 公式 | $h' = W_0 x + B A x$ |
| 参数 | $O(rd)$ 而非 $O(d^2)$ |
| 初始化 | 常使初始 $\Delta W=0$ |
| 推理 | 可 merge 进 $W_0$ |
| QLoRA | 量化基座 + 高精度小适配器 |
大模型数学速成续篇第 16 篇完。下一篇 Flash Attention——注意力数学不变,但不物化整张 $S$ 矩阵。
系列导航
| 篇号 | 标题 | 状态 |
|---|---|---|
| 15 | 量化:从 FP16 到 INT4 | ✅ |
| 16 | LoRA:低秩适配(本篇) | ✅ |
| 17 | Flash Attention | ✅ |
完整大纲见工作区 docs/MATH_SERIES_OUTLINE_V2.md。









