【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 模型
相关推荐
芷栀夏5 小时前
从 CANN 开源项目看现代爬虫架构的演进:轻量、智能与统一
人工智能·爬虫·架构·开源·cann
梦帮科技5 小时前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
User_芊芊君子5 小时前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
永远都不秃头的程序员(互关)5 小时前
CANN模型量化赋能AIGC:深度压缩,释放生成式AI的极致性能与资源潜力
人工智能·aigc
爱华晨宇5 小时前
CANN Auto-Tune赋能AIGC:智能性能炼金术,解锁生成式AI极致效率
人工智能·aigc
聆风吟º6 小时前
CANN算子开发:ops-nn神经网络算子库的技术解析与实战应用
人工智能·深度学习·神经网络·cann
觉醒大王6 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
偷吃的耗子6 小时前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
勾股导航6 小时前
OpenCV图像坐标系
人工智能·opencv·计算机视觉
神的泪水6 小时前
CANN 生态实战:`msprof-performance-analyzer` 如何精准定位 AI 应用性能瓶颈
人工智能