RAG 与知识库

微调还是检索:这个决策取决于什么在变,不取决于你偏好什么

微调编码的是行为,检索提供的是事实。问「哪个更好」是问错了问题——该问的是底层知识多久变一次,以及你是否需要引用来源。

两个被互相混淆的机制

微调改的是权重,检索改的是提示词。它们经常被当成解决同一件事的竞争技术来讨论,所以很多团队凭直觉选一个,然后花一个季度才发现为什么不合适。

它们解决的是不同的问题。微调擅长「形式」:语气、输出结构、任务遵循、领域惯用语。检索擅长「内容」:具体事实、训练时还不存在的文档、任何你需要引用的东西。

决策规则

先问两个问题。第一:这些知识多久变一次?任何变化周期短于你重训周期的东西,都应该走检索——因为微调过的模型会静默过期,而在用户发现之前你不会察觉。第二:你需要展示答案来自哪里吗?如果需要,检索就不是可选项——一次权重更新产不出引用。

只有这两个问题的答案都有利时,才考虑微调。剩下这种情况很窄但真实存在:你需要一种稳定的行为或格式,提示词无法可靠地产出它,而检索又让 token 预算或延迟变差。

各自的失效模式

微调失效得安静。模型在你的领域词汇上变得流利,同时对当前事实保持自信的错误,而且因为它听起来对,没人去核查。它还会制造一项维护义务:每次基础模型升级,都要重跑训练和评测。

检索失效得明显,这是个优点。糟糕的检索产出明显不相干的上下文,而且你可以测量它。代价是你从此拥有了一条流水线:解析、切分、嵌入、索引新鲜度、权限过滤。RAG 系统里的大多数质量问题都在这条流水线上,不在模型里。

通常什么做法有效

几乎一切都先上检索,因为它可测量、可回退。然后,只有在追踪数据表明存在一个持续的行为缺口、而提示词和 few-shot 示例都补不上时,才为「形式」做窄范围微调。按这个顺序做,你会在需要之前就拥有评测集——而这恰恰是多数团队起步时最缺的东西。

可以立刻做的事

  • 微调管形式与行为,检索管内容与事实
  • 问知识多久变一次、是否需要引用——大部分情况这两个问题就定了
  • 微调静默失效,检索显性失效,后者反而更好运维
  • 先用检索把评测集建起来,追踪显示确有缺口再窄范围微调