微调基础与常见范式(小白友好版)
目录
- 微调到底是什么
- 先问自己:微调 vs Prompt vs RAG vs 长上下文
- 什么时候应该微调
- 常见微调范式对比
- 对齐与偏好优化:RLHF / DPO / GRPO
- 微调项目全流程
- 微调后的前端适配重点
微调到底是什么
微调(Fine-tuning)可以理解成“在通用模型基础上做定向训练,让它更擅长你的场景”。
和 Prompt 不同,微调会改变模型参数,因此会对风格、格式稳定性、任务表现产生长期影响。
一个直观例子:
- 只用 Prompt:每次都要写很长规则,输出仍可能不稳定
- 做过微调:模型天然更懂你的任务模板,提示词可更短,结果更稳
先问自己:微调 vs Prompt vs RAG vs 长上下文
面试高频题“什么情况下才微调?”。正确答案是“微调通常是最后手段”,先按下表排除:
| 手段 | 解决什么 | 不解决什么 | 成本 |
|---|---|---|---|
| Prompt / 上下文学习 | 行为、格式、风格的快速调整 | 模型本身没有的知识 | 最低 |
| RAG(检索增强) | 注入最新/私有知识、可追溯引用 | 改变模型的“说话方式/能力” | 低-中 |
| 长上下文 | 一次性塞入大量资料 | 成本随输入线性涨、中间信息易丢 | 中(按 token) |
| 微调 | 固化风格/格式/特定任务能力、缩短 Prompt | 注入频繁变化的知识(会过期) | 高(数据+训练+运维) |
经验法则(可直接当答案):
- “模型不知道某些事实”→ 用 RAG,别用微调(知识会变,微调进去就过期)。
- “模型不会按我要的风格/格式稳定输出”→ 微调(或先把 Prompt + 结构化输出做到位)。
- 顺序:Prompt/结构化输出 → RAG → (还不行再)微调。先把前两步榨干。
什么时候应该微调
一般建议满足以下条件再考虑微调:
- 任务固定且重复(如客服分类、结构化抽取)
- 你有一定规模高质量标注数据
- Prompt、RAG 与工作流优化已经做到一定水平,仍不达标
- 需要蒸馏:把大模型能力“教给”小模型,用更便宜的小模型上线
如果任务变化快、数据少、预算紧,通常先用 Prompt + RAG 更划算。
常见微调范式对比
- SFT(监督微调):最常见,使用“输入-期望输出”样本对训练,教模型“这种输入该这样答”。
- LoRA / QLoRA(PEFT 参数高效微调):只训练少量“增量参数”,成本极低。QLoRA 在 LoRA 基础上把基座模型量化(如 4-bit) 加载,单张消费级 GPU 也能微调大模型,是中小团队主流。
- 全量微调(Full Fine-tuning):更新所有参数,资源消耗最大,通常是大厂或特定高价值场景。
- 持续预训练(Continued Pre-training):在大量领域语料上继续预训练,注入领域“底层知识/语感”(如医疗、法律),比 SFT 更重。
对齐与偏好优化:RLHF / DPO / GRPO
SFT 之后,为了让模型输出更符合人类偏好(更有用、更安全、更符合特定风格),还有一类“偏好对齐”方法,面试能说清楚很加分:
- RLHF(基于人类反馈的强化学习):先训练一个“奖励模型”学习人类偏好,再用强化学习(PPO)优化语言模型。效果好但流程复杂、不稳定。
- DPO(直接偏好优化):跳过显式奖励模型,直接用“好答案 vs 坏答案”成对数据优化,更简单稳定,已成为开源社区主流偏好对齐方法。
- GRPO 等面向推理的 RL:DeepSeek-R1 等推理模型用的强化学习算法,用“答案是否正确”等可验证奖励训练模型先思考再回答(见 LLM原理 - 推理模型机制)。
- RLAIF:用 AI(而非人)生成偏好标注,降低人工成本。
一句话串起来:预训练给“知识与语言能力”→ SFT 教“按指令做事”→ 偏好对齐(RLHF/DPO)调“符合人类喜好”→ 面向推理的 RL(GRPO)练“会推理”。
微调项目全流程
微调后的前端适配重点
- 输出格式可能更稳定:可减少前端兜底复杂度
- 响应延迟可能变化:要重新测 TTFT 和总耗时
- 版本切换要可回滚:前端保留模型版本可见性