在人工智能领域,检索增强生成(Retrieval-Augmented Generation,简称 RAG) 已经成为构建高效 AI 系统的核心技术之一。RAG 将大语言模型(LLM)的生成能力与外部知识检索相结合,让 AI 能够"基于事实"回答问题,而不是凭空编造。

本文将通过一系列精心设计的图解,系统性地拆解 RAG 的完整流程,帮助你从零到一掌握这项技术。无论你是 AI 初学者还是有一定基础的开发者,都能从中获得有价值的见解。

📊 RAG 核心流程概览

在深入了解每个环节之前,让我们先对 RAG 的整体架构建立一个宏观认知:

┌────────────────────────────┐

│                        RAG 全流程概览                                      │

├────────────────────────────┤

│                                                                                    │

│    Query(用户提问)                                                      │

│         ↓                                                                        │

│    ① 输入与预处理                                                          │

│         ↓                                                                        │

│    ② Embedding 与索引准备                                            │

│         ↓                                                                        │

│    ③ 向量库召回(Retrieval)                                           │

│         ↓                                                                        │

│    ④ 重排(Rerank)                                                      │

│         ↓                                                                        │

│    ⑤ Prompt 构造                                                           │

│         ↓                                                                        │

│    ⑥ 生成(Generation)                                                 │

│         ↓                                                                        │

│    ⑦ 回答决策(可选)                                                    │

│         ↓                                                                        │

│    最终答案                                                                    │

│                                                                                    │

└────────────────────────────┘

图解说明:这是一张手绘风格的 RAG 全流程拆解图,采用米黄色背景,清晰展示了从用户提问到最终生成答案的完整链路。流程可概括为四个核心关键词:Query(查询)→ 检索 → 重排 → 生成


第一步:输入与预处理(Query)

🎯 什么是 Query?

Query 是用户向系统提出的问题或请求。在 RAG 流程中,Query 是整个过程的起点。一个好的 Query 预处理能够显著提升最终答案的质量。

📝 Query 处理的三个关键步骤

根据图解,Query 输入与预处理包含三个主要阶段:

阶段 1:接收 Query + 上下文/约束(可选)

核心目标:明确用户的真实意图,补全必要的约束条件。

图解图示

┌────────────────┐

│  📄 用户原始输入:"接口又挂了"    │

│                                                 │

│  🔍 拆解为明确问题:                   │

│     • 哪个接口?                           │

│     • 什么时间?                           │

│     • 什么症状?                           │

│     • 查哪个版本?                        │

│                                                  │

│  ✅ 最终输出:明确条件                 │

└─────────────────┘

类比理解:就像你去图书馆借书,你不能只说"我要找本书",而需要说"我要找2024年出版的关于Python编程的书"。

阶段 2:Query 规整(常见)

核心目标:将"聊天式表达"转化为"检索式表达",减少模糊性。

处理流水线

原始输入:"我今天发现那个谁的说的一个奇怪的问题"

    ↓

[去噪] → [纠错] → [同义改写] → [关键实体抽取]

    ↓

最终结果:

关键词 [接口A, 失败],条件 (时间: 今天)
阶段 3:澄清与拆分(可选)

核心目标:当 Query 过宽或前提不明时,先追问或拆分为可检索的子问题。

示例

用户输入:"修复方案"

    ↓

拆分为三个子问题:

  1️⃣ 根因分析

  2️⃣ 修复方案

  3️⃣ 验证测试

💡 Query 预处理的重要性

核心原则:好问题才有好答案。如果 Query 本身模糊不清,后续无论检索多精准,都无法给出令人满意的答案。


第二步:Embedding 与索引准备

🔮 什么是 Embedding?

Embedding(嵌入)是将文本转换为数值向量的过程。在向量空间中,语义相似的文本会具有相近的向量表示,从而可以通过向量相似度来衡量文本间的语义关系。

📦 知识库准备的三个阶段

根据图解,这一阶段分为三个主要部分:

阶段 1:切片 + 元数据(离线常见)

核心动作:将文档拆分成带标签的小片段

图解说明

┌─────────────────────────────────┐

│  原始文档(卷轴状)                                                                      │

│       ↓                                                                                         │

│  ┌────┐ ┌────┐ ┌────┐ ┌────┐                      │

│  │片段1│ │片段2│ │片段3│ │片段N│  ...                                   │

│  └────┘ └────┘ └────┘ └────┘                      │

│   标题   标题   标题   标题                                                               │

│   时间   时间   时间   时间                                                               │

│                                                                                                   │

│  类比:把一本书拆成带页码的活页                                                    │

└─────────────────────────────────┘

目的:检索时有"抓手",方便追溯来源

阶段 2:向量化 + 建索引(离线常见)

核心动作:每个片段生成一枚"语义指纹",写入向量索引

