RAG是什么?检索增强生成大白话解释

rag是什么?一句话:RAG(Retrieval-Augmented Generation,检索增强生成)就是让大模型回答问题之前,先去外部知识库里把相关资料查出来,连同问题一起交给模型,让它"照着资料回答",而不是只凭训练时记住的东西。这套方法出自 Meta AI 2020 年的一篇论文,如今你见到的"文档问答""企业知识库机器人"、带参考链接的 AI 搜索,底下基本都是它。

如果你问过 AI 自己公司的规章制度,或者见过答案下面挂着引用来源的 AI 搜索,那么恭喜,你已经用过 RAG 了,只是之前不知道它的名字。

为什么大模型需要 RAG

一个"裸"的大模型有三个天然短板,一旦拿它干正事就会撞上。

知识有截止日期。 模型只知道训练数据里的事,而训练数据是有时间边界的。上个月发布的政策、你公司内部的退款流程,它一概不知。AWS 官方有个比喻很传神:没有 RAG 的模型像一个过于热情的新员工,从不主动了解新消息,但对每个问题都答得斩钉截铁。以我的使用体验,这个画像相当准。

会一本正经地编。 模型不知道答案时不会闭嘴,而是按概率生成一段听起来很合理的话。训练数据里没有的东西,它就硬编。这是幻觉问题的根源。

你的私有数据它根本没见过。 产品手册、合同、内部 wiki 都不在公开互联网上,任何公开模型都没读过;而多数公司也不可能把敏感文档交给第三方去训练模型。

RAG 用一招同时对付这三件事:不指望模型"记住"什么,回答前现场把对的资料查出来,摆在模型眼前。

RAG 是怎么工作的

拿一个具体问题走一遍完整流程。员工提问:"我今年还剩几天年假?"

在任何人提问之前,系统会先对文档库做一次性的准备工作:

  1. 分块(Chunking):把文档切成小段。原因很实际:嵌入模型有输入长度限制,而且一段话算出来的向量,比二十页纸的向量更能代表它的意思。块切太大,喂给模型的是噪声;切太小,上下文又被切丢了。
  2. 向量化(Embedding):用嵌入模型把每个文本块变成一长串数字,也就是向量。效果是意思相近的文本,向量距离也近。"如何申请退款"和"退款流程是什么"一个关键词都不重合,向量却挨在一起。
  3. 入库:向量、原文、元数据一起存进向量数据库(Milvus、pgvector 这类)。

资料库建好了。现在问题来了:

  1. 检索:把问题也转成向量,在库里找距离最近的几个文本块,一般用余弦相似度来算,说白了就是比较两个向量方向是否一致。这一步捞出来的,是年假制度那一段,加上这位员工自己的休假记录。
  2. 增强:把检索到的资料和原问题拼进提示词。
  3. 生成:模型看着眼前的资料作答,理想情况下还会附上制度文档的出处。

全部诀窍在第 5 步:模型不是在"回忆",而是在"照着念"。制度改版了怎么办?重新索引一遍文档就行,不用重新训练,几分钟生效。

你其实天天在用 RAG

多数文章一上来就讲企业架构,其实你早就和 RAG 打过照面:

  • 带引用的 AI 搜索:先搜网页、再写答案、下面挂参考链接的工具,"先查再答"这个结构就是 RAG 的思路。
  • 和 PDF 对话:上传一份合同或论文,对着它提问,AI 按文件内容回答。这就是一个最小号的私有知识库。
  • 真懂产品的客服机器人:它能准确说出你的设备上报错代码 E-42 是什么意思,多半是从手册里现查的,不是背下来的。

这三类东西有个共同的名字,叫 rag知识库应用:资料放在库里,提问时现查现答。

识别特征永远一样:答案带出处,而且它知道的事情,基础模型从来没学过。它"知道"的究竟是什么?就是检索现场查到的那几页资料。

RAG、微调、长上下文怎么选

