RAG · 检索增强生成 · 概念深潜

把"检索 + LLM"拆成一条可定位、可优化的工程系统

基于截至 2026-06 的实践与论文 · 深潜(约半天)· 概念为主,代码为示意(未本地验证)。这份教程不教你抄一段 LangChain demo,而是给你一张能在系统答错时定位问题的结构图。

A适合谁

这份教程面向已经具备检索与大模型基础、想把 RAG 从"会调库"升级到"懂机制"的工程师。需要你具备三项能力:

  • 用过至少一个向量检索工具(FAISS / pgvector / Pinecone / Qdrant 之一),能解释 embedding 是什么、近邻搜索在算什么。没有这个基础,先读同系列的 向量数据库教程。
  • 调用过 LLM API(OpenAI / Anthropic / 本地模型皆可),知道 prompt、token、context window 这几个词各指什么、各自的限制在哪。
  • 能读 Python 伪代码。教程里的代码是讲机制的示意,不要求本地跑通——重点在"这一步在算什么",不在环境配置。

B不适合谁

  • 没接触过 embedding / 向量检索:RAG 把向量检索当地基,这里不会重讲。先看 向量数据库教程,再回来。
  • 只想要一段能跑的 demo 代码:去看 LangChain / LlamaIndex 官方 quickstart。这份教程讲的是 demo 背后"为什么这么搭、什么时候会塌"。
  • 想深入 embedding 模型或 transformer 的训练内部:那是表示学习的主题,本教程只用到"嵌入把语义映射成向量"这一层结论。

C读完之后你能做到什么

核心收获,一句话:看到一个 RAG 系统答错时,你能定位失败发生在漏斗的哪一段——是召回没捞到、重排没排上、还是生成阶段无视了证据——而不是笼统地"再调调 prompt"或"换个 embedding 模型"碰运气。

具体到可验证的能力:

  • 画出 RAG 的"召回→精度漏斗",并说出每个进阶技术(hybrid、RRF、rerank、HyDE、Contextual Retrieval)插在漏斗的哪一点、修的是哪一段的什么问题。
  • 判断一个业务场景该用 RAG / 微调 / 长上下文 / 几者组合,并说出做这个决定的那条关键轴。
  • 区分检索失败与生成失败,分别用 context recall、faithfulness 等指标把责任落到具体阶段。
  • 解释为什么"检索对了仍会幻觉",以及 grounding 为什么是概率性的、不是开关。
  • 说清 2026 年仍在演进的前沿(GraphRAG、Agentic RAG、视觉检索)各自补的是朴素 RAG 的哪个具体短板。

一句话本质

RAG 把知识从模型权重里解耦出来,变成一条可分阶段优化的"检索→生成漏斗":检索阶段用廉价方式最大化召回,重排 / 生成阶段用昂贵方式最大化精度;而 grounding 只是把生成的概率分布推向证据、并非强制——所以检索质量是答案质量的上限,但完美检索仍不保证不幻觉。

这句话里藏着三根贯穿全教程的支柱:①知识解耦(知识从"训练进权重"变成"运行时检索");②召回→精度漏斗(全教程的组织主线,每个技术都对应漏斗上的一个干预点);③grounding 概率契约(这也是为什么评估必须把"检索对不对"和"答得忠不忠实"分开量)。

D现状速览(截至 2026-06)

什么稳了 · 什么在变 · 什么过时了

已稳定(放心学):retrieve-then-generate 闭环 + 分块 + 向量检索(约 2023 定型);混合检索(dense + BM25)与 cross-encoder 重排已是默认配置,不再是"可选优化";评估三件套 RAGAS / TruLens / DeepEval 与 faithfulness、context precision/recall、answer relevance 指标(约 2024 定型)。

仍在快速演进(学时带上日期):Anthropic Contextual Retrieval(2024-09)、GraphRAG → LazyGraphRAG(2024-12 / 2025-06)、Agentic RAG 体系 Self-RAG / CRAG / Adaptive(2025-01 成型)、ColPali 视觉 / late-interaction 检索(ICLR 2025);embedding 与 reranker 榜单每季度翻动,开源 Qwen3 系列已在 MTEB 反超闭源。

已被取代(别学旧法):"RAG 已死、直接塞 1M 上下文" → 共识已转向"按查询路由"(质量在约 500K token 后下滑);纯固定大小分块 → 语义 / 上下文分块;纯 dense 检索 → hybrid;复杂 PDF 的 OCR-then-embed → 正被视觉检索蚕食。

读之前 · 一个关于"读懂了"的警告

RAG 的每个组件单看都不难,连起来读会很顺。但"顺"是危险信号,不是学会的证据。三种自我感觉,对应三种假象——读到时请停下来:

· "我读得很顺":这是熟悉感,不是掌握。组件名字眼熟 ≠ 你能说出它在漏斗的哪一段、代价是什么。

· "我做题很快":多半因为题目是你刚读过那段的复述。真正的检验是 05 章那些"该用 A 还是 B"的判别题。

· "我没卡壳":很可能你的思路一直贴着正文滑行,没真正调动结构。每章的"想一想"请先停十秒、自己答,再展开。

E概念地图

索引侧 分块 → 嵌入 → 建索引 候选库 用户查询 改写 / HyDE 检索 全语料 · 召回↑ 重排序 短名单 · 精度↑ 生成 grounding · 引用 ~100 ~8 前沿方向 GraphRAG·Agentic·ColPali 增强 评估 faithfulness / recall 度量
图 0RAG 的"召回→精度漏斗"全景:查询经检索(全语料、最大化召回)、重排(短名单、最大化精度)、生成(grounding)三阶逐级收窄,候选从约 100 篇缩到约 8 篇、再到 1 个答案。注意:每个进阶技术都只插在这条漏斗的某一个环节上——索引侧供给候选、查询改写改写入口、评估度量出口、前沿增强其中某一阶。全教程就是沿这张图逐段下探。

F学习路径建议

顶部那条面包屑(00 → 01 → 02 → 03 → 04 → 05)是默认顺序。按你的目的可以走不同的支线:

  • 只想建立心智模型读 01(概念与闭环)+ 02(检索机制),再用 05 的判别题检验。03、04 可略读。
  • 要做技术选型重点读 01 的"一句话本质" + 04(前沿与 RAG-vs-长上下文的路由共识)+ 05 的场景判别题。
  • 带读他人的 RAG 代码按面包屑顺序全读——你需要 02 的检索机制和 03 的失败模式,才能看懂别人为什么这么搭、哪里埋了雷。

G目录

H学完之后

这份教程把"RAG 系统的内部结构"装进你的 schema 后,下一步可以往这几个方向接:

  • Agent 与工具调用:把单次检索升级成 agent 的一个可重试工具——在你的 schema 上加"检索是 agent 的一种 action"。
  • 向量数据库工程(同系列教程):索引构建、ANN 参数、分片——补齐漏斗第一段的工程细节。
  • 评估与可观测性:把 03 章的离线指标接到线上 trace,在 schema 上加"RAG 的质量要在生产里持续量"。
  • prompt engineering(同系列教程):生成阶段的 grounding 提示、引用约束、拒答策略,是漏斗最后一段的发力点。