学习猫学习猫
目录
RAG 是什么?
一句话理解
RAG 解决了什么问题?
1. 模型不知道你的私有数据
2. 模型知识可能存在时效性问题
3. 模型可能产生“幻觉”
RAG 是怎么工作的?
第一阶段:建立知识库
第二阶段:用户提问
RAG 的完整流程
① 导入资料
② 文档切分
③ Embedding 向量化
④ 保存到向量数据库
用户提问后发生什么?
① 用户问题向量化
② 检索相关资料
③ 将检索结果交给大模型
④ 大模型生成最终答案
RAG 和普通 AI 有什么区别?
RAG 的典型应用场景
企业知识库
学校知识库
技术文档问答
产品客服
RAG 的核心组成
1. 文档解析
2. 文本切分
3. Embedding
4. 向量数据库
5. Retriever
6. Reranker
7. LLM
RAG 常见相关概念
RAG 的优势
不需要重新训练模型
更适合企业私有知识
知识更新更加方便
可以结合来源进行回答
RAG 有什么缺点?
检索不到正确资料
文档切分不合理
检索结果不准确
仍然可能产生幻觉
RAG 和 Fine-tuning 有什么区别?
你希望 AI 知道公司最新规章制度
你希望 AI 学会固定的回答风格
两者也可以一起使用
一个简单的 RAG 示例
总结
延伸阅读

RAG(Retrieval-Augmented Generation,检索增强生成)

RAG 是什么?

RAG(Retrieval-Augmented Generation,检索增强生成)是一种让 AI 在回答问题时,先从外部知识库中检索相关资料,再结合这些资料生成答案的技术。

简单来说:

RAG = 先查资料,再回答问题。

它可以让大语言模型在不重新训练模型的情况下,利用企业文档、学校资料、产品说明书、知识库等外部信息回答问题。

一句话理解

如果普通 AI 是:

用户提问 → AI 根据自己“记住的知识”回答

那么 RAG 是:

用户提问 → 搜索相关资料 → 把资料交给 AI → AI 根据资料回答

例如你问:

“公司的年假制度是什么?”

普通大模型可能不知道你公司的具体制度。

而使用 RAG 后,系统可以先从公司的员工手册中找到:

“正式员工每年享有 10 天带薪年假……”

然后把这段资料提供给大模型,最终生成回答。

RAG 解决了什么问题?

大语言模型虽然拥有大量知识,但它并不是一个可以随时访问你内部资料的数据库。

实际应用中经常会遇到几个问题。

1. 模型不知道你的私有数据

例如:

  • 公司内部规章制度
  • 学校管理文件
  • 企业产品手册
  • 项目技术文档
  • 内部知识库
  • 用户上传的资料

这些内容通常没有出现在模型训练数据中。

如果不提供这些资料,模型自然无法准确回答。

2. 模型知识可能存在时效性问题

大模型的训练数据并不会实时更新。

例如:

“我们公司 2026 年最新的报销标准是什么?”

模型不可能凭空知道你公司刚刚修改的制度。

RAG 可以在回答之前,先查询最新的知识库内容。

3. 模型可能产生“幻觉”

所谓 AI 幻觉,是指模型生成了看起来合理,但实际上并不正确的信息。

例如:

用户问:

“学校计算机学院毕业论文答辩要求是什么?”

如果模型没有相关资料,它可能会根据常见的高校规定“猜”一个答案。

使用 RAG 后,可以让模型优先参考学校提供的正式文件,从而降低胡编乱造的概率。

注意:RAG 可以降低幻觉风险,但不能保证 AI 永远不会产生错误。

RAG 是怎么工作的?

一个完整的 RAG 系统通常可以简单理解成两个阶段:

第一阶段:建立知识库

先把各种资料转换成 AI 可以检索的形式。

PDF / Word / 网页 / TXT
        ↓
     文档解析
        ↓
      文本切分
        ↓
     Embedding
        ↓
    向量数据库

第二阶段:用户提问

用户提出问题以后:

用户问题
   ↓
问题向量化
   ↓
检索知识库
   ↓
找到相关内容
   ↓
将资料 + 用户问题
      ↓
    大语言模型
      ↓
    最终答案

