知识点发布 ·

AI · 知识点

RAG

RAG 到底是什么?它不是模型,也不是插件,而是一套 AI 查资料的方案

RAGRetrievalLLMKnowledge BaseLong ContextFine-tuningReranker

RAG 到底是什么?它不是模型,也不是插件,而是一套 AI 查资料的方案

刚接触 AI 时,RAG 是一个非常容易被理解错的概念。我第一次听到 RAG,会下意识地问:RAG 是一个软件吗?是一个插件吗?还是 LLM 内置的某种功能?

其实都不完全准确。

RAG 的全称是 Retrieval-Augmented Generation,检索增强生成。

如果一定要用一句最简单的话解释:

RAG 是一套让 AI 在回答问题之前,先自动查找外部资料,再参考这些资料生成答案的方案。

它不是某一个固定的软件,也不是某一种模型,而是一种由代码实现的软件架构和工作流程,也就是一段自动化检索方案。


01 / 一、先理解最核心的逻辑:先查,再答

一、先理解最核心的逻辑:先查,再答

普通的大语言模型回答问题时,主要依赖两样东西:

  1. 模型训练时学到的知识;
  2. 当前对话中提供给它的上下文。

但问题是,模型不可能天然知道所有外部信息。

例如你问一个普通 LLM:

“我们公司去年的退款政策是什么?”

如果这份退款政策属于公司内部资料,模型训练时根本没有见过,它自然无法准确回答。

RAG 的作用,就是在模型回答之前增加一个“查资料”的步骤。

整个过程可以简化为:

RAG CORE FLOWRetrieval-Augmented Generation
用户提问
搜索外部资料
找到最相关的内容
把这些内容和用户问题一起交给 LLM
LLM 根据资料生成答案

所以 RAG 最核心的逻辑就是:

先 Retrieval,再 Generation。

也就是:

先检索,再生成。


02 / 二、RAG 到底是什么“形式”?

二、RAG 到底是什么“形式”?

这是理解 RAG 最关键的问题。

RAG 不是一个像 Photoshop、Redis 或 Docker 一样可以直接指向某一个具体软件的东西。

它更像是一种软件架构方案。

真正落地以后,RAG 往往表现为:

一段后端代码 + 检索系统 + 数据库 + LLM。

例如开发者完全可以写一个 rag.py:

RAG RUNTIMErag.py
用户输入问题
rag.py 接收问题
搜索知识库
找到最相关的 5 段内容
把这 5 段内容和问题拼进 Prompt
调用 GPT / DeepSeek / Qwen
返回最终答案

这一整套代码逻辑,就可以称为一个 RAG 系统。

因此,更准确地说:

RAG 本质上是一套由代码实现的“外部资料自动检索 + LLM生成答案”的解决方案。


03 / 三、为什么很多时候感觉 RAG 像一个“功能”?

三、为什么很多时候感觉 RAG 像一个“功能”?

因为现在很多 AI 产品已经把 RAG 封装好了。

例如某个 AI 产品允许用户:

上传公司文档 → 建立知识库 → 直接向 AI 提问。

对于用户来说,看起来就像:

上传文件 → AI知道文件内容。

但后台实际上可能发生了一系列操作:

PRODUCT RAG PIPELINE知识入库阶段 / 用户查询阶段
知识入库阶段
上传 PDF
提取文字
切成很多小段 Chunk
建立索引
用户查询阶段
用户提问
搜索最相关 Chunk
把这些 Chunk 交给 LLM
生成答案

所以用户感觉:

“这个 AI 自带知识库功能。”

但从技术角度来说:

产品只是把 RAG 系统封装成了一个功能。

这也是为什么 RAG 有时候看起来像插件,有时候像软件,有时候又像模型能力。

实际上这些只是不同的产品包装方式。

RAG 本身仍然只是一种技术方案。


04 / 四、RAG 和 LLM 是什么关系?

四、RAG 和 LLM 是什么关系?

可以把 LLM 想象成一个非常聪明的人。

而 RAG 是他的资料管理员。

LLM 负责:

理解、推理、组织语言、生成答案。

RAG 负责:

去哪找资料、找哪些资料、把哪些资料交给 LLM。

所以两者的关系可以简单理解成:

