Appearance
Retrieval Augmented Generation
Definition
RAG(Retrieval-Augmented Generation,检索增强生成)是一种把外部知识检索与模型生成结合起来的方法。它让模型在回答问题前先访问指定文档集合或知识库,从而将训练参数之外的知识引入当前回答。RAG 解决了纯 LLM 的三大痛点:知识截止、幻觉(无法引用来源)、无法访问私有/实时数据。
Core Architecture
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
- 最简单的流水线,嵌入→检索→拼接→生成
- 优势:实现简单、易于调试
- 劣势:检索质量直接影响输出;无质量保障
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
- 将 RAG 流水线拆分为可替换的模块
- 每个模块可以有多种实现(例如使用不同嵌入模型、检索策略)
Self-RAG with Reflection
Agentic RAG
- 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 粒度 | 块太小丢失上下文 / 块太大含噪声 | 动态分块 + 滑动窗口 |
RAG vs LLM Wiki
LLM Wiki 是 Karpathy 提出的一种超越传统 RAG 的知识库模式:
| 维度 | 传统 RAG | LLM Wiki |
|---|---|---|
| 知识持久性 | 查询后丢弃,无积累 | 知识被编译并持续维护 |
| 交叉引用 | 查询时动态发现 | 已预先建立,随时可用 |
| 综合深度 | 受限于检索片段数量 | 反映所有已读内容的综合 |
| 维护成本 | 低(仅更新索引) | 需要 LLM 持续维护 wiki |
| 适用规模 | 任意规模文档集 | 中等规模(~100 源,~数百 页) |
关键差异:RAG 是"查询时检索→生成→丢弃",而 LLM Wiki 是"摄取时编译→持续维护→查询时直接搜索 wiki"。两者不是替代关系,而是适用于不同场景:RAG 适合大规模静态文档集的即时查询,LLM Wiki 适合持续深度研究和知识积累的场景。
Open Questions
- 检索质量、重排质量和引用质量如何统一评估?
- 在长上下文模型增强后(DeepSeek V4 1M, Google DeepMind 1M),RAG 的最佳形态会如何变化?
- RAG 与 Agent(AI Agents)的真正边界在哪里——什么时候用纯 RAG,什么时候用 Agentic RAG?
- 能否实现检索增强的端到端训练,使模型学会"何时检索"和"如何检索"?
- LLM Wiki 模式是否会成为企业知识管理的主流范式?它与传统知识图谱(Knowledge Graph)的关系是什么?
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)
Large Language Model (LLM) — 大语言模型的核心定义、技术原理与发展历程