跳到主要内容

LoRA 与 QLoRA

本节定位

上一节已经把“为什么不是所有任务都该全量微调”讲清楚了。
这一节继续回答一个非常关键的问题:

如果不想重训整个模型,那到底该怎样低成本改它?

LoRA 和 QLoRA 正是最重要的两条现实答案。

学习目标

  • 理解 LoRA 的低秩增量直觉
  • 理解 QLoRA 在 LoRA 基础上又多做了什么
  • 看懂一个最小矩阵增量示意
  • 建立何时考虑 LoRA、何时考虑 QLoRA 的实用判断

一、为什么 LoRA 会变得这么重要?

因为全量微调在大模型上往往太贵:

  • 参数太多
  • 显存太高
  • 训练和保存成本都高

于是人们自然会问:

能不能不改整个模型,只改一小部分真正有用的东西?

LoRA 就是在回答这个问题。


二、LoRA 最核心的直觉是什么?

2.1 不直接改整个权重矩阵

假设原来的权重矩阵是:

W

LoRA 的思路是:

不直接训练 W,而是学习一个增量 ΔW

然后实际使用:

W + ΔW

2.2 为什么叫“低秩”?

因为这个增量不是直接学一个完整大矩阵,而通常写成:

ΔW = A @ B

其中:

  • AB 比原矩阵小很多

这就是“低秩”的核心来源。


三、一个最小 LoRA 矩阵示意

import torch

W = torch.randn(8, 8)
A = torch.randn(8, 2)
B = torch.randn(2, 8)

delta = A @ B
W_new = W + delta

print("W shape :", W.shape)
print("delta shape :", delta.shape)
print("W_new shape :", W_new.shape)

3.2 这段代码在教什么?

它在教你:

  • LoRA 不重训整个权重
  • 而是训练一个更小的增量结构

这就是它能省资源的根本原因。


四、为什么这能显著降低训练成本?

因为原始大矩阵如果全量训练,代价很高。
而低秩分解后的可训练部分小很多。

所以 LoRA 的核心工程价值可以先记成:

用更少的训练参数,换取足够好的任务适配能力。

这也是它为什么在实际项目中这么受欢迎。


五、QLoRA 又多解决了什么问题?

5.1 仅有 LoRA,为什么有时还不够?

即使只训练小增量参数,基础模型本体本身还是很大。
模型一加载进来,显存压力依然很高。

5.2 QLoRA 的关键点

它在 LoRA 的基础上又做了一步:

把基础模型量化到更低精度。

也就是说:

  • 基础模型更省内存
  • 增量适配层仍然可训练

5.3 一个最小直觉示意

config = {
"base_model_precision": "4bit",
"trainable_part": "LoRA adapters",
"goal": "在更低显存下做微调"
}

print(config)

这个示意最重要的意思是:

  • LoRA:主要省训练参数
  • QLoRA:在此基础上进一步省基础模型占用

六、LoRA 和 QLoRA 分别更适合什么时候?

6.1 LoRA 更适合

  • 资源还可以
  • 不一定要把显存压到极限
  • 想先快速做参数高效微调

6.2 QLoRA 更适合

  • 显存很紧
  • 想在更小机器上跑更大模型

也就是说:

QLoRA 更像“资源受限场景下的现实工程方案”。


七、为什么说它们改变了微调门槛?

在 LoRA / QLoRA 普及前,很多人一提大模型微调会直接想到:

  • 只有大团队能做
  • 机器要求极高

而它们的重要意义正在于:

把原本门槛很高的事情,拉到了更多团队和开发者可尝试的范围。

这不是小优化,而是工程可达性的变化。


八、最常见的误区

8.1 以为 LoRA / QLoRA 是“无代价增强”

它们很强,但并不是完全无代价。

8.2 以为上了 QLoRA 就不需要考虑资源了

只是更轻,不是无限轻。

8.3 只记方法名,不理解到底在改什么

真正要记住的是:

  • LoRA:学增量
  • QLoRA:学增量 + 基础模型量化

九、小结

这一节最重要的不是背缩写,而是理解:

LoRA 用更少参数去做任务适配,QLoRA 则在此基础上进一步把大模型微调的资源门槛压低。

它们之所以重要,不只是因为“方法新”,而是因为它们真的改变了大模型微调的现实可行性。


练习

  1. 用自己的话解释:为什么 LoRA 不是“重训整个矩阵”?
  2. 为什么说 QLoRA 的关键新增点在于基础模型量化?
  3. 如果你显存有限但又想试更大模型,为什么 QLoRA 往往更值得优先考虑?
  4. 用自己的话总结:LoRA 和全量微调最本质的差别是什么?