主题
🎓 LoRA 微调原理
全参数微调要几十GB显存,LoRA 只要几GB——这就是门槛降低的秘密
什么是微调
微调 = 拿预训练好的大模型 + 用你的数据再训练一下 → 变成你的专属模型。
比如拿 Qwen2.5-7B,用 500 份合同审查数据微调,变成"法眼合同审查专用模型"。
全参数微调 vs LoRA
全参数微调
训练时更新模型的所有参数。7B 模型有 70 亿个参数,全参数微调需要:
- 显存:约 60GB+(模型 + 优化器状态 + 梯度)
- 至少 A100 80GB 级别
LoRA(Low-Rank Adaptation)
只训练一小部分额外参数,原始模型参数冻结不动。
| 全参数微调 | LoRA | |
|---|---|---|
| 可训练参数量 | 70亿 | 几百万(约 0.1%) |
| 显存需求(7B) | 60GB+ | 16GB |
| 训练速度 | 慢 | 快 |
| 效果 | 理论上限高 | 多数场景够用 |
| 存储 | 保存完整 14GB 模型 | 只保存几 MB 的 LoRA 权重 |
LoRA 怎么工作的
不改变原模型参数,在注意力层的权重矩阵旁"挂"两个小矩阵 A 和 B:
原权重: W (冻结不动)
LoRA: W + A × B (只训练 A 和 B)A 和 B 加起来只有原权重的千分之一大小,所以训练快、显存省。
rank 是什么
LoRA 的 rank(秩)控制 A 和 B 的大小:
| rank | 可训练参数 | 效果 |
|---|---|---|
| 4 | 极少 | 简单任务够用 |
| 8 | 较少 | 推荐值 |
| 16 | 中等 | 复杂任务 |
| 64 | 较多 | 接近全参数微调 |
rank 越高效果越好,但训练越慢。一般从 rank=8 开始试。
QLoRA:更省显存
QLoRA = LoRA + 4-bit 量化。原模型用 4-bit 存储,再加上 LoRA 训练。
| LoRA | QLoRA | |
|---|---|---|
| 显存需求(7B) | 16GB | 8GB |
| 训练速度 | 较快 | 稍慢(量化有开销) |
| 效果 | 好 | 略差但够用 |
一句话:显卡 24GB 以上用 LoRA,16GB 以下用 QLoRA。
什么时候微调有用
- ✅ 垂直领域知识(法律、医疗、金融)—— 训练自己的术语和规则
- ✅ 特定风格(客服语气、品牌调性)—— 比写 prompt 更稳定
- ✅ 小语种或方言 —— 预训练模型覆盖不好的语言
- ❌ 通用知识问答 —— 微调不如直接换更强的基础模型
- ❌ 数据不足 100 条 —— 太少学不到东西
微调 vs RAG vs Prompt
| Few-shot Prompt | RAG(检索增强) | LoRA 微调 | |
|---|---|---|---|
| 实施难度 | ⭐ | ⭐⭐ | ⭐⭐⭐ |
| 知识注入 | 上下文长度限制 | 检索+生成 | 内化到模型 |
| 准确性 | 中 | 高(有引用源) | 高 |
| 成本 | 每次推理消耗 token | 中等 | 一次训练持续受益 |
| 场景 | 临时问答 | 知识库问答 | 专业领域专属模型 |
风哥的法眼项目——合同审查需要理解法律术语和审查规则——最适合用微调。
🎯 本章要点
- LoRA 只训练千分之一参数,7B 模型微调只需 16GB 显存
- QLoRA 再加 4-bit 量化,8GB 显存就能微调 7B 模型
- rank 控制 LoRA 参数量,从 8 开始调,越高效果越好但越慢
- 微调适合专业领域+有足够标注数据;数据不足用 RAG 更合适
加载练习题中...