🧠 第五章 模型微调:让AI训练效果达到预期
📄 一句话概括

500 条、每条 200 字的知识库:每次只带 3 条片段,一年 0.69 亿 token、69 元; 每次塞全库 109.53 亿、10953 元,而全库一次就是 15 万 token,多数模型装不下。 微调一次训练 68 元。打平点:每天问 20 次要 117.4 个月,每天问 2000 次只要 1.2 个月。

📝 本节和前面几节的关系

上一节讲清了微调改什么。这一节回答一个更实际的问题:同一个需求,凭什么选微调而不选知识库? 答案在成本结构上。

一、四种手段,各动一个地方

提示词工程动输入:把资料塞进问题里,模型当场读。 知识库(RAG) 动检索:先从库里捞出最相关的几条,再塞进问题里。 长文本也是动输入,但它省掉了检索——把整个库一次性塞进去。 微调动参数:把行为写进权重。 预训练是从零造参数,那是另一个量级的事。 四者不是替代关系,是成本结构不同的四种工具。 选错的典型症状是:花了两万块训了个模型,上线两周业务改了政策,模型全错,还得重训。

二、一张成本表

假设知识库 500 条、每条 200 字(约 15 万 token),每天问 200 次,每次只带 3 条片段。 单价按每百万输入 token 1 元、每百万训练 token 30 元估:

方式 一年 token 量 一年费用 主要约束
提示词塞 3 条片段 0.69 亿 69 元 每次都要带
长文本塞全库 109.53 亿 10953 元 上下文装不下
微调(一次性训练) 0.06 亿 71 元 要标注数据
从零预训练 30000 亿 — 不是这个量级
第二行是这张表的重点:长文本一年 10953 元,是提示词的 159 倍。而且它根本跑不起来——
全库 15 万 token,多数模型的上下文窗口是 8k 到 128k,一次就顶爆。
第一行和第三行看起来差不多(69 元对 71 元),但这两个数不是一回事:
69 元是「每天问 200 次」累积出来的,71 元是「不管问多少次都要付一次」。
所以真正的比较要看查询量。
第四行写出来是为了划清界限:
预训练的单位是「百万美元」,不是「几十块钱」。 网上说「我也训了个模型」,九成说的是微调。

三、打平点:微调什么时候才划算

微调的训练费是固定的一次性支出,提示词是每次都要付。把两者画在一起,就有一个交点:

每天查询量 提示词一年费用 微调一次训练 打平所需时间
20 次 7 元 68 元 117.4 个月
100 次 34 元 68 元 23.5 个月
500 次 172 元 68 元 4.7 个月
2000 次 690 元 68 元 1.2 个月
读法:每天只问 20 次,微调要九年半才回本,这不叫投资,叫浪费。每天问 2000 次,一个多月就回本,
之后全是省下来的。
这张表还漏了一项:
微调要人标数据。3000 条数据的标注成本远高于 68 元训练费——按每条 1 元算就是 3000 元。
把标注费算进去,打平点整体往后推几十倍。
所以真实决策不是「微调贵还是提示词贵」,而是:
这个需求的查询量够不够大,大到值得投入一次标注。查询量不够,答案永远是「先把提示词写好」。

四、一句话分工

四种手段的分工可以压成一张对照:

手段 改什么 适合 不适合
预训练 从零造参数 大厂造基座 任何业务方
微调 行为与格式 格式固定、口径固定 常变的事实
知识库 外部事实 制度、产品库、时效信息 要改语气
长文本 一次塞很多 单份长文档问答 整库检索
判断只需要一句话:「答案会变吗?」会变 → 知识库;不变、只是说法不对 → 微调。
「我要让它知道我们公司的制度」——这是知识库的活。
「我要让它每条回答都按我们的话术模板走」——这是微调的活。两件事用错了手段,钱花了还没效果。
还有一种混合做法值得知道:微调教「怎么答」,知识库供「答什么」。先用微调把格式和口吻固定,
再用检索把内容填进去。这是目前企业落地最常见的组合,也是这两节内容真正的落点。

五、动手 Demo:四种手段算一年账:提示词 69 元,长文本 10953 元

按「每次带多少 token × 每天问几次 × 365 天」算出四种手段的年消耗,再乘单价换成钱; 然后固定微调的训练费,反推不同查询量下的打平时间。 单价(每百万输入 token 1 元、每百万训练 token 30 元)是显式假设,换成你手上的报价重跑即可。

kb_n, kb_len = 500, 200          # 知识库:500 条,每条 200 字
q_per_day, topk = 200, 3
tok_per_char = 1.5               # 中文约 1.5 token 每字
p_in, p_train = 1.0, 30.0        # 元/百万 token,显式假设

