摘要
我们提出了一种新范式,称为RECITation-augmented gEneration(RECITE),以帮助大型语言模型(LLMs)在不从外部语料库检索的情况下生成更准确的事实知识。与在生成输出前检索相关文档的检索增强型语言模型不同,给定一个输入,RECITE首先通过采样从LLMs自己的记忆中复述一个或几个相关段落,然后产生最终答案。我们展示了RECITE是面向知识密集型NLP任务的一种强大范式。具体来说,我们展示了通过将复述作为中间步骤,一种复述并回答的方案可以在各种封闭式书面试答(CBQA)任务中实现新的最先进性能。在实验中,我们在四个预训练模型(PaLM、UL2、OPT和Codex)和三个CBQA任务(自然问题、TriviaQA和HotpotQA)上验证了RECITE的有效性。我们的代码可在https://github.com/Edward-Sun/RECITE获取。
1 引言
大型语言模型(LLMs)在知识密集型NLP任务上已经实现了令人印象深刻的上下文少样本性能(Brown等人,2020;Rae等人,2021;Hoffmann等人,2022;Chowdhery等人,2022)。例如,在开放式问答领域(Chen等人,2017),仅通过几个问题-答案对的示例,LLMs就能够回答任意的事实性问题(Joshi等人,2017;Yang等人,2018;Kwiatkowski等人,2019)。最近的研究(Guu等人,2020;Lewis等人,2020;Izacard等人,2022)表明,通过从外部语料库检索相关段落来调节LLMs,可以进一步提高LLMs在知识密集型任务上的性能。本文提出了一种新范式,称为RECITation-augmented gEneration(RECITE),旨在帮助LLMs在不从外部语料库检索的情况下生成更准确的事实知识,我们通过首先复述相关信息,然后生成输出,来处理知识密集型NLP任务。这种两步范式将原始的知识密集型任务分解为两个子任务:知识复述和任务执行,前者可以视为一种中间知识检索步骤(从模型权重中),而后者是产生最终输出的执行步骤。
引入额外的知识复述步骤的动机来自我们的观察,尽管少样本提示可以帮助LLMs执行特定的NLP任务,但这些任务通常与原始的因果语言建模预训练目标的形式不相似。这阻碍了LLMs有效地从其记忆中复述知识(Carlini等人,2021)。考虑一个学生参加包含知识密集型问题的闭卷考试,例如,"π的第十位小数是什么?"。他们通常不能直接回答这个问题,因为在学习阶段(类似于LLMs的语言建模预训练阶段),他们读到"π的第十位小数是5"的可能性极低。然而,教科书中可能存在一些像"π的前N位数字是3.14159 26535..."这样的句子,学生可以复述。因此,学生可能通过复述并回答方案来回答这个问题:"π的前10位数字是3.14159 26535。所以答案是5"。在这里,知识复述步骤可以作为模仿语言建模预训练任务的中间步骤,从而更好地帮助LLM生成事实知识。
我们在少样本封闭式书面试答(CBQA)任务上验证了我们复述增强生成方案的有效性(在CBQA背景下称为复述并回答),如图1所示。CBQA是一种吸引人的开放式问答任务,因为一个完全参数化的LM可以直接生成答案,而无需外部语料库或单独的检索模型(Roberts等人,2020)。我们展示了提出的复述并回答方案是CBQA的有效方法,并且与提高LLMs少样本性能的其他技术兼容。我们还展示了,除了提高RECITE增强LLM的少样本上下文学习能力外,对预训练LLMs进行合成生成的问题-段落对的微调可以进一步提高复述性能,并导致更好的下游问答准确度。
在四个大型语言模型(PaLM (Chowdhery等人,2022),UL2 (Tay等人,2022a),OPT (Zhang等人,2022)和Codex (Chen等人,2021)上的实验表明,复述并回答方案可以提高各种类型CBQA任务的性能,包括基于维基百科的单跳问答(自然问题,Kwiatkowski等人,2019),琐事问题(TriviaQA,Joshi等人,2017)和基于维基百科的多跳问答(HotpotQA,Yang等人,2018)。
2 相关工作
2.1 开放域问答
开放式问答(Prager等人,2007)指的是为任意上下文无关的问题生成答案的任务。在开卷设置中,通常假设QA模型可以在外部语料库中找到答案,例如维基百科(Chen等人,2017;Izacard & Grave,2021)或网页(Lazaridou等人,2022)。这类似于参加开卷考试,学生可以在外部知识语料库中进行搜索。标准的流程(Chen等人,2017;Izacard & Grave,2021;2020)通常包括一个可学习或不可学习的文档检索器模块和一个基于神经网络的阅读器模块。
在闭卷设置中,QA模型不允许访问任何外部知识,并且需要将其所有知识存储在其参数中。最近观察到,大规模预训练的语言模型(Devlin等人,2019;Radford等人,a;Yang等人,2019b)在预训练后可以内化一种隐含的"知识库"(Petroni等人,2019;Jiang等人,2020;Talmor等人,2020)。Roberts等人(2020)表明,在开卷问题-答案对上进行微调后,T5(Raffel等人,2020)可以回答大量知识密集型问题。这类似于参加闭卷考试。然而,Lewis等人(2021)发现,高性能主要是由于训练集问题的记忆。Wang等人(2021)也发现,对于像RoBERTa(Liu等人,2019)或GPT-2(Radford等人,b)这样的相对小规模预训练语言模型来说,回答闭卷问题仍然具有挑战性。
在这项工作中,我们专注于评估大型语言模型(LLMs)在少样本设置中的CBQA性能,理想情况下这最小化了训练-测试重叠的偏差(Liu等人,2021)。我们提出了一种复述并回答的方案,这类似于学生首先复述关于问题的知识点,然后回答问题。
2.2 上下文内的少样本学习
大型语言模型(LLMs)如GPT-3(Brown等人,2020年)具有惊人的上下文学习能力,即模型通过仅仅提示几个示例就能学会执行新任务。这些LLMs从这些示例中学习,而无需明确地为上下文学习进行预训练,也无需任何梯度更新或微调。最近的研究表明,这种能力随着模型大小(Brown等人,2020年;Rae等人,2021年;Chowdhery等人,2022年)和训练令牌数量(Hoffmann等人,2022年)的扩大而提高。当在知识密集型问答任务上进行评估时,这些模型通常在封闭书环境设置中进行评估,其中事实知识完全存储在密集LLMs的模型参数中。
最近,Atlas(Izacard等人,2022年)表明,对于知识密集型NLP任务,一个相对轻量的模型通过检索增强和少样本微调可以达到相似甚至更好的性能,这证明了在LLMs中记忆能力可以从泛化能力中分离出来。
相比之下,我们展示通过更合理设计的提示,仍然可以从LLMs的模型权重中检索到大量被低估的知识。
2.3 理性-增强推理
Ling等人(2017)通过在最终答案之前生成由自然语言和数学方程描述的逐步可读的解决方案,开创了解决数学单词问题的工作。这与其他直接产生最终答案或使用形式语言的作品有着根本的不同。例如,仅用方程来说明中间求解步骤(Roy等人,2016;Amini等人,2019;Chen et al, 2019)。Cobbe等人(2021)通过构建一个更大的数据集来扩展(Ling等人,2017),以微调预训练的大型语言模型来解决数学单词问题,并训练一个参数化排名器来对候选解决方案进行排名,以提高解题率。Wei等(2022)提出了结合自然语言原理思想的思维链提示(Ling et al, 2017;Cobbe等人,2021),并辅以少量提示(Brown等人,2020)。在这项工作中,我们没有为多步推理问题生成思维链,而是将知识密集型问题的回答过程分解为两个步骤:背诵模型参数中存储的相关知识,然后回答问题。
2.4 大型语言模型的记忆
最近的研究表明,大型语言模型可以记忆其训练数据,并在给定特定提示的情况下从训练数据中生成文本(Carlini等人,2021年;2022年;Zhang等人,2021年;Kharitonov等人,2021年;Thakkar等人,2020年;Carlini等人,2019年;Tirumala等人,2022年)。与我们工作最相关的是,Carlini等人(2022年)发现,随着模型容量的增加、示例被复制的次数以及用于提示模型的上下文令牌数量的增加,LLMs的记忆能力显著增长。虽然这些工作主要在精确设置中分析记忆的基本属性,其中恰好使用N个令牌作为提示来重现提示的后缀,但我们的工作依赖于"模糊记忆",其中提示倾向于与训练数据不完全相同,但仍然提高了记忆的准确性。
提出的复述增强生成想法也与利用Transformer内存作为信息检索模型(Tay等人,2022b)和用于常识推理的自言自语模型(Shwartz等人,2020年;Liu等人,2022年)的工作线相关。Zhuang等人(2022年);Wang等人(2022c);Zhou等人(2022年)提出在索引时用生成的查询增强文档。Bevilacqua等人(2022年)提出直接生成在一个或多个文档中扎根的n-gram,并通过受限解码。
3 学习闭卷答题背诵
本文的目标是模仿人类在回答知识密集型问题之前背诵相关事实知识的能力(McDaniel et al, 2009),这样可以更准确地回答这些问题。在下文中,我们描述了我们的闭卷问答(CBQA)的背诵和回答方案,该方案由两个部分组成:(1)用于背诵相关文章的证据背诵模块,(2)用于根据所背诵的证据生成答案的问答模块。请注意,在本文中,我们关注的是少样本设置,其中我们假设只提供了几个问答演示。在自然问题(Kwiatkowski et al, 2019)基准测试中,由于问题来自多个用户向谷歌搜索引擎发出的查询,因此可以被视为未注释的数据,因此我们进一步假设我们有这些问题的顶部检索维基百科页面。这些顶级检索维基百科页面中的段落将用于生成合成的配对问题背诵数据,用于微调LM(见3.2节)。
3.1 基于提示的问答方式
我们从单跳问答开始(Kwiatkowski等人,2019;Joshi等人,2017),其中答案通常由语料库中的特定文档支持,有时被称为证据(Joshi等人,2017)。不同于思维链提示(Wei et al ., 2022),直接生成理论基础来解释生成的答案(Joshi et al ., 2017;Narang et al, 2020;Lampinen et al, 2022),我们建议先背诵一段关于这个问题的文章,然后根据背诵来回答这个问题。我们利用LLM的情境学习能力,提出了一种基于提示的学习背诵方案(Brown et al, 2020)。我们用配对的问题范例和背诵的证据来提示LLM,LLM可以在上下文中学习,为任意问题生成背诵。为了执行背诵条件下的几次问答,我们将背诵的段落附加在原始问答示例的开头,作为单个提示,然后生成最终答案(图2中的步骤1和2)。
自洽集成 在语言模型的训练语料中,关于一个问题的真实知识可能会出现在多个地方。例如,关于"女王伊丽莎白二世于1973年3月17日开放伦敦桥"的事实既可能出现在维基百科的"伦敦桥"页面,也可能出现在"1973年3月"的页面,因此很可能存在来自不同文章的知识,这些知识可能导致相同的正确答案。基于这种动机,我们认为,类似于链式思维中的多步骤推理,复述增强的问答也可以从多路径解码的自洽技术(Wang等人,2022b)中受益。具体来说,对于任意问题,我们首先使用top-k采样独立生成几个复述,然后基于采样的复述贪婪解码问题的答案。最后,我们通过多数投票确定最佳答案(如图2中的步骤3)。
多跳问答的多次复述和回答 多跳问答要求QA系统找到并推理多个支持文档。然而,复述的本质限制了我们一次只能复述一篇文章的段落。为了将复述和回答方案应用于解决多跳问题,我们引入了多次复述和回答方案(如图2中的步骤4),即给定多跳问题,我们使用如"复述1"和"复述2"的提示词来引导LLM生成不同主题的复述段落。由于多个复述段落是从LLM连续解码中一次性生成的,后来段落的生成可以有效利用原始问题和之前复述段落的 信息。我们的多次复述和回答方案也适用于多跳问答的自洽技术,通过在生成多个复述时应用top-k采样,并对最终答案进行多数投票。
3.2 以文章提示为基础,进行微调的多元化背诵
基于段落提示的多样化复述 虽然基于采样的复述和自洽性提高了复述和回答方法的鲁棒性,但对其效率的一个质疑是,如果证据复述模块对问题采样了错误的事实,问答模块将无法识别出来,并倾向于生成错误的答案。因此,一方面,我们需要使用较低的采样温度来避免生成包含错误事实的复述,另一方面,我们希望确保采样到的复述具有足够的多样性。
为了解决这种困境,我们提出了基于段落提示的多样化复述。我们观察到,在结构良好的文本知识库中,如维基百科,我们通常可以通过连接每个段落的章节标题和段落内的顺序来为每个段落找到一个唯一的段落提示。例如,维基百科页面"儿童抚养"中第5.2节"执行"中的第二个段落的段落提示将是"儿童抚养 --- 合规与执行问题 --- 执行 --- 段落#2"。在基于段落提示的多样化复述中,我们首先使用采样生成多样化的段落提示集,然后使用贪婪解码来确保每个段落内容的事实准确性。
由于每个段落提示对应一个唯一的段落,我们可以先对段落提示去重,然后生成完整的段落,以获得更多样化的复述段落。此外,由于基于唯一段落提示的复述段落不太可能相似,受最近在多检索段落问答方面的进展(Izacard & Grave, 2021)的启发,我们使用聚合的多样化复述作为一个单一上下文,并生成几个更多的问题-答案对演示的答案。图3(下方)展示了基于段落提示多样化复述的复述和回答方案。
在少样本生成问题上的微调 我们发现,尽管许多现有LLMs(Devlin等人,2019年;Chowdhery等人,2022年)的训练数据包含了维基百科语料库,这些语料库通常被视为知识密集型问答任务的实义词典(Joshi等人,2017年;Kwiatkowski等人,2019年),但章节标题通常不会明确包含在训练中。这使得预训练的LLM很难通过少样本提示发现从问题到段落提示,再到完整段落的映射。
为了解决这个问题,我们提出了一个额外的微调阶段,以适应LLMs学习此类映射。假设我们不仅能够访问几个问题-答案对,还能够访问通过Google搜索引擎发出查询的多个用户检索到的顶级维基百科页面(Kwiatkowski等人,2019年),我们可以使用少样本提示生成合成的问题-提示-段落对,并在生成数据上微调LLMs。
具体来说,我们使用地面真实证据和问题对作为提示,并为维基百科页面中随机采样的段落生成新问题。接下来,基于少样本生成的问题,我们训练LLM预测原始段落提示以及段落内容。图3(上方)展示了段落提示微调的整个过程。
4 实验
在本节中,我们报告了我们提出的背诵和回答方案的实证评估,该方案在不同的闭卷问答任务和不同规模的不同语言模型上进行。
4.1 实验设置
4.1.1 评价数据集
自然问题 自然问题(Kwiatkowski等人,2019年)包含了从Google搜索引擎汇总的问题和前5个搜索结果中维基百科页面的答案。我们将其视为单跳问答任务。由于自然问题包含了所谓的"长答案"注释,这是一个包含足够信息以推断答案的整个HTML边界框,我们直接将"长答案"作为我们提示中的地面真实复述示例(第3.1节)。为了与最近的LLMs(Chowdhery等人,2022年;Izacard等人,2022年)进行直接比较,我们在5个样本和64个样本设置中评估我们的方法。
TriviaQA TriviaQA数据集(Joshi等人,2017年)是通过收集Trivia爱好者撰写的问题-答案对以及他们回顾性收集的证据构建的。由于在回顾性证据文档中没有明显的方法来收集"长答案"(答案的确切出现可能包含足够的信息来推断答案),我们在单跳5个样本设置中评估TriviaQA,并从维基百科手动编写复述段落,用于5个随机抽样的训练问题。具体的提示可以在附录中找到。
HotpotQA HotpotQA(Yang等人,2018年)旨在明确测试QA系统执行多跳推理的能力。它是通过明确编写需要关于多个支持上下文文档推理的问题来收集的。遵循Wang等人(2022a)的方法,我们在4个样本设置中将HotpotQA评估为多跳问答任务。但是,与(Wang等人,2022a)中的链式思维提示不同,我们使用多次复述和回答(第3.1节)来实现多步骤推理。我们也在附录中提供了具体的提示。
度量标准 我们计算标准化答案的确切匹配(EM)和F1分数,而每个数据集上应用的具体文本标准化可能略有不同。
4.1.2 预训练语言模型
我们评估了朗诵在四种语言模型上的有效性:PaLM、UL2 (Tay等人,2022a)、OPT (Zhang等人,2022)和Codex (Brown等人,2020;欧阳等,2022;Chen et al, 2021)。由于篇幅限制,对它们的详细描述在附录D中提供。
4.2 实验
如果测试分割可用并且有用于评估的标签,我们将对所有任务使用测试分割,否则我们使用开发分割。此外,TriviaQA和HotpotQA太大了,无法运行大型语言模型,所以我们使用了前1024个数据点进行评估。
4.2.1 基于提示的结果
报告了自然问题(NQ)和小问题(TriviaQA)上的单跳闭卷问答(CBQA)评价结果和热点问题(HotpotQA)上的多跳闭卷问答(CBQA)评价结果。在表1中,我们报告了基于提示的语境学习和自我一致性的结果。
从表中我们可以看到,所提出的背诵-回答方案可以显著提高CBQA在两个数据集上使用各种预训练语言模型的性能。虽然NQ的性能改进在不同的语言模型中更加一致,但我们发现在TriviaQA上较小的语言模型上,背诵-答案的改进更为显著。我们的假设是,trivia风格的问题通常包含更多的上下文信息,从而削弱了背诵的有效性,对于像PaLM这样的强LLM。此外,我们还可以看到,在多跳推理任务上,背诵-回答方案的性能优于思维链提示。有趣的是,我们还发现,对于那些从思维链(即PaLM)中获得巨大收益的法学硕士来说,他们也从背诵和回答中获得了巨大的进步。
4.2.2 基于段落提示的多元化背诵结果
对于Natural Questions数据集,由于它具有与谷歌搜索引擎发出的未注释查询相对应的top- retrieval Wikipeida页面集合,因此我们在表2中额外报告了微调PaLM模型的多样化背诵结果。从表中,我们发现多样化背诵可以进一步提高PaLM在NQ数据集上的性能。
4.3 分析
4.3.1 查询自一致性路径个数
我们分析了在自我一致性设置下,背诵文章的数量对背诵答题成绩的影响。由于LLM的推理成本很高,我们首先对k = 20个背诵段落进行采样,然后对随机选择的背诵子集应用自一致性来模拟较少的路径。对于每个自一致性路径的数量,我们评估随机选择的子集五次,并报告均值和标准差。我们在TriviaQA数据集上对OPT-30B和UL2-20B进行了分析,结果如图4所示。我们可以看到,采样更多的背诵段落往往会提高背诵和答案的表现,而更多的自一致性路径观察到更少的随机性。
4.3.2 关于少量样本示例的鲁棒性
上下文少样本学习的一个众所周知的问题是它对范例选择及其顺序的不稳定性(Zhao et al ., 2021)。我们用5个随机种子评估了标准提示和背诵-回答方法的鲁棒性,并报告了在TriviaQA数据集上运行的UL2模型的均值和标准差(见表6)。随机抽取5个样本,并对每个种子进行洗牌。从表中我们可以看出,通过背诵抽样,在不同的随机种子和自洽路径数量下,背诵-答案与标准提示具有相似的鲁棒性(就较小的性能偏差而言)。与标准提示相比,背诵和回答的总体收益是显著的,而不管选择的是几次示例。
4.3.3 背诵vs检索vs基础真理
有人可能会问,如果没有外部语料库,LLMs复述的段落质量是否比简单的检索模型更好,例如BM25(Robertson等人,2009)。为了回答这个问题,我们评估了UL2和Codex在三种上下文段落上的少量样本问答性能:检索、复述和地面真实。我们在自然问题(NQ)数据集的前1024个验证示例上报告了结果,因为这是唯一一个包含可以被视为地面真实上下文段落的"长答案"注释的数据集。从表3中我们可以看到,经典的检索模型,即BM25,仍然是从语料库中收集信息的一个非常强大的基线。然而,与BM25相比,我们的复述和回答仅通过生成且不使用任何外部语料库,仍然实现了相当有竞争力的性能。此外,我们发现更强的模型(即Codex)往往比BM25检索到的上下文更能从模型自身的复述中受益。
4.3.4 误差分析
我们对TriviaQA数据集中的1024个评估示例进行了错误分析。我们将错误分为三类:1)不背诵。,也就是说,正确的答案没有在任何一个自洽背诵段落。2) Hits@20-Recit。,即正确答案可以在其中一篇文章中找到,但不会出现在QA模块的输出中。3) Hits@20-Path,即正确答案是20条自洽路径的最终输出之一,但没有多数选票。正确的最终答案被标记为Hits@Majority(即精确匹配)。在Algo中给出了算法描述。我们在表4中报告UL2-20B和OPT-30B的结果。
我们可以看到,"No Recit"和"Hits@20-Path"占了大部分的错误,这意味着QA模块的表现相当不错(如果正确答案出现在其中一篇背诵文章中,在大多数情况下,QA模块都会将其提取出来),主要的瓶颈仍然在于背诵质量和答案聚合策略。
我们还执行每个路径错误分析,即,当背诵完全包含(或不包含)答案标记时,可以正确(或不正确)回答多少问题。结果如表5所示。我们可以看到,7% ~ 10%的题目有正确的背诵,但不能得出正确的答案,而12%左右的题目没有正确的背诵,但无论如何都可以正确回答
5 结论与讨论
在本文中,我们提出了一种新颖的复述增强生成框架,以改进语言模型在闭卷问答设置中的性能。我们假设对于知识密集型NLP任务,鼓励模型明确复述特定的知识来源将有助于增强其记忆。此外,我们发现多样化复述过程也是有益的,因为通常存在多个知识来源可以用来回答同一个问题。我们在三个大型语言模型和三个不同的闭卷QA数据集上展示了有希望的结果,证明了我们提出的复述和回答方法的有效性。
我们方法的一个局限性是,对于一个基于纯LLM的方法来说,更新时效性知识需要在新语料库上训练或微调LLMs,这可能成本高昂。对于未来的工作,我们计划进一步验证复述增强生成在闭卷设置中对其他知识密集型NLP任务的有效性,例如事实核查。