图解说明

┌───────────────────────────┐

│  片段 → [向量模型] → 向量                                           │

│              ↓                                                                │

│         ┌─────────────┐                           │

│         │  🔵🟠🟡      │                                                 │

│         │ 🔵🟡🔵🟠🟡     │  ← 节点网络(向量空间)         │

│         │  🟠🔵🟡🟠🔵    │                                             │

│         └─────────────┘                           │

│                                                                                 │

│  标注:"指纹录入"                                                       │

└───────────────────────────┘
阶段 3:Query 向量化 + 对齐检查(在线)

核心动作:用户提问实时转换为向量,并与检索空间对齐

类比:把"我要找什么"投射到同一张地图上,确保坐标系一致


第三步:向量库召回(Retrieval)

🎣 什么是召回?

召回是从海量的向量数据库中,快速捞出与用户问题相关的候选片段。这是 RAG 流程中的"打捞"环节。

🔍 召回的三个关键阶段

阶段 1:近邻检索 + 规模控制

目的:从海量内容里快速缩小范围

Top-N 选择

        ·  ·                   

      ·    ·  ·               

    ·   [Query]   ·    ← 中心:查询向量

      ·  ·  ·  ·              

    ·    ·    ·              

        ┊                   

        ↓                   

   ╭─────────────╮          

   │  虚线圆圈    │          

   │  Top-N 候选  │          

   ╰─────────────╯          

类比:先把可能相关的书搬到桌面

阶段 2:过滤与约束(常见)

过滤条件

  • 🔐 权限
  • ⏰ 时间
  • 📊 数据源
  • 📁 文件类型

类比:借书要看你有没有权限进特藏室

阶段 3:多路召回(可选)

核心思想:语义检索 + 关键词检索互补

召回方式 擅长领域
语义检索 “意思对”(语义理解)
关键词检索 “字面精确”(关键词匹配)

流程

语义匹配片段 + 关键词片段 + 结构化片段

              ↓

         合并去重

              ↓

       最终候选集

第四步:重排(Rerank)

🏆 重排的核心价值

核心目标:把"看起来相关"变成"真正能用来回答"

重排是将召回的候选片段进行精细化排序,挑出最优质的 Top-K 证据片段。

📋 重排的三个步骤

步骤 1:精细相关性判断

流程

Top-N 候选(粗筛成果)

    ↓

逐本翻目录打分

    ↓

Top-K 排序证据

    ↓

桌面筛书

类比:桌面上先粗筛一摞书,再逐本翻目录挑最对题的几本

步骤 2:覆盖检查

核心:确保片段覆盖 Query 的关键实体

示例

Query: "2025年报销规则?"

✅ 有效片段:命中 2025年、报销规则、差旅/餐饮 等关键实体

❌ 无效片段:只有"报销流程概述",没有具体年份和规则
步骤 3:多目标重排(可选)

多维评估指标

指标 说明
📌 相关性 与Query的匹配程度
🔄 多样性 不同来源、视角的覆盖
🕐 新鲜度 内容的时效性
✅ 权威性 来源的可信度

类比:海选 → 面试筛选,最终选出"对的人"


第五步:Prompt 构造

🎨 什么是 Prompt?

Prompt 是给大模型的"指令",告诉模型如何基于检索到的证据回答用户问题。

📝 Prompt 构造的三阶段

阶段 1:证据清洗与裁剪

核心要点:去重复、去无关、保留必要上下文

类比:就像登机箱容量有限,得把最有用的东西装进去

证据流(文、数据)

      ↓

[漏斗过滤] 去重复、去无关

      ↓

  模型上下文窗口
阶段 2:证据组织 + 标注

核心要点:按主题/子问题拼装片段,附上来源、时间、标题

类比:把资料按主题贴到白板上,给每条证据贴上"出自哪本书第几页"的标签

┌──────────────────────────┐

│ 📋 白板便签系统                                                       │

│ ┌─────┐ ┌─────┐ ┌─────┐            │

│ │ 绿标                 黄标                    粉标                  │

│ │ 每条                 标题                  时间                    │

│ └─────┘ └─────┘ └─────┘            │

└──────────────────────────┘
阶段 3:指令与输出约束

组成部分

  • 🎯 回答目标
  • 📐 输出格式
  • 📚 引用方式
  • 🚫 拒答条件

类比:给写作任务列一个清晰的大纲与评分标准


第六步:生成(Generation)

✍️ 生成的三个阶段

阶段 1:模型阅读证据

核心比喻:通读资料再动笔

原因:避免凭空发挥,确保回答有根有据

Query与证据包 → 芯片处理 → Query与证据对齐 → 形成"能回答"的内部表征

图解人物:蓝色短发、戴眼镜的卡通人物,手拿文件夹认真研读

阶段 2:组织答案

