RAG 全景图:核心概念与完整流程

从知识源到答案输出的 11 个阶段,一次看全:切块、向量化、检索、重排序、上下文组装、生成与评估,外加高级范式与指标速查。

ChunkingEmbeddingVector DBRetrievalRerankEvaluation

💡什么是 RAG

先给一个落脚点,再看全景。

RAG(Retrieval-Augmented Generation,检索增强生成)的思路是:大模型回答问题之前,先去你自己的知识库里检索相关内容,把检索到的材料塞进提示词里,让模型基于这些材料作答——而不是只凭训练时的记忆。这样模型能回答训练数据里没有的私有知识、最新信息,并且答案可以给出引用来源。

🔗 类比
像一场开卷考试:闭卷(纯大模型)只能靠记忆,记错了也照写;开卷(RAG)是先翻书找到相关页(检索),把那几页摊在桌上(上下文组装),再照着写答案(生成)。书翻得准不准、摊开的页数够不够,直接决定答案质量——这正是 RAG 各阶段要优化的事。

整个系统分两条线:离线的「知识入库」(阶段 1–5:把资料处理成可检索的向量库)和在线的「检索与生成」(阶段 6–11:用户每次提问都实时走一遍)。下面按这两条线逐个阶段展开。

🗺️流水线总览

先看原图,再看分组拆解。

RAG 全景图:核心概念与完整流程(原图)
原图一览(点击在新标签页打开大图)。下面把它按「离线入库 / 在线问答」两条线重新画了一遍。
离线:知识入库 1. 知识源PDF·网页·数据库… 2. 文档处理解析·清洗·元数据 3. Chunk 切块200–500 Token 4. 向量化Embedding 模型 5. 向量数据库索引·ANN 在线:检索与生成(每次提问) 6. 检索向量/BM25/混合 7. 重排序Rerank 8. 上下文组装去重·压缩·合并 9. 增强Prompt 构建 10. 大模型生成LLM 11. 评估质量·延迟·成本 入库产物(向量库)是在线问答的检索对象
RAG 全链路:上排 1–5 为离线索引流水线,下排 6–11 为在线查询流水线,虚线表示向量库把两条线接起来。

📥知识入库:阶段 1–5(离线索引)

把各种格式的原始资料,加工成可以按语义检索的向量库。

阶段 1

知识源

Knowledge Source

RAG 能吃进的原料远不止文档,常见知识源包括:

  • PDF / WordMarkdown网页 / HTML
  • NotionConfluence 等知识库工具
  • 数据库 / 表格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 运行时流程(用户提问到生成答案)

一次问答的完整旅程,以及闭环的反馈优化。

用户问题Question 问题理解Query Rewrite / Multi-Query 检索(Retrieval)召回 Top K 文档片段 重排序(Rerank)得到更相关的片段 上下文组装构建最终上下文 提示增强Prompt Augmentation 大模型生成生成答案 结果输出Answer 反馈与优化(Feedback Loop)
运行时八步:用户问题 → 问题理解(改写/多路)→ 检索 → 重排序 → 上下文组装 → 提示增强 → 大模型生成 → 结果输出;虚线是把线上表现反哺回系统调优的反馈环。

注意开头多了一步问题理解:用户的原话往往不是最好的检索词——口语化、缺关键词、或者一句话里其实藏着好几个问题。先把问题改写(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 个阶段各有可调参数,任何一环掉链子,答案质量都会打折。