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 正例
# 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 工程的现实——模型对上下文窗口前几位的关注度远超中段,所以"把对的东西排到前几位"比"把所有可能相关的东西塞进窗口"更值钱。
Sidebar:Lost in the Middle 与 RankGPT 的对偶
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。