Skip to content

第 1 章 · RAG 基础理论:什么是 RAG,为什么需要它

🎯 本章目标:让一个完全零基础的人,能用大白话给同事解释清楚 "什么是 RAG,为什么我们要用它"。


目录

  1. 一个生活化的故事:为什么大模型会"胡说八道"
  2. RAG 的正式定义
  3. RAG 解决的三大痛点
  4. RAG vs Fine-tuning:开卷考试 vs 闭卷考试
  5. RAG 的核心组件全景图
  6. 一个最简 RAG 例子(不写代码)
  7. 常见误区与思考题

1. 一个生活化的故事

💡 在了解 RAG 之前,先了解大模型为什么需要 RAG。

1.1 场景:实习生小李的尴尬

想象你是一家公司的老板,你新招了一个实习生小李。小李很聪明,读过几乎所有公开的书(类比:GPT-4 已读完互联网上几乎所有公开文本)。

某天,你问小李:

老板:小李,我们公司的报销流程是怎样的?

小李有两种回答方式:

回答 A(不带 RAG 的大模型)

小李挠挠头:"嗯……一般公司的报销流程是这样的:先填申请单,找直属领导签字,然后送到财务部……"

听起来很专业,但其实小李在凭"一般经验"瞎猜,他根本没看过你公司的报销手册。如果你信了他的话,按照他说的流程去办,可能会被财务退回来三次。

这就是大模型常见的 "幻觉(Hallucination)" —— 听起来像真的,其实是编的

回答 B(带 RAG 的大模型)

小李说:"请稍等",跑到资料室翻出公司的《员工手册 v3.2》,找到 "报销流程" 那一章,看完之后告诉你:

"老板,根据公司《员工手册 v3.2》第 47 页:报销需要在飞书提交 OA 单,附上发票照片,500 元以下经理审批即可,500 元以上还需要 CFO 审批……"

这就是 RAG 的本质:让大模型回答问题前,先去翻一下相关的资料,再基于资料组织答案

1.2 一句话理解

没有 RAG 的大模型一个聪明但只能凭记忆答题的人
有 RAG 的大模型同一个聪明人,但答题前可以查资料

📌 核心洞察:RAG 不是让大模型变得更聪明,而是让大模型变得更可靠、更新、更专业


2. RAG 的正式定义

2.1 名字拆解

RAG = Retrieval-Augmented Generation = 检索增强生成

单词含义对应小李故事
Retrieval检索跑到资料室翻员工手册
Augmented增强翻完手册之后比单纯凭记忆更靠谱
Generation生成把手册内容组织成自然语言告诉老板

2.2 学术定义

RAG 是 2020 年 Facebook(Meta)AI 团队在论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 中正式提出的一种范式:

在大语言模型生成回答之前,先从外部知识库中检索出相关的信息,将检索到的信息作为上下文(Context)和用户问题一起输入给大模型,由大模型基于这些信息生成最终回答。

2.3 一张图看懂

🧠 记忆口诀问 → 找 → 拼 → 答

(用户问 → 检索器找 → 把资料和问题拼起来 → 大模型答)


3. RAG 解决的三大痛点

为什么需要 RAG?因为单纯的大模型有三个死穴。

3.1 痛点一:幻觉(Hallucination)

什么是幻觉?

大模型有时会一本正经地胡说八道。这不是 Bug,是它的工作原理决定的——它本质上是个概率预测器,会预测"下一个最可能出现的词",但"最可能"不等于"正确"。

生活例子

你问:「鲁迅和周树人是什么关系?」
没有 RAG 的大模型可能回答:「鲁迅和周树人是同一时代的文学家,他们曾在北京大学共事。」
(事实:鲁迅就是周树人的笔名,是同一个人)

RAG 怎么解决?

让大模型回答前先去翻百科:

1. 检索器搜「鲁迅 周树人」
2. 找到百科条目:「鲁迅,本名周树人,浙江绍兴人……」
3. 大模型基于这个事实回答:「鲁迅是周树人的笔名,他们是同一个人。」

