RAG 总览:为什么大模型需要检索增强
为什么大模型需要检索增强:RAG 的根本动机、能力边界与最小可行单元
在大模型(Large Language Model, LLM)能力持续突破、上下文窗口不断扩张的 2024—2026 年,一个看似反直觉的问题正在被反复讨论:既然 GPT-5、Claude 4、Qwen3 等模型已经具备数十万乃至上百万 token 的上下文窗口,且微调技术日趋成熟,为什么工业界仍然将检索增强生成(Retrieval-Augmented Generation, RAG)视为企业知识问答、合规审查、智能客服、垂直领域 Copilot 的事实首选方案? 这一问题看似简单,却牵涉 LLM 的能力边界、可控性经济学(controllability economics)与系统工程权衡。本章将围绕这一根本问题展开,从动机、历史、能力边界、架构演进、组件全景与最小可行实践六个角度,给出可被工程团队直接采纳的判断框架。
---
1. 三大根本性挑战:幻觉、知识陈旧与可更新性
RAG 并非凭空出现,它的诞生源于大模型在三类关键场景下的结构性短板:幻觉(hallucination)、知识陈旧(knowledge staleness)、以及不可承受的更新成本(update cost)。理解这三类挑战,是判断"何时应当引入 RAG"的前提。
1.1 幻觉:闭卷问答的结构性失败
闭卷问答(closed-book QA)指仅依靠模型参数中存储的知识回答问题。在标准的自然问题(Natural Questions, NQ)基准上,尽管 GPT-4 级别的模型在 2024 年已经可以达到 40% 左右的精确匹配率(Exact Match, EM),但在涉及多实体关系推理、低频专有名词、长尾事实的问题上,模型仍然会生成与事实不符的"自信虚构"。这种现象在文献中统称为幻觉。
幻觉的成因并非简单的"模型能力不足",而是与训练目标的本质相关。语言模型通过下一 token 预测(next-token prediction)最大化对数似然,该目标在数学上并不要求模型"记住事实",而只要求其生成条件概率最高的合理延续。当问题落在训练数据的低密度区域时,模型会倾向于插值(interpolation)甚至捏造(confabulation),而非拒绝回答。
我们可以用一个简化的形式化描述来刻画这一问题。设模型参数为 $\theta$,问题为 $q$,真实答案为 $a^*$,模型生成答案为 $a$。闭卷生成可表示为 $a = \arg\max_{a'} P_\theta(a' \mid q)$,而事实正确性则是独立于该目标的外部约束 $\mathbb{1}[a = a^*]$。两个目标的对齐并非天然成立,特别是在分布外(out-of-distribution, OOD)问题上。
1.2 知识截止与陈旧性
第二个挑战是知识截止(knowledge cutoff) 与陈旧性。任何一次预训练都会将训练数据的截止时间"冻结"到某一时刻,例如 GPT-4 的训练数据截至 2023 年 10 月,Claude 3.5 截至 2024 年 4 月。然而,企业知识、新闻事件、产品手册、合规法规等高价值信息的更新频率远高于模型再训练的节奏。
更关键的是,重新训练或持续预训练(continued pretraining)的成本极其高昂。以一个 70B 参数的模型为例,完整的一次预训练需要数千张 GPU 持续运行数周,成本可达数百万美元;而一次监督微调(SFT)的成本约为完整预训练的 1/100 到 1/30,但仍然需要数天时间和专业团队。即使采用 LoRA、QLoRA 等参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)技术,实时性更新依然不可行。
RAG 提供了一种完全不同的解决思路:不修改模型参数,而是在推理时动态注入外部知识。这种"参数外知识"(parametric-external knowledge)分离的设计,使知识更新成本从"重训一个模型"下降为"更新一个向量索引",后者通常只需数分钟到数小时。
1.3 可更新性、可审计性与可控性
从系统工程视角看,RAG 真正不可替代的价值在于可更新性(updatability)、可审计性(auditability)、可控性(controllability) 三位一体的能力。具体而言:
- **可更新性**:当产品手册从 v1.0 升级到 v2.0,只需重新构建索引,无需重新训练模型。
- **可审计性**:每一条生成的答案都可以追溯到具体的源文档 chunk,便于合规审查与争议处理。
- **可控性**:可以通过检索过滤、文档权限分级、内容审核等机制,精确控制模型可见的知识范围。
这三点在金融、医疗、法律、政府等强监管场景下,是任何"纯模型"方案都无法满足的硬性要求。
---
2. RAG 的历史脉络:从 REALM 到 Modular RAG
RAG 并非 2023 年横空出世的新概念,其思想可以追溯到 2020 年前后的一系列奠基性工作。理解这段历史,有助于看清 RAG 的核心设计不变式(design invariants),避免在纷繁的新名词中迷失方向。
2.1 奠基期(2020—2021):神经检索与显式记忆
REALM(Guu et al., 2020) 是公认的第一个端到端将检索与生成联合训练的模型。它将 masked language modeling 与文档检索放在同一个概率框架下:
$$P(y \mid x) = \sum_{z \in \mathcal{Z}} P_\theta(z \mid x) \cdot P_\phi(y \mid x, z)$$
其中 $z$ 是从语料中检索出的文档,$P_\theta(z \mid x)$ 是检索器打分,$P_\phi(y \mid x, z)$ 是条件生成概率。这一公式揭示了 RAG 的核心不变式:生成以检索为条件分布。
紧随其后的 RAG(Lewis et al., 2020)、Fusion-in-Decoder(Izacard & Grave, 2021)、Atlas(Izacard et al., 2022) 等工作,进一步在开放域问答、Few-shot QA、对话生成等任务上验证了这一范式的有效性。Atlas 尤其值得注意:它在 Natural Questions 上的表现已经接近人类水平,而使用的模型参数量远小于同期纯参数化方案。
2.2 工业化期(2022—2023):Naive RAG 与工程化框架
2022 年底 ChatGPT 发布后,LLM 的 in-context learning 能力被广泛认知,研究者开始探索将检索与 in-context 拼接的更简洁方案。Naive RAG 由此成为业界事实标准,其流程可概括为:
1. 离线索引:将文档切分为 chunks,通过 embedding 模型编码为向量,建立向量索引(如 FAISS)。 2. 在线检索:用户 Query 经同一 embedding 模型编码后,召回 Top-K 相似 chunks。 3. Prompt 拼接:将 chunks 与 query 拼接为 prompt,输入 LLM 生成答案。
LangChain、LlamaIndex 等框架在这一阶段迅速兴起,将 Naive RAG 抽象为可复用的工程模板。
2.3 演进期(2023—2024):Advanced RAG 与 Modular RAG
随着应用深入,Naive RAG 的局限(如检索噪声、上下文窗口浪费、缺乏后处理)日益突出。Advanced RAG 在此背景下提出了一系列优化技术:
- **预检索优化(pre-retrieval)**:Query 改写、HyDE(Hypothetical Document Embeddings)、Query 扩展。
- **检索优化(retrieval)**:混合检索(dense + sparse)、多路召回、重排序(reranking)。
- **后检索优化(post-retrieval)**:上下文压缩、Re-ranking、Filter。
Modular RAG 进一步将 RAG 抽象为一组可插拔模块(retriever、reranker、reader、verifier、controller 等),通过 DAG 或有向图组织,并支持 Self-RAG、Adaptive Retrieval、Agentic RAG 等复杂工作流。Gao et al. (2023) 的综述 *Retrieval-Augmented Generation for Large Language Models: A Survey* 系统梳理了这条演进路径。
2.4 当前阶段(2025—2026):Agentic RAG 与生产化
2025 年以来,RAG 与 Agent 范式进一步融合,诞生了 Agentic RAG:LLM 主动决定何时检索、检索什么、如何验证、如何反思。这一阶段的关键趋势包括:
- **Agentic retrieval**(multi-step reasoning over retrieval)
- **GraphRAG**(知识图谱增强的检索)
- **Self-correcting RAG**(自校正、自验证)
- **Multimodal RAG**(表格、图像、代码的统一检索)
但无论范式如何演进,Query → Retriever → Context → Generator 这一最小不变式始终是 RAG 系统的骨架。
---
3. 闭卷与开卷:一个对比实验
为直观展示 RAG 的价值,我们设计一个最小对比实验。给定一个私有知识问题:
> 问题:"我们公司 2024 年发布的 Atlas-7B 模型在 MMLU 基准上的得分是多少?"
闭卷问答(GPT-4,无检索):
模型生成:"据我了解,Atlas-7B 在 MMLU 上的得分大约在 65% 到 70% 之间,具体数值需要参考官方发布报告。"
分析:模型给出了看似合理但完全虚构的数字区间,未能提供任何可追溯证据,也无法确认是否符合企业真实情况。
开卷问答(RAG 增强):
假设索引中包含 Atlas-7B 技术报告的 chunks,Top-1 chunk 内容为:
> "Atlas-7B 在 MMLU(5-shot)上取得 72.3% 的成绩,超过同等规模的 Qwen2-7B(70.5%)和 Llama-3-8B(68.9%)。"
模型生成(基于该 chunk):"根据 Atlas-7B 技术报告,该模型在 MMLU 5-shot 基准上取得 72.3% 的成绩,超过 Qwen2-7B 的 70.5% 和 Llama-3-8B 的 68.9%。"
分析:答案事实准确、可追溯、可审计,且回答更具信息量。
更系统的对比可参考 Table 1(示意性数据,基于公开基准综合):
| 指标 | 闭卷 LLM (GPT-4) | Naive RAG | Advanced RAG | |---|---|---|---| | 事实准确率(NQ) | ~40% EM | ~52% EM | ~58% EM | | 幻觉率(HotpotQA) | ~28% | ~12% | ~7% | | 知识更新延迟 | 数月 | 分钟级 | 分钟级 | | 单次推理成本 | 1x | 1.05x | 1.1x |
这一对比清晰地说明:RAG 不是 LLM 的替代,而是 LLM 的"外挂知识库",在可接受的边际成本下显著提升事实准确率与可控性。
---
4. 三代架构演进:Naive / Advanced / Modular RAG
为帮助工程师建立清晰的架构心智模型,我们将 RAG 架构分为三代。这种划分并非严格的时间线,而是能力复杂度的递进阶梯。
4.1 Naive RAG:最小可行范式
Naive RAG 是所有 RAG 系统的起点。其特点是线性管道(linear pipeline),各环节职责清晰、无反馈、无分支:
```mermaid flowchart LR Q[User Query] --> E[Query Encoder] E --> R[Retriever] R --> D[Top-K Documents] D --> P[Prompt Assembly] P --> L[LLM Generator] L --> A[Final Answer] ```
各节点说明:
- **Query Encoder**:将原始问题编码为向量,可与文档端共享同一 embedding 模型。
- **Retriever**:基于向量相似度(cosine、dot product)从索引中召回 Top-K chunks。
- **Top-K Documents**:通常是 K=3 到 K=10 的候选片段,构成上下文。
- **Prompt Assembly**:将 query 与 chunks 拼接为 LLM 可理解的 prompt。
- **LLM Generator**:生成最终答案。
- **Final Answer**:返回给用户的响应。
Naive RAG 的优点是实现简单、调试直观;缺点是缺乏对检索质量的反馈,一旦召回的 chunks 不相关,整条管道就会失效。
4.2 Advanced RAG:检索前后的双向优化
Advanced RAG 在 Naive RAG 的三个环节前后都引入优化策略:
- **Pre-Retrieval**:Query Rewriting、HyDE、Query Decomposition、Step-back Prompting。
- **Retrieval**:Hybrid Search(BM25 + dense)、Multi-query Retrieval、Parent Document Retriever。
- **Post-Retrieval**:Reranking(Cohere Rerank、bge-reranker)、Contextual Compression、Lost-in-the-Middle 缓解。
其核心思想是:检索质量决定生成质量。因此,所有不直接增加检索召回率与精排准确率的工作,都是值得投入的工程优化。
4.3 Modular RAG:可插拔与可编排
Modular RAG 将 RAG 抽象为若干独立模块,通过有向无环图(DAG) 或状态机编排,支持条件分支、循环、自适应检索。典型模式包括:
- **Self-RAG**:模型自主决定是否检索、检索后是否批评答案。
- **Adaptive RAG**:根据问题难度自动选择 no-retrieval / single-step / multi-step retrieval。
- **Corrective RAG(CRAG)**:对检索结果进行自我评估,必要时回退到 web search。
- **Agentic RAG**:将 Retriever 作为 Tool,由 LLM Agent 自主调用。
Modular RAG 的工程价值在于可组合性(composability)与可观测性(observability),但代价是系统复杂度显著上升,需要更完善的 tracing、evaluation 与运维体系。
---
5. RAG 与微调、长上下文、Tool Use 的能力边界
工程团队常问的一个问题是:RAG 与 Fine-tuning、Long Context、Tool Use 究竟是什么关系?它们是替代关系还是协同关系? 我们逐一分析。
5.1 RAG vs. Fine-tuning(微调)
微调通过更新模型参数来注入知识或改变行为。其优势在于风格对齐、指令遵循、格式控制;其劣势在于:
- **知识注入成本高**:更新成本与参数规模强相关。
- **灾难性遗忘**:新知识可能冲淡原有能力。
- **不可追溯**:无法从模型权重中定位"某条事实从何而来"。
RAG则相反:风格与指令遵循较弱,但知识更新成本极低、追溯性强。实践中常见的方案是 RAG + 轻量微调:用微调让模型学会"如何基于上下文回答",用 RAG 提供"回答所需的实时知识"。
5.2 RAG vs. Long Context(长上下文)
随着 Gemini 1.5 Pro(1M tokens)、Claude 3(200K tokens)、Qwen2.5(128K tokens)等长上下文模型的成熟,一个自然的问题是:既然可以把整本手册塞进 context,是否还需要 RAG?
答案仍然是有条件的"需要"。长上下文的主要瓶颈:
- **推理成本**:Transformer 的注意力复杂度是 $O(n^2)$,上下文越长,单次推理成本与延迟越高。
- **Lost-in-the-Middle**:研究表明 LLM 对上下文中部的内容关注度显著低于两端。
- **缺乏结构化索引**:长上下文本质是"线性文本",缺乏语义检索、过滤、权限控制等能力。
- **无法跨文档推理**:单次 prompt 难以有效整合跨多个文档的证据。
RAG 在这些场景下依然具有结构性优势:只把最相关的 K 个 chunks 喂给模型,从而在有限成本下获得更高的事实准确率与更强的可解释性。
5.3 RAG vs. Tool Use(工具调用)
Tool Use(如 Function Calling)让 LLM 主动调用外部 API(搜索、数据库、计算器、代码执行器等)。它与 RAG 的关系可以这样理解:
- **RAG 是 Tool Use 的一种特例**:Retriever 本身就是一个 Tool。
- **Tool Use 更通用**:可以调用任意 API 执行任意动作。
- **RAG 更专注**:专注于"为生成提供上下文证据"。
在实践中,Tool Use 与 RAG 是协同关系:Agent 可以先调用 retriever 获取私有知识,再调用 web search 补充最新信息,再调用 calculator 验证数字,再调用 code execution 生成图表。这正是 Agentic RAG 的核心思想。