因此可以把 RAG 简化成:

知识库 + 检索 + 大语言模型

RAG 的完整流程

下面按照一个实际的知识库系统来看。

① 导入资料

首先把需要让 AI 学习的资料导入知识库。

例如:

员工手册.pdf
产品说明书.docx
技术文档.md
公司制度.txt

RAG 系统会对这些文件进行解析。

② 文档切分

一份文档可能有几十页甚至几百页。

如果直接把整个文档交给模型进行检索,效率会比较低。

因此通常需要把文档拆成多个较小的文本片段。

例如:

员工手册

第 1 章 公司制度
        ↓
文本片段 1

第 2 章 考勤制度
        ↓
文本片段 2

第 3 章 薪酬制度
        ↓
文本片段 3

第 4 章 请假制度
        ↓
文本片段 4

这些文本片段通常被称为 Chunk(文本块)。

③ Embedding 向量化

文本不能直接进行高效的语义搜索,因此需要通过 Embedding 模型将文本转换成向量。

例如:

“员工每年有 10 天带薪年假”

        ↓ Embedding

[0.12, -0.38, 0.72, 0.15, ...]

这个向量可以理解为文本的“语义坐标”。

意思相近的文本,在向量空间中通常也会比较接近。

④ 保存到向量数据库

生成的向量以及对应的原始文本会被保存下来。

例如:

向量
↓
Vector Database

0.12,-0.38,0.72...
        ↓
员工每年有10天带薪年假

常见的向量数据库包括:

  • Milvus
  • Qdrant
  • Weaviate
  • Pinecone
  • pgvector

用户提问后发生什么?

假设用户问:

“员工一年有多少天年假?”

系统不会直接把这个问题交给大模型。

而是先进行检索。

① 用户问题向量化

员工一年有多少天年假?
        ↓
Embedding
        ↓
问题向量

② 检索相关资料

系统使用这个向量去知识库中搜索语义最相近的内容。

例如找到:

员工每年享有 10 天带薪年假……

同时可能找到:

年假申请需要提前 3 个工作日提交……

以及:

入职满一年后开始享受年假……

系统会根据相关程度进行排序。

③ 将检索结果交给大模型

最终发送给大模型的内容可以理解成:

用户问题:
员工一年有多少天年假?

参考资料:
员工每年享有 10 天带薪年假。

请根据参考资料回答用户问题。

④ 大模型生成最终答案

最终用户看到:

根据公司员工手册,员工每年享有 10 天带薪年假。

这样就完成了一次 RAG 查询。

RAG 和普通 AI 有什么区别?

可以通过下面这个例子理解。


普通大模型

RAG

使用模型自身知识

✅

✅

查询外部知识

❌

✅

使用企业内部资料

❌

✅

使用实时更新资料

有限制

✅

不需要重新训练模型

—

✅

可以引用知识库内容

有限

✅

能完全避免幻觉

❌

❌

所以 RAG 并不是重新训练一个 AI。

它更像是在:

给 AI 配了一套“外接知识库”。

RAG 的典型应用场景

RAG 最常见的应用就是让 AI 能够理解和使用特定领域的知识。

企业知识库

例如:

  • 公司规章制度
  • 员工手册
  • HR 制度
  • 产品资料
  • 技术文档

用户可以直接询问:

“公司的出差报销标准是什么?”

学校知识库

例如:

  • 学校规章制度
  • 教务通知
  • 培养方案
  • 学生手册
  • 校历
  • 办事流程

学生可以直接询问:

“补考申请什么时候截止?”

技术文档问答

把项目的:

API 文档
开发文档
数据库文档
部署文档
GitHub README

导入知识库。

然后直接询问:

“这个接口需要传哪些参数?”

产品客服

将:

  • 产品说明书
  • FAQ
  • 售后政策
  • 使用指南

导入知识库。

用户可以直接询问产品相关问题。

RAG 的核心组成

一个完整的 RAG 系统通常包含以下几个部分:

1. 文档解析

负责读取:

PDF、Word、Excel、网页、Markdown 等内容。

2. 文本切分

将长文档拆分成适合检索的文本块。

对应概念:Chunk