📌 关键:RAG 把"凭印象答"变成"基于事实答",大幅降低幻觉。

3.2 痛点二:知识截止(Knowledge Cutoff)

什么是知识截止?

每个大模型都有一个 "训练数据截止日期"。比如 GPT-4o 训练数据截止到 2023 年 10 月,那它就不知道 2023 年 11 月之后发生的事。

生活例子

2024 年 6 月你问 GPT-4:「2024 年欧洲杯冠军是哪个国家?」
GPT-4 老老实实回答:「我的知识截止到 2023 年 10 月,无法回答 2024 年的事件。」

RAG 怎么解决?

让大模型实时去查新闻:

1. 检索器去新闻数据库搜「2024 欧洲杯 冠军」
2. 找到最新报道:「西班牙 2-1 击败英格兰,第四次夺得欧洲杯冠军」
3. 大模型回答:「2024 年欧洲杯冠军是西班牙。」

📌 核心价值:RAG 让大模型获得实时更新的能力,不需要重新训练。

3.3 痛点三:私有知识(Private Knowledge)

什么是私有知识?

大模型只学习过公开的互联网数据,它不可能知道:

  • 你公司的内部财务报表
  • 你公司的客户名单
  • 你公司的产品技术文档
  • 你正在读的那本"小众论文"

生活例子

你问 GPT-4:「腾讯 X 部门 2024 年 Q3 的 KPI 完成情况怎么样?」
GPT-4:「抱歉,我无法访问公司内部数据。」

RAG 怎么解决?

把公司内部文档导入到知识库里:

1. IT 部门把内部 OKR 文档、周报、月报全部入库
2. 你问 KPI 完成情况
3. 检索器从内部知识库搜出 Q3 月报
4. 大模型基于月报回答具体数字

📌 企业级价值:这是 RAG 在企业落地的最核心场景。 你不可能把公司机密发给 OpenAI 让他们重新训练 GPT,但你可以本地搭建一个 RAG。

3.4 三大痛点对比速查表

痛点没有 RAG 的表现用 RAG 后
幻觉编造看似合理的错误答案基于真实文档回答
知识截止答不出新事件接入新闻/最新文档实时查询
私有知识答不出公司内部信息从内部知识库检索

4. RAG vs Fine-tuning

这是面试必考题!每个 AI 工程师都要能脱口而出两者的区别。

4.1 用考试比喻

RAGFine-tuning(微调)
比喻开卷考试闭卷考试(考前疯狂背书)
运作方式答题时翻书查资料把书的内容硬塞进脑子,闭卷答
更新成本改书就行,秒级生效重新背书,几小时到几天
回答风格死板,受资料约束灵活,但可能记错知识
适合知识型问题(事实、流程)风格型/技能型任务(写诗、口吻)

4.2 详细对比

维度RAGFine-tuning
解决的问题知识不足、知识过时风格不对、任务不会做
数据要求文档即可(结构化/非结构化)需要大量高质量的标注样本(输入-输出对)
训练成本不需要训练,只需向量化需要 GPU 训练,可能上千美元
更新速度新增文档秒级生效重新微调,几小时到几天
可追溯性强(能给出引用来源)弱(无法解释为什么这么答)
幻觉风险低(有据可查)中(可能记错)
典型场景企业知识库、客服 FAQ、文档问答风格模仿、特殊领域语言(如医学术语生成)
成本推理时多消耗一些 Token训练阶段一次性投入

4.3 怎么选?决策树

4.4 生活类比加深理解

场景该用什么?解释
想让 AI 回答公司报销流程RAG这是事实知识,把员工手册入库即可
想让 AI 用鲁迅的文风写文章Fine-tuning文风是模式,需要训练让模型 "学会"
想让 AI 答 "今天股价多少"RAG(接 API)实时信息必须查
想让 AI 输出符合特定 JSON Schema 的结构Prompt 工程 + Fine-tuning任务格式固定
想让 AI 模仿客服话术风格回答RAG + Fine-tuning(组合)既要懂业务又要懂话术

