【RAG 论文】IRCoT:基于 CoT 的交叉检索解决多步骤问题

论文:Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions

⭐⭐⭐⭐

ACL 2023, arXiv:2212.10509

Code: github.com/stonybrooknlp/ircot

论文速读

大多数 RAG 都是一次检索来辅助 LLM 生成,但是面对多步骤推理问题,往往需要多次检索多次推理才能解决。

本文提出了 IRCoT:交叉进行 CoT 指导 retrieval 和使用 retrieval result 提升 CoT。也就是说,retrieval 和 reason 两个步骤必须相互通知。下图给了一个例子:

对于如上的问题, "In what country was Lost Gravity manufactured?" 单独问 LLM 或者单独在维基百科上搜索, 都很难得到答案. 但是通过如下步骤或许可以得到最终的答案:

  1. 首先将该问题在维基百科上搜索, 得到关于 《Lost Gravity》 的一些信息.
  2. LLM 能够从该信息中抓取到 《Lost Gravity》 的制作公司为 Mack Rides.
  3. 接着在维基百科中搜索 "The Lost Gradvity was manufactured by Mack Rides", 我们会得到一些关于 Mack Rides 的信息.
  4. 基于该信息我们能够得到 (通过 LLM 抓取) "Mack Rides" 是一家德国公司的信息.
  5. 最终我们能够得到答案为: Germany.

上面的例子就是告诉我们,很多问题是需要检索 + 提取信息交替进行最后才能得到答案的。

整体思路如下图:

首先使用 question 从 Wikipedia 中检索出 K 个文档,之后交叉重复如下两个步骤,直到终止:

  1. reason-step:把 "question"、"目前为止收集到的所有 retrieved paragraphs"、"LLM 生成的所有 CoT 句子" 填充入下面的 prompt template,并输送给 LLM,让他做 generation,保留其生成的第一个句子作为本轮生成的 CoT sentence:
  1. retrieve-step:使用上一个 reason-step 得到的 CoT sentence,去 Wikipedia 检索出 K 个 paragraphs,将其加入到 retrieved paragraphs 中

重复交叉进行以上两个步骤,直到生成的 CoT sentence 中包含有 "answer is" 或者迭代轮数超过了 threshold。

实验与分析

该论文提出的 IRCoT:

  • 在多个 dataset 上均超过了 one-step retrieval 的模型
  • 在 OOD setting 中表现不错
  • 显著减少了 CoT 的事实错误
  • 对于较小 size 的 LLM 仍然有用
  • few-shot multi-step ODQA 的 SOTA 模型
相关推荐
室内定位小白4 分钟前
2026 年的大模型战争:GPT、Claude、Gemini、Grok 与中国模型,究竟谁更强?
人工智能·gpt
azhou的代码园5 分钟前
基于RFM模型的中小型企业客户管理系统
java·人工智能·spring boot·毕业设计
米小虾6 分钟前
AI 没有证明费马大定理:1300 万行 Lean 代码背后,是"可验证 AI"的新范式
人工智能
9i编程8 分钟前
15.对SKILL进行一次全新尝试,改为框架+细节方式的实践及验证:三次联调(4)——第一次测试与事故
人工智能·openai·ai编程
lucas_AI8 分钟前
OCR 认错字别急着重跑:OCR-EDR 教模型「看图改错」
人工智能
上海锝秉工控9 分钟前
告别单点检测误判:多点式激光传感器如何重构工业质检精度
人工智能·重构
数字供应链安全产品选型10 分钟前
深度长文|AI 重构软件供应链:从传统开源风险到智能体时代的数字安全治理
人工智能·重构·开源
米小虾22 分钟前
AI 开始改进 AI:OpenAI 公布自我改进时间表,同一天自家首席科学家喊停
人工智能·openai
故七月23 分钟前
告别 AI 时代品牌 “隐身”:万域智瞰 AI‑GEO,构建品牌大模型时代营销新基建
大数据·人工智能
lifallen29 分钟前
短暂 Agent 与持久化工程:让理解脱离对话
人工智能·学习·ai·重构·ai编程