3. Embedding

将文本转换成向量。

4. 向量数据库

保存向量和对应文本。

5. Retriever

负责从知识库中找到与问题相关的内容。

6. Reranker

对检索结果进行进一步排序,提高相关内容的准确性。

7. LLM

最终根据:

用户问题 + 检索结果

生成自然语言答案。

RAG 常见相关概念

如果你第一次接触 RAG,下面这些概念经常会一起出现:

概念

简单理解

Chunk

文档切分后的文本块

Embedding

把文本转换成向量

Vector Database

存储和检索向量

Retriever

找相关资料

Reranker

对检索结果重新排序

Context

提供给模型的上下文

LLM

根据资料生成最终答案

Hybrid Search

关键词搜索 + 向量搜索

Metadata

描述文档的额外信息

RAG 的优势

不需要重新训练模型

最大的优势之一,就是不需要因为增加新知识而重新训练大模型。

只需要:

更新知识库即可。

更适合企业私有知识

企业可以把内部资料放入自己的知识库中,让 AI 根据这些资料回答问题。

知识更新更加方便

例如公司修改了员工制度。

只需要更新:

旧制度.pdf
        ↓
新制度.pdf

然后重新建立对应的知识索引即可。

可以结合来源进行回答

优秀的 RAG 系统还可以告诉用户:

这个答案来自哪一份文档、哪一页、哪一段。

这样用户可以进一步验证 AI 的回答。

RAG 有什么缺点?

RAG 并不是万能的。

检索不到正确资料

如果知识库中没有相关内容,系统自然无法提供正确答案。

文档切分不合理

如果 Chunk 切得太小:

上下文可能不完整。

如果切得太大:

检索准确度可能下降。

检索结果不准确

如果 Retriever 找错了资料,即使大模型能力很强,也可能生成错误答案。

仍然可能产生幻觉

即使提供了正确资料,大模型也可能对资料进行错误理解。

所以实际项目通常还需要:

检索优化 + Rerank + Prompt 约束 + 引用来源 + 答案校验

RAG 和 Fine-tuning 有什么区别?

这是很多初学者容易混淆的地方。

简单来说:

RAG 是给 AI “查资料”。
Fine-tuning 是让 AI “学习一种特定的行为或能力”。

例如:

你希望 AI 知道公司最新规章制度

更适合:

RAG

因为制度可能经常变化。

你希望 AI 学会固定的回答风格

例如:

所有客服回答都使用统一格式。

这种情况下可以考虑:

Fine-tuning

两者也可以一起使用

实际项目中:

RAG + Fine-tuning

也可以结合使用。

一个简单的 RAG 示例

假设我们建立一个:

“AI学习猫知识库”

知识库中有:

RAG.md
Embedding.md
Agent.md
MCP.md
Prompt.md

用户问:

“Embedding 是什么?”

系统首先从知识库中检索:

Embedding.md

找到相关内容后:

用户问题
      +
Embedding.md 相关内容
      ↓
     LLM
      ↓
AI生成答案

最终用户就可以直接获得基于“AI学习猫知识库”的回答。

总结

RAG 可以简单理解为:

让 AI 在回答问题之前,先从外部知识库中找到相关资料,再利用这些资料生成答案。

它解决的核心问题是:

如何让大语言模型使用模型之外的知识。

一个典型 RAG 流程可以概括为:

文档
 ↓
解析
 ↓
切分 Chunk
 ↓
Embedding
 ↓
向量数据库
 ↓
用户提问
 ↓
检索
 ↓
Rerank
 ↓
上下文
 ↓
LLM
 ↓
最终答案

如果你只需要记住一句话:

RAG = 检索相关知识 + 大模型生成答案。

延伸阅读

相关知识

  • Embedding
  • Vector Database
  • Chunk
  • Retriever
  • Reranker
  • LLM
  • Agent
  • Prompt

推荐阅读

  • RAG 官方/技术文档
  • RAG 相关论文
  • 向量数据库文档

适合继续学习

想真正搭建一个 RAG 知识库,可以继续阅读「RAG 知识库搭建教程」。
评论
登录后参与讨论
暂无数据
还没有评论,来说点什么吧