
🧠 记忆锚点:主干 W 不动,用 A、B 两个小矩阵学习 ΔW;低秩假设把大更新变成小增量。
💡 答案要点
LoRA = Low-Rank Adaptation(低秩适配)
核心思想: 不直接修改原始权重,而是添加一个低秩矩阵来捕获变化。
数学原理:
原始权重:W ∈ R^(d×k)
全量微调:W' = W + ΔW(ΔW 也是 d×k)
LoRA 微调:W' = W + BA
其中:
- B ∈ R^(d×r)
- A ∈ R^(r×k)
- r << min(d, k)(秩很小,如 r=8)
参数量对比:
全量:d × k
LoRA:d × r + r × k ≈ r(d + k)
例如:d=4096, k=4096, r=8
全量:16M 参数
LoRA:65K 参数(减少 250 倍)工作流程:
输入 → 原始层(冻结)→ 输出1
↓
→ LoRA层(可训练)→ 输出2
↓
输出 = 输出1 + 输出2关键超参数:
| 参数 | 说明 | 典型值 | 影响 |
|---|---|---|---|
| r(秩) | 低秩矩阵的维度 | 4-64 | 越大效果越好,但参数越多 |
| α(缩放) | 缩放因子 | 16-32 | 控制 LoRA 的影响强度 |
| target_modules | 应用 LoRA 的层 | q_proj, v_proj | 越多效果越好,但参数越多 |
面试话术:
示例表达(仅在能用本人经历或可复现实验佐证时使用): "LoRA 的本质是用两个小矩阵的乘积来近似大矩阵的更新。就像用压缩格式存储变化。我在项目中用 LoRA r=8 微调 13B 模型,只需要 20GB 显存,而全量微调需要 80GB。"
📚 参考:LoRA: Low-Rank Adaptation of Large Language Models(原论文)