← 返回题库
第 176 题 · RAG · 困难

RAG 如何处理需要多跳证据的问题?

岗位专项 这代表什么?
✓ 资料核验 来源说明:Datawhale 公开真实面试题整理;答案依据原论文原创整理
Multi-hop RAGQuery DecompositionIterative Retrieval
评论与补充 ↓
口述训练

先用自己的话答,再看参考说法

60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。

别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。

面试时怎么答

这题应讲“为什么一次检索不够”,再给出迭代链路:拆分问题,先找桥接实体或第一跳事实,用已确认信息生成下一跳查询,最后合并证据作答。每一跳都要保存来源,避免只留下最终结论。

若追问如何防止越检索越偏,回答跳数上限、证据一致性检查、并行候选和可回答性终止。评测也应按跳检查,不只看最终答案。

可以这样答:

多跳问题需要把不同文档中的事实串起来,一次相似度检索常找不到完整证据。可先把问题拆成子问题,检索第一跳并抽取桥接实体,再据此发起下一跳查询,最后对各跳证据做去重和一致性检查后生成答案。为防止查询漂移,应限制跳数、保留多条候选路径并给每个结论绑定出处;评测要同时看每跳 Recall 和最终答案。

核心回答

多跳问题的后续检索词往往依赖前一步发现的实体或事实,一次用原问题检索可能无法找到完整证据。常见做法是先拆分子问题,或在“检索—读取—更新查询”循环中逐步补证据;也可以生成多个查询表达或假设文档改善语义召回。关键是保存每一跳的证据和状态,并设置停止、去重和验证条件,防止错误中间结论继续放大。

展开说明

几种策略解决的重点不同:

  1. Query Decomposition:把可分解问题变成有依赖关系的子问题,按依赖顺序执行。
  2. Multi-Query:生成多个同义或不同视角的查询,再融合结果,适合原问题表达不足。
  3. HyDE:先生成假设性文档并编码,用其语义寻找真实文档;假设文本可能包含错误,最终证据仍必须来自语料库。
  4. 迭代检索:像 IRCoT 一样交替推导当前线索和检索下一批证据,适合实体链或组合关系。
  5. 自适应检索:先判断是否需要检索以及何时继续,避免所有问题都固定执行相同跳数。

多次检索会增加延迟、费用和攻击面;跳数越多,也越需要检查证据之间是否真的构成完整推理链。

工程实践

状态中记录当前子目标、已确认事实、证据 ID、未解决条件和访问过的查询。设置最大跳数与无新增证据的终止规则,并对查询循环做去重。评估时除最终答案外,还要检查 Supporting Fact Recall、每跳有效命中率、平均跳数和错误传播位置。

常见追问

  1. Multi-Query 与多跳检索有什么区别? Multi-Query 并行改写同一个意图以扩大单跳召回;多跳检索让上一跳的证据或实体改变下一跳查询,存在依赖链。
  2. HyDE 生成的假设文档包含错误时为什么仍可能有用? 检索依赖的是假文档的向量和文体术语,而不是把其事实直接当答案;但错误实体可能导致漂移,必须回到真实文档验证。
  3. 如何判断迭代检索应该停止? 当证据已覆盖全部子问题、没有新实体或新证据增益低于阈值时停止,并设置最大跳数防止循环和成本失控。

一句话复习

多跳 RAG 让新证据驱动下一次检索,但必须控制状态、跳数和中间错误传播。

参考资料

无需账号 · 原地交流

评论与补充

评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。

正在加载评论…