像 GPT-4 这样的大语言模型 (LLM) 非常强大。它们能够编写代码、创作诗歌、总结文章,并以惊人的流畅度解释复杂的主题。这种能力源于 参数化记忆——它们在训练过程中吸收的海量知识,存储在数十亿个神经参数当中。
但这种参数化记忆也存在一些众所周知的限制:
- 静态知识: 一旦模型训练完成,其世界知识就被冻结了。一个 2022 年的 LLM 无法告诉你谁赢得了 2023 年的世界职业棒球大赛。
- 幻觉: 它可能会生成自信却错误的陈述——听起来合理但实际上是捏造的事实。
- 不透明性: 很难了解模型是如何或为何得出某个答案的,也无法在不重新训练的情况下纠正单个错误事实。
那么,如果我们能给 LLM 一张“小抄”呢?让它们参加一场开卷考试——在生成答案时查阅可信、最新的资料。
于是,Facebook AI Research (现为 Meta AI) 在 2020 年发表了一篇开创性的论文: “为知识密集型 NLP 任务进行检索增强生成”
这项工作提出了 RAG (Retrieval-Augmented Generation,检索增强生成) 框架,这是一种混合方法,将大型语言模型的生成能力与外部知识源 (例如维基百科) 的事实精确性相融合。
在本文中,我们将深入探讨 RAG 如何融合 参数化 与 非参数化 记忆,研究其背后的工程逻辑,并展示为什么这种方法至今仍是事实型语言建模的基石。
理解参数化记忆与非参数化记忆
在探索 RAG 的架构之前,了解它结合的两类“记忆”会更有帮助:
- 参数化记忆 – 在预训练后固化在模型参数中的知识。
- 示例: BART、T5、GPT 类模型。
- 优点: 快速流畅,模型能够在不同主题间很好泛化。
- 缺点: 难以更新、不透明,且容易出现幻觉。
- 非参数化记忆 – 模型可以查询的动态外部文本数据库,如维基百科。
- 优点: 易于更新 (替换数据文件即可) 、透明 (我们可以看到所用的段落) ,且基于事实。
- 缺点: 速度较慢,因为检索需要在庞大的语料库中搜索。
以往的混合系统通常专注于狭窄的抽取式任务——例如选择包含答案的确切句子。而 RAG 则提出了革命性的方案: 一种通用架构 , 其中检索增强的是文本生成本身,而不只是信息抽取。
RAG 的工作原理: 双模块架构
RAG 由两个关键组件构成: 一个 检索器 (Retriever) 和一个 生成器 (Generator) 。

图 1: RAG 将预训练的检索器 (查询编码器 + 文档索引) 与预训练的 seq2seq 生成器相结合。模型从维基百科中检索 Top-K 个文档,并在生成最终输出时对它们进行边缘化处理。
系统运行过程如下:
- 检索器处理输入查询 (例如: “谁写了《神曲》?”) ,并在一个密集的维基百科段落索引中搜索。
- 它检索出 排名前 K 的最相关文本块。
- 生成器随后将查询与检索到的文本结合,生成最终输出 (例如: “《神曲》是由但丁·阿利吉耶里创作的。”) 。
这两个部分共同构成一个端到端可微的系统,检索与生成可联合训练。
检索器: 定位相关知识
检索器负责找到可能包含有用信息的文本片段。作者使用了 密集段落检索器 (Dense Passage Retriever, DPR) , 这是一个采用双 BERT 架构的 双编码器 (bi-encoder) :
- 查询编码器 – 将输入问题 \(x\) 转换为一个密集的嵌入向量。
- 文档编码器 – 将每个 100 词的维基百科片段编码为另一个向量。
查询与文档的相关性通过它们嵌入向量的内积来衡量:

DPR 评分公式。检索器找到查询与文档嵌入内积最高的 Top-K 文档。
这种 *最大内积搜索 (Maximum Inner Product Search, MIPS) * 使用 FAISS 高效执行,从而在 2100 万个索引文档中实现近实时检索。
生成器: 将检索到的知识转化为流畅文本
当检索器找到相关段落后,生成器会把它们转化为格式良好的答案。RAG 使用 BART-large , 这是一种以强大生成性能闻名的序列到序列 Transformer。
输入的组合方式很简单: 将问题 \(x\) 与检索段落 \(z\) 拼接,输入到 BART 中。生成器逐步生成词元 (token) ,其生成过程同时依赖原始输入与检索到的证据。
潜变量技巧: 端到端联合训练
一个问题出现了——模型如何确定 Top-K 文档中哪一个是“最佳”的? RAG 的设计巧妙地解决了这一问题: 它将检索到的文档视作潜变量 。
在训练过程中:
- 模型为每个检索到的文档 \(z_1, z_2, \dots, z_k\) 生成输出;
- 计算每篇文档导致正确目标 \(y\) 的可能性;
- 对这些可能性进行边缘化——即加权组合它们的概率。
这种 无监督 方法使检索器与生成器能够共同学习: 检索器发现有用的来源,生成器学习如何利用它们。
RAG 的两种形式: Sequence vs. Token
RAG 提出了两种不同的概率公式,它们在对检索文档进行边缘化的粒度上有所差异。
1. RAG-Sequence
该模型假设单个文档为整个生成序列提供全部必要上下文。