ctx_tok = kb_n * kb_len * tok_per_char          # 全库 15 万 token
tok_1 = (topk * kb_len * tok_per_char + 45) * q_per_day * 365
tok_2 = (ctx_tok + 45) * q_per_day * 365        # 每次塞全库
tok_3_train = 3000 * 250 * 3                    # 微调:一次性

for qd in (20, 100, 500, 2000):                 # 打平点
    a = (topk * kb_len * tok_per_char + 45) / 1e6 * p_in * qd * 365
    print(qd, a, unit_3 / a * 12)

实跑输出:

--------------------------------------------------------------------
四种手段的成本:提示词、长文本、微调、预训练
--------------------------------------------------------------------
  方式           一年 token 量   一年费用   主要约束
  -----------------------------------------------------
  提示词塞片段         0.69 亿      69 元   每次都要带
  长文本全库         109.53 亿   10953 元   上下文放不下
  微调                 0.06 亿      71 元   要标注数据
  从零预训练          30000 亿          —   不是这个量级

  知识库规模               500 条 × 200 字
  每次查询带全库           约 15.0 万 token
  上下文窗口               通常是 8k 到 128k token
  **第二行那一列就说明长文本为什么替代不了 RAG:全库 15.0 万 token,一次就顶爆上下文。**

  提示词方案一年 69 元,微调的训练费一次 68 元。
  **所以「微调比提示词便宜」这件事,取决于你的查询量**:
  每天 20 次               提示词 7 元/年,微调训练 68 元(117.4 个月打平)
  每天 100 次              提示词 34 元/年,微调训练 68 元(23.5 个月打平)
  每天 500 次              提示词 172 元/年,微调训练 68 元(4.7 个月打平)
  每天 2000 次             提示词 690 元/年,微调训练 68 元(1.2 个月打平)

  四种手段的分工,可以一句话概括:
  预训练                   从零学语言。只有大厂干,单位是「百万美元」
  微调                     改行为、改格式、改风格。要有标注数据
  知识库                   补事实、补时效。不用训,改完立刻生效
  长文本                   省掉检索这一环,但受窗口限制
  **「我要让它知道我们公司的制度」——这是知识库的活,不是微调的活。**

第一张表四行,价差从 69 元到 10953 元。 长文本那一行之所以贵,不是单价高,是它每次都把 15 万 token 全带上。一次 15 万,一天 200 次, 一年就是 109 亿。 而它连跑都跑不起来: 15 万 token 超过多数模型的上下文窗口。这就是「长文本替代 RAG」在工程上不成立的原因—— 不是钱的问题,是窗口的问题。 第三行微调只有 0.06 亿,因为训练是一次性的,之后每次只付问题的钱(45 token)。 这就是固定成本和变动成本的区别。 打平点那一段是这一节最该记住的东西: 每天 20 次要 117.4 个月,每天 2000 次要 1.2 个月。 同一个技术方案,查询量差 100 倍, 经济性差 100 倍。 诚实说明:这里的 1 元/百万 token 和 30 元/百万训练 token 是我设的,各家报价差别很大,也会变。 要学的是这套算法:先算年 token 量,再乘单价,再算打平点。 换成你的报价重跑就行。

30 秒实验

  1. 把知识库从 500 条改成 5000 条,看长文本那一行涨到多少、提示词那一行变不变。 提示词只带 3 条,跟库多大无关,这就是它的优势。
  2. 把 topk 从 3 改成 10,看提示词的年费用涨几倍。 这解释了一个常见现象:检索召回条数一多,账单立刻变难看。
  3. 把训练费从 68 元改成 368 元(加上 3000 条数据的标注费),再算打平点。 你会发现打平点普遍往后推了一个数量级。

常见误区

  1. 「知识库和微调是二选一」。可以叠加:微调教「怎么答」,知识库供「答什么」。 企业落地最常见的就是这个组合。
  2. 「长文本窗口够大就不用 RAG 了」。一次 15 万 token,每天几百次,账单和延迟都撑不住。 窗口大不等于划算。
  3. 「微调比提示词便宜」。只在查询量足够大、需求足够稳定时才成立。 每天问 20 次的项目,微调九年半才回本。
自测三问(点开对答案) 1. 为什么长文本方案在经济上不可行? —— 因为它每次都把整个库带上。15 万 token × 每天 200 次 × 365 天,一年 109 亿 token; 而且多数模型窗口装不下 15 万。 2. 打平点由什么决定? —— 由查询量决定。微调是固定成本,提示词是变动成本,查询量越大,固定成本摊得越薄。 3. 「让它知道公司制度」该用什么手段?为什么? —— 知识库。因为制度会变,改了要立刻生效;微调改一次要重新标数据重训,跟不上变更节奏。

手段选定了,接着是动手。下一节把微调拆成五步,并且告诉你哪一步最花时间——答案不是训练。

相关笔记