CoRAG:让 RAG 像 o1 一样“深度思考”,在迭代检索中突破多步推理瓶颈

Chain-of-Retrieval Augmented Generation

2025-01-24
Liang Wang, Haonan Chen, Nan Yang, Xiaolong Huang, Zhicheng Dou, Furu Wei
总结
问题
方法
结果
要点
摘要

本文提出了 CoRAG (Chain-of-Retrieval Augmented Generation),这是一种模仿 o1 思路、让模型在生成最终答案前进行逐步检索与推理的 RAG 框架。该方法在多步推理任务中表现卓越,在 KILT 基准测试及多个多跳问答(Multi-hop QA)任务上刷新了 SOTA 纪录。

TL;DR

微软与人大联合推出的 CoRAG (Chain-of-Retrieval Augmented Generation) 将“慢思考”逻辑引入了 RAG 领域。它不再满足于一次性的搜索,而是通过自动构建的检索链进行多轮迭代、子查询分解和自我纠正。实验证明,该方法在处理复杂逻辑任务时,仅凭 8B 模型便能碾压许多参数量更大的基线。

背景定位:从 Linear RAG 到 Agentic RAG

当前的 RAG 系统大多是“一锤子买卖”:拿到问题 -> 检索文档 -> 生成答案。这种模式在处理诸如“某某摔跤手所在的队伍是什么?”这类问题时,若检索器第一步没找对人名(Rehwoldt),后续生成必错无疑。CoRAG 的出现,标志着 RAG 正在从简单的“插件模式”进化为具有规划能力的 Agent 模式。

核心动机:检索质量的“天花板”

作者敏锐地指出,检索器的精度受限于双编码器(Bi-encoder)的表达能力,且复杂问题的所需信息往往隐藏在多个步骤之后。与其追求完美的单一检索器,不如让 Generator 学会动态重构查询。这种“发现线索 -> 调整搜索 -> 最终汇总”的过程更符合人类解决复杂知识问题的直觉。

方法论:CoRAG 的三大支柱

1. 数据的“炼金术”:拒绝采样构建检索链

由于现有数据集大多只有 Q&A 对,缺乏中间过程。作者利用 Llama-3.1-8B 通过 Rejection Sampling 自动合成检索路径。只有那些能让模型最终以高概率命中正确答案的路径才会被保留,用于后续的微调。

2. 模型训练:多任务协同

CoRAG 模型在微调阶段被要求同时学习三个能力:

  • 预测下一个子查询:决定接下来搜索什么。
  • 生成子答案:从当前检索结果中提取局部知识。
  • 生成最终答案:通过检索链汇总全局信息。

模型架构图

3. 推理时缩放 (Test-time Scaling)

这是 CoRAG 最具前瞻性的部分。类似于 OpenAI o1,CoRAG 允许在推理时通过不同的策略来换取性能:

  • Greedy Decoding: 追求速度,每步选概率最高的路径。
  • Best-of-N: 采样 N 条路径,选“相关性最高”的一条。
  • Tree Search: 构建搜索树,通过分叉和回溯探索最佳答案。

实验战果:全面的 SOTA 碾压

在著名的 KILT 知识密集型任务榜单上,CoRAG-8B 的表现令人侧目:

实验结果对比

  • 多跳问答: 在 MuSiQue 和 2WikiMultihopQA 等任务上,EM 分数相比直接检索提升了 10-40% 不等。
  • 缩放法则: 实验显示,token 消耗量与性能之间存在明显的正相关。这意味着我们终于可以通过“加钱(加算力)”来让 RAG 模型变得更聪明。

深度洞察:什么时候需要“检索链”?

有趣的是,论文发现 CoRAG 并非在所有场景下都无敌。对于单跳问题(如 NQ 数据集),单次检索已经足够,检索链反而可能带来性能稀释或无谓的开销。 结论:模型的复杂度应与问题的复杂性自适应。 作者为此提出了 Learning to Stop 机制,让模型自己判断“信息够了吗?”,实现了效率与精度的动态平衡。

总结与局限

CoRAG 的价值在于它提供了一套完整的“数据合成-训练-推理缩放”闭环方案。

  • 局限性:多轮检索带来的高延迟和高 Token 成本在生产环境仍需优化;目前对非 Wikipedia 类型的数据源支持尚待验证。
  • 展望:当 RAG 拥有了思维链(CoT),它将不仅仅是知识的搬运工,而是真正能够自主拆解、验证和解决问题的知识专家。

本文为学术前沿解读,原文参考:Chain-of-Retrieval Augmented Generation EM (Wang et al., 2024)

发现相似论文

试试这些示例

  • 查找最近其他通过推理时缩放(Test-time Scaling)提升 RAG 或长文本处理性能的论文。
  • 哪篇论文最早在 RAG 领域提出了迭代检索(Iterative Retrieval)的概念,CoRAG 提出的“检索链”在此基础上有什么本质优化?
  • 有哪些研究探讨了如何动态决定 RAG 的检索步数(Early Stopping),以平衡推理成本与生成质量?
目录
CoRAG:让 RAG 像 o1 一样“深度思考”,在迭代检索中突破多步推理瓶颈
1. TL;DR
2. 背景定位:从 Linear RAG 到 Agentic RAG
3. 核心动机:检索质量的“天花板”
4. 方法论:CoRAG 的三大支柱
4.1. 1. 数据的“炼金术”:拒绝采样构建检索链
4.2. 2. 模型训练:多任务协同
4.3. 3. 推理时缩放 (Test-time Scaling)
5. 实验战果:全面的 SOTA 碾压
6. 深度洞察:什么时候需要“检索链”?
7. 总结与局限