Skip to content

Chapter 4 · 用 RAG 替代记忆

模型权重是冻结的快照,但事实是流动的。这一章告诉你为什么"把知识喂进 prompt"几乎总比"指望模型记得"更可靠。

Item 9:回答涉及私有或时效性信息时一律走 RAG

模型权重的 cutoff 是去年;你的客户问的是今天。

核心

RAG(arXiv:2005.11401)把"模型记忆"问题转化为"信息检索 + 局部生成"问题,前者无法在线更新,后者可以。任何涉及内部文档、当前价格、最新法规的查询都应走 RAG——别试图用持续微调追赶事实。

Things to Remember

  • 私有 / 时效信息 = 无条件 RAG。
  • RAG 比 fine-tuning 更便宜、更可审计、更易回滚
  • 在 system prompt 里强制模型只基于 context 作答,否则改答即视为幻觉。

Item 10:检索质量优先于生成质量

一个 GPT-4 + 烂检索 ≪ 一个 GPT-3.5 + 好检索。

核心

RAG 的瓶颈几乎总是召回率而不是生成能力。先把召回打到 90%+ 再谈模型选型;混合检索(BM25 + dense)+ rerank 是基线配置。

Things to Remember

  • 召回率 < 80% 时换模型没意义——先修检索。
  • BM25 + Dense + Rerank 三段式是 2026 年生产 baseline。
  • Recall@k、MRR、FActScore 是必须的三件套指标。

Item 11:让模型必须 cite,否则视为不可信

没有引用的事实陈述,等同于幻觉。

引子

Self-RAG(arXiv:2310.11511)证明:让模型在每条事实后标注 [ref-3] 这样的引用,可显著降低幻觉率。原因不仅在于引用本身,而在于引用强迫模型把"它从哪里得到这个事实"显式化——若说不出来,它就不会编。

反例 vs 正例

text
# Bad
"截至 2025 年,全球 GPU 出货量约 4500 万台。"  ← 这数字哪来的?

# Good
"截至 2025 年,全球 GPU 出货量约 4500 万台 [ref-2]。"
其中 [ref-2] = 上下文中第 2 条检索片段的 doc_id。

Things to Remember

  • 事实陈述必须 cite,否则在后处理阶段拒绝 / 标黄。
  • 引用编号要可回溯到具体 chunk + offset。
  • 用 FActScore 自动化校验 cite 与原文是否一致。

Item 12:用 reranker 而不是更大的 embedding 模型

检索瓶颈在于排序,不是召回。

核心

研究表明(RankGPT,arXiv:2304.09542):让 LLM 自己当 reranker,在检索 top-100 上重排,效果远超 BM25 / 单纯换更大的 embedding。这与 Lost in the Middle 共同决定了 RAG 工程的现实——模型对上下文窗口前几位的关注度远超中段,所以"把对的东西排到前几位"比"把所有可能相关的东西塞进窗口"更值钱。

Lost in the Middle 是输入侧问题(中段被忽视);RankGPT 是处理侧解药(保证关键 chunk 在前几位)。两者都来自 Transformer 的位置注意力分布——理解了这个对偶,你就理解了为什么"加大上下文窗口"不能取代"上下文质量"。

Things to Remember

  • 检索 top-100 → rerank 到 top-5,比"检索 top-5 用更大模型"性价比更高。
  • BGE-Reranker / Cohere Rerank 是开箱即用基线。
  • rerank 后关键信息必须置顶——位置 1-3 是注意力的 prime real estate。

Effective LLM