已经是最新一篇文章了!
已经是最后一篇文章了!

ai · 2025 · 技术研究笔记

DeepRAG 论文解读:检索不应每一步都发生

检索与不检索不是系统开关,而是每一步推理都要做的决策

DeepRAG 把多步问答建模为检索决策过程,让模型在每个子问题上判断是否需要外部知识

研究版 · 6 个章节 · 约 7 分钟 · 更新于 2025-02-01

版本 A · 中文
SCROLL

普通 RAG 接到问题后,往往先搜一批文档,再把检索结果与问题一起交给模型。对“某个产品的退款期是多少天”这类单步问题,路径很直接。

问题一旦需要多步推理,固定检索就开始暴露缺陷。某些中间事实必须从外部获得,某些则可以直接由已知条件推出。每一步都检索,会增加延迟和噪声;只在开头检索一次,后面又可能缺少关键事实。

DeepRAG 处理的就是这个决策问题:模型把原问题逐步拆成子问题时,怎样判断当前一步应使用参数知识,还是调用外部检索。参数知识是模型在训练中吸收并保留在权重里的信息。

它不是又一个检索器

DeepRAG 没有把主要精力放在向量库、切分策略或 reranker 上。Reranker 是对初次检索的候选文档重新排序的模型。这篇论文研究的是检索之前的决策层。

作者把多步检索增强推理表示成一个马尔可夫决策过程,简写为 MDP。MDP 用状态、动作和回报描述连续决策:

  • 状态包含原问题、已生成的子问题和已获得的中间答案。
  • 动作是对当前子问题选择“检索”或“不检索”。
  • 回报同时考虑答案是否正确以及检索成本。

这个建模方式把“能搜就搜”改成了一个可以优化的决策序列。

第一步:用二叉树找训练路径

在每个子问题上,系统都可以选择检索或不检索。连续多步后,这些选择会形成一棵二叉树。

论文在训练数据构造阶段搜索这棵树,寻找能得到正确答案、同时检索次数较少的路径。找到的路径包含一组完整轨迹:

生成子问题 -> 决定是否检索 -> 得到中间答案 -> 继续拆解

然后使用模仿学习让模型学习这种轨迹。模仿学习是从已有的高质量行为序列中学习决策策略,而不是只给最终答案。

这里有一个容易被略过的成本:推理阶段省下的检索,是用训练阶段的树搜索和数据生成换来的。它不是免费得到的自适应能力。

第二步:校准模型的知识边界

模型最难判断的并不是“这个问题是什么领域”,而是“我对这个事实的记忆是否足以支撑当前答案”。这是知识边界问题。

DeepRAG 使用 Chain of Calibration 进一步校准这个边界。论文把检索与不检索的结果放在同一个子问题上对照,让模型学会区分:什么时候内部知识已经足够,什么时候继续硬答会导致错误。

从工程角度看,这比一个固定阈值的检索分类器更紧密地与推理过程结合。但它也意味着,换模型、换知识库或换问题分布后,原来学到的边界可能需要重新验证。

实验结果应怎样读

论文在 HotpotQA、2WikiMultihopQA、CAG、PopQA 和 WebQuestions 上测试,同时使用 Llama-3-8B 和 Qwen-2.5-7B 作为基础模型。作者报告 DeepRAG 在答案准确性上平均提升 21.99%,并减少冗余检索。

这个 21.99% 不应被改写成“任何 RAG 接入 DeepRAG 都会提升 21.99%”。它是在论文指定数据集、基础模型、检索环境和评估指标下得到的聚合结果。真实系统中的文档噪声、时效性和检索延迟可能与实验设置相差很大。

还要区分两类成本:

  • 检索次数减少,会降低搜索、rerank 和上下文 Token 成本。
  • 多步分解与决策仍需要模型调用,端到端延迟不一定与检索次数同比例下降。

对普通 RAG 项目有什么用

大多数团队没有必要立即复制论文的训练过程。更现实的第一步,是把现有 Agent 或 RAG 轨迹中的检索记录下来:

  • 哪个子问题触发了检索。
  • 检索结果是否真的被最终答案使用。
  • 移除该次检索后,答案是否仍然正确。
  • 没有检索的步骤中,哪些因缺少外部事实而失败。

先有这批轨迹,才能判断项目需要的是 DeepRAG 这类学习式策略,还是几条明确规则。例如,时间、价格、库版本和公司政策强制检索;算术运算交给确定性工具;只有当前事实不足时才扩展查询。规则能覆盖的场景,更容易解释和回归测试。

DeepRAG 真正有价值的地方,不是给 RAG 增加了更多步骤。它把一个常被隐藏的问题放到了系统中心:外部知识什么时候值得调用,又什么时候只会给推理增加噪声。

参考资料

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:DeepRAG 论文解读:检索不应每一步都发生

本文链接:https://www.sshipanoo.com/blog/ai/deepRAG/