AI 通关攻略 · 第 7 关 | Fine-tuning:如何把知识"训练"进 AI 大脑

3 阅读7分钟

故事从一个问题说起

RAG 是给 LLM "看"外部资料。那么有没有办法把知识直接训练进模型里,让模型"天生就懂"?

这就是 Fine-tuning(微调) 要解决的问题。


1. 什么是 Fine-tuning?

Fine-tuning(微调) 是在已经预训练好的大模型基础上,用特定领域的数据进行额外训练,让模型在该领域的表现更专业。

类比:就像一个从医学院毕业的全科医生(预训练模型),再去进修眼科三个月(微调),成为眼科专家。全科医学知识还在,但眼科变得特别强。

和预训练的区别

阶段预训练(Pre-training)微调(Fine-tuning)
数据量海量互联网数据(万亿 token)少量特定领域数据(数千~数万 token)
成本极高(需要成百上千块 GPU 训练数月)相对较低(单卡或几块 GPU 训练数小时~数天)
目的让模型学会语言理解和世界知识让模型在特定任务上表现更好
谁在做大公司(如 OpenAI、Google)企业或开发者

2. 为什么要 Fine-tuning?

2.1 预训练模型的局限

  • 知识过时:训练数据有截止日期,新知识模型不知道
  • 风格不对:通用 LLM 的输出风格可能不符合企业需求
  • 行为不稳定:同一问题可能每次回答风格差异大
  • 幻觉率高:特定领域的问题容易胡说八道

2.2 微调能解决什么?

目标微调能帮上忙吗?
让模型学会某个领域的专业术语和表达方式✅ 非常适合
让模型输出格式始终保持一致✅ 非常适合
让模型扮演特定角色(如客服机器人)✅ 非常适合
给模型注入全新知识(如最新的公司政策)❌ 不适合(用 RAG 更好)
减少幻觉⚠️ 有一定帮助,但不如 RAG 彻底

3. 微调的分类

3.1 SFT(监督微调,Supervised Fine-tuning)

最传统的方式:用有标签的问答对直接训练模型。

数据格式

输入:用户问题
输出:标准回答

优点:简单直接,效果可预期 缺点:需要大量高质量标注数据

3.2 RLHF(人类反馈强化学习,Reinforcement Learning from Human Feedback)

分三步:

  1. SFT:先用监督数据微调一个基础模型
  2. 奖励模型:让人类对模型输出打分,训练一个"奖励模型"来模仿人类偏好
  3. PPO 强化学习:用奖励模型指导模型优化输出

这是 GPT-4、Claude 等顶尖模型训练的核心技术。ChatGPT 的"对齐"工作就是靠 RLHF 完成的。

3.3 LoRA(Low-Rank Adaptation,低秩适配)

最流行的微调方法,尤其是对个人开发者和中小企业。

核心思想:不训练全部参数,只训练一小部分"低秩矩阵"。

对比项全参数微调LoRA
训练参数量全部参数(如 70B)约 0.1%~1% 的参数
GPU 显存需求极高(需要多卡)很低(单卡可跑)
训练速度
效果可能更好效果接近全参数微调
成本

LoRA 的类比:就像你想让一个人学会新技能(全参数微调 = 重新训练这个人),LoRA = 给他戴上一副特殊的眼镜(只调整少量参数)就能解决问题。

3.4 QLoRA(量化 LoRA)

在 LoRA 的基础上,加上了量化技术:

  • 训练时把模型参数从 16 位浮点数(FP16)压缩到 4 位整数(INT4)
  • 进一步降低显存需求
  • 让在消费级 GPU(如 RTX 3090/4090)上微调超大模型成为可能

这就是你在学习 OpenClaw 时接触到的技术。 QLoRA 使得在普通电脑上微调 7B、13B 甚至 70B 参数的模型成为现实。

3.5 对比一览

方法成本效果适用场景
SFT稳定有标注数据的特定任务
RLHF极高最强(对齐效果最好)大厂对齐训练
LoRA接近全参数微调快速微调、中小企业
QLoRA极低接近 LoRA个人开发者、消费级 GPU

4. 微调的数据准备

微调效果好不好,数据质量是决定性因素。

4.1 数据格式(以对话格式为例)

{
  "messages": [
    {"role": "system", "content": "你是一个专业的法律顾问"},
    {"role": "user", "content": "合同违约金最高是多少?"},
    {"role": "assistant", "content": "根据《民法典》第五百八十五条..."}
  ]
}

4.2 数据质量要求

要求说明
格式一致所有数据保持相同的格式(role、content 字段要统一)
质量高避免错误答案、模糊回答、无关内容
风格统一回答的语气、格式、长度要一致
适量通常 1000~10000 条高质量数据比 100000 条低质量数据效果好

4.3 数据量参考

模型规模建议数据量训练时间(单卡)
7B 参数1000~5000 条2~8 小时
13B 参数3000~10000 条6~24 小时
70B 参数5000~20000 条1~7 天

5. 微调 vs RAG

这是最常见的对比:

对比项微调(Fine-tuning)RAG(检索增强生成)
本质改变模型参数不改变模型,增加外部知识
知识更新需要重新训练更新知识库,无需重训
成本较高(GPU 训练)低(向量数据库 + 检索)
幻觉减少有一定帮助效果更好(基于真实文档)
适合注入行为模式、风格、特定领域表达实时数据、私有知识、大规模文档
冷启动速度慢(需要训练)快(即刻可用)

最佳实践:两者结合

RAG → 提供实时知识和事实依据
Fine-tuning → 优化回答风格和行为模式

举个例子:医疗 AI 助手

  • RAG 让它能准确引用最新的医学指南和论文
  • Fine-tuning 让它用专业医生的语气和逻辑思考方式回答

6. 微调的常见工具

工具特点
OpenClaw国产 QLoRA 微调工具,支持消费级 GPU,适合中文场景
LLaMA Factory开源,支持多种微调方法,中文友好
Axolotl开源微调框架,支持主流模型
Unsloth加速微调,显存占用更低
Fireworks.ai云端微调服务,无需 GPU

7. 微调的局限性

7.1 不能注入全新知识

微调可以让模型"更像"某个领域的专家,但不能可靠地灌输大量新事实

例子:你想让模型记住"我们公司 CEO 是张三"。微调可能让模型更容易说对,但不如 RAG 可靠。事实性知识的注入更适合用 RAG。

7.2 灾难性遗忘

微调可能导致模型忘记预训练时学到的通用能力。

解决:使用 LoRA/QLoRA,只训练少量参数,全参数冻结,大幅缓解遗忘问题。

7.3 训练不稳定

模型可能变得不稳定、产生幻觉、或者丧失对话能力("灾难性遗忘")。

解决:做好质量评估(Evals),逐步增加训练步数,发现问题及时回滚。


8. 总结

Fine-tuning = 在预训练模型基础上 + 特定领域数据 + 继续训练 → 专业化

主流方法 = QLoRA(低显存 + 高效果 + 低成本)
最佳拍档 = RAG(知识)+ Fine-tuning(风格)

什么时候选微调?

  • 需要统一输出风格和行为模式
  • 特定领域的专业表达方式
  • 需要模型"更像"某个角色
  • 不需要频繁更新知识

什么时候选 RAG?

  • 需要实时或大规模知识
  • 需要引用权威文档
  • 知识需要经常更新
  • 需要严格的事实准确性