做业务时经常遇到一个岔路口:模型答不上来公司内部的东西,是去搭个知识库,还是拿数据把模型再训一遍?选错了轻则白花几周,重则上线后答案照样跑偏。这篇按「改的是什么、什么时候生效、怎么维护、成本落在哪」四条线把两者摆开,给一套能直接拿去和团队对齐的判断顺序。
做业务时经常遇到一个岔路口:模型答不上来公司内部的东西,是去搭个知识库,还是拿数据把模型再训一遍?选错了轻则白花几周,重则上线后答案照样跑偏。这篇不打算讲原理综述,而是按「改的是什么、什么时候生效、怎么维护、成本落在哪」四条线把两者摆开,给一套能直接拿去和团队对齐的判断顺序。
先给个最小区分:知识库是把资料放在模型外面,回答时临时去查;训练是把东西压进模型参数里,回答时从自身长出来。前者像给新同事配了个可随时更新的资料柜,后者像让他去上了个培训班。大部分「模型不懂我们公司」的问题,卡在资料柜没建好,而不是培训没做够。
先搞清两件事各自改了什么
知识库(RAG)不动模型本身,回答时先去外部资料里检索,把命中的片段塞进上下文,模型只负责读和写。资料一更新,下次问答就变了,不需要重新训练,也不需要重新部署模型。这一层的关键变量是检索准不准、切得碎不碎、重排排得好不好,而不是模型聪不聪明。
微调改的是模型权重,把「怎么答、按什么格式答、这类任务该怎么判断」写进参数里。注意,它改的是行为倾向,不是可靠的记忆载体:你很难靠微调把一堆事实稳定地「背」进去,而且知识一旦更新,权重不会自动跟着走。一个常见误解就是觉得微调能当数据库用,结果上线后发现细节对不上。
- 事实类需求
- 想知道某条内部规定、某个产品的当前参数,走检索
- 行为类需求
- 想让模型固定按某种格式、某种口径输出,走训练或提示词约束
- 判断口径
- 要变的是「事实」还是「行为」,这一条基本能定方向
什么情况下优先上知识库
内容体量大、更新频繁、还要求答案能指到出处的场景,基本先考虑知识库:合同、工单、产品文档、政策条款这类东西,改一次就要全量生效,靠训练追不上。数据敏感、不方便送进训练流程的,放在自己的向量库里也更可控。向量库怎么选,可以先到站内工具目录对照各家定位,别一上来就纠结牌子。
- 资料更新频率高于模型迭代节奏,检索是唯一跟得上的方式
- 每个答案需要给出依据出处,方便业务方复核
- 内容以文档、条款、工单为主,天然适合切分成片段
- 团队里有人能持续维护文档质量,而不是只搭一次就撒手
- 问题里出现的关键词,和文档里的措辞大体对得上
还有一点常被忽略:命中质量取决于切分粒度、检索召回和重排,不是挂了知识库就一定准。用户问法和文档措辞差太远时,检索会先失效,这时候看着像「模型变笨」,其实是压根没查到对的段落。
什么情况下才考虑训练(微调)
任务边界清楚、要的是稳定行为改变的,才轮到微调上场:固定话术、特定分类口径、行业术语习惯、结构化输出格式。这些东西的共同点是「不管查什么资料,模型都该按同一套规矩来」,而这恰恰是提示词容易飘、检索管不住的部分。
| 判断维度 | 知识库(RAG) | 微调(训练) |
|---|---|---|
| 改动位置 | 模型外部资料 | 模型权重本身 |
| 生效方式 | 下次问答即变 | 需重新训练再上线 |
| 最擅长的 | 答事实、给依据 | 稳格式、稳口径 |
| 主要成本 | 内容持续运营 | 样本标注与算力 |
| 过期风险 | 删掉旧文档即可 | 知识不自动更新 |
- 先攒样本把线上真实问题和期望输出成对整理出来,样本质量比数量更决定成败
- 定评测口径同一批问题跑基线版本,记录改前水平,别凭观感判断有没有变好
- 小范围试先在一个任务或一个渠道上跑,观察错例集中在哪一类
- 决定是否扩大只有行为确实稳定了,再考虑铺到更多场景
要接受三件事:要标注、要算力、上线后模型是「冻结」的,知识过期得重训或再走一次流程。具体要多少条样本因任务而异,可以到站内微调相关页面核对当时的参考口径。不适用的情况也很明确:只是想让模型知道更多事实,或者只是想让回答语气好听一点,提示词和检索通常更划算。
维护和成本账怎么摆在一起看
知识库的持续成本在「内容运营」:文档谁来写、谁来审、过期谁来删。没人管的知识库,半年后就是噪声源,检索到的全是不再适用的旧条款,比没有还危险。微调的持续成本在「数据回流」:线上错例要能回收成下一轮训练样本,否则效果停在第一版。
- 两条路都躲不开评测:同一批问题跑一遍,答对率和胡编率分开统计,别只看整体观感
- 检索链路可以关掉降级,权重换回去成本高得多,回退方案要提前想
- 真上线常是组合拳:先检索把事实找出来,再用一个行为对齐过的模型按格式输出
- 预算和人力的分配要按阶段调,不是一次性投入
至于两边各自要花多少,不同供应商和不同量级差别很大,别用别人家的数字套自己。可以到站内价格追踪页核对当时的行情,再结合自己的调用量和标注人力做估算。
一套可以拿去开会的判断顺序
别在会上直接吵该不该训模型,先按下面四步走,结论自然就出来了。每一步都有可验证的产出,避免「感觉不太好」这种没法推进的讨论。
- 分两类问题把线上问题分成「不知道」和「不按规矩答」两类,分别计数,这是后面所有决策的输入
- 看哪类占多「不知道」为主就先补检索链路,「不按规矩答」为主才谈训练或提示词约束
- 小范围试跑选一条链路试,用同一批测试问题做前后对照,看答对率和胡编率的变化
- 想好回退无论走哪条,都先把降级方案写清楚:检索能关,权重换回去要慢得多
先分「不知道」和「不按规矩答」,再谈用哪种手段,比先选技术路线省事得多。下一步如果你正卡在选型上,先去站内把各家能力与行情看一遍,再回来套上面的判断顺序,会比拍脑袋快很多。→
常见问题
知识库和微调能不能只做一个?
多数场景先做知识库性价比更高,因为它能快速上线、内容可随时改。只有当问题集中在「输出格式、判定口径、说话方式」这类行为层面,检索补不动时,再上微调。两者不是二选一,常见做法是检索负责事实、微调负责风格与格式。
把内部资料喂给模型训练,是不是就一劳永逸了?
不是。微调进权重的是当时的样本分布,资料一改,模型并不知道。而且靠训练记具体条款,容易记串、也难追溯出处,出错了不好解释。要可追溯、要随时更新,检索这条路的成本明显更低。
怎么判断该不该动模型权重?
先看同一批问题在「给了正确资料」的情况下模型还答不答得对。给资料能答对,说明缺的是检索;给了资料照样答错,才说明缺的是行为对齐。另外还要看有没有稳定可标注的样本,没有就先把数据攒起来。