微调不是「让它知道得更多」,是「让它说得更像」。想装事实,微调是最贵的一条路。 三笔账:钱不多、人很贵、更新最慢。一年改 144 份文档,微调跑不过来。 还有一笔暗账:微调会拿通用能力去换风格,这叫灾难性遗忘。
上一节说模型不懂你的业务,这一节讲最直觉的那个解法——把它训一遍——为什么通常不划算。 这一节有三个小节:微调是对通用能力的妥协、费用不便宜、不能实时更新。 三件事加起来,构成了「先试 RAG」这个结论。 这不是说微调没用。第 6 章会讲提示词,提示词做不了的「语感」那部分,确实得靠微调。
一、微调到底在改什么
微调是拿一批「输入—输出」样本,接着训练模型,把权重调一调,让它更贴你的语料。 关键在于:它调的是「怎么说」,不是「说什么」。 样本教给模型的是「遇到这类问题,用这种口气、这个格式、这个长度回答」。 它不会把每条事实都记住——2000 条样本要覆盖一百份文档的细节,本来就装不下。
所以微调擅长的是:口吻、格式、行业黑话、固定的输出结构。 不擅长的是:具体数字、具体条款、昨天发生的事。 这一条分不清,后面三笔账都白算。
二、第一笔账:一年要花多少钱
演示里按每天 200 次请求、一年 250 个工作日算。
| 做法 | 一年 token | token 钱 | 搭一次 |
|---|---|---|---|
| 提示词硬塞 | 4000 万 | 40 元 | 0.5 天 |
| RAG 检索 | 1.30 亿 | 130 元 | 2 天 |
| 微调 | 3000 万 | 30 元 | 8 天 |
token 钱三档都不到两百块。 这一列最能说明问题:省 token 这件事, 在这个量级上根本不值得为它做架构选择。 微调那档 token 最省——因为它不用把资料塞进提示词。但省下来的是几十块,花出去的是八天搭一次。 所以真正的成本在人力。下面两笔账都在人力上。
三、第二笔账:一年能改几次
演示里算得更狠一点:一百份文档,每月改 12 份,一年改 144 份。
| 做法 | 一年更新工时 | 一年总人力 |
|---|---|---|
| 提示词硬塞 | 2.4 小时(144 次) | 0.8 天 |
| RAG 检索 | 7.2 小时(144 次) | 2.9 天 |
| 微调 | 144 小时(4 次) | 26.0 天 |
差距不在钱,在「多久能改一次」。 改一份文档,RAG 三分钟,微调要一轮一天半。 所以微调实际上只能攒着做,一季度一次。新政策发布当天,知识库里是空的。 更麻烦的是样本:一万条样本按一百份文档摊,每份二十条。改一份文档,二十条样本要重写。 一年改 144 份,样本库整体换 1.44 遍。
这个算术是微调最真实的成本形态——不是训练贵,是维护贵。
四、第三笔账:拿什么去换
微调是把新东西写进权重。写进去的时候,旧的东西会被挤掉一部分。这叫灾难性遗忘。 表现是:模型在你的业务上答得更像了,但它的通用能力——推理、常识、写代码——会往下掉。 掉多少取决于样本量和训练强度。 本沙箱没有模型,这一项给不出数。 能给的只有机制:权重是一块有限的画布,你在上面多画一笔,别处就得擦掉一笔。
所以微调之前要问一句:我愿意用多少通用能力,去换这点风格?大多数团队算完这笔账, 会先去写提示词。
五、一条判据:这条知识会变吗
问一句话就能定方案。
| 你想要的 | 该走哪条 |
|---|---|
| 知道更多事实 | RAG,改一份文档三分钟 |
| 事实会变 | RAG,改完重建索引就生效 |
| 说话更像我们的客服 | 微调或提示词,先试提示词 |
| 输出严格的 JSON | 提示词 + 代码节点校验 |
| 懂行业黑话 | 微调,语感是权重里的事 |
五行里前三行都是 RAG,后两行才轮到微调。 而第四行甚至不用微调——提示词里写清格式,加一个代码节点做校验,比训一遍便宜得多。 会变的知识走 RAG,不变的语感走微调。 这句话记住,能省掉大半的选型纠结。
六、真要做微调,先做这三件
一、先跑通 RAG 再谈微调。 很多「模型不懂我们」的问题,上了库就没了。 二、把评测集先建起来。 五十条真问题,每条有标准答案。没有它,训完不知道好坏。 三、小步试。 先拿 200 条样本训一版,看通用能力掉多少,再决定要不要加量。
三件里第二件最容易跳过,也最致命。没有评测集的微调,等于闭着眼改代码。
七、动手 Demo:三种做法:提示词、RAG、微调
三档方案摆在同一条时间轴上算:一天 200 次请求、一年 250 个工作日、一百份文档每月改 12 份。 先算 token 与人力,再算样本作废的比例,最后给一条判据。
DOC_N, CHG_M, REQ_D, DAY_Y = 100, 12, 200, 250
SAMPLE, PER_DOC = 2000, 20 # 每份文档摊 20 条样本
PLAN = [(u'提示词硬塞', 0.5, 800, 1/60, u'不变'),
(u'RAG 检索', 2.0, 2600, 3/60, u'不变'),
(u'微调', 8.0, 600, 36.0, u'会掉')]
for name, build, per, upd, gen in PLAN:
tk = per * REQ_D * DAY_Y # 一年 token
if name == u'微调':
hours, n = 4 * upd, 4 # 一年只重训 4 轮
else:
hours, n = CHG_M * 12 * upd, CHG_M * 12
print(name, tk, hours, build + hours / 8.0)
实跑输出:
--------------------------------------------------------------------
三种做法:提示词、RAG、微调
--------------------------------------------------------------------
① 一年的账:token 与人力
--------------------------------------------------------------------
| 做法 | 搭一次 | 一年 token | token 钱 | 一年更新工时 | 一年总人力 | 通用能力 |
|---|---:|---:|---:|---:|---:|---|
| 提示词硬塞 | 0.5 | 4000.0 万 | 40 元 | 2.4 小时(144 次) | 0.8 天 | 不变 |
| RAG 检索 | 2.0 | 1.30 亿 | 130 元 | 7.2 小时(144 次) | 2.9 天 | 不变 |
| 微调 | 8.0 | 3000.0 万 | 30 元 | 144 小时(4 次) | 26.0 天 | 会掉 |
token 钱三档都不到两百块。真正的成本在人力,不在 token。
注意微调那一行的工时口径:它不是「改一份文档」,是一轮「改样本、重训、评测」,一轮一天半,
一年四轮。想每次变更都重训,一年要做 144 轮、648 天,做不完。
RAG 那一行是 144 次小改,每次三分钟。差距不在钱,在「多久能改一次」。
② 样本作废的算术
--------------------------------------------------------------------
样本 2000 条,文档 100 份,平均每份摊 20 条。
每月改 12 份,作废 240 条,占样本库 12.0%。
一年改 144 份,累计作废 2880 条,等于样本库整体换 1.44 遍。
一句话:改一份文档,二十条样本要重写。这就是「微调不能实时更新知识」的算术形态。
③ 微调换走了什么
--------------------------------------------------------------------
微调是把「怎么说」写进权重。
写进去之后,模型的输出会更贴你的语料,但它原来会的那些东西会被挤掉一部分——这叫灾难性遗忘。
本沙箱没有模型,这一项给不出数。能给的是一个判断:用通用能力换风格,值不值。
要是你只是想要「回答别那么啰嗦、按我们的格式输出」,那是提示词的事,一条系统提示词就够,
不用动权重。
④ 一条判据
--------------------------------------------------------------------
| 你想要的 | 该走哪条 |
|---|---|
| 知道更多事实 | RAG,改一份文档三分钟 |
| 事实会变 | RAG,改完重建索引就生效 |
| 说话更像我们的客服 | 微调或提示词,先试提示词 |
| 输出严格的 JSON 结构 | 提示词 + 代码节点校验 |
| 懂行业黑话 | 微调,语感是权重里的事 |
! 问一句「这条知识会变吗」。会变就走 RAG,不变而且关乎语气格式才考虑微调。
大多数团队一开始就想微调,
是因为把「模型不懂我们」误当成「模型不够懂我们行业」——其实它只是没看过那几页纸。
①第一张表七列。看两列就够:token 钱全在两百块以内,一年总人力差三十倍。 ②微调那行的工时口径要看清:它算的不是「改一份文档」,是「改样本、重训、评测」一轮一天半, 一年四轮。想每次变更都重训,一年要做 144 轮、648 天,做不完。 ③第二段是本节最硬的算术:改一份文档,二十条样本要重写。一年 144 份,样本库整体换 1.44 遍。 维护成本才是微调的真实成本。 ④「灾难性遗忘」那一段本课给不出数——沙箱没有模型。这里只给机制和那一句判断,不硬编一个百分比。 ⑤第四段那张表五行,前三行都是 RAG。第四行「严格 JSON」甚至不用微调,提示词加代码节点校验就够。
30 秒实验
- 算一下你们的知识一年改几份。超过二十份的,微调这条路的维护成本基本判死刑。
- 把「模型不懂我们」具体化成五个问题,逐个问。看有几个是「不知道事实」、几个是「说话不像」。
- 如果真要试微调,先写五十条带标准答案的问题。写不出来说明现在还不该做。
常见误区
- 「微调能让模型学会我们的知识。」它学的是说法,不是事实。两百条样本装不下一百份文档。
- 「微调一次训好就一劳永逸。」文档一改,那部分样本就作废了。改一份要重写二十条。
- 「微调比 RAG 高级。」两条路解决的是不同问题。会变的知识走 RAG,这是工程判断不是档次问题。
自测三问(点开对答案)
1. 微调改的是「说什么」还是「怎么说」? —— 怎么说。它调的是口吻、格式、语感。具体数字和条款装不进权重。 2. 微调最贵的成本是什么? —— 维护,不是训练。改一份文档要重写二十条样本,一年改一百多份就维护不动了。 3. 什么叫灾难性遗忘? —— 把新东西写进权重时,旧的通用能力被挤掉一部分。权重是一块有限的画布。微调这条路先放一放,回到主流解法:不训模型,改成先查资料再回答。下一节把这个套路的四个动作拆开。
- ☐ (本篇完,下一篇 5.3 知识库的理论基础 RAG)
相关笔记
- 为什么需要企业知识库:模型不知道公司昨天改了什么
- 扣子工作流的常见节点:十五个节点里的知识库节点
- 39 AI训练师手册2 · 索引
- 🐦 扣子开发 AI Agent · 索引