论文 · arXiv 2005.11401
用于知识密集型 NLP 任务的检索增强生成(Retrieval-Augmented Generation)
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
三句话总结
- 🎯 纯参数化语言模型难以访问、修正和证实事实知识,导致在知识密集型任务中容易产生幻觉。
- 🔧 提出了 RAG,将 Dense Passage Retriever(维基百科上的非参数记忆)与 BART 生成器(参数记忆)相结合,通过对潜变量文档的边缘化进行端到端微调。
- 📈 在开放域问答上取得 SOTA 结果(Natural Questions 上达到 44.5 EM),并且比纯参数化基线生成了更具事实性、更具体且更多样的文本。
摘要
大型预训练语言模型已被证明能够在其参数中存储事实知识,并在下游 NLP 任务微调时取得 SOTA 成果。然而,它们访问和精确操作知识的能力仍然有限,因此在知识密集型任务上的表现落后于专用架构。此外,为其决策提供来源依据以及更新其世界知识仍是开放的研究问题。具有显式非参数记忆可微访问机制的预训练模型可以克服这一问题,但迄今为止仅在抽取式下游任务中进行了研究。我们探索了一种用于检索增强生成(RAG)的通用微调范式——该模型结合了预训练参数化与非参数化记忆以进行语言生成。我们提出了 RAG 模型,其中参数化记忆是一个预训练 seq2seq 模型,非参数化记忆是一个维基百科稠密向量索引,通过预训练神经检索器进行访问。我们比较了两种 RAG 公式:一种在整个生成序列中以相同的检索段落为条件,另一种可以为每个 token 使用不同的段落。我们在广泛的知识密集型 NLP 任务上微调并评估了我们的模型,在三个开放域问答任务上创下了业内最佳表现,优于参数化 seq2seq 模型和特定任务的检索-抽取式架构。对于语言生成任务,我们发现 RAG 模型比最先进的纯参数化 seq2seq 基线生成了更具体、更多样且更符合事实的语言。
英文原文摘要
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.
论文解读
问题与动机
预训练语言模型在其参数中存储了大量的显式事实知识(参数记忆)。然而,它们存在显著的缺点:难以在不重新训练的情况下扩展或更新其知识,无法轻易为其输出提供溯源或可解释性,并且容易产生幻觉。
尽管 REALM 和 ORQA 等混合参数/非参数模型将可微检索与掩码语言建模相结合,但它们局限于抽取式问答。BART 和 T5 等标准序列到序列(seq2seq)架构在很大程度上仍属于闭卷模型。这项工作通过提出**检索增强生成(Retrieval-Augmented Generation, RAG)**弥合了这一差距,它是一个通用的微调框架,将预训练稠密神经检索器与自回归 seq2seq 生成器相结合,用于开放域生成和分类任务。
核心思想
- 混合参数化与非参数化记忆:非参数记忆由 2100 万篇 100 词维基百科段落构成的稠密向量索引组成,通过最大内积搜索(MIPS)进行访问。参数化记忆是一个预训练的 BART 生成器。
- 端到端微调:将检索到的段落视为潜变量,并在没有显式检索监督的情况下最小化目标 token 的负边际对数似然,从而联合训练查询编码器和生成器。
- 两种条件化公式:
- RAG-Sequence:在整个生成序列中均以相同的检索文档为条件。
- RAG-Token:允许每个生成的 token 注意并边缘化不同的检索段落。
- 世界知识的热插拔(Hot-Swappable):外部索引可以在推理时替换(例如,将 2016 年维基百科索引换为 2018 年索引),从而在不修改模型权重的情况下更新世界知识。
方法
给定输入序列 ,检索器 生成文档 的概率分布,生成器 以 和 为条件生成目标 token。
检索器采用 Dense Passage Retriever (DPR): 其中 且 。使用 FAISS MIPS 检索 Top- 候选。文档索引和文档编码器 保持固定,而 和 BART 生成器参数 进行微调。
RAG-Sequence
该模型将检索到的文档视为跨整个序列 的单一潜变量: 解码可通过彻底解码(Thorough Decoding)(对每个文档运行 beam search,并在所有文档中计算候选假设的前向传播)或快速解码(Fast Decoding)(将缺失的 beam 概率近似为 0)进行评估。
RAG-Token
该模型在每个 token 步骤上对文档进行边缘化,从而实现跨来源的 token 级内容混合: 这产生了一个标准的自回归转移概率,可直接用于 beam search。
结果
- 开放域问答:RAG 使用精确匹配(EM)指标在公开基准上创下了新纪录:
- Natural Questions:44.5(RAG-Seq)对比 41.5(DPR)和 36.6(T5-11B+SSM)。
- TriviaQA(标准开放切分):56.8(RAG-Seq);在 TQA-Wiki 测试切分上:68.0(RAG-Seq)对比 60.5(T5-11B+SSM)。
- WebQuestions:45.5(RAG-Token)对比 41.1(DPR)。
- CuratedTrec:52.2(RAG-Seq)对比 50.6(DPR)。
- 值得注意的是,在 Natural Questions 上,当检索到的上下文中完全缺少正确答案时,RAG 取得了 11.8% 的 EM(此时抽取式模型得分为 0%)。
- 抽象式生成:在 Open MS-MARCO 上,RAG-Sequence 达到 40.8 Rouge-L 和 44.2 Bleu-1,优于 BART(38.2 Rouge-L,41.6 Bleu-1)。
- 危险边缘(Jeopardy)问题生成:人类评估者在 42.7% 的案例中认为 RAG-Token 比 BART 更符合事实,而仅在 7.1% 的案例中认为 BART 更优。评估者还发现 RAG 更加具体(37.4% 对比 16.8%)。
- 事实核查:在 FEVER 三分类上,RAG 达到 72.5% 的标签准确率(距使用黄金证据监督的流水线系统差距在 4.3% 以内);在二分类上,RAG 达到 89.5% 的准确率。
- 通过热插拔更新知识:使用 2016 年至 2018 年间的 82 位领导人时序测试集,使用 2016 索引时,RAG 对 2016 年领导人的准确率为 70%,使用 2018 索引时对 2018 年领导人的准确率为 68%,而在索引不匹配时准确率大幅下降(分别为 12% 和 4%)。
局限性与开放问题
- 检索坍缩(Retrieval Collapse):对于需要较弱显式事实条件化的任务(如开放式故事生成),检索器可能会坍缩为检索静态不变的文档,而生成器则学会忽略它们。
- 固定文档索引:由于持续重新索引 2100 万个向量的高昂计算成本,文档编码器在任务微调期间保持静态,这限制了检索器的适应能力。
- 知识源依据与偏见:非参数记忆仍然容易受到底层知识语料库(维基百科)中错误信息和偏见的影响。
- 联合预训练:检索器和生成器组件在下游任务微调之前是分别预训练的,从头开始联合预训练仍是一个开放方向。
关键术语
- Retrieval-Augmented Generation (RAG)(检索增强生成)
- 一种混合框架,将预训练神经检索器与预训练序列到序列模型相结合,以检索到的非参数文本段落为条件进行生成。
- Parametric Memory(参数化记忆)
- 存储在预训练 seq2seq 生成器(BART)神经网络权重中的隐式事实知识。
- Non-Parametric Memory(非参数化记忆)
- 在运行时访问的显式外部文档集合(例如,包含 2100 万维基百科段落的 FAISS 稠密向量索引)。
- RAG-Sequence
- 一种 RAG 公式,将检索到的段落视为在整个生成序列中保持不变的潜变量。
- RAG-Token
- 一种 RAG 公式,在每个生成的 token 处分别对 Top-k 检索文档进行边缘化,从而允许综合来自多个来源的信息。
- Dense Passage Retriever (DPR)(稠密段落检索器)
- 一种双 BERT 编码器架构,通过在稠密嵌入空间中进行最大内积搜索来评估文档与查询的相关性。
- Maximum Inner Product Search (MIPS)(最大内积搜索)
- 用于在亚线性时间内快速检索与查询向量最接近的 Top-k 文档向量的数学搜索公式。
- Index Hot-Swapping(索引热插拔)
- 在不重新训练或微调模型参数的情况下,将非参数文档索引替换为更新信息的操作方式。
常见问题
RAG-Sequence 与 RAG-Token 有什么区别?
RAG-Sequence 在整个序列中使用完全相同的检索文档作为生成条件;而 RAG-Token 在每一步对最优文档集合进行边缘化,从而允许不同 token 获得来自不同文档的支持。
在微调过程中,文档表示会更新吗?
不会。文档编码器和 FAISS 索引保持固定,以避免在训练期间重新索引 2100 万篇文档的高昂计算成本;仅更新查询编码器和 BART 生成器的参数。
当检索到的文档中不包含答案时,RAG 能否回答问题?
可以。由于生成不受受限抽取机制约束,且有 BART 的参数记忆作为支持,在 Top 检索段落均不包含目标字符串的情况下,RAG 在 Natural Questions 仍正确回答了 11.8% 的案例,而抽取式模型的得分为 0%。
当现实世界中的事实发生变化时,RAG 如何更新其知识?
由于其外部记忆是模块化的,文档索引可以“热插拔”为更新的文本转储(例如,将 2016 年维基百科索引换为 2018 年索引),而无需重新训练模型参数。
本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。