Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks - 翻译学习

知识密集型NLP任务的检索增强生成 - 论文学习

文章目录

  • Abstract
  • [1 Introduction](#1 Introduction)
  • [2 Methods](#2 Methods)
    • [2.1 Models](#2.1 Models)
    • [2.2 Retriever: DPR](#2.2 Retriever: DPR)
    • [2.3 Generator: BART](#2.3 Generator: BART)
    • [2.4 Training](#2.4 Training)
    • [2.5 Decoding](#2.5 Decoding)
  • [3 Experiments](#3 Experiments)
    • [3.1 Open-domain Question Answering](#3.1 Open-domain Question Answering)
    • [3.2 Abstractive Question Answering](#3.2 Abstractive Question Answering)
    • [3.3 Jeopardy Question Generation](#3.3 Jeopardy Question Generation)
    • [3.4 Fact Verification](#3.4 Fact Verification)
  • [4 Results](#4 Results)
    • [4.1 Open-domain Question Answering](#4.1 Open-domain Question Answering)
    • [4.2 Abstractive Question Answering](#4.2 Abstractive Question Answering)
    • [4.3 Jeopardy Question Generation](#4.3 Jeopardy Question Generation)
    • [4.4 Fact Verification](#4.4 Fact Verification)
    • [4.5 Additional Results](#4.5 Additional Results)
  • [5 Related Work](#5 Related Work)
  • [6 Discussion](#6 Discussion)
    • [Broader Impact](#Broader Impact)

Abstract

提示:这里可以添加本文要记录的大概内容:

大型预训练语言模型已被证明可以在其参数中存储事实知识,并在对下游NLP任务进行微调时获得最先进的结果。然而,他们访问和精确操作知识的能力仍然有限,因此在知识密集型任务中,他们的性能落后于特定任务的体系结构。此外,为他们的决定提供出处和更新他们的世界知识仍然是悬而未决的研究问题。具有对显式非参数记忆的可微访问机制的预训练模型可以克服这个问题,但迄今为止只针对提取下游任务进行了研究。微调方法------该模型结合了预先训练的参数和非参数记忆,用于语言生成。我们介绍了RAG模型,其中参数记忆是预先训练的seq2seq模型,非参数记忆是维基百科的密集向量索引,由预先训练的神经检索器访问。我们比较了两种RAG公式,一种是在整个生成序列中条件相同的检索段落,另一种是每个标记可以使用不同的段落。我们在广泛的知识密集型NLP任务上对我们的模型进行了微调和评估,并在三个开放域QA任务上设置了最先进的状态,优于参数seq2seq模型和特定任务的检索和提取架构。对于语言生成任务,我们发现RAG模型生成的语言比最先进的仅参数seq2seq基线更具体、更多样、更真实。


提示:以下是本篇文章正文内容,下面案例可供参考

1 Introduction

预先训练的神经语言模型已被证明可以从数据中学习大量深入的知识[47]。他们可以在不访问外部存储器的情况下这样做,作为参数化的隐式知识库[51,52]。虽然这一发展令人兴奋,但这种模型确实有缺点:它们不能轻易地扩展或修正记忆,不能直接提供对预测的见解,并且可能产生"幻觉"[38]。将参数记忆与非参数(即基于检索的)记忆相结合的混合模型[20,26,48]可以解决其中的一些问题,因为知识可以直接修改和扩展,并且可以检查和解释访问的知识。REALM[20]和ORQA[31]这两个最近引入的模型将掩蔽语言模型[8]与可微检索器相结合,已经显示出有希望的结果,但只探索了开放领域的抽取式问答。在这里,我们将混合参数和非参数存储器引入"NLP的主力",即序列到序列(seq2seq)模型。

我们通过一种通用的微调方法赋予预训练的参数记忆生成模型非参数记忆,我们称之为检索增强生成(RAG) 。我们建立了RAG模型,其中参数记忆是预先训练的seq2seq变换器,非参数记忆是维基百科的密集向量索引,由预先训练的神经检索器访问。我们将这些组件组合在一个端到端训练的概率模型中(图1)。检索器(Dense Passage retriever[26],以下简称DPR)提供以输入为条件的潜在文档,然后seq2seq模型(BART[32])将这些潜在文档与输入一起进行条件处理,以生成输出。我们使用top-K近似来边缘化潜在文档,无论是基于每输出(假设同一文档负责所有令牌)还是基于每令牌(其中不同文档负责不同令牌)。与T5[51]或BART一样,RAG可以在任何seq2seq任务上进行微调,从而联合学习生成器和检索器。

以前有大量的工作提出了用非参数存储器丰富系统的架构,这些非参数存储器是为特定任务从头开始训练的,例如存储器网络[64,55]、堆叠网络[25]和存储器层[30]。相反,我们探索了一种设置,在该设置中,参数和非参数记忆组件都是用丰富的知识进行预训练和预加载的。至关重要的是,通过使用预先培训的获取机制,无需额外培训即可获得知识。

我们的研究结果强调了将参数和非参数记忆与知识密集型任务的生成相结合的好处,这些任务在没有外部知识源的情况下是无法合理预期人类执行的。我们的RAG模型在开放式自然问题[29]、WebQuestions[3]和CuratedTrec[2]上取得了最先进的结果,并且大大优于最近在TriviaQA上使用专门预训练目标的方法[24]。尽管这些都是提取任务,但我们发现,无约束生成优于以前的提取方法。对于知识密集型生成,我们对MS-MARCO[1]和危险边缘问题生成进行了实验,我们发现我们的模型生成的回答比BART基线更真实、更具体、更多样。对于FEVER[56]事实验证,我们在使用强大检索监督的最先进管道模型的4.3%范围内获得了结果。最后,我们证明了随着世界的变化,非参数记忆可以被替换来更新模型的知识。(Code to run experiments with RAG has been open-sourced as part of the HuggingFace Transform-ers Library [66] and can be found at https://github.com/huggingface/transformers/blob/master/

examples/rag/. An interactive demo of RAG models can be found at https://huggingface.co/rag/)


2 Methods

我们研究了RAG模型,该模型使用输入序列x来检索文本文档z,并在生成目标序列y时将其用作附加上下文。如图1所示,我们的模型利用了两个组件:(i)具有参数 η \eta η的检索器 p η ( z ∣ x ) p_{\eta}(z|x) pη(z∣x),它在给定查询x的文本段落上返回(top-K截断)分布;(ii)生成器 p θ ( y i ∣ x , z , y 1 : i − 1 ) p_{\theta}(y_i|x,z,y_{1:i-1}) pθ(yi∣x,z,y1:i−1) 参数化依据 θ \theta θ,其基于先前i-1令牌 , y 1 : i − 1 ,y_{1:i-1} ,y1:i−1的上下文、原始输入x和检索到的段落z来生成当前令牌。

为了端到端地训练检索器和生成器,我们将检索到的文档视为潜在变量

我们提出了两个模型,以不同的方式对潜在文档进行边缘化,以在生成的文本上产生分布。在一种方法RAG-Sequence中,模型使用相同的文档来预测每个目标令牌。第二种方法,RAG-Token,可以基于不同的文档预测每个目标token。在下文中,我们正式介绍了这两个模型,然后描述了 p η p_{\eta} pη和 p θ p_{\theta} pθ组件以及训练和解码过程。

2.1 Models

RAG-Sequence Model

RAG序列模型使用相同的检索文档来生成完整的序列。从技术上讲,它将检索到的文档视为一个单独的潜在变量,该变量被边缘化,以通过top-K近似获得seq2seq概率 p ( y ∣ x ) p(y|x) p(y∣x)。具体来说,使用检索器检索前K个文档,生成器为每个文档生成输出序列概率,然后将其边缘化,

RAG-Token Model

在RAG-Token模型中,我们可以为每个目标token绘制不同的潜在文档,并相应地边缘化。这允许生成器在生成答案时从多个文档中选择内容。具体来说,使用检索器检索前K个文档,然后生成器为每个文档生成下一个输出令牌的分布,然后边缘化,并使用以下输出令牌重复该过程。形式上,我们定义:

最后,我们注意到,通过将目标类视为长度为1的目标序列,RAG可以用于序列分类任务,在这种情况下,RAG-Sequence和RAG-Token是等价的。

2.2 Retriever: DPR

检索组件 p η ( z ∣ x ) p_{\eta}(z|x) pη(z∣x)是基于DPR[26]的。DPR遵循双编码器架构:

其中, d ( z ) d(z) d(z)是由 B E R T B A S E BERT_{BASE} BERTBASE文档编码器[8]生成的文档的密集表示, q ( x ) q(x) q(x)是由查询编码器生成的查询表示,也是基于 B E R T B A S E BERT_{BASE} BERTBASE的。计算top-k( p η ( ⋅ ∣ x ) p_{\eta}(·|x) pη(⋅∣x)),即具有最高先验概率 p η ( z ∣ x ) p_{\eta}(z|x) pη(z∣x)的k个文档z的列表,是一个最大内积搜索(MIPS)问题,可以在亚线性时间内近似求解[23]。我们使用DPR中预先训练的双编码器来初始化我们的检索器并构建文档索引。该检索器经过训练,可以检索包含TriviaQA[24]问题和Natural questions[29]答案的文档。我们将文档索引称为非参数内存(non-parametric memory)。

2.3 Generator: BART

生成组件 p θ ( y i ∣ x , z , y 1 : i − 1 ) p_{\theta}(y_i|x,z,y_{1:i-1}) pθ(yi∣x,z,y1:i−1) 可以使用任何编码器-解码器来建模。我们使用BART-large[32],这是一种预先训练的具有400M参数的seq2seq转换器[58]。当从BART生成时,为了将输入x与检索到的内容z相结合,我们只需将它们连接起来。BART是使用去噪目标和各种不同的去噪函数进行预训练的。它在一组不同的生成任务上获得了最先进的结果,并优于同等规模的T5模型[32]。我们参考BART生成器参数 θ \theta θ作为此后的参数存储器(parametric memory)。

2.4 Training

我们联合训练检索器和生成器组件,而无需对应检索的文档进行任何直接监督。给定输入/输出对 ( x j , y j ) (x_j,y_j) (xj,yj)的微调训练语料库,我们最小化每个目标的负边际对数似然, ∑ j − l o g   p ( y j ∣ x j ) \sum_j -log{\,}p(y_j|x_j) ∑j−logp(yj∣xj),使用Adam[28]的随机梯度下降。在训练期间更新文档编码器 B E R T d BERT_d BERTd成本高昂,因为它需要像REALM在预训练期间那样定期更新文档索引[20]。我们不认为这一步骤对于强大的性能是必要的,并且保持文档编码器(和索引)固定,只微调查询编码器 B E R T q BERT_q BERTq和BART生成器。

2.5 Decoding

在测试时,RAG-Sequence和RAG-Token需要不同的方法来近似 a r g   m a x y p ( y ∣ x ) arg{\,}max_yp(y|x) argmaxyp(y∣x)。
RAG-Token

RAG-Token模型可以被视为一个标准的自回归seq2seq生成器,具有转换概率: p θ ′ ( y i ∣ x , y 1 : i − 1 ) = ∑ z ∈ t o p − k ( p ( ⋅ ∣ x ) ) p η ( z i ∣ x ) p θ ( y i ∣ x , z i , y 1 : i − 1 ) p^\prime_{\theta}(y_i|x,y_{1:i-1})=\sum_{z\in top-k(p(·|x))}p_{\eta}(z_i|x)p_\theta(y_i|x,z_i,y_{1:i-1}) pθ′(yi∣x,y1:i−1)=∑z∈top−k(p(⋅∣x))pη(zi∣x)pθ(yi∣x,zi,y1:i−1)

为了解码,我们可以插入 p θ ′ ( y i ∣ x , z i , y 1 : i − 1 ) p^\prime_{\theta}(y_i|x,z_i,y_{1:i-1}) pθ′(yi∣x,zi,y1:i−1)转换为标准集束(波束)解码器(beam decoder)。
RAG-Sequence

对于RAG-Sequence,似然性 p ( y ∣ x ) p(y|x) p(y∣x)没有突破传统的中断(per-token)似然,因此我们不能用单波束搜索来解决它。相反,我们对每个文档z进行波束搜索,使用p对每个假设进行评分 p θ ( y i ∣ x , z , y 1 : i − 1 ) p_{\theta}(y_i|x,z,y_{1:i-1}) pθ(yi∣x,z,y1:i−1)。这就产生了一组假设Y,其中一些可能没有出现在所有文件的光束中。为了估计假设y的概率,我们对波束中没有出现y的每个文档z进行额外的前向传递,将生成器概率与 p η ( z ∣ x ) p_\eta(z|x) pη(z∣x)相乘,然后对边缘的波束概率求和。我们将这种解码过程称为"彻底解码"。对于较长的输出序列,|Y|可能会变大,需要多次前向传递。为了更有效的解码,我们可以进一步近似 p θ ( y ∣ x , z i ) ≈ 0 p_{\theta}(y|x,z_i)\approx0 pθ(y∣x,zi)≈0,其中在波束搜索期间没有从x、 z i z_i zi生成y。这避免了一旦生成候选集合Y就需要运行额外的正向传递。我们将此解码过程称为"快速解码"(Fast Decoding)。


3 Experiments

我们在广泛的知识密集型任务中使用RAG进行实验。对于所有实验,我们使用一个维基百科转储作为非参数知识源。继Lee等人[31]和Karpukhin等人[26]之后,我们使用了2018年12月的转存(dump)。维基百科上的每一篇文章都被分割成100个不连贯的单词块,总共形成2100万个文档。我们使用文档编码器为每个文档计算嵌入,并使用FAISS[23]和分层导航小世界近似构建单个MIPS索引,以实现快速检索[37]。在训练过程中,我们为每个查询检索前k个文档。我们考虑 k ∈ { 5 , 10 } k\in \{5,10\} k∈{5,10}用于训练,并使用dev数据设置k用于测试时间。我们现在讨论每个任务的实验细节。

3.1 Open-domain Question Answering

开放领域问答(QA)是一种重要的现实应用程序,也是知识密集型任务的常见测试平台[20]。我们将问题和答案视为输入输出文本对(x,y),并通过直接最小化答案的负对数可能性来训练RAG。我们将RAG与流行的提取式QA范式进行了比较,其中答案是从检索到的文档中提取的,主要依赖于非参数知识。我们还将其与"闭书QA"(Closed-Book QA)方法[52]进行了比较,后者与RAG一样,生成答案,但不利用检索,而是纯粹依赖于参数知识。我们考虑四个流行的开放域QA数据集:自然问题(NQ)[29]、TriviaQA(TQA)[24]。WebQuestions(WQ)[3]和CuratedTrec(CT)[2]。由于CT和WQ很小,我们遵循DPR[26],用NQ RAG模型初始化CT和WQ模型。我们使用与先前工作[31,26]相同的train/dev/test分割,并报告精确匹配(EM)分数。对于TQA,为了与T5[52]进行比较,我们还对TQA Wiki测试集进行了评估。

3.2 Abstractive Question Answering

RAG模型可以超越简单的抽取式QA,并通过自由形式、抽象的文本生成来回答问题。为了在知识密集型环境中测试RAG的自然语言生成(NLG),我们使用了MSMARCO NLG任务v2.1[43]。该任务包括问题、从搜索引擎中为每个问题检索的十个黄金段落,以及根据检索到的段落注释的完整句子答案。我们不使用提供的段落,只使用问题和答案,将MSMMARCO视为一个开放领域的抽象QA任务。MSMARCO有一些问题在没有黄金段落的情况下无法以与参考答案相匹配的方式回答,例如"加利福尼亚州火山的天气怎么样?(What is the weather in V olcano, CA)"因此,如果不使用黄金段落,成绩会更低。我们还注意到,一些MSMMARCO问题无法单独使用维基百科来回答。在这里,RAG可以依靠参数知识来生成合理的响应。

3.3 Jeopardy Question Generation

为了评估RAG在非QA环境中的生成能力,我们研究了开放域问题生成。与使用标准开放领域QA任务中的问题(通常由简短的问题组成)不同,我们提出了生成危险问题这一要求更高的任务。Jeopardy是一种不同寻常的形式,它包括试图从一个实体的事实中猜测该实体。例如,"世界杯"就是对"1986年,墨西哥成为第一个两次举办这项国际体育比赛的国家"这一问题的回答。由于Jeopardy问题是准确的、事实性的陈述,以其答案实体为条件生成Jeopardy问题构成了一项具有挑战性的知识密集型生成任务。

我们使用SearchQA[10]中的拆分,包括100K train、14K dev和27K测试示例。由于这是一项新任务,我们训练了一个BART模型进行比较。在[67]之后,我们使用SQuAD调谐的Q-BLEU-1度量[42]进行评估。Q-BLEU是BLEU的变体,对于匹配实体具有更高的权重,并且对于问题生成与人类判断的相关性高于标准度量。我们还进行了两次人类评估,一次评估生成的真实性,另一次评估特异性。我们将真实性定义为一个陈述是否能得到可信的外部来源的证实,将特异性定义为输入和输出之间的高度相互依赖[33]。我们遵循最佳实践并使用成对比较评估[34]。评估人员会看到一个答案和两个生成的问题,一个来自BART,一个则来自RAG。然后,他们被要求从四个选项中选择一个------问题A更好,问题B更好,两者都好,或者两者都不好。

3.4 Fact Verification

FEVER[56]要求对维基百科是否支持或反驳自然语言的说法进行分类,或者是否没有足够的信息来决定。这项任务需要从维基百科中检索与该声明相关的证据,然后对这些证据进行推理,以分类该声明是真实的、虚假的还是仅从维基百科中无法核实的。FEVER是一个检索问题,同时也是一个具有挑战性的隐含推理任务。它还为探索RAG模型处理分类而非生成的能力提供了一个合适的试验台。我们将FEVER类标签(支持、反驳或信息不足)映射到单个输出令牌,并直接使用声明类对进行训练。至关重要的是,与大多数其他FEVER方法不同,我们不对检索到的证据进行监督。在许多现实世界的应用中,检索监督信号是不可用的,不需要这种监督的模型将适用于更广泛的任务。我们探索了两种变体:标准的3向分类任务(支持/反驳/信息不足)和Thorne和Vlachos[57]中研究的2向(支持/驳斥)任务。在这两种情况下,我们都报告标签的准确性。


4 Results

4.1 Open-domain Question Answering

表1显示了RAG的结果以及最先进的模型。在所有四个开放域QA任务上,RAG都设置了一个新的技术状态(仅在T5可比TQA上)。RAG结合了"闭书"(仅限参数)方法的生成灵活性和"开卷"检索方法的性能。与REALM和T5+SSM不同,RAG在没有昂贵的、专门的"显著跨度掩蔽"预训练的情况下获得了强大的结果[20]。值得注意的是,RAG的检索器是使用DPR的检索器初始化的,该检索器使用对Natural Questions和TriviaQA的检索监督。RAG优于DPR QA系统,后者使用基于BERT的"交叉编码器"对文档进行重新排序,以及提取读取器。RAG证明,对于最先进的性能,重新分级器和提取读取器都不是必要的。

即使可以提取答案,生成答案也有几个好处。有关于答案的线索但没有逐字逐句包含答案的文件仍然有助于生成正确的答案,这在标准的提取方法中是不可能的,从而导致比文件更有效的边缘化。此外,即使正确答案不在任何检索到的文档中,RAG也可以生成正确答案,在这种情况下,NQ的准确率达到11.8%,其中提取模型的得分为0%。

4.2 Abstractive Question Answering

如表2所示,RAG序列在Open MS-MARCO NLG上的表现优于BART 2.6个Bleu点和2.6个Rouge-L点。RAG接近最先进的模型性能,这是令人印象深刻的,因为(i)这些模型访问黄金段落,其中包含生成参考答案所需的特定信息,(ii)如果没有黄金段落,许多问题都是无法回答的,以及(iii)并非所有问题都可以从维基百科单独回答。表3显示了从我们的模型中生成的一些答案。定性地说,我们发现RAG模型比BART产生幻觉更少,生成事实正确的文本的频率更高。后来,我们还表明,RAG世代比BART世代更加多样化(见§4.5)。

4.3 Jeopardy Question Generation

表2显示,RAG Token在生成危险问题时的表现优于RAG Sequence,两个模型在Q-BLEU-1上的表现都优于BART。表4显示了来自BART和RAG代币的452对以上的人类评估结果。评估人员表示,只有7.1%的案例中,BART比RAG更真实,而42.7%的案例中RAG更实际,另外17%的案例中的RAG和BART都是真实的,这清楚地证明了RAG在最先进的生成模型中对任务的有效性。评估人员还发现RAG世代在很大程度上更具体。表3显示了每个模型的典型生成。

危险问题通常包含两条独立的信息,RAG Token可能表现最好,因为它可以生成将多个文档内容组合在一起的回复。图2显示了一个示例。当生成"太阳"时,文档2提到"太阳也升起"的后部较高。同样,当生成"永别了,武器"时,文件1在后面占主导地位。有趣的是,在每本书的第一个记号生成后,文档的后部会变平。这一观察结果表明,生成器可以在不依赖特定文档的情况下完成标题。换句话说,模型的参数知识足以完成标题。我们通过向BART仅基线提供部分解码"The sun"来找到这一假设的证据。BART完成生成"The Sun Also Rises" is a novel by this author of "The Sun Also Rises",表明标题"The Sun Also Rises"存储在BART的参数中。同样,BART将完成部分解码"The Sun Also Rises" is a novel by this author of "A with "The Sun Also Rises" is a novel by this author of "A Farewell to Arms"。这个例子展示了参数和非参数存储器是如何协同工作的------非参数组件有助于指导生成,提取存储在参数存储器中的特定知识。

4.4 Fact Verification

表2显示了我们在FEVER上的结果。对于三向分类,RAG得分在最先进模型的4.3%以内,这些模型是具有特定领域架构和大量工程的复杂管道系统,使用RAG不需要的中间检索监督进行训练。

对于双向分类,我们与Thorne和Vlachos[57]进行了比较,他们训练RoBERTa[35]在黄金证据判决的情况下将索赔分为真实或虚假。尽管RAG只提供了索赔并检索了自己的证据,但其准确率仍在该模型的2.7%以内。我们还分析了RAG检索到的文档是否与FEVER中注释为黄金证据的文档相对应。我们计算了RAG检索到的前k个文档和黄金证据注释之间的文章标题重叠。我们发现,在71%的案例中,检索到的前10篇文章中都有黄金文章,而在90%的案例中也有黄金文章。

4.5 Additional Results

生成多样性 第4.3节显示,RAG模型比BART更真实、更具体地生成危险问题。继最近关于多样性促进解码的工作之后,我们还通过计算不同模型生成的不同ngrams与总ngrams的比率来研究生成多样性。表5显示,RAG序列的代比RAG令牌的代更多样,并且两者都比BART显著更多样,而不需要任何促进多样性的解码。

回收消融 RAG的一个关键特性是学习检索任务的相关信息。

为了评估回收机制的有效性,我们在训练过程中对回收器进行消融。如表6所示,学习检索提高了所有任务的结果。我们将RAG的密集检索器与基于单词重叠的BM25检索器进行了比较[53]。在这里,我们将RAG的检索器替换为固定的BM25系统,并在计算 p ( z ∣ x ) p(z|x) p(z∣x)时使用BM25检索分数作为logits。结果如表6所示。对于FEVER,BM25表现最好,也许是因为FEVER声明高度以实体为中心,因此非常适合基于单词重叠的检索。差异检索可以改善所有其他任务的结果,尤其是对于开放域QA,这一点至关重要。

索引热交换 像RAG这样的非参数记忆模型的一个优点是,在测试时可以很容易地更新知识。T5或BART等仅限参数的模型需要进一步的训练,以随着世界的变化更新其行为。为了证明这一点,我们使用2016年12月的DrQA[5]维基百科转储构建了一个索引,并将使用该索引的RAG的输出与我们主要结果(2018年12月)中的新索引进行比较。我们准备了一份82位在这两个日期之间发生变化的世界领导人的名单,并使用了一个模板"谁是{position}?"(例如"谁是秘鲁总统?")来查询我们的NQ-RAG模型和每个索引。RAG使用2016年指数对2016年世界领导人的回答正确率为70%,使用2018年指数对2018年世界领导人正确率为68%。不匹配指数的准确率较低(2018年指数和2016年领先者为12%,2016年指数和2018年领先者的准确率为4%)。这表明我们可以通过简单地替换其非参数内存来更新RAG的世界知识。

检索更多文档的效果 模型使用5或10个检索到的潜在文档进行训练,我们没有观察到它们之间的性能存在显著差异。我们可以灵活地在测试时调整检索到的文档数量,这可能会影响性能和运行时间。图3(左)显示,在测试时检索更多文档单调地提高了RAG序列的开放域QA结果,但RAG-Token的性能在检索到10个文档时达到峰值。图3(右)显示,以Bleu-1为代价,检索更多文档会导致RAG-Token的Rouge-L更高,但RAG-Sequence的影响不那么明显。


Single-Task Retrieval 先前的工作表明,当单独考虑时,检索可以提高各种NLP任务的性能。此类任务包括开放域问答[5,29]、事实核查[56]、事实完成[48]、长格式问答[12]、维基百科文章生成[36]、对话[41,65,9,13]、翻译[17]和语言建模[19,27]。我们的工作将以前在将检索结合到单个任务中方面取得的成功相结合,表明基于单个检索的架构能够在多个任务中实现强大的性能。

General-Purpose Architectures for NLP在不使用检索的情况下,NLP任务的通用体系结构的早期工作取得了巨大成功。经过微调[49,8]后,单一的预训练语言模型已被证明在GLUE基准[60,61]中的各种分类任务上具有很强的性能。GPT-2[50]后来表明,一个单独的、从左到右的预先训练的语言模型可以在判别和生成任务中实现强大的性能。为了进一步改进,BART[32]和T5[51,52]提出了一种单独的、预先训练的编码器-解码器模型,该模型利用双向注意力在判别和生成任务上实现更强的性能。我们的工作旨在通过学习检索模块来增强预先训练的生成语言模型,以单一、统一的架构扩展可能任务的空间。

Learned Retrieval 在信息检索中,学习检索文档有着重要的工作,最近使用了与我们类似的预先训练的神经语言模型[44,26]。一些工作优化了检索模块,以帮助完成特定的下游任务,如问答、使用搜索[46]、强化学习[6,63,62]或我们工作中的潜在变量方法[31,20]。这些成功利用了不同的基于检索的体系结构和优化技术,在单个任务上实现了强大的性能,同时我们表明,可以对单个基于检索的架构进行微调,以在各种任务上实现强大的性能。

Memory-based Architectures 我们的文档索引可以被视为神经网络需要处理的大型外部存储器,类似于记忆网络[64,55]。并行工作[14]学习为输入中的每个实体检索经过训练的嵌入,而不是像我们的工作中那样检索原始文本。其他工作通过关注事实嵌入[9,13],或者更接近我们的工作,直接关注检索到的文本[15],提高了对话模型生成事实文本的能力。我们的记忆的一个关键特征是,它由原始文本而非分布式表示组成,这使得记忆既(i)人类可读,为我们的模型提供了一种可解释性,又(ii)人类可写,使我们能够通过编辑文档索引来动态更新模型的记忆。

Retrieve-and-Edit approaches 我们的方法与检索和编辑风格的方法有一些相似之处,在这种方法中,为给定的输入检索类似的训练输入输出对,然后进行编辑以提供最终输出。事实证明,这些方法在许多领域都是成功的,包括机器翻译[18,22]和语义分析[21]。我们的方法确实有几个不同之处,包括不太强调对检索到的项目进行轻度编辑,而是强调从多个检索到的内容中聚合内容,以及学习潜在检索和检索证据文档,而不是相关的训练对。也就是说,RAG技术可能在这些环境中运行良好,并且可能代表着有希望的未来工作。


6 Discussion

在这项工作中,我们提出了可以访问参数和非参数存储器的混合生成模型。我们表明,我们的RAG模型在开放域QA上获得了最先进的结果。我们发现,人们更喜欢RAG的生成,而不是纯参数的BART,发现RAG更真实、更具体。我们对学习的检索组件进行了彻底的调查,验证了其有效性,并说明了如何在不需要任何重新训练的情况下热交换检索索引来更新模型。在未来的工作中,研究这两个组件是否可以从头开始联合预训练,无论是使用类似于BART的去噪目标还是其他目标,都可能是富有成效的。我们的工作为参数记忆和非参数记忆如何相互作用以及如何最有效地组合它们开辟了新的研究方向,有望应用于各种NLP任务。

Broader Impact

与之前的工作相比,这项工作提供了几个积极的社会效益:事实上,它更有力地基于真实的事实知识(在本例中为维基百科),这使它在更真实的几代人中减少了"幻觉",并提供了更多的控制和可解释性。RAG可以用于各种对社会有直接好处的场景,例如赋予它一个医学指数,并向它提出有关该主题的开放领域问题,或者帮助人们更有效地工作。

这些优势也带来了潜在的负面影响:维基百科或任何潜在的外部知识来源,可能永远不会完全是事实,完全没有偏见。由于RAG可以用作一种语言模型,因此与GPT-2[50]类似的担忧在这里是有效的,尽管可以说程度较小,包括它可能被用于在新闻或社交媒体上产生滥用、伪造或误导性内容;冒充他人;或者自动生成垃圾邮件/钓鱼内容[54]。在未来几十年里,高级语言模型也可能导致各种工作的自动化[16]。为了减轻这些风险,可以使用人工智能系统来对抗误导性内容和自动垃圾邮件/网络钓鱼。

相关推荐
Virgil13914 分钟前
【TrOCR】训练代码
人工智能·深度学习·ocr
锅挤19 分钟前
深度学习3(向量化编程+ python中实现逻辑回归)
人工智能·深度学习
MARS_AI_4 小时前
云蝠智能 Voice Agent 落地展会邀约场景:重构会展行业的智能交互范式
人工智能·自然语言处理·重构·交互·语音识别·信息与通信
weixin_422456445 小时前
第N7周:调用Gensim库训练Word2Vec模型
人工智能·机器学习·word2vec
不太可爱的叶某人6 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
岁岁岁平安6 小时前
Redis基础学习(五大值数据类型的常用操作命令)
数据库·redis·学习·redis list·redis hash·redis set·redis string
知识分享小能手8 小时前
Vue3 学习教程,从入门到精通,使用 VSCode 开发 Vue3 的详细指南(3)
前端·javascript·vue.js·学习·前端框架·vue·vue3
HuggingFace8 小时前
Hugging Face 开源机器人 Reachy Mini 开启预定
人工智能
pay4fun8 小时前
2048-控制台版本
c++·学习
夏末蝉未鸣018 小时前
python transformers库笔记(BertForTokenClassification类)
python·自然语言处理·transformer