RAG 检索增强生成
模型参数里沉淀的知识是「训练时快照」:会过时、会缺失、无法覆盖私有资料。RAG(Retrieval-Augmented Generation,检索增强生成)的思路是不依赖模型记住知识,而是让它在生成前先检索——先从外部知…
模型参数里沉淀的知识是「训练时快照」:会过时、会缺失、无法覆盖私有资料。RAG(Retrieval-Augmented Generation,检索增强生成)的思路是不依赖模型记住知识,而是让它在生成前先检索——先从外部知识库检索相关信息,再结合这些信息一起生成回答,从而提升准确性和知识时效性。这个思路 2020 年由论文提出,2023 年在企业应用里大爆发,至今仍是落地最广、收益最直接的 AI 应用技术之一。这一章讲清楚 RAG 的三段式结构、演进路线,以及它与微调、长上下文的关系。代码级的完整实践在 LangChain 06-08 · 文档加载、嵌入向量库、检索与 RAG,本章聚焦概念与决策。
1. 演进脉络:从论文到企业标配
1.1 提出(2020):把知识外挂
2020 年,《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》提出 RAG:在生成之前先检索,把检索到的文档片段拼进上下文,再让模型基于这些片段生成。知识密集型任务(问答、事实验证、长尾知识)的准确率大幅提升。
这个设计的优雅之处:知识放在模型之外,更新知识库不需要重新训练模型。
1.2 爆发(2023):大模型幻觉催生刚需
ChatGPT 带来两件事:所有人开始问「随便什么知识性问题」,同时模型幻觉(一本正经地胡说八道)成为众矢之的。企业发现 RAG 是当时唯一能同时解决「知识时效」「私有数据」「可溯源引用」的工程方案——RAG 应用一夜之间成为 AI 落地的主力形态。
1.3 成熟(2024-2026):从朴素到高级
| 阶段 | 特征 | 手段 |
|---|---|---|
| Naive RAG | 检索→拼接→生成 | 向量检索 + 直接生成 |
| Advanced RAG | 检索前后都做优化 | 查询改写、重排序、混合检索、上下文压缩 |
| Modular RAG | 检索模块可自由编排 | 多路检索、递归检索、Agent 化检索 |
2025-2026 年,RAG 进一步与 Agent 结合:「检索不再是固定流程,而是由 Agent 根据问题自主决定查什么、怎么查、查几轮」(如 Deep Research 类应用)。同时「长上下文模型会不会杀死 RAG」的讨论持续存在——结论通常是:长上下文解决的是「读得下」,RAG 解决的是「找得准」,两者互补而非替代。
2. 核心概念:三段式流水线
RAG 的标准流水线分三个阶段:
2.1 索引阶段(离线)
- 文档加载:PDF、网页、数据库、Markdown……把各种来源的文档读进来
- 切分(Chunking):按语义把长文档切成小块——切分粒度直接影响检索质量(太粗则噪声大、太细则语义碎)
- 向量化:用嵌入模型(Embedding Model)把每个 chunk 变成向量
- 建索引:写入向量数据库(或简单内存索引),支持相似度检索
2.2 检索阶段(在线)
用户提问 → 把问题也向量化 → 在索引里找最相似的 Top-K 个 chunk。这一步决定「喂给模型的知识对不对」,是整个 RAG 的质量核心。
2.3 生成阶段(在线)
把检索结果拼进提示词(通常带引用标注),让模型基于检索内容生成答案——并要求它「只依据提供的内容回答,不知道就说不知道」。
3. 关键认知:RAG 的质量从哪来
先划清一条边界:RAG 不动模型本身——不改变任何参数,也不让模型「变聪明」。它解决的是「知识可得性」,不是「推理能力」。而且把 RAG 用好远比想象中难:切分粒度、多模态数据入库、嵌入模型选型、检索方式、低相似度兜底……它是系统工程,不是「接个向量库就行」。
RAG 的效果取决于三个环节,任何一个掉链子都白搭:
- 检索质量:召回的知识与问题无关,再强的模型也答不好。优化手段:切分策略、混合检索(关键词+向量)、重排序(Rerank)
- 提示词设计:要明确「只依据上下文回答」「附上引用来源」,抑制模型用内部知识编造
- 数据质量:知识库本身乱,检索结果就乱——RAG 的上限由知识库决定
一个常被忽视的点:引用溯源是 RAG 相对纯 LLM 的杀手级优势——答案可以附「来源文档」,这对企业合规和用户信任至关重要。
4. RAG vs 微调 vs 长上下文:决策表
| 维度 | RAG | 微调(第 03 章) | 长上下文 |
|---|---|---|---|
| 知识更新 | 秒级(改库即可) | 需重新训练 | 即时(塞进上下文) |
| 知识来源 | 任意外部资料 | 训练数据 | 一次性的上下文 |
| 成本 | 中(索引+检索) | 高 | 随长度飙升 |
| 幻觉抑制 | 强(有依据) | 弱 | 中 |
| 适合 | 私有/实时/海量知识 | 行为与格式塑造 | 单次大文档分析 |
经验法则:知识问题优先 RAG;格式与行为问题用微调;一次性大文档用长上下文;生产系统三者常组合。
5. 现状与趋势(2026)
- GraphRAG / 结构化 RAG:用知识图谱补足纯向量检索的关联推理短板,处理「跨多文档的复杂问题」
- Agentic RAG:检索由 Agent 编排——查询改写、多路检索、检索失败重试,从「流水线」走向「自主判断」
- RAG 评测成为工程必备:检索命中率、答案准确率、引用正确率被纳入持续评估,RAG 从「跑通」走向「可度量」
6. RAG 评测指标速查
「跑通了」不等于「做对了」。上线一个 RAG 系统前,至少用下面四类指标各过一遍(按环节分):
| 环节 | 指标 | 衡量什么 | 常用口径 |
|---|---|---|---|
| 检索 | Recall@K | 正确答案有没有被召回 | Top-K 结果里包含黄金答案的比例 |
| 检索 | MRR | 正确答案排得多靠前 | 首个正确答案位置的倒数均值 |
| 生成 | Faithfulness(忠实度) | 答案是否依据检索内容 | 答案中的主张能否在检索片段中找到依据 |
| 生成 | 引用正确率 | 引用的来源是否真实对应 | 引文与检索片段的一致性 |
两个实务提醒:
- 先分开测,再合起来测:检索差时先修切分/嵌入/重排序,别急着调提示词——检索是上游,上游坏了下游怎么调都白搭
- 建一个固定评测集:50-100 个覆盖典型问题形态的样本,每次改检索或改提示词都跑一遍——「RAG 改不动,一改就崩」的根源就是没有回归评测