RAG 全景图:核心概念与完整流程
从知识源到答案输出的 11 个阶段,一次看全:切块、向量化、检索、重排序、上下文组装、生成与评估,外加高级范式与指标速查。
ChunkingEmbeddingVector DBRetrievalRerankEvaluation
💡什么是 RAG
先给一个落脚点,再看全景。
RAG(Retrieval-Augmented Generation,检索增强生成)的思路是:大模型回答问题之前,先去你自己的知识库里检索相关内容,把检索到的材料塞进提示词里,让模型基于这些材料作答——而不是只凭训练时的记忆。这样模型能回答训练数据里没有的私有知识、最新信息,并且答案可以给出引用来源。
🔗 类比
像一场开卷考试:闭卷(纯大模型)只能靠记忆,记错了也照写;开卷(RAG)是先翻书找到相关页(检索),把那几页摊在桌上(上下文组装),再照着写答案(生成)。书翻得准不准、摊开的页数够不够,直接决定答案质量——这正是 RAG 各阶段要优化的事。
整个系统分两条线:离线的「知识入库」(阶段 1–5:把资料处理成可检索的向量库)和在线的「检索与生成」(阶段 6–11:用户每次提问都实时走一遍)。下面按这两条线逐个阶段展开。
📥知识入库:阶段 1–5(离线索引)
把各种格式的原始资料,加工成可以按语义检索的向量库。
阶段 1
知识源
Knowledge Source
RAG 能吃进的原料远不止文档,常见知识源包括:
- PDF / Word、Markdown、网页 / HTML
- Notion、Confluence 等知识库工具
- 数据库 / 表格、GitHub / 代码
- 图片 / OCR、视频 / 音频(先转成文字)
- API / 其他动态数据源
阶段 2
文档处理
Document Processing
- 解析(Parsing):从各种格式中提取文本
- 清洗(Cleaning):去除噪声、页眉页脚、特殊字符等
- 去重(Deduplication):删除重复内容
- 元数据(Metadata):记录来源、标题、作者、时间、标签、权限等
- 结构化(Structuring):章节识别、标题结构化、表格处理等
💬 这一步常被低估:检索质量的上限,很大程度在入库时就定了——垃圾进,垃圾出。元数据尤其关键,后面阶段 6 的过滤、阶段 8 的引用来源都靠它。
阶段 3
Chunk 切块
Chunking
长文档不能整篇塞给检索系统,要切成合适大小的块。Chunk 大小通常在 200–500 Token 左右,常见切法:
- 重叠切块(Overlap):相邻块之间保留一段重叠,保证上下文连续性
- 语义切块(Semantic):按语义边界切分,而不是机械按字数
- 父子切块(Parent-Child):大块提供上下文、小块用于检索,兼顾两头
- 滑动窗口(Sliding Window):固定窗口滑动切分
⚠️ 切块是典型的取舍:块太小,语义被切碎、检索到了也看不懂;块太大,检索粒度粗、还挤占上下文窗口。这就是「大小、重叠、策略」三个参数值得反复调的原因。
阶段 4
Embedding 向量化
Embedding
常见 EMBEDDING 模型
- OpenAI Embedding、Voyage、BGE、Jina、Cohere 等
核心概念
- 向量(Vector):一段文本被转换成的一串数字表示
- 维度(Dimension):向量的长度,由模型决定
- 相似度(Similarity):两个向量的接近程度 ≈ 两段文本的语义接近程度
- Cosine / Dot / L2:三种常用的相似度/距离计算方式
🔗 类比
向量化像给每段文字一个语义坐标:意思相近的文字,坐标就挨得近。「怎么退货」和「退款流程」字面不同,但坐标相邻——这就是向量检索能"懂意思"的原因。
阶段 5
向量数据库
Vector Database
常见产品
- Pinecone、Milvus、Weaviate、Qdrant、Chroma、pgvector 等
核心概念
- 索引(Index):为高效查找而组织向量的数据结构
- ANN(近似最近邻):不求绝对最近、只求足够近,换取大规模下的速度
- HNSW / IVF / PQ:三种主流的 ANN 索引/压缩技术
- 持久化存储:向量与数据可靠落盘
- 元数据过滤:检索时按来源、时间、权限等条件先筛一遍
🔎检索与生成:阶段 6–11(在线查询)
用户每提一个问题,系统实时走完这六步。
阶段 6
检索
Retrieval
检索方式
- 向量搜索(Vector Search):按语义相似度找
- 关键词搜索(BM25):按词面匹配找,擅长精确命中
- 混合搜索(Hybrid Search):两者结合,取长补短
关键概念
- Top K:取回最相关的前 K 条
- Recall(召回率)与Precision(精确率):找得全 vs 找得准
- Filter(过滤):用元数据条件缩小检索范围
阶段 7
重排序
Rerank
作用:对检索结果重新打分排序,提升相关性。初检(阶段 6)求快、求全;重排序用更精细(也更慢)的模型只对这几十条精挑细选,把真正相关的排到前面。
常见重排序模型
- Cohere Rerank、BGE Reranker、Jina Reranker 等(多为 Cross-Encoder 结构)
阶段 8
上下文组装
Context Assembly
把选中的片段拼装成送给大模型的最终材料:
- 去重(Deduplication)、排序(Ordering)、合并(Merging)
- 压缩(Compression):去掉冗余,省 Token
- 元数据注入(Metadata)与引用来源(Citation):让答案可溯源
关键概念
- Context Window(上下文窗口):模型一次能读的总量上限
- Token 限制管理:在窗口预算内决定放什么、放多少
阶段 9
增强
Augmentation
把各种材料按模板拼成最终提示词,通常包含:
- 系统提示词(System Prompt)、用户问题(Query)、检索上下文(Context)
- 指令(Instruction)与引用格式(Citation)要求
关键概念
- Prompt Template:固定的拼装模板
- Guardrail(约束):限定模型只依据材料作答等规则
- 幻觉 / 溯源控制:从提示词层面压低编造、要求给出处
阶段 10
大模型生成
LLM Generation
常见模型(原图所列)
- GPT-4 / 4o、Claude 3、Gemini、Llama 3 等
关键概念
- 生成(Generation)与推理(Reasoning):读懂材料并组织出答案
- 幻觉(Hallucination):生成与事实不符的内容
- 忠实度(Faithfulness)与Grounding:答案要"扎根"在给定材料上
阶段 11
评估
Evaluation
评估维度
- 检索评估(Recall / Precision)、答案质量(Answer Quality)
- 忠实度(Faithfulness)、延迟(Latency)、成本(Cost)
评估方式
- 自动化评估、人工评估、Benchmark 测试集、A/B Test
📌 评估不是最后一步,而是持续优化的起点:哪个环节拖了后腿(检索没找到?排序不准?生成在编?),要靠分维度评估才能定位。
⚡RAG 运行时流程(用户提问到生成答案)
一次问答的完整旅程,以及闭环的反馈优化。
注意开头多了一步问题理解:用户的原话往往不是最好的检索词——口语化、缺关键词、或者一句话里其实藏着好几个问题。先把问题改写(Query Rewrite)或拆成多个角度(Multi-Query)再去检索,召回质量会明显提升。这一步也正是下一节多个高级范式的入口。
🚀高级 RAG 范式
基础流水线之上的六种进阶玩法。
✍️ Query Rewrite
- 改写问题,提升检索效果
- 把口语化提问变成更适合检索的表述
🤖 Agentic RAG
- 由 Agent 决策检索策略与工具调用
- 检索几次、用什么源、要不要换关键词,都由模型自主决定
🔀 Multi-Query Retrieval
- 多角度检索,并集召回
- 一个问题拆成多个查询,减少单一表述的遗漏
🕸️ Graph RAG
- 结合知识图谱进行检索与推理
- 适合实体关系密集、需要多跳推理的问题
🪞 Self-RAG
- 模型自我判断是否需要检索
- 简单问题直接答,拿不准才去查,省时省成本
🔁 Iterative RAG
- 多轮检索、逐步逼近答案
- 用上一轮的结果引导下一轮检索,适合复杂问题
📇核心概念速查表
12 个高频概念,每个三句话说清。
Chunk(切块)
- 知识的基本单元
- 影响检索粒度与语义完整性
- 关键参数:大小、重叠、策略
Embedding(向量化)
- 将文本转换为向量表示
- 捕捉语义信息,用于相似度计算
- 关键参数:模型、维度
Vector Database
- 存储向量及元数据
- 支持高效相似度搜索
- 关键技术:索引、ANN、HNSW
Retrieval(检索)
- 从知识库中找出相关内容
- 方式:向量 / 关键词 / 混合检索
- 关键参数:Top K、Filter
Rerank(重排序)
- 对检索结果重新排序
- 提高相关性与质量
- 使用 Cross-Encoder 模型
Context(上下文)
- 送入大模型的最终信息集合
- 受限于 Context Window
- 需要压缩、排序、去重
Prompt(提示词)
- 指导模型生成的指令
- 包含系统提示、上下文、问题等
- 影响模型输出质量
LLM(大模型)
- 根据上下文生成答案
- 能力:理解、推理、生成
- 风险:幻觉、不忠实
Evaluation(评估)
- 衡量 RAG 系统效果
- 包括检索、生成、效率、成本
- 持续优化的依据
Hybrid Search(混合搜索)
- 结合关键词与向量搜索优势
- BM25 擅长精确匹配
- 向量擅长语义理解
Metadata(元数据)
- 描述数据的额外信息
- 用于过滤、排序、权限控制等
- 提升检索精度
Hallucination(幻觉)
- 模型生成与事实不符的内容
- 通过检索、提示、评估降低
- 忠实度是 RAG 核心目标之一
📏常见指标解释
评估 RAG 时最常挂在嘴边的五个数。
| 指标 | 含义 |
| Recall(召回率) | 找到的相关文档数量 ÷ 实际相关文档数量 —— 该找的找全了没有 |
| Precision(精确率) | 找到的相关文档数量 ÷ 检索到的文档数量 —— 找回来的里面有多少是真相关 |
| Faithfulness(忠实度) | 答案是否基于上下文,是否编造 |
| Latency(延迟) | 从提问到输出答案所需时间 |
| Cost(成本) | Token 消耗、模型调用费用、存储成本 |
📌 Recall 和 Precision 天然互相牵制:多召回一些(K 调大)通常 Recall 升、Precision 降。工程上常用「先大 K 保召回、再重排序保精确」的组合拳,这正是阶段 6 + 阶段 7 的分工逻辑。
一张图收束:RAG 的本质是把「开卷考试」工程化——离线把书整理好(处理、切块、向量化、建库),在线把书翻准(检索、重排序),把摊开的页控制在桌面大小(上下文组装、增强),照着写答案(生成),再用评分反过来改进翻书方式(评估与反馈环)。11 个阶段各有可调参数,任何一环掉链子,答案质量都会打折。