Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions 论文阅读
Abstract
基于提示的大型语言模型(LLMs)在生成多步骤问题回答(QA)的自然语言推理步骤或链式思维(CoT)方面表现出惊人的强大。然而,当所需的知识在LLM中不可用或其参数未更新时,它们会遇到困难。虽然使用问题从外部知识源中检索相关文本可以帮助LLMs,但我们观察到这种一步检索和阅读的方法对于多步骤QA是不足的。在这里,检索的内容取决于已经推导出的内容,而推导的内容可能又取决于之前检索的内容。为了解决这个问题,我们提出了IRCoT,一种新的多步骤QA方法,它将检索与CoT中的步骤(句子)交替进行,通过CoT指导检索,并反过来使用检索结果改进CoT。使用IRCoT与GPT-3相结合,在四个数据集(HotpotQA、2WikiMultihopQA、MuSiQue和IIRC)上的检索(最多提高21点)以及下游QA(最多提高15点)表现出显著提升。我们在分布外(OOD)设置以及使用更小的模型如Flan-T5-large时观察到了类似的显著增益,而无需额外训练。IRCoT减少了模型幻觉,产生了事实更准确的CoT推理。
大型语言模型能够通过适当提示生成逐步的自然语言推理步骤,即所谓的链式思维(CoT),来回答复杂的问题(Wei等,2022)。当回答问题所需的所有信息要么作为上下文提供(例如,代数问题),要么假设存在于模型的参数中(例如,常识推理)时,这种方法是成功的。
代码、数据和提示可在 https://github.com/stonybrooknlp/ircot 获得
介绍
然而,对于许多开放域问题,所有必需的知识并不总是可用或最新的,并且从外部来源检索知识是有益的(Lazaridou等,2022;Kasai等,2022)。
虽然基于问题的单次检索可以成功地为许多事实类任务(Lewis等,2020;Guu等,2020;Borgeaud等,2022;Izacard等,2022)增加相关知识,但这种策略在处理更复杂的多步骤推理问题时有明显的局限性。对于这些问题,通常需要检索部分知识,进行部分推理,并根据部分推理的结果进一步检索,并迭代进行。
例如,考虑下图中所示的问题,“丢失重力在哪个国家制造?”使用问题(尤其是过山车“丢失重力”)作为查询检索到的维基百科文档并没有提到丢失重力的制造地。相反,我们必须首先推断它是由一家名为Mack Rides的公司制造的,然后再进行进一步的检索,以获得指向制造国的证据。
基于此直觉,我们提出了一种交替方法,IRCoT,其中的理念是使用检索指导链式思维(CoT)推理步骤,并使用CoT推理指导检索。上图展示了我们称为IRCoT的检索方法的概述。我们首先使用问题作为查询检索一组基础段落。随后,我们在以下两个步骤之间交替进行:
- 扩展CoT:使用问题、到目前为止收集的段落和已生成的CoT句子生成下一个CoT句子;
- 扩展检索信息:使用最后一个CoT句子作为查询检索其他段落,并将其添加到已收集的段落中。
我们重复这些步骤,直到CoT报告答案或达到允许的最大推理步骤数。终止时,返回所有收集的段落作为检索结果。最后,我们使用这些段落作为上下文,通过直接QA提示(Brown等,2020)或CoT提示(Wei等,2022)来回答问题。
本文主要贡献是一种新颖的检索方法IRCoT,它利用LMs的链式思维生成能力来指导检索,并反过来使用检索来改进CoT推理。我们证明了IRCoT:
- 改进了多个多步骤开放域QA数据集的检索和少样本QA性能,在IID和OOD设置中均表现出色;
- 减少了生成CoT中的事实错误;
- 在无需任何训练的情况下提高了大规模(175B模型)和小规模模型(Flan-T5-,≤11B)的性能。
相关工作
开放域QA提示(CoT相关)
LLMs可以通过简单地使用一些示例作为提示来学习各种任务(Brown等,2020)。已经显示,当通过几个或零示例提示时,LLMs能够通过生成逐步的推理(链式思维,CoT)来回答复杂问题(Wei等,2022;Kojima等,2022)。提示已经应用于开放域QA(Lazaridou等,2022;Sun等,2022;Yu等,2023),但其在提高多步骤开放域问题的检索和QA方面的价值仍未得到充分探索。
监督的多步骤开放域QA
先前的工作在完全监督的设置下探索了开放域QA的迭代检索。
- Das等(2019)提出了一种迭代检索模型,该模型使用神经查询表示进行检索,然后基于阅读理解模型的输出进行更新。
- Feldman和El-Yaniv(2019)将类似的神经查询改写理念应用于多跳开放域QA。
- Xiong等(202