RAG-Sequence 模型: 使用同一检索段落生成完整输出序列。
这种方法适用于只有一个相关来源的问题,但可能会遗漏分散在多个文本中的信息。
2. RAG-Token
在这种模型中,每个输出词元都可以依赖不同的文档。它在生成的每一步都对排名前 K 的文档进行边缘化,从而能融合多个来源的信息。

RAG-Token 模型: 允许逐词元检索,使生成过程能整合多源信息。
这种形式在需要整合不同文献细节的复杂任务中表现出色,例如长篇问答或事实丰富的摘要生成。
对 RAG 的测试
作者在包含 2100 万篇文档的维基百科索引上,对 RAG 在各种知识密集型任务 (从开放域问答到事实核查) 进行了评估。
开放域问答
经典的问答任务要求模型从开放文本中生成简短的事实性答案。 RAG 与如下系统进行了对比:
- 闭卷模型 (例如 T5) ,仅依赖参数化记忆。
- 开卷抽取式系统 (例如 DPR) ,直接定位答案片段。

RAG 在 Natural Questions (NQ)、WebQuestions (WQ) 和 CuratedTrec (CT) 上取得了当前最佳结果,超越了仅使用参数化记忆的模型与抽取式系统。
结果: RAG-Sequence 的准确率超过了拥有 110 亿参数的 T5,尽管其可训练参数少于 7 亿。它通过 生成 而非 抽取 答案,使模型更具灵活性。 在 NQ 数据集中,即使答案未在任何检索到的文档中逐字出现,RAG 仍能正确回答 11.8% 的问题。
摘要式问答与 Jeopardy 问题生成
RAG 在创意生成任务中也表现突出。

在 MSMARCO 和 Jeopardy 问题生成等任务中,RAG 的表现显著优于强大的 BART 基线。
例如,在 MSMARCO (答案是完整句子) 及自定义的 Jeopardy 问题生成 数据集中,两种 RAG 变体生成的文本均比仅使用 BART 的系统 更具事实性与特异性。

表 3: RAG 输出内容有事实依据且连贯,而 BART 经常出现重复或虚构。
人工评估结果进一步证实了这一点: 评估者更倾向于认为 RAG 的输出更真实且更具体。

在 450 多次人工对比中,RAG 生成的问题被评为更加事实准确与具体。
看见 RAG 的思考过程: 海明威示例
一个极具代表性的可视化例子来自为 “海明威” 生成 Jeopardy 问题时的分析。

图 2: 输入“海明威”的文档后验分布可视化。每个生成的词元都从不同检索文档获取信息。
注意 RAG-Token 在生成 “《太阳照常升起》” 时参考一个文档,而在生成 “《永别了,武器》” 时参考另一个文档。 这种行为展示了它能够流畅地整合多个事实来源——将检索得到的证据与模型的语言知识完美结合。
事实核查
在 FEVER 数据集中,任务是根据维基百科判断给定声明是否支持、反驳或信息不足。 RAG 直接将这些标签映射为单个输出词元,并在无监督条件下自行检索证据,却仍能达到与更复杂、手工设计管道相当的准确率。
实时更新知识
RAG 最令人兴奋的特性之一是 索引热插拔——可以在不重新训练的情况下更新世界知识。
作者构建了两个索引: 一个基于 2016 年 , 另一个基于 2018 年 , 然后提问有关领导人职位变动的问题。
结果显示:
- 使用 2016 年索引回答 2016 年领导人问题: 70% 准确率
- 使用 2018 年索引回答 2018 年领导人问题: 68% 准确率
- 当索引与年份不匹配时,准确率锐减 (约 4%)
这种简单的“更换索引”机制展现了 RAG 在快速变化的信息领域保持最新性的能力——这是传统 LLM 所无法实现的。

图 3: 性能随检索文档数量增加而提升。RAG-Sequence 受益于更大的 K 值,而 RAG-Token 在约 10 时达到峰值。
RAG 的重要性
RAG 框架提出了理解语言模型知识的新方式:
- 事实性基础: 生成的答案依赖或引用真实文本。
- 可解释性: 检索到的段落可以作为输出的溯源依据。
- 可更新记忆: 只需更换索引即可刷新模型的世界知识。
- 高效性: 小型参数化模型也能达到或超越庞大静态系统的表现。
这种将神经生成与动态检索相结合的理念,影响了整个行业。现代“检索增强型 LLM”,如带浏览功能的 ChatGPT、Bing Copilot,以及众多专业问答模型,都是建立在 RAG 的洞察之上。
结论
检索增强生成 (RAG) 框架标志着 NLP 研究的重大转折点。 通过结合大规模语言生成与实时检索:
- 它在开放域问答与生成任务上实现了最先进的准确率 ;
- 它通过引用可验证的来源减少了幻觉;
- 它允许持续更新 , 只需刷新文档索引即可实现。
RAG 将语言模型从“记忆机”转变为推理系统——这些模型不仅能够知道,还能够查找并解释它们所知道的内容。
这种“开卷考试”式的理念,已成为现代能够引用来源、保持事实一致的 AI 助手的基础。 下次当你的聊天机器人说: “根据维基百科……”时——你看到的正是 RAG 的传承: 一个不仅会生成,更懂得如何备考的模型。
](https://deep-paper.org/en/paper/2005.11401/images/cover.png)