检索增强生成(英语:Retrieval-augmented generation,缩写 RAG)是一种把信息检索与文本生成接在一起的技术路径:系统先根据问题取出若干文档或段落,再让语言模型基于这些材料撰写答案。
2020 年,Lewis 等人在论文中系统提出 RAG 这一名称与模型组合。此后,带引用的答案引擎、企业知识库问答和许多「联网搜索」功能,都在产品层采用了同类流水线,尽管具体索引与模型并不相同。
对生成式引擎优化而言,RAG 解释了为什么「页面存在」不等于「出现在答案里」:文本必须先成为可检索的块,再在重排序后进入有限的上下文窗口,最后才可能被写进句子或标成来源。
| 中文名称 | 检索增强生成 |
|---|---|
| 英语 | Retrieval-augmented generation |
| 缩写 | RAG |
| 提出语境 | Lewis 等,2020 年 |
| 典型步骤 | 切块 → 嵌入 → 检索 → 重排 → 写入上下文 → 生成 |
| 相邻概念 | 向量检索、Embedding、Chunking、上下文窗口 |
定义与范围
RAG 不是某一个 App 的名字,而是一类架构:生成不再只依赖模型参数里的记忆,而要条件于检索到的外部文本。
本词条不展开某一家向量数据库的配置手册,只说明该流水线如何改变「什么文本有机会被引用」。微调、纯参数记忆问答、以及未检索的聊天,不属于 RAG 的定义核心。
历史与背景
开放域问答长期把检索与阅读理解分开。2020 年前后,把可微检索与序列生成连成一套、并在生成时条件于取出的段落,使「先找证据再写」成为可训练、可部署的标准说法。
消费级 ChatGPT 与 Perplexity 等产品让公众每天接触到这一形态:有的界面显示来源,有的界面把检索藏在工具调用里。GEO 讨论随之从「关键词密度」转向「块能否被召回」。
技术机制
常见实现是:把文档切成块(chunking),用嵌入模型变成向量,按语义检索近邻,必要时重排序(rerank),把入选段落拼进提示,再生成自然语言。
切块过大则检索噪声高,切块过小则事实不完整。表格、定义句、带日期的政策比形容词堆砌更容易成为「一块文字 = 一个完整事实」。
结构化数据、canonical 与可见正文若不一致,检索器读到的可能是机器标记,生成器写出的却像在引用用户看见的另一套数字。
在生成式引擎优化中的位置
GEO 把 RAG 当作多数答案引擎的默认假设,而不是当作可以关闭的选项。优化对象是可检索块与实体一致性,而不是向模型「提交关键词」。
禁止爬虫、404、把正文只放在图片里,都会在检索阶段失败,后面的生成无法补救。
名称与用法
RAG是本百科对「先检索文档再生成,多数答案引擎的底层」这一对象的正条名称。条目地址使用拉丁字母标识符「rag」,便于稳定引用;中文标题以行业通行写法为准,不随一次营销文案改名。
中文讨论里,RAG有时被随手写成「SEO」「AI 优化」或直接叫成某一个聊天产品的名字。这些叫法或者过宽,或者过窄。百科把它们视为不精确的别称,而不是本词条的同义词。
与「向量检索」的名称相近时,仍分列条目。混用会造成监测表无法分列、也无法判断失败发生在哪一层。
组成与分类
RAG可以从对象类型上再拆一层,以免和「向量检索」共用同一个分类标签。下列分项只服务本词条,不是通用行业标准编号。
- 在「抓取—切块—召回—生成」中的位置:先检索文档再生成,多数答案引擎的底层。
- 失败时的典型症状:页面存在但从未进入候选,或进入后事实被切碎。
- 与「向量检索」前后相接,但不能互相替代。
- 可核验证据:日志、robots、HTML 正文,而不是一次聊天截图。
观察与记录
记录 RAG 是否成立,依据的是页面结构、日志和官方爬虫文档,而不是模型口头说「我读过你的站」。
故障定位沿流水线进行:抓取失败、切块失败、召回失败、生成时未采用,四者在监测表里不应写成同一个「没被提到」。
误解与界限
常见不精确说法是把 RAG 理解成「让 AI 提到我们」的口号。本词条的对象更窄:先检索文档再生成,多数答案引擎的底层。口号无法对应到一条监测记录。
另一种混淆是把 RAG 写成「向量检索」的别名。二者可以同时出现在同一份方案里,但失败模式不同,必须分列。
本词条也不收录无法核验的效果数字、排名保证或攻击性竞品描述。那不属于百科。
实例
帮助中心用 HTML 表格写清退货时限,检索块可以完整进入上下文,答案就可能写出正确天数并引用该 URL。同一政策若只出现在海报图中,嵌入模型读不到数字,答案会改用过期评测或幻觉。
局限与争议
检索到的来源仍可能过期或彼此矛盾;生成器可能把并未写在来源里的细节补全,造成「有引用的幻觉」。
RAG 也不能解释全部答案:关闭工具时,模型可能仅凭参数记忆说话。观察记录必须区分是否发生了检索。
与相关概念
| 概念 | 区别 |
|---|---|
| 纯参数生成 | 不检索外部文档,只靠训练记忆;事实更新慢,也更难展示 URL。 |
| 传统搜索 | 返回文档列表;RAG 还要把取出的文本写进一段答案。 |
| 微调 | 改变模型权重;RAG 在推理时插入文档,二者可并存。 |
做法
- 把关键事实写成可独立成立的段落或表格,避免只存在于图片。
- 长页按主题切分,每块含完整主谓与日期。
- 保持 HTML 正文与结构化数据一致。
- 用原问题检查答案引用的是否仍是正本 URL。