首页/AI/RAG 与向量库速查/查询分解与多跳检索

查询分解与多跳检索

复杂问题(多实体比较、链式推理)拆成多个子问题逐一检索,再汇总生成;常与“检索-推理交替”做法配合,用于多跳问答场景。

RAG 与向量库速查AI更新于 2026-10-13

查询分解是什么

复合问题(两个产品谁更快、某项规定的三个条件分别是什么)用一句话向量化后,语义会被平均掉,检索出来的文档往往只覆盖其中一半。查询分解先把原问题拆成若干可以独立检索的子问题,分别取回证据再汇总生成。拆法有两类:一次性把问题拆完并行检索,适合子问题彼此独立的比较型问题;逐步推理、每走一步检索一次,适合下一问依赖上一问答案的链式问题,IRCoT 就是后者的代表做法。

基本信息

触发条件多实体比较、多条件并列、需要链式推理的问题
子问题数量通常 2~4 个,过多会让延迟与成本失控
实现方式主模型一次性分解,或用小模型配合规则
证据汇总各子问题分别检索后合并去重,再统一重排与生成
代表做法IRCoT:推理与检索交替进行

典型使用场景

  • 对比型问题:先分别取 A、B 两方的指标再对比,避免只召回其中一方
  • 多条件合规问答:把条件逐条检索,防止漏掉某个分句对应的条款
  • 链式推理:第一步结果决定第二步的检索词,如先查版本再查该版本的参数
  • 长文档里的组合问题:同一份文档不同章节的内容需要拼合回答
  • 失败归因:把分解出的子问题写进日志,能看出是拆错还是检索错

分解示例

分解示例
原问题:A 产品的检索速度和 B 产品相比差别在哪?
子问题 1:A 产品检索的延迟表现如何?
子问题 2:B 产品检索的延迟表现如何?
→ 分别检索 → 去重合并 → 对比生成

分解策略对比

策略适合代价与风险
一次性并行分解子问题相互独立分解错误会同时污染所有子问题
逐步推理分解后一问依赖前一问答案轮次增加,延迟不可控
IRCoT 交替检索多跳推理每步都要检索,成本最高
不分解直接检索简单事实型问题复合问题召回严重不足
分解后的子问题要保留原始实体限定(产品线、版本、时间范围),否则每个子问题都变成泛化提问,检索回来的材料互相矛盾。

易错点

  • 子问题并行检索但实体未对齐,把 A 的参数与 B 的参数错位拼在一起
  • 分解过度(拆成十几个子问题)导致延迟与成本失控,收益却趋于平缓
  • 分解出的子问题丢掉版本或时间限定,召回不同时期的规定,结论自相矛盾
  • 只合并候选不做去重,同一文档的不同子问题命中重复进入上下文
  • 分解结果不写日志,答错时无法判断是分解偏离还是检索失败

数据来源与参考

  • Trivedi et al., Interleaving Retrieval with Chain-of-Thought Reasoning (IRCoT), ACL 2023
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