LLM × RAG思考与检索
LLM = 大脑
RAG = 帮大脑查资料的系统

例如公司有 10 万份文件。

用户问:

“Router 的 Failover 为什么没有触发?”

LLM 不需要把 10 万份文件全部读一遍。

RAG 可以先从中找到:

  • Failover 配置说明;
  • Provider Health Check 文档;
  • Retry Policy;
  • Model Fallback 配置。

然后只把这些资料交给 LLM。

LLM 再根据这些内容进行分析和回答。


05 / 五、RAG 和“直接上传文件给 AI”并不完全一样

五、RAG 和“直接上传文件给 AI”并不完全一样

这里还有一个很容易混淆的问题。

如果把一个 PDF 上传给 AI,并不意味着一定使用了 RAG。

如果文件比较短,系统完全可以直接把整份文档放进 LLM 的 Context Window 中。

这种方式实际上是:

这更接近 Long Context,长上下文。

而典型的 RAG 是:

LONG CONTEXT vs RAG全量阅读 / 先筛选
Long Context
完整 PDF
直接放进 Context
LLM 阅读并回答
RAG
大量文档
提前建立索引
用户提问
只检索相关内容
把少量相关内容交给 LLM

因此两者最大的区别是:

Long Context 是“把资料都给模型看”。

RAG 是“先筛选,再把相关资料给模型看”。

当资料规模变成几万、几十万甚至几百万份文件时,不可能每次都把所有内容塞给模型。

这时候 RAG 就非常重要。


06 / 六、RAG 和 Fine-tuning 完全不是一回事

六、RAG 和 Fine-tuning 完全不是一回事

另一个常见误区是:

“我把公司资料放进 RAG,是不是相当于训练了模型?”

不是。

RAG 通常不会修改模型参数。

可以把两者理解成:

FINE-TUNING vs RAG学进大脑 / 允许翻资料
Fine-tuning = 把知识或者行为模式学进大脑。
RAG = 考试的时候允许翻资料。

例如公司产品价格今天是 100 元,下个月改成 120 元。

如果使用 Fine-tuning,每次资料发生变化都重新训练模型显然非常麻烦。

而使用 RAG,只需要修改知识库里的资料。

下一次用户提问时,RAG 就可以检索到最新的信息。

因此对于企业内部知识、产品文档、法律文件、客服资料等不断更新的信息来说,RAG 往往比 Fine-tuning 更合适。


07 / 七、RAG 真正困难的地方,其实是“找资料”

七、RAG 真正困难的地方,其实是“找资料”

理解 RAG 以后,会发现一个很重要的事实:

RAG 系统真正的核心竞争力,经常不在 Generation,而在 Retrieval。

因为 LLM 最终能不能回答正确,很大程度取决于前面到底找到了什么资料。

假设真正答案在文档 A。

结果 RAG 找出来的却是:

文档 B、文档 C、文档 D。

那么即使后面接的是一个非常强的大模型,它依然可能回答错误。

这也是一句非常值得记住的话:

所以一个成熟的 RAG 系统真正需要优化的是:

  • 文档应该怎么切 Chunk;
  • 如何建立索引;
  • 用户问题应该如何理解;
  • 如何进行语义检索;
  • 搜索多少候选资料;
  • 如何进行 Rerank;
  • 最后到底选择哪些资料交给 LLM。

很多现代 RAG 系统甚至会采用:

RETRIEVAL / RERANK PIPELINE从候选召回到上下文选择
用户问题
第一次搜索 Top 20
Reranker 重新排序
选择 Top 5
交给 LLM

这也是为什么企业做 RAG 时,检索质量往往和模型质量一样重要。


08 / 八、理解 RAG

八、理解 RAG

“RAG 到底是什么?”

可以直接回答:

RAG 不是一个模型,也不是某个固定插件,而是一套让 AI 自动检索外部资料,并把相关资料提供给 LLM 生成答案的软件架构方案。

再简单一点:

RAG,就是 AI 的自动查资料系统。

LLM 是负责思考和回答的人。

RAG 是负责在茫茫资料中,把正确文件递到它桌面上的秘书。

而一个好的 RAG 系统真正要做到的,就是:

在正确的时间,把正确的资料,交给正确的模型。