微调(Fine-tuning):让"通才"变成"专家"
大模型什么都懂一点,但你让它处理你们公司的合同、你们医院的病历,它就力不从心了。微调,就是给它上"岗前培训"。
一句话定义
微调(Fine-tuning)是指在预训练模型的基础上,用特定领域或任务的数据继续训练,让通用模型适应特定场景的过程——就像让一个大学毕业生接受岗位培训后胜任具体工作。
通俗类比:从大学到岗位
预训练(Pre-training)= 上大学
→ 学了大量通用知识(语文、数学、历史、物理...)
→ 什么都知道一点,但什么都不是专家
→ 训练成本极高(相当于4年本科)
微调(Fine-tuning)= 岗前培训
→ 在通用知识基础上,学习特定工作的技能
→ 比如学医的去当住院医师,学法的去律所实习
→ 训练成本低(几个月 vs 四年)
→ 毕业后立刻能上手工作
为什么不从头训练?
从头训练一个医疗问答模型:
需要数据:几十 TB 的文本
需要算力:几千张 A100 运行数月
需要成本:数亿人民币
需要时间:6-12 个月
用预训练模型 + 微调:
需要数据:几千到几万条医疗问答对
需要算力:1-8 张 A100 运行几小时到几天
需要成本:几百到几万人民币
需要时间:几天到一周
效果:微调后的模型在医疗领域可能比从头训练的更好
因为它已经"读"过整个互联网,只是需要"聚焦"到医疗领域
微调的主要类型
1. 全量微调(Full Fine-Tuning)
更新模型的所有参数
预训练模型的每一个参数都参与训练
→ 效果最好,但成本高
→ GPT-3 175B 全量微调需要多张A100运行数天
适用:算力充足、效果要求极高的场景
2. 指令微调(Instruction Tuning / SFT)
用"指令-回答"格式的数据微调
训练数据格式:
指令:"请把下面的句子翻译成英文"
输入:"今天天气真好"
回答:"The weather is great today"
指令:"总结以下文章的要点"
输入:[一篇文章]
回答:[要点总结]
这是让模型从"续写机器"变成"对话助手"的关键步骤
ChatGPT 就是指令微调后的 GPT-3.5
(具体来说,还经过了 RLHF,见词汇专栏 W05)
3. 参数高效微调(PEFT)
只更新少量参数,冻结大部分参数
代表方法:LoRA(本专栏 P09)
全量微调:更新 1750亿个参数
LoRA微调:只更新 1800万个参数(万分之一)
→ 成本降低万倍
→ 效果接近全量微调
→ 一个基础模型可以"热插拔"多个任务的适配器
4. 领域自适应微调(Domain Adaptation)
用特定领域的大量无标注文本继续预训练
基础模型 → 继续读法律文书/医学论文/金融报告 → 领域模型
不需要精心标注的数据,只需要大量领域文本
成本低,适合作为第一步
微调 vs 其他定制方法
| 方法 | 数据需求 | 成本 | 效果 | 适用场景 |
|---|---|---|---|---|
| Prompt Engineering | 零数据 | 零成本 | 一般 | 简单任务、快速验证 |
| RAG(检索增强) | 需知识库 | 中等 | 好 | 需要事实准确性的场景 |
| 微调(SFT) | 需标注数据 | 中高 | 很好 | 需要特定风格/格式/能力 |
| RLHF | 需人类反馈 | 很高 | 最佳 | 对齐人类偏好 |
实际应用中,这些方法经常组合使用:
常见组合方案:
方案A(最简单):
Prompt Engineering + RAG
→ 不微调模型,只通过提示词和外部知识库增强
方案B(中等):
微调(SFT)+ RAG
→ 微调让模型学会特定格式,RAG提供事实准确性
方案C(最全面):
微调(SFT)+ RLHF + RAG
→ 微调 + 对齐 + 知识库
→ ChatGPT 大致就是这个路线
微调常见问题
1. 灾难性遗忘
问题:微调后,模型忘了之前学会的东西
微调前:"法国的首都是什么?" → "巴黎" ✓
微调后(只用医疗数据):"法国的首都是什么?" → "我不知道" ✗
解决:
用 LoRA 等参数高效方法(原始权重不变)
在微调数据中混入一部分通用数据
用更小的学习率
2. 过拟合
问题:微调数据太少,模型"背答案"而不是"学规律"
微调数据:100条医疗问答
训练集准确率:99%(背下来了)
新问题准确率:30%(完全不会泛化)
解决:
增加训练数据
用 LoRA 减少可训练参数
加入正则化
3. 数据质量决定一切
垃圾进 → 垃圾出
微调数据质量差:
- 答案不准确 → 模型学会说错话
- 格式不统一 → 模型输出混乱
- 有偏见 → 模型强化偏见
微调数据质量好:
- 答案准确专业 → 模型变成专家
- 格式统一 → 模型输出规范
- 多样性好 → 模型泛化能力强
经验法则:微调数据的质量 > 数量
1000条高质量数据 > 10000条低质量数据
微调的实际应用案例
| 场景 | 微调方式 | 效果 |
|---|---|---|
| 医疗问答 | 用医院历史问答数据 SFT | 医学术语准确率大幅提升 |
| 代码助手 | 用优质代码库 SFT | 代码生成质量和风格统一 |
| 客服机器人 | 用历史客服对话 SFT | 回答更符合品牌调性 |
| 法律文书 | 用法律文书数据 SFT | 法律术语和格式准确 |
| AI绘画风格 | 用特定风格图片集 LoRA | 生成指定风格图像 |
常见误区
| 误区 | 真相 |
|---|---|
| “微调能让模型变聪明” | ⚠️ 微调是让模型"聚焦"到特定领域,不是增加通用智力 |
| “数据越多越好” | ❌ 数据质量和多样性比数量重要 |
| “微调后就不用提示词了” | ❌ 微调+好提示词的效果远大于只用微调 |
| “微调可以注入知识” | ⚠️ 微调主要改变模型的行为方式,注入知识更推荐用 RAG |
易混淆词辨析
- 微调 vs 预训练:预训练学"通用知识",微调学"专业技能"(详见词汇专栏 W06)
- 微调 vs RAG:微调改变模型的"行为方式",RAG 给模型"外部知识库"(详见词汇专栏 W03)
- 微调 vs LoRA:LoRA 是微调的一种高效方法,不是独立概念(详见本专栏 P09)
一句话总结
如果预训练是让 AI 上完"大学",微调就是让它参加"岗前培训"——用少量特定领域的数据,让通才变成专家。微调 + RAG + 好提示词,是让大模型真正为你所用的"三板斧"。
延伸阅读
- 词汇专栏 W06:预训练 vs 微调 —— 一对常被混淆的核心概念
- 词汇专栏 W03:RAG —— 和微调互补的知识增强方案
- 论文解读 P09:LoRA —— 万分之一成本的微调方案
标签:#AI术语 #微调 #Fine-tuning #SFT #预训练 #LoRA #大模型
:让“通才“变成“专家“&spm=1001.2101.3001.5002&articleId=160123320&d=1&t=3&u=5634dd693cb341f5b1c5afde480c67d4)
3651

被折叠的 条评论
为什么被折叠?