这是最让人犯晕的一步。让模型"多知道点事"有三条路,我发现一个比喻能撑起整个对比:考试。

什么都不做就是闭卷考试,模型全凭背过的东西作答,背不到的就瞎编。RAG 是开卷考试:给它一柜子资料,答题前先翻到相关页,而且资料随时能换新版。微调是提前把书背进脑子:花大功夫、更新慢,但知识变成了它自己的表达方式。长上下文则是允许把整本书摊在桌上答题。

RAG微调
知识更新重新索引文档,分钟级生效重新准备数据再训练,按天周算
成本构成检索 + 输入 token + 向量库数据标注 + GPU 训练 + 评测
数据安全数据留在自己库里数据进入训练流程
溯源答案能标出处答案没有可见来源
适合什么常变的知识、私有资料、要引用出处固定的风格、格式、领域术语、任务习惯

我常用的判断标准:问题是模型不知道某件事,用 RAG;问题是模型不按你要的方式说话做事,才是微调的地盘。两者可以结合,先用微调让它懂术语,再用 RAG 供实时知识,但那就意味着维护两套系统。资源有限时,先把 RAG 做稳,是更务实的选择。

顺便回答一个常见疑问:上下文窗口都到百万 token 了,RAG 会被淘汰吗?不会。百万上下文适合从头到尾精读一份长报告,但它装不下百万级文档的知识库,塞得越多账单越贵,而且研究发现"lost in the middle"现象:埋在长上下文中部的关键信息,模型反而容易漏看。对规模大、权限敏感、频繁更新的知识,检索这条路不会消失。

RAG 能解决什么,不能解决什么

RAG 的流行有充分理由,但两边的账都要算清楚。

它确实能给你:分钟级更新的知识(不用重训)、更少的编造(眼前有证据)、不出门的私有数据、可追溯到出处的答案。

另一边也要如实说。检索质量决定上限:嵌入模型理解错了文本,或者分块把关键句切成了两半,下游模型再强也救不回来。幻觉是减少,不是消失:检索到错误段落、引用错配、模型不听指令,照样会给出自信的错误答案。每次请求都要带上检索内容,输入 token 的账单比普通对话高。工程上也不轻松:向量库运维、增量索引、权限过滤、效果评测,一个都少不了。

跑通一个 Demo 级 RAG,一下午就够了;从"能跑"到"好用",中间隔着的大部分功夫都花在检索质量上。

常见问题快答

RAG 全称是什么? Retrieval-Augmented Generation,检索增强生成。三个词正好对应流程:检索相关资料,用它增强提示词,生成最终回答。

rag和微调的区别一句话说清? RAG 管"模型不知道",查资料现答;微调管"模型不按你的方式说话做事",改的是模型本身。知识常变选 RAG,风格格式要固定才微调。

RAG 和 LangChain 这些框架是什么关系? LangChain、LlamaIndex 是帮你把检索、拼提示词、调用模型这几步串起来的开发框架,RAG 是它们实现的核心思路;框架可以换,思路不变。

RAG 就是向量数据库吗? 不是。向量数据库是 RAG 里负责存储和检索的那一层,RAG 是围绕它组成的"先检索、后生成"整套方案。

有了 RAG 就不会产生幻觉了吗? 会减少,因为模型有了可依据的材料;但不会根除,前面说的检索出错、模型不遵循指令等情况仍会导致错答。

RAG 是不是就是联网搜索加 AI? 联网搜索只是检索来源之一。RAG 同样覆盖私有文档、数据库、内部 wiki,任何值得检索的资料都算。

下一步看什么

rag是什么,答案已经拆完了:先查资料、再回答。RAG 周围还有一组概念值得单独弄懂:向量数据库(它的存储层)、微调(它的替代方案)、AI 幻觉(它缓解的问题),这些都在本站 AI 专集里陆续展开。想先见识一个能打的大模型,可以从DeepSeek 是什么读起;打算动手搭应用的话,看看各家 Coding Plan 怎么对比再选型不迟。