微调与 LoRA
提示词工程不改变模型参数,微调(Fine-tuning)恰恰相反:在已有模型基础上,用特定数据再训练,让模型更适合某个具体任务或场景。它训练的是模型的参数——这是与提示词工程最本质的区别。但「训练」二字听起来昂贵,LoR…
提示词工程不改变模型参数,微调(Fine-tuning)恰恰相反:在已有模型基础上,用特定数据再训练,让模型更适合某个具体任务或场景。它训练的是模型的参数——这是与提示词工程最本质的区别。但「训练」二字听起来昂贵,LoRA(Low-Rank Adaptation)的出现改变了这一切:只训练少量低秩参数,就把微调成本压缩了几个数量级,让「给模型定制」从大厂特权变成了个人开发者也能用的日常手段。这一章讲清楚微调解决什么问题、LoRA 为什么有效、以及微调与 RAG、提示词的分工。
1. 演进脉络:从全量微调到 LoRA
1.1 预训练-微调范式(2018-2020)
Transformer 确立后,行业形成标准范式:先在海量文本上预训练(学会语言与知识,成本极高,只有大厂/研究机构能做),再针对具体任务微调(用小数据小算力适配,普通团队可做)。
微调的价值在于行为塑造:让模型学会特定输出格式、特定领域风格、特定工具调用协议——这些是提示词难以稳定达成的。
1.2 全量微调的成本危机
经典微调的问题是:所有参数都要更新。以 70B 模型为例,全量微调需要更新 700 亿参数——显存、算力、数据量要求都极高,而且每个任务都要存一份完整副本。这让微调成为「大公司游戏」。
除了算力成本,微调还有两个让工程团队头疼的痛点:
- 迭代周期长:准备数据集、清洗、训练、评测,一个完整的微调周期以周甚至月计,很难跟上业务变化
- 基座模型迭代快:模型厂商更新太快,你可能刚基于旧版基座调完,新版基座在你的目标领域已经做得更好——微调成果可能在新模型发布时被瞬间归零。这也是很多人转向 RAG(第 04 章)的原因:知识不进参数,底座模型随便换
1.3 LoRA 登场(2021):参数高效微调
2021 年,《LoRA: Low-Rank Adaptation of Large Language Models》给出一个优雅的洞察:
微调时的权重更新,其实落在一个低秩子空间里——不需要更新全部参数,只需要学一个小得多的「增量」。
数学直觉:原始权重矩阵 W 保持不变,在旁边加一个低秩增量 BA,其中 B、A 是两个小矩阵(秩 r 远小于 d)。训练时只更新 A、B,参数量从 d×d 降到 2×d×r——可训练参数通常只有全量微调的 0.1%~1%。
LoRA 带来三重收益:
- 成本骤降:单卡即可微调数十亿参数的模型
- 即插即用:适配器是独立小文件,一个底座模型可叠加多个 LoRA,按需切换
- 质量接近:在绝大多数任务上与全量微调差距很小
1.4 后续演化(2023-2026)
- QLoRA(2023):把底座模型量化到 4-bit 再训练 LoRA,消费级显卡(如 24GB)就能微调 70B 模型
- LoRA 成为事实标准:今天的开源社区微调几乎默认 LoRA/QLoRA,全量微调反而成了少数派
- 参数高效微调家族还有 Adapter、Prefix-Tuning 等,但 LoRA 凭借简单与效果胜出
2. 核心概念:微调到底在调什么
2.1 三个层次
| 层次 | 方法 | 效果 |
|---|---|---|
| 指令微调(SFT) | 用「指令-回答」对训练 | 让模型学会听指令、对齐格式 |
| 对齐微调(RLHF/DPO) | 基于人类偏好训练 | 让输出更符合人类期望 |
| 领域微调 | 用领域数据训练 | 塑造领域风格与知识 |
2.2 关键认知:微调改变的是行为,不只是知识
一个常见误区是「用微调给模型灌知识」。实际上微调主要改变行为模式(格式、风格、协议、说话方式),知识增量远不如 RAG 高效——因为知识是「事实检索」,而微调是「概率重塑」,塞进去的事实既贵又容易遗忘(灾难性遗忘问题)。
什么时候该用微调:
- 输出格式必须 100% 稳定(如特定 JSON schema、特定代码风格)
- 需要模仿特定风格/口吻(如客服话术、专业报告)
- 需要教会模型特定工具调用协议
- 提示词工程已逼近上限,需要「再进一步」
什么时候不该用微调: 知识类需求(用 RAG)、通用任务(先试提示词)、数据不足或数据质量没把握。
3. LoRA 的工程直觉:一个比喻
把全量微调想象成「重新装修整栋楼」,LoRA 则是「在墙上加一层可拆装的隔板」——楼的结构(预训练知识)分毫不动,隔板(低秩适配器)决定了这层空间的表现。隔板可以随时更换(换任务),也可以同时叠好几层(多任务复用底座)。
工程上的实际意义:
- 一个底座,N 个适配器:不同客户/场景各自一个 LoRA 文件,切换零成本
- 即插即用:推理时加载适配器即可,不需要部署多个完整模型
- 可组合:多个 LoRA 可以合并(LoRA fusion),也可以按权重混合
4. 现状与趋势(2026)
- 开源微调生态成熟:llama.cpp、vLLM、LoRA 训练框架(如 Hugging Face PEFT)让「本地微调 + 本地推理」成为个人开发者标配
- 微调 + Agent 结合:为 Agent 微调「工具调用协议」和「系统提示词遵循度」成为新热点——让模型更听话、更少幻觉式调用工具
- 蒸馏与合成数据:用强模型生成训练数据(蒸馏)微调小模型,是「用小模型达到大模型效果」的主流路线
5. 一个最小微调流程(把概念落到动作)
不深入框架细节,一次像样的微调至少包含五步(用 LoRA/QLoRA 时总成本可控):
- 准备数据:收集几百到几千条高质量样本,覆盖目标场景的边界情况——数据质量决定微调上限,是全部工作里最值得投入的一步
- 格式化:按模型的训练格式组织(如「指令-回答」对),指令微调(SFT)最常用
- 训练:用 PEFT/LoRA 在底座模型上训练,关注训练损失与过拟合信号
- 评测:在与训练集隔离的测试集上对比微调前后输出——只凭训练集上的表现下结论是新手最常见错误
- 部署对比:与「微调前 + 提示词」方案做 AB 对比,确认提升真实存在——如果提示词已经够用,微调的收益可能不值得
一个关键提醒:微调是「行为重塑」,评测必须围绕行为(格式、风格、遵循度)设计,而不是拿知识问答当测试——知识类的提升应该靠 RAG(第 04 章)。
延伸阅读
- 原始论文:《LoRA: Low-Rank Adaptation of Large Language Models》(2021)
- 《QLoRA: Efficient Finetuning of Quantized LLMs》(2023)——消费级显卡微调大模型
- 深度版:Agent 核心 04 · 预训练、RLHF 与采样(RLHF 与对齐的完整机制)