中 困难
LoRA微调原理#
一句话答案#
LoRA 冻结原始权重,在 Attention 层旁路添加低秩矩阵(A×B)训练,参数量减少 99%+,QLoRA 再加 4bit 量化。
核心要点
原理: W = W₀ + ΔW = W₀ + A×B(A: d×r, B: r×d, r<<d)
缩放因子 alpha: 实际更新是 ΔW = (α/r)·B·A,alpha 控制旁路对原权重的影响幅度,常见做法是固定 alpha=2r 或单独作为超参调
优势: 训练参数量极小 / 不改原始模型 / 可合并推理零开销
QLoRA: LoRA + 4bit量化,进一步减少显存
面试回答(2分钟版)
LoRA全称Low-Rank Adaptation,核心思想是冻结预训练模型的原始权重W0不动,在Attention层的权重矩阵旁边加一条低秩旁路。具体来说,权重更新量ΔW被分解为两个小矩阵的乘积AB,其中A的维度是dr,B是rd,r远小于d(通常r=8或16),这样可训练参数量减少99%以上,一张消费级显卡就能微调几十亿参数的模型。训练完成后,旁路矩阵可以合并回原始权重(W=W0+AB),推理时没有任何额外开销,这是LoRA相比Adapter等方法的显著优势。QLoRA在此基础上更进一步,把原始模型量化到4bit存储,只有LoRA旁路用正常精度训练,显存需求再降一个量级。实际应用中,LoRA适合领域适配和指令微调,比如让通用模型适配医疗、法律等垂直领域的表达风格和专业知识。
追问与易错
追问方向:
- LoRA 的秩 r 怎么选?r=8 和 r=64 效果差多少? → r=8 适合简单任务(参数量仅全量的 0.1%),r=64 适合复杂任务。通常从 r=16 开始,在验证集上对比选最优
- LoRA 和全量微调的效果差距大吗?什么时候必须全量微调? → 大多数任务 LoRA 能达到全量 90-95% 的效果。数据量大(>10 万条)且任务与预训练差异大(如新语言)时才需全量
- QLoRA 的量化会不会影响微调质量?和标准 LoRA 比怎样? → QLoRA 用 4-bit 量化基座 + LoRA 在量化上训练,质量损失通常 <2%,但能在单张消费级 GPU 上微调 65B 模型
- 什么时候该用微调,什么时候 Prompt 工程就够了? → 数据量少(<1000 条)先用 Prompt + Few-shot;有大量标注数据且需要特定领域知识或风格才微调。微调成本高但效果上限也高
易错点:
- ❌ 混淆 LoRA 和 Prompt Tuning → LoRA 修改模型权重(低秩分解),Prompt Tuning 只在输入前加可训练向量,不改权重
- ❌ 认为微调一定比 Prompt 工程效果好 → 数据量少(<1000 条)时微调容易过拟合,Prompt 工程 + Few-shot 可能更稳定
- ❌ 忽略微调数据质量 → 数据质量比数量重要,100 条高质量标注 > 10000 条噪声数据