Skip to content

Retrieval Augmented Generation

Definition

RAG(Retrieval-Augmented Generation,检索增强生成)是一种把外部知识检索与模型生成结合起来的方法。它让模型在回答问题前先访问指定文档集合或知识库,从而将训练参数之外的知识引入当前回答。RAG 解决了纯 LLM 的三大痛点:知识截止、幻觉(无法引用来源)、无法访问私有/实时数据。

Core Architecture

Key Papers

论文年份机构核心贡献
RAG: Knowledge-Intensive NLP Tasks (Lewis et al.)2020Facebook AI首次系统提出 RAG 框架,将 parametric + non-parametric 记忆结合
REALM: Retrieval-Augmented Language Model Pre-Training (Guu et al.)2020Google将检索融合到预训练阶段,端到端训练
REPLUG: Retrieval-Augmented Black-Box Language Models (Shi et al.)2023Google证明即使不微调模型,仅通过检索增强就能提升性能
Self-RAG (Asai et al.)2023UW/Allen AI模型自主决定是否需要检索;引入了 reflection tokens
Corrective RAG (CRAG) (Yan et al.)2024引入检索质量评估 + 纠正机制
RAPTOR: Recursive Abstractive Processing (Sarthi et al.)2024Stanford分层摘要式检索,支持多层次语义理解

RAG Architecture Variants

Naive RAG

  • 最简单的流水线,嵌入→检索→拼接→生成
  • 优势:实现简单、易于调试
  • 劣势:检索质量直接影响输出;无质量保障

Advanced RAG (Pre-Retrieval + Post-Retrieval)

阶段技术作用
Pre-RetrievalQuery Rewriting / Query Expansion / HyDE优化查询表达,提高检索召回率
RetrievalDense Retrieval (Embedding) + Sparse Retrieval (BM25)混合检索策略
Post-RetrievalRe-ranking / Filtering / Compression精炼检索结果,消除噪声
GenerationKG-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轻量级嵌入式向量数据库开发/原型
QdrantRust 写的高性能向量数据库高性能检索需求
Milvus分布式向量数据库超大规模生产

RAG vs Long Context

参见 RAG vs Long Context 的详细对比,核心差异:

维度RAGLong 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 的知识库模式:

维度传统 RAGLLM 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) — 大语言模型的核心定义、技术原理与发展历程

AI Knowledge Base — 持续积累