https://x.com/i/article/2109468460107571200
杀死 2023 RAG 的,是更好的 RAG:9 位检索专家的前沿实战共识「Beyond Naive RAG」
Beyond Naive RAG: Practical Advanced Methods
这是 Hamel Husain(AI Evals 课程发起人)主编的一部演讲合集(2026-08),9 位作者均为一线检索研究者与工程实践者。全书围绕一个核心判断展开:2023 年那种“文档切块 → 单向量 embedding → 余弦相似度检索”的朴素 RAG 已经失效,但 RAG 本身(即“检索增强生成”)远未死亡,死的只是那一种简陋的实现方式。
https://hamel.dev/notes/llm/rag/beyond-naive-rag.pdf
Ben Clavié 在第一章给出了全书立意的类比:“因为 RAG 已死所以我们用更好的检索工具”,就像“因为有了 CSS 所以 HTML 已死”一样荒谬。 更精确的类比是:RAM 变大没有杀死硬盘,但 SSD 杀死了硬盘;杀死“2023 版 RAG”的,正是更好的 RAG。
三条贯穿全书的论证主线
1. 检索不可替代(第 1、6 章共同论证)
•长上下文 ≠ 检索的替代品。1M token 约等于 3MB 文本(一张旧软盘),对绝大多数企业知识库远远不够,且逐查询塞满上下文在成本上不可行。
•模型权重是冻结的,永远不知道你昨天的新文档。权重空间应留给“智能”而非“知识存储”。
•Chroma 的 Context Rot 研究(第 6 章)进一步从实证上补刀:上下文越长,模型越不可靠,这直接推翻了“大窗口万能论”。
2. 评估先于优化(第 2、7 章的核心告诫)
•BEIR/MTEB 等基准已进入几乎所有模型的训练数据(数据污染),不再是真正的 zero-shot;排行榜上 400+ 模型分数相差毫厘,选型信号微弱。
•没有自己的“黄金数据集”(真实查询 + 人工标注相关性),团队只会在新技术间盲跳。这是多数团队跳过的最关键一步。
3. 复杂性不是目的(第 7 章收束全书)
•精致(sophistication)≠ 复杂(complexity)。在穷尽简单方案之前上图数据库,是典型的过度工程。
各章内容概括
第 1 章:检索手段的谱系(Ben Clavié, Answer.AI)
单向量检索的根本缺陷:必须把整段文档压缩进一个约 1000 维的向量,必然丢失信息;且 embedding 模型的训练数据(如 Bing 查询)与你的领域数据(如私有代码库)分布不匹配。有效检索远不止一种,grep、wget、agentic search、BM25、ColBERT、web search、推理,最佳实践通常是组合使用。
第 2 章:RAG 时代的 IR 评估(Nandan Thakur,BEIR/FreshStack 作者)
本章是全书方法论上最重要的一章。核心论点:搜索的目标变了,评估指标也必须变。
•传统 IR(60 年 Cranfield 范式)的目标是“相关网页是否排到第一位”,对应 MRR/NDCG。
•RAG 时代的目标是“是否取回了 LLM 回答此问题所需的全部证据”,一个高度相关但不完整的检索集合,照样生成错误答案。
FreshStack(与 Databricks 合作)用三步流水线解决基准污染问题:GPT-4o 把 Stack Overflow 答案拆成原子事实"nuggets" → 多模型混合检索 → 逐 nugget 判定支持关系。由此定义三个互补指标:
关键发现:现有检索技术在这类真实任务上表现挣扎,没有任何模型在所有话题上最优,与 Oracle 上限差距巨大;部分流行专有模型甚至跑不过 BM25。维度权重应按产品需求设定,专利检索重召回,对比性问题重覆盖。
第 3 章:推理能力内置到检索(Orion Weller, JHU)
两个模型,分别对应检索的两个环节:
•Promptriever(bi-encoder,快):训练数据中引入“指令负例”,文档与查询相关但不满足指令(如“找一个用隐喻讲数据隐私的文档”),迫使模型把抽象指令编码进查询向量。成果:(1) 在 FollowIR 上成为首个指令遵循得分为正的 bi-encoder(此前所有模型给指令反而变差);(2) 泛化出“零样本超参数优化”,用自然语言(“要高召回,否则我丢工作”)直接调节检索行为,且对 10 种改写的标准差远小于关键词模型,证明理解的是意图而非字面。
•Rank1(reranker,慢但强):7B 模型,用 SFT 蒸馏 DeepSeek-R1 的推理链(无需 RL),在 BRIGHT 推理基准上以 1/10 的训练数据几乎翻倍基线;消融实验显示推理链本身贡献约 10 分。一个警示性故事:在 DL19/DL20 上初测分数反常地低,人工复判模型新发现的历史上从未被标注的文档后,Rank1 跃居第一,老基准(DL19 早于 BERT 诞生)已测不出新模型的能力。
第 4 章:后期交互模型(Antoine Chaffin, LightOn)
对单向量缺陷的架构级解法:
•Pooling 是原罪:把所有 token 向量压成一个向量是有损压缩。模型会按训练分布选择性记忆(影评语料训练出的模型只编码演员信息、丢弃剧情),换领域即失效。BM25 在 OOD 场景表现坚挺,恰恰因为它零压缩。
•Late interaction 的解法:不做 pooling,保留每个 token 的向量,用 MaxSim 打分(每个查询 token 取与所有文档 token 相似度的最大值,再求和)。不同概念(演员/剧情)各占各的 token 信号,互不干扰。加大单向量维度解决不了多概念挤进一个表示产生的信号冲突。
•实证:GTE-ModernColBERT 仅用 300 token 长度训练就拿下 LongEmbed SOTA;150M 参数的 Reason-ModernColBERT 在 BRIGHT 上超过 7B(45 倍大)模型;同骨干同数据的对照中 19.61 vs 单向量 12.31。
•额外红利:token 级匹配天然可解释,能定位最相关的子片段。落地障碍(存储成本、向量库支持、工具链)正被 PyLate、Vespa/Weaviate/LanceDB 支持和量化技术快速消解。未普及的原因主要是生态成熟度,不是技术不成熟。
第 5 章:多重表示(Bryan Bischof & Ayush Chaurasia)
概念上最具统摄力的一章:“地图不是疆域”,任何表示(embedding、索引)都只是数据的一张“地图”,而同一份疆域可以有许多张地图。
•术语祛魅:HyDE = 文档增强管道(LLM 把文档改写成用户会搜索的语言,生成新地图);Agentic RAG = 查询增强管道(判断“V60 filter”指产品还是餐厅);Rank fusion = 多阶段处理。
•IR 工程师的三项职责:预测用户意图 → 预生成多张地图 → 把意图路由到正确的地图。Agent 的最佳角色是路由器;路由规模小时用 LLM 当分类器即可,规模大时应训练专用分类器。
•一个常被忽视的工程事实:文档是活的。业务/世界事件会改变文档的相关语境,静态 embedding 会过期,系统架构必须支持检测变更、增量重建索引。
•Demo(semanticdotart 艺术品搜索)展示了同一幅作品建立文字描述、诗意描述、情绪关键词、图像内容等多个向量与关键词索引,查询按语义路由。
第 6 章:Context Rot(Kelly Hong, Chroma)
对 18 个前沿 LLM 的系统实验,逐条拆解“大窗口 = 强能力”的迷思:
1.语义匹配退化:NIAH(大海捞针)本质是词面匹配,现代模型近乎满分;但把任务改为语义等价改写后,性能随上下文变长显著下滑;真实用户问“海外扩张进展如何”时正是这种语义任务。
2.干扰项效应:加入与答案语义相似但错误的干扰项后,性能随长度和干扰项数量双重下降。金融/法律文档中仅年份、人名不同的模板化段落就是天然干扰项。失败模式因模型家族而异:Claude 倾向弃答,GPT 幻觉率最高(自信地给出干扰项内容)。
3.反直觉发现:needle 放在打乱的文章里比放在连贯文章里更容易被找到,模型并非按人类的线性结构方式处理上下文;经典的“U 形位置曲线”(首尾信息记得最牢)在其实验中未观察到,“把重要信息放首尾”这条流行建议并不可靠。
4.极简任务也退化:连复述重复词这种零推理任务都随长度掉点。
结论:把正确信息放进上下文只是必要条件,信息的呈现方式同样决定成败。实践建议:先用“短而精 vs 长而杂”两种上下文做对照,观察模型漏掉了什么;编码 Agent 场景用 orchestrator + 子 agent 架构,让每个子 agent 拿干净聚焦的上下文,只回传精华给主 agent。没有任何一个模型在全部长上下文任务上稳定最优。
第 7 章:你(大概率)不需要图数据库(Jo Kristian Bergum,25 年搜索老兵)
•先问要不要检索:有公司被复杂 RAG 管道折磨,一问文档总量,300 份。直接全塞上下文更简单、便宜、有效。
•GraphRAG ≠ 图数据库:知识图谱只是 (源实体, 关系, 目标实体) 三元组集合,CSV、JSON、Postgres 都能存;真正难的是用 LLM 持续维护其准确性(token 成本或领域专家成本)。图数据库只在需要低延迟图遍历、图大到 Postgres 撑不住、或多跳查询时才值得引入,早期 Facebook 用 MySQL 跑了巨型社交图。
•你的向量搜索里本来就藏着图:HNSW 近似最近邻算法本身就是图结构;基于聚类假设(相关文档的邻居也大概率相关)做“检索 → 重排选优 → 对优结果再做近邻检索”的两步法,就是图遍历,任何向量库都能实现。
进一步提炼:一份可执行的实践观
全书七讲可压缩为五条工程原则:
1.先建评估,再谈优化。黄金数据集 + 按产品目标加权的选择性指标(相关性/覆盖/多样性),是一切技术决策的前提;公开排行榜因污染只能作弱参考。
2.表示要多,不要赌一张完美地图。单向量有天花板,出路是多重表示 + 智能路由(第 5 章)、token 级多向量(第 4 章)、BM25 等经典方法的混合(第 1、4 章),BM25 至今仍是 OOD 场景的强硬基线。
3.把 LLM 的新能力下沉到检索层。指令可进入查询向量(Promptriever),推理链可进入重排(Rank1);检索质量因此可以搭上 LLM 进步的顺风车。
4.上下文是资产也是负债。塞满 ≠ 用好;Context Rot 说明检索(选出最小充分证据集)比以往任何时候都更重要。
5.简单性是默认选项。300 份文档就别建管道,CSV 能存图谱就别上图数据库;每次增加基础设施前,先用评估数据证明它值得。
一句话总结:RAG 的下一个阶段不是某个银弹技术,而是“评估驱动 + 多表示 + 推理增强 + 克制的架构”这套组合工程能力。
