【RAG 论文】IRCoT:基于 CoT 的交叉检索解决多步骤问题
【RAG 论文】IRCoT:基于 CoT 的交叉检索解决多步骤问题
在自然语言处理领域,多步推理问题一直是研究的热点和难点。最近,来自 Stony Brook University 的研究者提出了一种名为 IRCoT 的新模型,通过交叉检索和链式思考推理来解决知识密集型多步问题。本文将详细介绍该模型的工作原理和实验结果。
论文信息
论文标题:Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions
⭐⭐⭐⭐
发表时间:ACL 2023
论文链接:arXiv:2212.10509
代码链接:github.com/stonybrooknlp/ircot
论文速读
大多数 RAG(Retrieval-Augmented Generation)模型都采用一次检索来辅助 LLM(Large Language Model)生成,但面对多步骤推理问题时,往往需要多次检索和多次推理才能得到正确答案。为了解决这一问题,本文提出了 IRCoT 模型,通过交叉进行 CoT(Chain-of-Thought)指导检索和使用检索结果提升 CoT,实现检索和推理两个步骤的相互通知。
以下是一个具体示例:
对于问题 "In what country was Lost Gravity manufactured?",单独询问 LLM 或者单独在维基百科上搜索都很难得到答案。但是通过以下步骤可以得到最终答案:
- 首先在维基百科上搜索《Lost Gravity》,获取相关信息。
- LLM 从搜索结果中提取出《Lost Gravity》的制作公司为 Mack Rides。
- 接着搜索 "The Lost Gravity was manufactured by Mack Rides",获取关于 Mack Rides 的更多信息。
- 基于这些信息,LLM 进一步推理出 Mack Rides 是一家德国公司。
- 最终得到答案:Germany。
这个例子说明,许多问题需要通过检索和信息提取的交替过程才能得到答案。
整体思路如下图所示:
具体步骤如下:
- 使用问题从维基百科中检索出 K 个文档。
- 交叉重复以下两个步骤,直到满足终止条件:
- reason-step:将 "question"、"目前为止收集到的所有 retrieved paragraphs"、"LLM 生成的所有 CoT 句子" 填充入 prompt template,并输送给 LLM,生成第一个 CoT 句子。
- retrieve-step:使用上一轮生成的 CoT sentence,在维基百科中检索出 K 个 paragraphs,将其加入到 retrieved paragraphs 中。
- 重复上述两个步骤,直到生成的 CoT sentence 中包含 "answer is" 或者迭代轮数超过阈值。
实验与分析
该论文提出的 IRCoT 模型具有以下优势:
- 在多个数据集上均超过了单步检索模型的表现。
- 在 OOD(Out-of-Distribution)设置中表现良好。
- 显著减少了 CoT 的事实错误。
- 即使对于较小规模的 LLM 也有效。
- 是 few-shot multi-step ODQA(Open-Domain Question Answering)任务的 SOTA(State-of-the-Art)模型。
总结
IRCoT 模型通过创新的交叉检索和链式思考推理机制,有效解决了多步推理问题中的信息获取和推理难题。这一研究为未来自然语言处理领域的相关研究提供了新的思路和方向。