💡 重要洞察RAG 和 Fine-tuning 不是二选一,企业实战经常组合使用。 例如:用 Fine-tuning 让模型学会客服话术风格,再用 RAG 让它知道最新产品信息。


5. RAG 的核心组件全景图

5.1 三大核心阶段

阶段中文名做什么频次
Indexing索引/入库把文档处理后存到向量库离线,文档变化时执行
Retrieval检索根据问题找相关片段在线,每次提问执行
Generation生成让大模型基于片段回答在线,每次提问执行

🧠 记忆口诀入库 → 检索 → 生成(IRG)

5.2 每个组件的角色

组件比喻关键技术
Document Loader资料员(把各种格式的书搬进图书馆)unstructured、LlamaParse
Text Splitter把厚书拆成便利贴RecursiveCharacterTextSplitter
Embedding Model给每张便利贴贴一个 DNA 标签text-embedding-3-small、BGE
Vector Database按 DNA 标签找便利贴的特殊图书馆Milvus、Qdrant、Chroma
Retriever图书管理员相似度算法
Reranker(可选)资深图书管理员(再精选一遍)Cohere Rerank、BGE-Reranker
LLM写答案的人GPT-4、Claude、DeepSeek
Prompt Template答题模板"请基于以下资料回答……"

6. 一个最简 RAG 例子

不写代码,用大白话走一遍完整流程。

6.1 场景设定

你建了一个"宠物医疗问答机器人",知识库里有一本 50 页的《宠物常见疾病手册》。

6.2 离线阶段(一次性准备)

步骤 1:加载文档

把 PDF 读进来,变成纯文本。

步骤 2:切分

50 页的书太长了,大模型一次塞不下。

切成 200 个 "Chunk"(片段),每个 Chunk 大概 300 字。

比如:

  • Chunk #1:「猫咪发烧的常见原因有:感冒、感染、中暑……」
  • Chunk #2:「狗狗腹泻的处理方法:……」
  • Chunk #3:「猫咪疫苗接种时间表……」

步骤 3:向量化

用 Embedding 模型给每个 Chunk 算一个 1536 维的向量(一串数字)。

  • Chunk #1 → [0.12, -0.45, 0.78, ...](1536 个数字)
  • Chunk #2 → [0.34, 0.21, -0.66, ...]
  • ...

这些向量代表 Chunk 的 "语义指纹",语义相近的 Chunk 向量也相近。

步骤 4:存入向量数据库

把每个 Chunk 的(原文 + 向量)存到 Milvus。

6.3 在线阶段(用户每次提问)

用户提问:「我家猫咪发烧 39 度怎么办?

步骤 1:问题向量化

把用户问题也用 Embedding 模型算出向量 [0.15, -0.41, 0.80, ...]

步骤 2:相似度检索

在向量库里找跟问题向量最相似的 Top-3 个 Chunk。

假设找到:

  • Chunk #1(相似度 0.92):「猫咪发烧的常见原因有……」
  • Chunk #15(相似度 0.88):「猫咪退烧的家庭处理方法:保持环境凉爽……」
  • Chunk #23(相似度 0.85):「什么情况下需要立即送医……」

步骤 3:拼装 Prompt

把找到的 3 个 Chunk 和用户问题拼起来:

请根据以下参考资料回答用户问题。
若资料中没有相关信息,请回答"我不知道"。

【参考资料】
1. 猫咪发烧的常见原因有:感冒、感染、中暑……
2. 猫咪退烧的家庭处理方法:保持环境凉爽……
3. 什么情况下需要立即送医:体温超过 40 度……

【用户问题】
我家猫咪发烧 39 度怎么办?

步骤 4:大模型生成

大模型基于参考资料生成回答:

"您家猫咪 39 度属于轻度发烧(猫咪正常体温 38-39.2 度)。建议:

  1. 保持环境凉爽通风
  2. 提供充足饮水
  3. 观察 24 小时,若体温持续升高或出现精神萎靡,请立即送医 (参考来源:宠物常见疾病手册 第 12 章)"

