Ch13 RAG修订于 二〇二六年七月六日

RAG (Retrieval-Augmented Generation)

概述

RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与文本生成相结合的 AI 技术架构。在 RAG 中,LLM 在生成回答之前,先从外部知识库中检索相关文档,然后将检索到的文档作为上下文注入到 prompt 中,再生成回答。这种方式解决了 LLM 的三大核心问题:知识截止日期(缺乏最新信息)、幻觉(生成不准确内容)和领域知识不足(缺乏私有/专业数据)。

为什么需要 RAG

问题纯 LLMRAG 方案
知识截止日期训练数据截止后无法知晓新信息实时检索最新文档
幻觉 (Hallucination)可能编造事实基于检索到的文档回答,可溯源
领域知识不足缺乏私有数据/专业领域知识检索私有知识库
长尾知识训练数据中低频知识可能遗忘精确检索长尾信息
可解释性无法验证信息来源可引用出处,逐条验证
更新成本需重新训练/RFT更新知识库即可,无需重训模型

RAG 的基本流程

用户问题
    |
    v
[1] 查询处理 (Query Processing)
    |  - 改写、扩展、分解
    v
[2] 检索 (Retrieval)
    |  - 向量检索 (Bi-Encoder)
    |  - 关键词检索 (BM25)
    |  - 混合检索 (Hybrid)
    v
[3] 重排序 (Reranking)
    |  - Cross-Encoder 精排
    v
[4] 上下文构建 (Context Assembly)
    |  - 文档拼接、去重、排序
    v
[5] 生成 (Generation)
    |  - LLM 基于检索结果生成回答
    v
最终回答 + 引用来源

RAG 的核心组件

1. 索引 (Indexing)

步骤描述关键技术
文档解析提取文本、表格、图片PDF 解析、OCR、文档布局分析
文本分块 (Chunking)将长文档切分为合适大小的块固定大小、语义分块、递归分块
向量化 (Embedding)将文本块转换为向量BGE, E5, OpenAI Embedding
索引存储存储向量并建立索引FAISS, Milvus, Pinecone, Qdrant

2. 检索策略

策略描述优点缺点
稠密检索 (Dense)基于向量相似度语义理解好对专有名词可能不敏感
稀疏检索 (Sparse)基于关键词匹配 (BM25)精确匹配好无语义理解
混合检索 (Hybrid)稠密 + 稀疏兼顾两者优点实现复杂
多轮检索根据前一轮结果调整查询召回率高延迟高
父文档检索检索小块,返回大块上下文精度和上下文兼顾存储大

3. 生成策略

策略描述适用场景
直接生成将检索文档拼接后直接生成简单问答
摘要后生成先对检索文档摘要,再生成文档量大时
逐步推理检索 -> 推理 -> 检索 -> 推理多跳推理
自我反思生成后检查是否需要补充检索复杂问题

RAG 架构演进

阶段名称特点年份
1.0Naive RAG简单的 Retrieve-Read 流水线2020
2.0Advanced RAG查询改写、重排序、混合检索2023
3.0Modular RAG可编排的模块化检索-生成流程2024
4.0Agentic RAGLLM Agent 自主规划检索策略2025
5.0Cognitive RAG多步推理、自我验证、知识图谱融合2026

2026 年 RAG 技术栈

组件常用技术选型建议
向量数据库Milvus, Qdrant, Weaviate, Pinecone百万级以下用 Qdrant,大规模用 Milvus
Embedding 模型BGE-M3, GTE-Qwen2, E5-Mistral中文优先 BGE-M3
RerankerBGE-Reranker-v2, Cohere RerankCross-Encoder 精排
文档解析LlamaParse, Unstructured, Marker复杂 PDF 用 LlamaParse
分块策略LangChain, LlamaIndex推荐语义分块
编排框架LangChain, LlamaIndex, Dify快速原型用 Dify

相关笔记

来源

关联12

知识图谱

局部图谱 · 点节点跳转