Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
TL;DR 精炼摘要
本文提出检索增强生成(RAG)模型,结合了参数化记忆与非参数化记忆,解决大型预训练语言模型在知识密集型任务中的局限性。通过全面训练,RAG模型在开放域问答等任务上显示出优越性能,生成的回答更具准确性和多样性。
摘要
Large pre-trained language models have been shown to store factual knowledge in their parameters, and achieve state-of-the-art results when fine-tuned on downstream NLP tasks. However, their ability to access and precisely manipulate knowledge is still limited, and hence on knowledge-intensive tasks, their performance lags behind task-specific architectures. Additionally, providing provenance for their decisions and updating their world knowledge remain open research problems. Pre-trained models with a differentiable access mechanism to explicit non-parametric memory can overcome this issue, but have so far been only investigated for extractive downstream tasks. We explore a general-purpose fine-tuning recipe for retrieval-augmented generation (RAG) -- models which combine pre-trained parametric and non-parametric memory for language generation. We introduce RAG models where the parametric memory is a pre-trained seq2seq model and the non-parametric memory is a dense vector index of Wikipedia, accessed with a pre-trained neural retriever. We compare two RAG formulations, one which conditions on the same retrieved passages across the whole generated sequence, the other can use different passages per token. We fine-tune and evaluate our models on a wide range of knowledge-intensive NLP tasks and set the state-of-the-art on three open domain QA tasks, outperforming parametric seq2seq models and task-specific retrieve-and-extract architectures. For language generation tasks, we find that RAG models generate more specific, diverse and factual language than a state-of-the-art parametric-only seq2seq baseline.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (知识密集型 NLP 任务的检索增强生成)
1.2. 作者
Patrick Lewis†‡, Ethan Perez*, Aleksandra Piktus†, Fabio Petroni†, Vladimir Karpukhin†, Naman Goyal†, Heinrich Küttler†, Mike Lewis†, Wen-tau Yih†, Tim Rocktäschel†‡, Sebastian Riedel†‡, Douwe Kiela†。 作者主要来自 Facebook AI Research (FAIR),以及伦敦大学学院 (UCL) 和纽约大学 (NYU)。
1.3. 发表期刊/会议
该论文发表于 NeurIPS 2020 (神经信息处理系统大会),这是人工智能和机器学习领域的顶级学术会议(CCF-A类)。
1.4. 发表年份
2020年5月(预印本发布),2020年晚些时候正式发表于 NeurIPS。
1.5. 摘要
大型预训练语言模型(如 GPT、BART)虽然在参数中存储了海量知识,但在处理“知识密集型任务”时,其精确性有限且难以更新知识。本文提出了 检索增强生成 (Retrieval-Augmented Generation, RAG) 模型,将参数化记忆 (Parametric Memory)(预训练的 seq2seq 模型)与非参数化记忆 (Non-parametric Memory)(密集的维基百科向量索引)相结合。通过端到端的训练,RAG 模型在开放域问答等多个任务上达到了最先进的性能,且生成的语言更具事实性、具体性和多样性。
1.6. 原文链接
-
arXiv 链接: https://arxiv.org/abs/2005.11401
-
PDF 链接: https://arxiv.org/pdf/2005.11401v4.pdf
2. 整体概括
2.1. 研究背景与动机
在自然语言处理 (NLP) 领域,预训练模型(如 BERT、BART、T5)就像一个博学但不查资料的学生,它们将知识存储在模型的权重(参数)中。
- 核心问题: 虽然这些模型很强大,但它们存在三个显著缺陷:
- 难以更新: 知识一旦固化在参数中,除非重新训练模型,否则无法更新(例如,无法知道今天刚发生的重大新闻)。
- 缺乏可解释性: 模型无法告诉你它的回答是基于哪本书或哪篇文档。
- 幻觉问题 (Hallucinations): 在面对精确事实要求极高的任务时,模型容易“一本正经地胡说八道”。
- 挑战: 现有的检索模型(如 REALM)主要关注“抽取式”任务(从文档中摘取一段话),而不擅长生成灵活的自然语言。
- 创新思路: 本文提出将“检索”和“生成”有机结合。模型在回答问题前,先从海量外部文档库(如维基百科)中寻找相关证据,再结合这些证据生成最终答案。
2.2. 核心贡献/主要发现
-
提出了 RAG 框架: 这是一个通用的、端到端可微的检索增强架构,结合了预训练的
seq2seq生成器和密集向量检索器。 -
两种边际化方案: 提出了
RAG-Sequence(整句基于同一文档)和RAG-Token(每个词元可以基于不同文档)两种模型。 -
卓越的性能: 在多个开放域问答 (Open-domain QA) 任务上打破了纪录,超越了参数量大得多的模型(如 T5-11B)。
-
更好的生成质量: 实验证明,RAG 生成的内容比纯生成模型更具体、更符合事实。
-
知识热更新能力: 证明了可以通过简单更换外部索引(非参数化记忆)来更新模型的“世界观”,而无需重新训练模型参数。
3. 预备知识与相关工作
3.1. 基础概念
为了理解 RAG,初学者需要掌握以下几个核心概念:
- 参数化记忆 (Parametric Memory): 模型在训练过程中学习到的、存储在权重(神经网络连接强度)中的知识。类似于人类大脑中长期记忆。
- 非参数化记忆 (Non-parametric Memory): 存储在外部数据库(如维基百科全书)中的知识,模型通过索引查找来获取。类似于人类翻阅百科全书。
- 序列到序列模型 (Seq2seq): 一种输入一个序列(如问题)并输出另一个序列(如答案)的模型结构,本文使用了 BART 作为生成器。
- 密集向量检索 (Dense Retrieval): 与传统的关键词匹配(如 BM25)不同,它将问题和文档都转化为高维向量。如果两个向量在空间中距离近,说明它们语义相关。
3.2. 前人工作
- BART: 一种强大的预训练
seq2seq模型。其核心是Transformer架构。理解它的关键是 注意力机制 (Attention Mechanism),其计算公式为: 其中 是查询向量, 是键向量, 是值向量, 是向量维度。该机制让模型能关注到输入序列中最重要的部分。 - DPR (Dense Passage Retrieval): 一种基于双编码器 (Bi-encoder) 的检索技术。它使用两个
BERT模型,一个编码问题,一个编码文档,通过最大化它们的内积来找到最相关的文档。
3.3. 技术演进与差异化
早期的问答系统主要分为两类:
- 闭卷问答 (Closed-Book QA): 只靠模型参数(如 T5),参数量巨大才能记住知识。
- 开卷/抽取式问答 (Open-Book/Extractive QA): 检索文档并从中“摘抄”片段。 RAG 的差异点: 它结合了上述两者的优势。它既能“开卷考试”查找资料,又能像“闭卷模型”一样灵活地组织语言进行生成,且整个过程是端到端可学习的。
4. 方法论
4.1. 方法原理
RAG 的核心思想是将生成目标 建模为一个以输入 为条件的概率分布,其中检索到的文档 被视为隐变量 (Latent Variable)。模型首先预测哪些文档 与 相关,然后在给定 和 的情况下生成 。
4.2. 核心方法详解 (逐层深入)
下图(原文 Figure 1)展示了 RAG 的整体架构:
该图像是示意图,展示了检索增强生成(RAG)方法的总体框架。图中包括了查询编码器、检索器(非参数)和生成器(参数)三个主要组成部分。通过查询 q(x),使用最大内积搜索(MIPS)从文档索引中检索相关文档 。最后,通过生成器 对这些文档进行预测,边际化生成最终结果。这一过程实现了端到端的反向传播。
4.2.1. 组件构成
RAG 由两个主要部分组成:
-
检索器 (Retriever): 使用 DPR (Dense Passage Retrieval)。给定输入 ,计算文档 的先验概率:
q(x): 查询编码器(基于BERT),将问题 转为向量。d(z): 文档编码器(基于BERT),将文档 转为向量。- 该公式计算的是两个向量的相似度(点积),相似度越高,文档被检索到的概率越大。
-
生成器 (Generator): 使用 BART-large。它将输入 和检索到的文档 拼接在一起作为上下文,计算生成序列的概率: 这里 表示之前已经生成的词元, 是生成器的参数。
4.2.2. 模型变体与概率计算
作者提出了两种组合检索文档和生成序列的方式。为了计算最终的生成概率 ,模型需要对排名前 的检索结果进行边际化 (Marginalize)(即对所有可能的文档结果求和)。
(1) RAG-Sequence 模型
该模型假设生成整个句子时都参考同一份文档。它先计算给定某份文档生成整个序列的概率,再根据文档的权重求和:
- 计算逻辑: 对于 Top-K 中的每一份文档 ,先计算文档的检索概率 ,然后乘以在该文档支持下生成整个序列 的连乘概率 。最后将所有 份文档的结果相加。
(2) RAG-Token 模型
该模型更灵活,它允许生成答案的每一个词元 (token) 时参考不同的文档。这在需要结合多份资料信息时非常有用:
- 计算逻辑: 在生成第 个词元时,先对所有 Top-K 文档进行加权求和(边际化),得到当前词元的概率分布,然后再将各个位置的概率相乘。
4.2.3. 训练与解码
- 训练: 检索器和生成器联合训练,目标是最小化目标文本的负对数似然。注意,文档编码器
d(z)在训练中是固定的,只更新查询编码器q(x)和生成器 。 - 解码 (Decoding):
-
对于
RAG-Token,可以直接使用标准的束搜索 (Beam Search)。 -
对于
RAG-Sequence,由于概率无法分解到每个词元,作者提出了“彻底解码 (Thorough Decoding)”和“快速解码 (Fast Decoding)”两种近似方法来寻找最优解。
-
5. 实验设置
5.1. 数据集
实验涵盖了四类知识密集型任务:
- 开放域 QA (Open-domain QA): 包括
Natural Questions (NQ),TriviaQA (TQA),WebQuestions (WQ)和CuratedTrec (CT)。 - 摘要式问答 (Abstractive QA):
MS-MARCO。这要求模型不仅要找答案,还要用完整的句子组织语言。 - Jeopardy 问题生成: 给定一个实体(如“华盛顿”),生成对应的 Jeopardy 风格问题。
- 事实验证 (Fact Verification):
FEVER数据集,判断一个陈述是“支持”、“反驳”还是“信息不足”。
5.2. 评估指标
- 精确匹配 (Exact Match, EM):
- 概念定义: 衡量模型生成的答案是否与参考答案完全一致(忽略大小写和标点)。常用于简答题。
- BLEU/ROUGE:
- 概念定义: 衡量生成文本与参考文本的 -gram 重合度,用于评估自然语言生成的流畅度和内容覆盖率。
- Q-BLEU:
- 概念定义: BLEU 的变体,对实体词(关键信息)赋予更高的权重,用于评估问题生成的质量。
5.3. 对比基线
-
Closed-Book 模型: T5 (参数量高达 11B),仅依赖参数记忆。
-
Open-Book 抽取式模型: REALM, DPR。这些模型只能从文档中“摘抄”。
-
纯生成模型: BART-large (不带检索功能)。
6. 实验结果与分析
6.1. 核心结果分析
RAG 模型在绝大多数任务上都取得了卓越的表现。最令人振奋的是,RAG 在 NQ、WQ、CT 三个问答任务上刷新了世界纪录。
以下是原文 Table 1 (开放域问答测试得分) 的结果:
| 模型类型 | 模型名称 | NQ (EM) | TQA (EM) | WQ (EM) | CT (EM) |
|---|---|---|---|---|---|
| 闭卷 (Closed Book) | T5-11B [52] | 34.5 | - / 50.1 | 37.4 | - |
| T5-11B+SSM [52] | 36.6 | - / 60.5 | 44.7 | - | |
| 开卷 (Open Book) | REALM [20] | 40.4 | - / - | 40.7 | 46.8 |
| DPR [26] | 41.5 | 57.9 / - | 41.1 | 50.6 | |
| RAG-Token | 44.1 | 55.2 / 66.1 | 45.5 | 50.0 | |
| RAG-Seq. | 44.5 | 56.8 / 68.0 | 45.2 | 52.2 |
注: TQA 结果中,左侧为标准测试集,右侧为 TQA-Wiki 测试集。
分析: 尽管 T5-11B 拥有 110 亿个参数,其性能仍显著低于参数量仅约 6 亿的 RAG 模型。这证明了外部非参数化记忆在处理事实知识时比单纯堆叠模型参数更有效。
6.2. 生成任务的表现
在 MS-MARCO 和 Jeopardy 生成任务中,RAG 不仅在指标上超过了纯 BART,在人类评估中也表现出更高的真实性。
以下是原文 Table 2 (生成与分类任务得分) 的结果:
| 模型 | Jeopardy (QGen) | MS-MARCO | FEVER (Acc.) | |||
|---|---|---|---|---|---|---|
| B-1 | QB-1 | R-L | B-1 | 3-way | 2-way | |
| SotA 基准 | - | - | 49.8* | 49.9* | 76.8 | 92.2* |
| BART (纯生成) | 15.1 | 19.7 | 38.2 | 41.6 | 64.0 | 81.1 |
| RAG-Token | 17.3 | 22.2 | 40.1 | 41.5 | 72.5 | 89.5 |
| RAG-Seq. | 14.7 | 21.4 | 40.8 | 44.2 | ||
注: * 表示使用了金标准证据。RAG 在不使用金标准检索监督的情况下,性能接近了那些复杂的专用管道模型。
6.3. 知识更新 (Index Hot-swapping)
作者做了一个非常有趣的实验:他们用 2016 年的维基百科建立一个索引,再用 2018 年的建立另一个索引。当询问“谁是现任总统?”时,模型只要切换索引,就能根据对应年份的文档给出正确的(但不同的)答案。这证明了 RAG 具备即时更新知识的能力。
7. 总结与思考
7.1. 结论总结
RAG 是一项具有里程碑意义的工作。它成功证明了将预训练的生成能力与灵活的外部知识检索相结合是解决知识密集型 NLP 任务的最佳路径。它不仅在性能上超越了传统的巨型模型,还解决了模型幻觉和知识陈旧的问题。
7.2. 局限性与未来工作
- 检索质量依赖: 如果检索器找不到相关的文档,生成器也会被误导。
- 计算开销: 检索 2100 万个文档块虽然通过 MIPS 变快了,但在推理时仍比纯生成模型多了一步检索和向量计算的开销。
- 未来方向: 探索更强大的检索算法、在更广泛的数据源上进行预训练,以及研究如何让模型在检索和生成之间进行更深度的交互。
7.3. 个人启发与批判
RAG 的成功告诉我们,“模型并不是越大越好”。通过合理的架构设计,利用外部结构化/非结构化数据,可以极大地提升小模型的效能。
- 批判性思考: 论文中虽然使用了端到端微调,但检索器的文档编码器是固定的。如果能实现文档向量的实时更新(尽管计算量巨大),RAG 的潜力可能会进一步释放。此外,对于非事实性的创意写作任务,RAG 可能会因为过度依赖检索到的“事实”而限制了想象力。
相似论文推荐
基于向量语义检索推荐的相关论文。