微调知识干货笔记:为什么 & 是什么
2026-10-01 · 大模型 · 阅读 18 · 访客 10
一句话理解:预训练 = 通识教育;微调 = 职业培训;RAG = 外挂知识库 + 开卷考试;提示工程 = 提问技巧。 核心结论:微调不是让模型变聪明,而是让预训练模型改行为、改格式、改风格、注入有限领域模式,并对齐偏好。
1. 为什么需要微调?
1.1 预训练模型与领域专家的三个差距
| 差距 | 表现 | 微调能做什么 |
|---|---|---|
| 知识差距 | 不懂领域术语、流程、规范、案例 | 注入有限的领域模式、术语和表达习惯;大量事实与更新知识优先用 RAG |
| 行为差距 | 回答格式、语气、角色不符合要求 | 学会固定格式、风格、角色设定 |
| 对齐差距 | 指令遵循差、拒答策略不对、偏好不符 | 通过 SFT / DPO 等对齐人类偏好 |
1.2 提示工程、RAG、微调的边界
- 提示工程:不改变模型权重,快速试错,但长提示成本高、稳定性差。
- RAG:外挂知识库,适合知识频繁更新、需要溯源,但依赖检索质量,不改变模型行为与风格。
- 微调:直接改变模型参数,让领域行为“长在模型里”,适合格式、风格、任务和偏好对齐。
1.3 微调的核心价值
- 改变行为:格式、语气、术语、角色。
- 注入有限领域模式:领域表达、推理套路、常见流程。
- 提升特定任务:分类、抽取、摘要、问答、代码等。
- 私有化 / 低成本:小模型 + LoRA,本地部署。
- 偏好对齐:更符合专家回答习惯。
2. 微调是什么?
定义:在预训练模型基础上,用领域 / 任务数据继续训练,更新部分或全部参数,使模型适配下游领域或任务。 它不是从零训练,也不是往数据库里写知识。
2.1 预训练 vs 微调
| 维度 | 预训练 | 微调 |
|---|---|---|
| 数据 | 海量无标注文本 | 领域 / 任务标注数据 |
| 目标 | 学语言、世界知识 | 学任务、领域行为、偏好 |
| 成本 | 极高 | 低到中 |
| 参数量 | 全部 | 全部或少量 |
| 结果 | 通才基座 | 领域专才 / 任务专家 |
2.2 训练-推理一致性
微调时使用的 chat template、system prompt、输出格式,必须与推理时保持一致。这是初学者最容易犯的错误之一。
3. 微调分类
3.1 按参数更新方式
- 全参微调:更新所有参数,效果好,成本高,易灾难性遗忘。
- PEFT 参数高效微调:
- LoRA:冻结原权重,训练低秩矩阵。
- QLoRA:4-bit 量化 + LoRA,省显存。
- Adapter:插入小型适配层。
- Prefix / P-Tuning:训练前缀向量。
3.2 按训练信号 / 目标
- SFT 监督微调:指令微调,输入 - 输出对。
- 领域适应:继续预训练 / 无监督,学领域语料。
- 偏好对齐:RLHF、DPO、ORPO,学人类偏好。
- 蒸馏:知识迁移技术,可与 SFT、偏好对齐组合使用,不是与它们并列的同一维度分类。
3.3 按数据
- 监督微调
- 无监督领域适应
- 自监督
4. 核心机制与关键概念
4.1 损失函数与梯度下降
微调通常用交叉熵损失,预测下一个 token,通过梯度下降更新参数。
4.2 灾难性遗忘
微调后,模型旧能力下降。
缓解:混入通用数据、低学习率、LoRA、早停、经验回放。
4.3 过拟合
训练集表现好,验证集 / 新问题表现差。
缓解:增加数据、早停、正则化、Dropout、降低训练轮数。
4.4 LoRA 核心公式
\[ h = Wx + \frac{\alpha}{r}BAx \]
- \(W\):冻结的原模型权重。
- \(A, B\):可训练的低秩矩阵。
- \(\alpha/r\):缩放因子。
- 参数量极少,训练快,显存低。
4.5 QLoRA
- 4-bit 量化原模型 + LoRA。
- 进一步降低显存,消费级 GPU 可跑。
- 适合 Qwen 0.5B / 0.6B 这类小模型。
4.6 数据格式
- 常用 JSONL。
- 字段:
instruction/output,或system/user/assistant。 - 必须使用对应模型的 chat template。
4.7 关键训练配置
- LoRA:rank / alpha / dropout。
- 优化:学习率、epoch、batch size、梯度累积。
- 防过拟合:早停、检查点选择。
- 数据划分:训练 / 验证 / 测试。
- 通用数据配比:建议混入 5% - 20% 通用指令数据,缓解灾难性遗忘。
4.8 评估体系
- 基线对比:微调前 vs 微调后。
- 领域测试集:未参与训练的代表性问题。
- 通用能力回归:防止变“偏科”。
- LLM as Judge:强模型盲评,但需注意偏见,最好结合人工抽查。
- 指标:准确率、格式合规率、人工偏好、通用能力回归。
4.9 部署与迭代
- LoRA 合并、量化推理。
- vLLM / Ollama 等部署。
- 持续迭代:数据 → 训练 → 评估 → 部署 → 反馈。
4.10 安全与合规
- 领域免责声明。
- 有害输出过滤。
- 隐私与数据合规。
- 医疗、法律、金融等领域尤其重要。
5. 什么时候该微调?
默认决策顺序:提示工程 → RAG → 微调。 但这不是绝对:任务明确、格式固定、数据充足时可直接微调;知识更新频繁优先 RAG;风格 / 格式问题优先微调。
适合微调
- 固定格式 / 风格 / 角色。
- 领域术语频繁、流程固定。
- 任务专用,如抽取、分类、摘要。
- 有高质量标注数据。
- 需要私有化、低成本推理。
不适合微调
- 知识频繁更新 → 用 RAG。
- 需要精确溯源 → 用 RAG。
- 数据很少 → 先提示工程。
- 想大幅提升通用推理 → 换更大模型。
6. 微调 vs RAG vs 提示工程
| 维度 | 提示工程 | RAG | 微调 |
|---|---|---|---|
| 改变权重 | 否 | 否 | 是 |
| 知识更新 | 差 | 好 | 差 |
| 行为 / 风格 | 弱 | 弱 | 强 |
| 溯源 | 无 | 强 | 弱 |
| 成本 | 低 | 中 | 中高 |
| 适合 | 快速试 | 知识问答 | 领域专家行为 |
7. Qwen 0.5B / 0.6B 专项
- 容量有限:适合窄领域、单轮、格式化任务。
- 数据质量 > 数量:1k - 5k 高质量样本可能见效,但取决于任务复杂度。
- 方法首选:LoRA / QLoRA。
- 风险:容易过拟合、灾难性遗忘。
- 缓解:混通用数据、早停、低学习率。
- 别期望:复杂推理、长程对话、大量新知识可靠注入。
- 注意:
- Qwen2.5-0.5B-Instruct 与 Qwen3-0.6B 的 chat template 不同。
- Qwen3 有 thinking 模式,微调时需决定是否保留、是否训练思考过程。
- LoRA target modules 通常包括
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj。 - Qwen 小模型对系统提示敏感,领域专家设定最好写入训练数据。
- 建议保留 5% - 20% 通用指令数据。
8. 常见误区
- 微调 = 知识库:错。微调改行为,RAG 管知识。
- 数据越多越好:错。质量、多样性、准确性更重要。
- 全参一定优于 LoRA:不一定。小模型 + LoRA 性价比极高。
- 一次微调解决所有问题:错。需要迭代评估。
- 只训练不评估:错。必须 A/B、人工、LLM Judge。
- 忽略通用能力回归:微调后可能变“偏科”。
- 忽略训练-推理一致性:chat template、system prompt、输出格式必须对齐。
- 忽略安全合规:领域专家模型必须考虑免责声明、有害输出过滤和隐私合规。
9. 一页速记
- 为什么:补有限知识、改行为、对齐偏好。
- 是什么:用领域数据继续训练,更新部分 / 全部参数。
- 怎么做:目标 → 数据 → 基座 → PEFT → 训练 → 评估 → 迭代 → 部署。
- 小模型:窄领域、高质量数据、LoRA / QLoRA、早停、混通用数据。
- 不能做:实时知识、精确溯源、复杂推理、通用能力大幅提升。
- 一句话总结:微调不是教模型变聪明,而是让它从通才变成你领域的专才。