大模型微调介绍
1. 什么是大模型微调
微调(Fine-tuning)是指在一个预训练好的大语言模型基础上,用特定领域或任务的数据继续训练,让模型学会新的知识或行为模式。
预训练(Pre-training)让模型学会"通用语言能力",微调则让模型学会"做你的特定任务"。打个比方:
- 预训练 = 大学通识教育(理解语言、常识、推理)
- 微调 = 入职后的岗位培训(学会公司的业务流程和规范)
2. 为什么需要微调
虽然 GPT-4、Claude 这类通用大模型已经很强,但在以下场景下,微调仍然不可替代:
| 场景 | 说明 |
|---|---|
| 领域专业化 | 医疗、法律、金融等垂直领域,需要专业术语和准确性 |
| 特定输出格式 | 让模型稳定输出 JSON、特定 XML 结构、固定风格 |
| 私有知识 | 企业内部文档、产品知识,不能上传给第三方 API |
| 风格定制 | 客服话术、品牌语气、人设角色扮演 |
| 降低成本 | 用小模型微调达到大模型的效果,推理成本更低 |
| 数据安全 | 完全在本地运行,敏感数据不出私有网络 |
3. 微调 vs Prompt vs RAG
这三种是定制 LLM 行为的主要手段,各有适用场景:
| 维度 | Prompt 工程 | RAG | 微调 |
|---|---|---|---|
| 修改对象 | 输入提示词 | 检索外挂知识 | 模型权重 |
| 数据规模 | 几个示例 | 大量文档 | 几百到几万条样本 |
| 训练成本 | 无 | 低(仅向量化) | 高(需要 GPU) |
| 推理成本 | 中(提示词长) | 中(拼接上下文) | 低(无额外开销) |
| 知识更新 | 改提示即可 | 改文档库即可 | 需重新训练 |
| 适合场景 | 通用任务、原型 | 知识问答、文档查询 | 风格、格式、私有任务 |
经验法则: 先 Prompt → 不行试 RAG → 还不行再考虑微调。
4. 微调的主要类型
按训练方式分
全参数微调(Full Fine-tuning) - 更新模型的所有参数 - 效果最好,但显存需求大(7B 模型约需 80GB) - 训练数据少时容易过拟合
参数高效微调(PEFT, Parameter-Efficient Fine-Tuning) - 只更新一小部分参数(通常 < 1%) - 代表方法:LoRA、QLoRA、Prefix Tuning、Adapter - 显存占用大幅降低,效果接近全量微调
按训练目标分
SFT(Supervised Fine-Tuning,监督微调)
- 用 (指令, 期望回答) 数据对训练
- 最常见的微调方式
RLHF(Reinforcement Learning from Human Feedback) - 用人类反馈强化学习对齐人类偏好 - 复杂度高,资源需求大
DPO(Direct Preference Optimization) - RLHF 的简化版,直接用偏好数据训练 - 效果接近 RLHF,实现简单很多
5. 微调的完整流程
一次完整的微调通常包含以下步骤:
1. 明确目标 → 解决什么问题?指标是什么?
2. 选择基座模型 → Llama 3、Qwen 2.5、ChatGLM 等
3. 准备数据集 → 收集、清洗、格式化
4. 选择微调方法 → 全量/LoRA/QLoRA
5. 配置训练 → 超参数、batch size、学习率
6. 启动训练 → 监控 loss、显存
7. 评估模型 → 测试集指标、人工评估
8. 部署上线 → 合并权重、量化、推理服务
6. 主流微调框架
入门可以从这几个框架挑选:
| 框架 | 特点 | 适合人群 |
|---|---|---|
| HuggingFace Transformers + PEFT | 最灵活、社区最大 | 想了解原理的开发者 |
| TRL | HuggingFace 出品,专注 SFT/DPO/PPO | 做对齐训练 |
| LLaMA-Factory | 中文友好、配置文件驱动、零代码 | 新手快速上手 |
| Unsloth | 训练速度快 2 倍、显存省 60% | 资源紧张 |
| Axolotl | 配置文件驱动、支持模型多 | 工程化训练 |
本系列教程主要使用 HuggingFace Transformers + PEFT + TRL 组合,这是最灵活、最能学到原理的方式。
7. 硬件需求参考
不同规模模型 + 不同方法的最低显存(仅供参考):
| 模型规模 | 全量微调 | LoRA | QLoRA (4bit) |
|---|---|---|---|
| 1.5B | ~24GB | ~8GB | ~4GB |
| 7B | ~80GB | ~24GB | ~10GB |
| 13B | ~160GB | ~36GB | ~16GB |
| 70B | ~1TB+ | ~160GB | ~48GB |
如果只有一张消费级显卡(如 RTX 4090 24GB),最常见的方案是:7B 模型 + QLoRA。
8. 学习路径建议
本系列教程的推荐阅读顺序:
- 本文:微调介绍 (了解全貌)
- 环境准备 (搭好工具链)
- 数据集准备与处理 (没有数据等于零)
- LoRA 微调 (从最常用的方法入手)
- QLoRA 微调 (消费级显卡友好版)
- 指令微调(SFT) (对话模型的核心)
- DPO 偏好优化 (让模型更"听话")
- 模型评估 (怎么判断微调效果好不好)
- 模型部署 (把微调成果用起来)
- 全参数微调 (进阶,资源充足再玩)
总结
- 微调是在预训练模型基础上用专属数据继续训练,让模型学会特定任务
- 相比 Prompt 和 RAG,微调适合需要稳定风格、私有知识、低推理成本的场景
- LoRA、QLoRA 是消费级显卡上最实用的微调方法
- SFT 是入门起点,DPO 进一步对齐人类偏好
- 推荐工具链:HuggingFace Transformers + PEFT + TRL