全参数微调要更新整网权重,贵且易伤通用能力。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
2
3
4
5
x ──► W0 ──► (+) ──► h'
│ ▲
│ │
└──► A ──► B ──┘
↑ 只训练 A、B

三、参数量手算

设 $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