【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 模型
相关推荐
xuanyu223 小时前
Linux常用指令
linux·运维·人工智能
静心问道3 小时前
WGAN算法
深度学习·算法·机器学习
凡人的AI工具箱3 小时前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
晓星航3 小时前
Docker本地部署Chatbot Ollama搭建AI聊天机器人并实现远程交互
人工智能·docker·机器人
Kenneth風车3 小时前
【机器学习(五)】分类和回归任务-AdaBoost算法-Sentosa_DSML社区版
人工智能·算法·低代码·机器学习·数据分析
AI小白龙*3 小时前
大模型团队招人(校招):阿里巴巴智能信息,2025届春招来了!
人工智能·langchain·大模型·llm·transformer
空指针异常Null_Point_Ex4 小时前
大模型LLM之SpringAI:Web+AI(一)
人工智能·chatgpt·nlp
清纯世纪4 小时前
基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)
开发语言·python·深度学习
Alluxio4 小时前
选择Alluxio来解决AI模型训练场景数据访问的五大理由
大数据·人工智能·分布式·ai·语言模型
AIPaPerPass写论文4 小时前
写论文去哪个网站?2024最佳五款AI毕业论文学术网站
人工智能·深度学习·chatgpt·powerpoint·ai写作