- Published on
什么是大模型微调
- Authors

- Name
- 祝你好运
什么是大模型微调,大模型微调的原理是什么,大模型微调的步骤是什么,大模型微调的工具是什么,大模型微调的案例是什么,大模型微调的优缺点是什么。
什么是大模型微调
大模型微调是指在预训练大模型的基础上,通过在特定任务上进行有监督的训练,使得模型能够更好地适应特定任务的微调。用一句更好理解的话描述就是:给一个通用性的员工培训(少量培训,不是从头到尾的培训),让员工能够更好地适应特定任务(注意是特定任务)。
举例说明
约束输出格式
比如我的输入都是跟病假有关系的,我期望全部是以下格式的输出:
{
"intent": "sick_leave",
"country_code": "CN"
}
Prompt 已经写得很长,想要告诉大模型,按照这种格式回答,但模型仍然偶尔:
- 多输出解释
- 字段名称写错
- 枚举值不稳定
- JSON 格式不合法
这时可以通过大量正确样例微调,让模型更习惯这种输出格式。微调之后,模型就会按照这种格式回答。
节省输入prompt的长度
某个任务重复量非常大,而且规则难以用代码写清楚
例如每天处理几十万条客服消息,需要分类为:
- 退款问题
- 物流问题
- 账号问题
- 欺诈风险
- 商品质量
- 其他
你可以每次都写一个复杂 Prompt,但如果任务非常固定、样本很多,微调后可能:
- Prompt 更短
- 分类更稳定
- 调用成本更低
- 延迟更低
- 小模型也能达到不错效果
这种属于典型的任务型微调。
大模型微调的原理
| 项目 | 预训练 | 微调 |
|---|---|---|
| 起始模型 | 随机参数或早期模型 | 已训练好的基础模型 |
| 目标 | 学习通用语言能力 | 适配特定任务或行为 |
| 数据量 | 极大 | 较小 |
| 数据形式 | 大量原始文本 | 输入—理想输出样本 |
| 更新参数 | 通常全参数 | 全参数或 LoRA |
| 学习率 | 相对更大、调度复杂 | 通常更小 |
| 训练时间 | 很长 | 相对较短 |
| Loss | 常见为全 Token 预测 | 常只训练回答部分 |
| 风险 | 训练失败、能力不足 | 过拟合、遗忘、风格偏移 |
微调有哪些主要方式
这里只说下面常见的3中,其中最常用的是SFT。
1. SFT:监督微调
Supervised Fine-tuning。
数据形式:
输入 → 标准答案
例如:
{
"messages": [
{
"role": "user",
"content": "将用户的问题分类为病假、年假或福利"
},
{
"role": "assistant",
"content": "{\"intent\":\"sick_leave\"}"
}
]
}
这是最常见、最容易理解的微调。
2. Preference Fine-tuning
数据不是只有一个答案,而是:
输入 + 更好的答案 + 较差的答案
例如:
问题:员工可以休多少天病假?
答案 A:你可以休10天。
答案 B:病假政策取决于国家,请先提供所在国家。
Preferred:B
模型学习人类更偏好哪种答案。
目前一些平台把 DPO 作为独立的微调方式;OpenAI 的 Fine-tuning API 当前列出的方式包括 supervised、DPO 和 reinforcement。
3. Reinforcement Fine-tuning
不是直接提供固定标准答案,而是提供评分器:
模型生成答案
↓
Grader 评分
↓
根据奖励优化模型
适合:
- 有明确评分标准;
- 答案不唯一;
- 可以自动判断质量;
- 推理或决策型任务。
训练参数的选取
我们知道大模型训练其实就是调参的过程,那微调也是调参数,但具体调哪些参数还是有不同做法的,一般我们会遇到下面3种:
- Full Fine-tuning
- LoRA
- QLoRA
Full Fine-tuning
更新模型全部参数。
特点:
- 显存和计算量大;
- checkpoint 体积大;
- 对资源要求高;
- 可以实现较大程度的模型改变。
LoRA
不直接更新全部原始权重,而是在部分线性层旁边增加低秩矩阵:
原始权重 W
+
低秩更新 ΔW = A × B
训练时主要更新 A 和 B。
优势:
- 训练参数少;
- 显存需求低;
- 训练更快;
- Adapter 文件较小;
- 可以为同一个基础模型保存多个 LoRA。
Google 的 Gemma 文档把 LoRA 列为参数高效微调方法,并指出它通过只更新部分参数降低计算和内存要求。
QLoRA
可以简单解释为:
先把基础模型量化,再在量化模型上训练 LoRA Adapter。
优势是进一步减少显存使用。
博客不必推导矩阵公式,但应该说明:
Full Fine-tuning:改整个模型 LoRA:训练少量附加参数 QLoRA:量化基础模型 + LoRA