6.4 关键观察

观察点说明
答案有据可查引用了具体章节,可以追溯
专业可靠基于专业手册,不是大模型瞎编
领域内即使 GPT 没学过这本手册,也能用
可更新手册更新了重新入库即可

7. 常见误区与思考题

7.1 常见误区

误区 1:「RAG 就是把所有文档塞给大模型」

❌ 错。Context Window 有限(哪怕 GPT-4o 200K Token 也装不下一个百科)。 ✅ RAG 的精髓是 "先精准检索,再喂给大模型",而不是无差别全塞。

误区 2:「有了 RAG 就不会有幻觉了」

❌ 错。RAG 大幅降低幻觉,但不能彻底消除。 比如:检索召回了错误的片段、大模型曲解了片段意思,都会产生幻觉。 解决方案:Rerank、Self-RAG、引用追溯(后续章节会讲)。

误区 3:「RAG 必须用向量数据库」

❌ 不一定。RAG 的 R 是检索,不是 "向量检索"。 关键词检索(BM25)、SQL 查询、API 调用、知识图谱查询都属于检索。 真实工业系统通常 混合检索(向量 + 关键词) 效果最好。

误区 4:「Chunk 切得越大越好」

❌ 错。Chunk 太大→召回片段太长→稀释问题相关信息→大模型抓不住重点。 ❌ Chunk 太小→片段缺乏上下文→语义不完整→答非所问。 ✅ 一般 300-1000 字是经验值,要根据文档结构调(第 3 章会详细讲)。

误区 5:「Embedding 模型随便选一个就行」

❌ 错。不同 Embedding 模型在不同领域差异极大。 中文场景建议用 BGE-M3、BGE-Large-zh、M3E、Qwen Embedding。 英文/多语场景可以用 OpenAI text-embedding-3、Cohere embed-v3。

7.2 思考题(可选,检验理解)

  1. 如果有人问你:"为什么不直接用更大的 Context Window 把所有文档塞进去?" 你怎么回答?

    参考答案
    • 成本:长 Context 等于每次调用都消耗几万 Token,按量计费贵到飞起
    • 性能:长 Context "Lost in the Middle" 现象——中间内容容易被模型忽略
    • 延迟:处理 100K Token 大模型也要十几秒,用户等不及
    • 知识规模:企业知识库可能上 GB,长 Context 再大也装不下
  2. 一个公司想做一个回答内部财务问题的机器人,他们已经买了 GPT-4 API,应该用 RAG 还是 Fine-tuning?

    参考答案
    • 选 RAG。原因:
      1. 财务数据是事实型知识,正是 RAG 擅长的
      2. 财务数据经常更新(月报、季报),RAG 改文档就行,Fine-tune 要重训
      3. 财务数据敏感,需要严格控制访问,RAG 容易加权限控制
      4. Fine-tune GPT-4 成本高、流程复杂,企业自己控制不了模型
  3. RAG 系统的回答质量主要由哪几个环节决定?哪个环节最容易被忽略?

    参考答案

    主要环节:

    • 切分(Chunk 大小、重叠)
    • Embedding 模型(语义表征能力)
    • 检索算法(向量 / 混合 / Rerank)
    • Prompt 模板(怎么让大模型基于资料答)
    • 大模型本身(理解和生成能力)

    最容易被忽略:切分。新手通常用默认 1000 字符切,不考虑文档结构,导致语义被切碎,召回效果差。


📌 本章小结

你应该已经知道
RAG 是什么(一句话能解释)
RAG 解决了哪三个痛点(幻觉、知识截止、私有知识)
RAG vs Fine-tuning 的区别(能给出 3-5 条对比)
RAG 的三大阶段(Indexing/Retrieval/Generation)
RAG 系统的核心组件(能画出全景图)
走过一遍 RAG 端到端的流程

🚀 下一步

恭喜!你已经搞清楚了 RAG 是什么为什么

下一章我们会深入 怎么做,详细拆解 RAG 的完整工作流程:第 2 章 · RAG 工作流程详解