核心比喻:写论文引用

原因:让答案可验证,增强可信度和权威性

内部表征 → 组织工厂 → 按问题结构输出答案

              ↓

       关键结论对齐证据
阶段 3:输出控制(可选)

输出控制面板

  • 📏 格式
  • 📏 长度
  • 🗣️ 语气
  • 📊 引用密度
  • ⚠️ 不确定性提示

输出选项

  • 简练版本
  • 严谨版本

第七步:回答决策(进阶)

🤔 回答决策的核心问题

核心原则:在"能生成"之外,决定"是否该生成"

这往往是容易被忽视但至关重要的一个环节。

阶段 1:证据充足性判断

核心:当证据不足或冲突时,选择拒答、追问或提示不确定

资料库房机器人检查证据

    ↓

有依据 → 生成答案

无依据 → 拒答/追问

类比:资料没找到,最好先承认缺口而不是乱写

阶段 2:触发二次检索

核心:首轮命中率低时,改写 Query 或拆分子问题再检索

书店A没找到 → 换店B // 换关键词再找
阶段 3:结构化输出约束

核心:按固定结构(结论/依据/风险)输出


工程级优化:检索侧

🚀 三大优化方向

1. Chunking(分块)优化

问题:随便撕页会丢失上下文,出现"中间遗失"

解决方案

  • 按章节结构做索引 (Contextual Retrieval Chunk)
  • Late Chunking 技术

类比:按章节拆书,保留上下文关联

2. 检索策略优化

策略:向量召回 + 关键词 → 混合检索 → 多轮检索

类比:先用地图找附近,再用门牌号精准定位

3. Rerank 重要性上升

核心:从"相似"到"可回答",成为效果上限的关键阀门


工程级优化:系统侧

🛠️ 两大系统方向

1. 缓存与复用

缓存类型

  • Query/embedding 结果缓存
  • 热门片段缓存
  • LLM 批处理

类比:常用资料做成工具包,下次直接取用

流程

Query → Query Embedding (缓存命中) → Retrieval → 热门片段缓存

    ↓                                                      ↓

Re-ranking ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ←

    ↓

Generating (LLM批处理)
2. 可观测与评估

三大支柱

类型 内容
离线评测 Test lab 测试集评测,Recall、Faithfulness 指标
在线监控 Latency、Cost 实时监控
失败用例闭环 失败用例库 → 系统优化复盘

核心理念:告别"感觉还行"拍脑袋,实现可度量地变好


RAG 全流程总结

┌────────────────────────────┐

│                     RAG 完整流程图                                         │

├────────────────────────────┤

│                                                                                    │

│  ┌─────────┐                                                 │

│  │ 用户Query │ ← 起点                                                 │

│  └────┬────┘                                                 │

│       ↓                                                                          │

│  ① 输入与预处理                                                            │

│       ↓                                                                          │

│  ② Embedding 与索引准备                                               │

│       ↓                                                                          │

│  ③ 向量库召回 → 候选片段                                              │

│       ↓                                                                          │

│  ④ 重排 → Top-K 证据                                                  │

│       ↓                                                                         │

│  ⑤ Prompt 构造 → 证据包                                              │

│       ↓                                                                         │

│  ⑥ 生成 → 答案                                                            │

│       ↓                                                                         │

│  ⑦ 回答决策 → 最终输出                                                │

│                                                                                   │

└────────────────────────────┘

关键技术要点汇总

概念 解释
RoPE 旋转位置编码
KV Cache 键值缓存,加速推理
ANN 近似最近邻搜索
Multi-Head Attention 多头注意力机制
Context Window 模型上下文窗口限制
幻觉 模型凭空生成错误信息

实用建议

💡 开发建议

  1. Query 预处理不可省略:好的 Query 是好答案的前提
  2. Chunking 需要精心设计:考虑按语义章节切分,而非简单字数切分
  3. 多路召回效果更好:语义 + 关键词双重保障
  4. Rerank 是关键阀门:不要在重排上节省资源
  5. Prompt 需要迭代优化:根据实际效果持续调整

⚠️ 常见陷阱

  1. 忽略 Query 预处理:导致检索效率低下
  2. Chunking 过于粗暴:丢失关键上下文
  3. 只依赖向量检索:忽视关键词召回的价值
  4. 跳过回答决策:容易产生幻觉和误导
  5. 缺乏评估闭环:无法持续优化

结语

RAG 作为连接大模型与外部知识的桥梁,其重要性日益凸显。通过本文的图解拆解,希望你对 RAG 的每个环节有了更清晰的认识。

记住,一个优秀的 RAG 系统不仅仅是把各个模块拼凑在一起,更需要在每个环节都精心打磨,形成高效协同的整体。

持续优化、注重评估、拥抱迭代——这是构建生产级 RAG 系统的关键。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