Appearance
Retrieval Augmented Generation
Definition
RAG(Retrieval-Augmented Generation,检索增强生成)是一种把外部知识检索与模型生成结合起来的方法。它让模型在回答问题前先访问指定文档集合或知识库,从而将训练参数之外的知识引入当前回答。RAG 解决了纯 LLM 的三大痛点:知识截止、幻觉(无法引用来源)、无法访问私有/实时数据。
Core Architecture
用户查询
↓
查询编码器(Embedding Model)
↓
向量检索(向量数据库 / BM25)
↓
返回 Top-K 相关文档块
↓
上下文构造(Query + Retrieved Documents + Instruction)
↓
LLM 生成(基于提供的上下文)
↓
有引用来源的回答Key Papers
| 论文 | 年份 | 机构 | 核心贡献 |
|---|---|---|---|
| RAG: Knowledge-Intensive NLP Tasks (Lewis et al.) | 2020 | Facebook AI | 首次系统提出 RAG 框架,将 parametric + non-parametric 记忆结合 |
| REALM: Retrieval-Augmented Language Model Pre-Training (Guu et al.) | 2020 | 将检索融合到预训练阶段,端到端训练 | |
| REPLUG: Retrieval-Augmented Black-Box Language Models (Shi et al.) | 2023 | 证明即使不微调模型,仅通过检索增强就能提升性能 | |
| Self-RAG (Asai et al.) | 2023 | UW/Allen AI | 模型自主决定是否需要检索;引入了 reflection tokens |
| Corrective RAG (CRAG) (Yan et al.) | 2024 | — | 引入检索质量评估 + 纠正机制 |
| RAPTOR: Recursive Abstractive Processing (Sarthi et al.) | 2024 | Stanford | 分层摘要式检索,支持多层次语义理解 |
RAG Architecture Variants
Naive RAG
Query → Embed → Retrieve → Concat → Generate → Answer- 最简单的流水线,嵌入→检索→拼接→生成
- 优势:实现简单、易于调试
- 劣势:检索质量直接影响输出;无质量保障
Advanced RAG (Pre-Retrieval + Post-Retrieval)
| 阶段 | 技术 | 作用 |
|---|---|---|
| Pre-Retrieval | Query Rewriting / Query Expansion / HyDE | 优化查询表达,提高检索召回率 |
| Retrieval | Dense Retrieval (Embedding) + Sparse Retrieval (BM25) | 混合检索策略 |
| Post-Retrieval | Re-ranking / Filtering / Compression | 精炼检索结果,消除噪声 |
| Generation | KG-guided / Multi-hop / Self-Consistency | 增强生成的准确性和可溯源性 |
Modular RAG
Query → Query Rewriting → Multi-Route Retrieval (Vector + BM25 + Graph)
→ Fusion → Re-ranking → Context Compression
→ Generation + Citation- 将 RAG 流水线拆分为可替换的模块
- 每个模块可以有多种实现(例如使用不同嵌入模型、检索策略)
Self-RAG with Reflection
Query → LLM 决定是否需要检索?
├─ 不需要 → 直接生成
└─ 需要 → 检索 → LLM 评估每个检索块的 BAD/SUPPORT/USEFUL
→ 选择最佳块 → 生成 + 引用 + 质量评估Agentic RAG
Query → Agent (LLM)
→ 自动决定:多次检索?工具调用?代码执行?
→ 逐步推理 + 动态修正检索策略
→ 最终回答- RAG + AI Agents 的结合:Agent 自主决定查询策略、检索时机、结果验证
- 适合复杂多跳问答场景
Retrieval Methods Comparison
| 方法 | 原理 | 优势 | 劣势 |
|---|---|---|---|
| Dense Retrieval (Embedding) | 文本 → 向量 → 语义相似度搜索 | 语义理解强 | 对罕见/专业术语效果差 |
| BM25 (Sparse) | 基于词频和逆文档频率的词汇匹配 | 精确匹配强,零部署成本 | 语义泛化弱 |
| Hybrid (Dense + Sparse) | 组合结果,通常 RRF 或加权融合 | 兼顾语义和词汇匹配 | 增加复杂度 |
| Late Interaction (ColBERT) | 查询-文档 token 级交互相似度 | 细粒度匹配,效果最佳 | 检索速度较慢 |
| Graph-based | 知识图谱关联检索 | 关系链推理强 | 需要图谱构建 |
RAG Frameworks & Tools
| 工具 | 核心功能 | 适用场景 |
|---|---|---|
| LangChain | 完整的 RAG 流水线 + Agent 集成 | 快速原型到生产 |
| LlamaIndex | 数据索引优化 + 多步检索 | 复杂文档索引 |
| Haystack | 模块化的检索+管道 | 企业 QA 系统 |
| Weaviate | 原生向量数据库 + RAG | 生产级检索后端 |
| Pinecone | 托管向量数据库 | 大规模生产部署 |
| Chroma | 轻量级嵌入式向量数据库 | 开发/原型 |
| Qdrant | Rust 写的高性能向量数据库 | 高性能检索需求 |
| Milvus | 分布式向量数据库 | 超大规模生产 |
RAG vs Long Context
参见 RAG vs Long Context 的详细对比,核心差异:
| 维度 | RAG | Long Context |
|---|---|---|
| 知识源 | 外部检索(任意大) | 上下文窗口内(有限) |
| 成本 | 检索 + 生成,但上下文短 | 推理成本随上下文增长二次方 |
| 更新 | 索引更新即可(实时) | 需要重新训练 |
| 来源引用 | 天然可引用 | 在大窗口下注意力弥散 |
Why It Matters
- RAG 是企业知识库、客服系统、文档问答、内部搜索增强等场景最常见的落地方式之一
- 它与 AI Agents 紧密相关,因为 Agent 通常需要检索外部文档、状态或工具结果
- 它也补足了纯 Transformer Architecture 模型在知识更新和显式来源引用方面的不足
- RAG 降低了企业采用 LLM 的门槛:无需微调即可将私有知识接入(相对于 Fine-tuning 的另一种路径)
- 关于 RAG、微调和提示工程三种策略的系统性对比,见 RAG vs Fine-Tuning vs Prompt Engineering
Engineering Pitfalls
| 陷阱 | 表现 | 缓解 |
|---|---|---|
| 检索噪声 | 无关文档干扰生成 | 强 Re-ranker + 压缩策略 |
| 缺失关键文档 | 核心信息不在 Top-K 中 | 调大 K + 混合检索 + 多路召回 |
| 引用幻觉 | 模型编造检索结果 | 强制模型引用 + 输出后验证 |
| 丢失上下文 | 长文档截断丢失核心信息 | Hierarchical RAG / RAPTOR |
| 查询意图漂移 | 用户原始意图与检索查询不符 | Query Rewriting + HyDE |
| Chunk 粒度 | 块太小丢失上下文 / 块太大含噪声 | 动态分块 + 滑动窗口 |
Open Questions
- 检索质量、重排质量和引用质量如何统一评估?
- 在长上下文模型增强后(DeepSeek V4 1M, Google Gemini & DeepMind 1M),RAG 的最佳形态会如何变化?
- RAG 与 Agent(AI Agents)的真正边界在哪里——什么时候用纯 RAG,什么时候用 Agentic RAG?
- 能否实现检索增强的端到端训练,使模型学会"何时检索"和"如何检索"?
Sources
- raw/papers/retrieval-augmented-generation-2005.11401-2026-04-26.md
- raw/articles/rag-wikipedia-summary-2026-04-26.md
- RAG: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)
- Self-RAG: Learning to Retrieve, Generate, and Critique (Asai et al., 2023)
- Corrective Retrieval Augmented Generation (Yan et al., 2024)