上篇讲了 RAG——让 AI “边翻书边答题”。但你可能会想:
“能不能把知识直接写进 AI 的大脑里,省得每次都去查资料?”
这就是**微调(Fine-tuning)**做的事。
RAG 是给 AI 配一本参考书,微调是给 AI 补课——让它真正学懂某个领域的知识,成为这个领域的专家。
先搞清楚:微调到底在调什么?
很多人以为微调就是"把新数据喂给AI就行了",就像往U盘里拷文件一样。完全不是。
我们要先理解一个前提:大模型本质上是一个巨大的概率预测器。
你给它一句话的前半段,它预测后半段最可能是什么。它之所以看起来"懂"很多东西,是因为它在海量数据上训练过——读了几万亿个词,学会了人类语言的模式。
那微调是怎么改变它的知识的?
分两种:
场景一:让它学会做某件事(指令微调)
基础大模型(比如原始的 Llama、GPT-3)只会"接龙"——你输入"写一封邮件",它可能接"写一封邮件是一个常见的办公任务……"。它不知道你是在给它下指令。
指令微调就是给它看大量的"问题 → 好答案"对子:
Q: 写一封催客户付款的邮件
A: 尊敬的张总,您好!关于贵司应于上月结清的货款……
Q: 帮我总结一下这篇论文
A: 这篇论文主要提出了……
看几万到几十万组这样的例子后,模型就学会了"用户给指令→我给出有用回答"的对话模式。ChatGPT 之所以比原始 GPT-3 好用的多,核心原因之一就是做了指令微调。
场景二:让它掌握新知识(领域微调)
这个才是你关心的——让AI学会你的私有知识。
比如你想让AI学会你们公司内部的工程术语——“三通一平"“龙骨间距"“放坡系数"这些。
做法比上面复杂一步:
第一步:整理数据。 把你公司的工程手册、设计规范、历史项目文档,整理成"问-答"对。这不是直接把PDF扔进去,而是人工或半自动地把文档转化成训练样本格式。
一条样本长这样:
{
"instruction": "什么叫放坡系数?",
"input": "",
"output": "放坡系数是指土方开挖时边坡的深度与底宽之比。比如放坡系数1:0.5,意味着每挖深1米,底部要向外扩0.5米。这是为了防止塌方,具体值由土质类型决定:一类土1:0.5,二类土1:0.75,三类土1:1。"
}
第二步:喂给模型训练。 把几万条这样的数据,让模型反复学习。学习的本质就是调整模型里几十亿到几千亿个参数,让它在看到类似的问题时,能输出你想要的答案。
第三步:验证。 拿一批没见过的测试题考它,看准确率是否达标。
听起来不复杂?但真正的坑在后面。
微调的底层原理——参数是怎么"调"的
大模型的"大脑"由**参数(Parameters)**构成。一个 7B 模型有 70 亿个参数,一个 70B 模型有 700 亿个。
每个参数就是一个数字。训练好的模型,这些数字已经处于一种"平衡状态”——它们共同决定了模型看到输入后会输出什么。
微调的本质就是:微调这些参数的数字。
举个极度简化的例子。假设模型里有一个参数是 0.73,它负责控制"当出现’放坡’这个词时,接下来应该输出什么”。在原始模型里,这个参数值是 0.73,所以它接到"放坡"时倾向于接"的道路”(因为训练数据里大量的是"放坡的道路建设")。
你通过微调,把它改成 0.91。现在模型看到"放坡",就更倾向于接"系数"——因为你给它的训练数据里"放坡系数"出现了很多次。
一次微调,要调整的是几十亿到几千亿个这样的数字,每一个都要找到一个更好的值。
这就是为什么微调贵——不是指钱(当然也贵),而是指计算量巨大。
三种主流的微调方式
1. 全量微调(Full Fine-tuning)
理论上效果最好的方式。把模型的所有参数都放开,让它们在训练中自由调整。
优点: 效果最好,模型能深度适应新领域。 缺点: 贵到离谱。微调一个 70B 的模型,需要至少 8 张 A100(80G)GPU,训练几天到几周。电费+算力成本几千到几万美元。
一个 7B 模型做全量微调,仅存储梯度就需要大约 56GB 显存(参数本身 14GB × 4 倍)。实际上还要加载数据、优化器状态,一张 A100(80G)勉强够用。
2. LoRA(Low-Rank Adaptation)
2021 年提出的方法,现在是绝大多数微调场景的首选。
思路很巧妙:不让模型所有参数都调,而是在模型里"外挂"一些小型矩阵,只训练这些外挂部分。
比喻一下:
原始模型是一本完整的百科全书。全量微调相当于改版重印整本书。LoRA 相当于在书边上贴一些便签——“看到第32页时,请参考这个便签上的补充说明”。
便签很小(几千到几万个参数),不改变原书内容。但贴了便签后,这本书的表现就像被改写了一样。
具体数字: 一个 7B 模型的参数有 70 亿个。用 LoRA 微调时,你只训练大约 0.1% - 1% 的参数——也就是 700 万到 7000 万个。显存需求从 56GB 降到 12-16GB,一张消费级显卡(RTX 4090)就能跑。
效果: 在大多数任务上,LoRA 的效果和全量微调差距在 5% 以内。考虑到成本差了 10-20 倍,LoRA 是性价比之王。
LoRA 的变种还有 QLoRA——进一步把模型量化压缩后再加 LoRA,显存需求降到 6-8GB,一张 RTX 3060 就能微调 7B 模型。
3. RLHF(Reinforcement Learning from Human Feedback)
ChatGPT 变成今天这个"好用的样子",关键一步就是这个。
前面说的指令微调,是让模型学会"用户问什么,我答什么"。但学会答,不代表答得好。RLHF 做的就是:教会模型什么回答是"好"的。
过程分三步:
第一步:找人对齐标准。 对同一个问题,生成多个模型的回答,让人来打分排名:A回答比B回答好,B回答比C回答好。
第二步:训练一个"打分模型"。 用这些打分数据训练一个奖励模型(Reward Model),它的工作就是给AI的回答打分。当它被训练好后,就不需要人类一个个打分了——它能自己判断"这个回答好不好"。
第三步:用这个打分模型去训练大模型。 大模型每生成一个回答,奖励模型就打个分,高分的回答被鼓励,低分被抑制。经过几轮迭代,模型会越来越倾向于生成"人类喜欢的回答"。
效果非常明显:同样的模型在做 RLHF 之前和之后,回答的质量天差地别。
但 RLHF 也是三种方式里最复杂的——需要大量人工标注、要训练额外的奖励模型、调参难度大。不是一般团队能玩转的。
那具体怎么操作?最简版流程
假设你是一家建筑设计院,想让AI学会你们的专业术语和设计规范。
第一步:整理数据(最耗时的一步)
把你们的设计规范、项目文档、常见问题整理成"一问一答"的格式。
整理100条高质量数据,效果远好于1万条垃圾数据。数据质量决定微调效果的80%。
一条好数据长这样——回答要准确、完整、专业,写的时候就当你是这个领域的专家在回答。
第二步:选模型
- 7B 模型(如 Llama-3-8B、Qwen2.5-7B):一张 RTX 4090 就能跑,效果够用
- 14B 模型(如 Qwen2.5-14B):需要两张 4090 或一张 A100,效果好一截
- 70B 模型(如 Llama-3-70B):需要 4-8 张 A100,一般公司不推荐自己搞,用 API 微调更划算
第三步:选工具
- Unsloth:目前最快的微调框架,用 LoRA 微调 7B 模型只需要 4-6GB 显存,官方宣称比 Hugging Face 原版快 2-5 倍
- Axolotl:功能最全的开源微调框架,支持各种模型和训练策略
- LLaMA Factory:新手友好,有 Web UI 界面
第四步:设置超参数(这个最头疼)
需要你决定的值有很多:
- 学习率(Learning Rate):通常 1e-4 到 5e-5。太大模型学歪,太小学不动
- Batch Size:每次喂多少条数据。通常 4-16
- Epochs:整个数据集学几遍。通常 2-5 轮就够了,多了会过拟合
- LoRA Rank:LoRA 矩阵的维度,通常 8-64。越大效果越好但显存占用也大
- 学习率调度器:余弦衰减还是线性衰减。通常用余弦
这些参数的正确组合,让很多第一次做微调的人跑废三四次才能找到感觉。
第五步:训练
跑起来之后,盯着 loss 值(损失值)。训练开始时 loss 通常在 2-3 左右,训练中逐渐下降到 0.5-1.0。如果 loss 突然上涨,说明学习率太大或者数据有问题。
第六步:评估
拿一批没见过的测试题考它。这个步骤最容易被忽视,但最重要——你不要用训练数据里的问题去验证,那叫"考试题提前泄露"。
如果你发现模型在测试题上的准确率明显低于训练集,说明过拟合了——它把训练数据"背"下来了,但没有真正学会。
RAG vs 微调,到底怎么选?
这个问题在真实场景中更重要。
选 RAG 的场景:
- 你的知识经常变(每周有新的政策文件、产品更新)
- 你只需要 AI 能回答知识库里的内容,不需要它变成领域专家
- 你没有 GPU 资源
- 你面对的是长尾问题——用户可能问1000种不同的事
选微调的场景:
- 你的知识稳定且深度大(法律条文、医学术语、工程规范)
- 你希望 AI 的回复风格像某个特定的人或品牌
- 你需要在离线场景或无网环境下运行
- 你对响应速度要求高(微调后的模型不需要去查资料,直接回答)
大多数落地场景的选择:RAG + 轻量微调。
先用微调让模型学会你的行业术语和表达风格,再配上 RAG 让它能实时查你的最新资料。
举个例子:一个法律 AI 助手。
- 微调部分:学会法律术语、法条引用格式、法律文书的撰写风格
- RAG 部分:每次用户问具体问题时,去数据库里检索最新的法律法规和案例
二者不冲突,各司其职。
总结
微调的本质,是把"新知识"通过调整参数的方式写进 AI 模型里。不是拷文件,而是教它学会。
三种主流方式:
- 全量微调:效果好但贵,适合大公司
- LoRA:外挂小矩阵只训练少量参数,性价比极高
- RLHF:用人类偏好训练模型学会"什么是好回答"
最关键的,不要为了微调而微调。先问自己:“我用 RAG 能不能解决这个问题?” 如果答案是可以,那就别微调。如果不行——你的领域太深、回答风格太独特、或者需要在无网环境下运行——那微调值得投入。
下一篇预告:系列第21篇,聊聊"为什么大公司都在抢GPU?"
📖 本文是MST「30天AI科普专栏」第20篇 / 共25篇 🔖 分类:实操技巧 关注MST,每天一个AI小知识,把大模型讲明白。