问题是:“《雾港来信》修订版的译者,在翻译这一版时任职于哪家机构?”
资料库里有修订版的版权页,也有译者当年的个人简介。两份资料都没丢,RAG却只找来一叠书评,最后凭印象报出一家大学。
这里不一定是模型不够聪明,也不一定是检索数量太少。第二份材料的检索入口,可能要等读过第一份材料才知道。
RAG是“先检索资料,再据此生成回答”的一种组织方式。当一个问题的证据散落在相互关联的记录里,只搜一次原问题,未必能把它们接起来。本篇讨论这种多跳检索:怎样找到中间那座桥,又怎样防止一座搭错的桥把整个答案带偏。
AI原创概念插画:云雾山谷两侧的图书馆,由铜色拱桥相连;叼着信封的红狐位于桥上,左侧书页与右侧绿书都出现红狐图案。它是连接分散资料的艺术隐喻,不是检索结构图或真实系统实测。
不是“多搜几次”,而是下一次要搜什么发生了变化
先说明:上面的书名、人物及下文记录均为虚构教学材料,没有运行模型、向量库或问答服务。
假设库中有这些记录:
| 记录 | 相关内容 | 能回答哪一步 |
|---|---|---|
| A:修订版版权页 | 《雾港来信》修订版,译者林澄,译稿完成于2021年 | 确定版本、译者和目标时间 |
| B:2021年作者简介 | 林澄,译者,任职于青岚文献所;列出《雾港来信》翻译项目 | 确认同一个人的当时任职 |
| C:同名人物介绍 | 林澄,摄影师,任职于白沙艺术馆 | 名字相同,但身份不匹配 |
| D:2025年近况 | 译者林澄现任职于白鹭大学 | 可能是同一人,但不是题目要求的时间 |
第一跳先找“《雾港来信》修订版版权页”,得到林澄和2021年。第二跳才能提出更明确的问题:“译者林澄,2021年,任职机构,雾港来信”。
林澄是这里的桥接实体:一条证据给出它,下一条证据借它继续定位。 但实际连接不能只靠名字相同,还要检查身份、项目、版本与时间是否一致。仅凭A和C拼接,会得到一个形式完整、事实错误的答案;用A和D拼接,则把后来任职偷换成当时任职。
这与把top-k——每次取回的候选数量——调大不同。调大数量,仍可能只是围绕书名找来更多书评;改变查询,则利用第一跳的新线索,打开原问题没有直接写出的资料入口。
也不要反过来断言“一次检索绝不可能答对”。如果简介本来就提到书名,或者索引预先关联了书籍与译者,一次检索也可能取齐证据。多跳是解决特定证据依赖的一种方法,不是所有RAG必须增加的仪式。
三份资料,各自说明什么
这不是今天才出现的新概念。2018年的HotpotQA论文把多文档推理和句子级支持事实放进问答数据集,也包含比较型问题。[1] 它提醒我们:答案字符串之外,哪些句子共同支撑答案,也值得单独检查。多跳问题不全是“先找人、再找机构”;比较两个人的出生时间,可以先分别检索,再汇合判断,未必存在先后依赖。
2023年ACL论文IRCoT研究了另一种情况:当前需要检索什么,依赖此前已经取回的信息。其方法先用原问题检索,再交替生成下一句中间推理、用该句检索更多段落,最后把收集的段落交给回答环节。[2]
本文借用的是这个检索与中间发现相互推进的思想,不照搬论文的提示模板或停止规则,也不要求产品展示模型的内部思考。工程上可以记录可核查的子问题、已见事实及来源,而不是保存或索取隐藏推理过程。论文使用的是当时的模型、语料与实验设置,不能把历史实验收益当成今天任意系统的性能承诺。
Microsoft GraphRAG的Local Search文档展示了不同组织方式:从与问题相关的实体进入知识图谱,提取关联实体、关系及相应原文块,经过优先级排序和过滤后装入有限上下文。[3] 这说明连接也可以提前建立在索引里,不必每次都完全靠临时生成查询。
不过,图上的一条边不是事实的自动保真证书。关系抽取、同名消歧或原始材料出错,仍可能生成错误连接。这是本文的工程判断,不是文档对准确率的保证。图检索、迭代文本检索和结构化数据库关联,也不是同一个算法的三个名字。
把“桥已经找到”变成一份能复核的记录
对于开头的资料助手,我更建议保存一张短的证据连接表,而不是一段看似流畅的解释。下面是教学设计,不是某框架的固定接口:
| 检查项 | 本例应保存的内容 |
|---|---|
| 原问题不可变约束 | 修订版;翻译当时任职,不是现任 |
| 第一跳已确认事实 | 版权页指向译者林澄,译稿完成于2021年 |
| 第一跳证据位置 | 记录A的版本与版权页定位 |
| 下一跳待查关系 | 该译者在2021年的任职机构 |
| 连接核验 | 记录B的身份与翻译项目一致;同名摄影师C不接入 |
| 时间核验 | B对应目标年份;D只能说明后来的近况 |
| 回答可用证据 | A支持人物和时间,B支持对应任职 |
这张表有两个作用。
首先,它把检索线索与已确认事实分开。模型猜“林澄可能在某大学”,可以形成待验证的搜索候选,但不能直接升级为下一跳的确定前提。搜索框里的文字也不能反过来证明它自己是真的。
其次,它防止中间步骤悄悄换题。用户问的是“翻译时”,后续查询、过滤和最终回答都要保留这一时间约束。若版权页只写出版年,没有译稿时间,就不能把两者自动视为同一年;若资料只能确认目前任职,应明确缺口,而不是补出历史结论。
最终可以回答:“在本例提供的资料中,修订版版权页确定译者与译稿年份,2021年简介将该译者与青岚文献所关联,因此答案为青岚文献所。”真实产品则应把实际来源定位交给读者。本例没有真实出版物可引用,不应把教学记录包装为外部来源。
什么时候该加第二跳,什么时候应该停下
遇到以下情况,迭代检索值得考虑:
- 问题中的对象与目标答案之间隔着一个尚不知道的实体,例如作品、作者、机构之间的连接。
- 第一轮已经出现可信的新线索,但现有材料还缺少明确关系。
- 缺失资料分散在不同文档,不是同一段文字被切块后漏了邻句。
反之,若第一轮已经拿到充分证据,继续检索可能只增加噪声、成本和冲突。若两项子问题彼此独立,可以并行查,再做比较;没必要把可并行的工作硬串成多跳链。
IRCoT论文也明确讨论了累积段落带来的输入长度要求,以及每步增加模型调用的计算代价。[2] 工程上因此需要预先限定检索轮数、候选总量、时间和费用,并为收尾保留空间。这里不推荐一个通用的固定轮数;预算应由任务价值和服务约束决定。
预算用完是停止原因,不是“答案已证实”的证据。 若只找到了第一跳,交付应写“已确定译者,但尚未核实当时机构”,并保存缺失关系。若一直拿同一份简介换词搜索,也应识别为重复探索,而不是把调用数量当进度。
验收别只盯着最后一个机构名
下面是可复用的测试检查清单,尚未在真实问答系统上执行:
- 桥接实体正确吗? 放入同名不同人的干扰记录,检查系统是否核对身份。
- 约束跨跳保留了吗? 更换版次、历史年份或否定条件,检查查询是否跟着变。
- 每段关系有原文支撑吗? 把第一跳保留、第二跳移除,系统应报告缺口,而非凭常识补齐。
- 连接是否真的需要多跳? 同时准备直接可答和需要桥接的题,检查是否给简单问题无谓加循环。
- 支持事实与答案一起验收了吗? 即使猜对机构,也要检查是否引用了正确年份、正确人物的材料。
- 失败能定位吗? 区分第一跳未召回、实体接错、第二跳未召回、两跳齐全但关系判断错误。
- 权限与预算贯穿了吗? 后续发现的新实体不授予新的数据访问权限;每次读取仍需原有授权。
这些检查可以帮助决定该修查询生成、实体映射还是回答环节。只看最终答对率,很难知道系统到底读通了证据链,还是碰巧猜中了答案。
多跳RAG最值得保留的能力,并不是让AI“多想几步”。而是让下一次检索有明确的新入口,让每一次连接都能回到原文,让没接上的那一步仍被诚实地保留下来。
来源、日期与阅读范围
本文由AI创作。案例、证据表和测试清单均为教学设计;未运行模型、Agent、图数据库或检索实验。资料检索截至2026年10月23日11:15 UTC。下列经典研究不是近期公告,也不代表当前产品能力排名。
- HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering,EMNLP 2018,会议日期2018年10月31日至11月4日。实际阅读官方摘要及论文导言片段;这里只采用多文档问题、比较问题和句子级支持事实的设计说明,不声称通读全文或复现数据集。
- Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions,ACL 2023,会议日期2023年7月9日至14日。实际下载并阅读论文导言、第3节方法及Limitations相关正文。采用迭代检索机制与成本边界,不引用历史成绩作为当前系统收益。
- Microsoft GraphRAG:Local Search,动态官方文档,未锁定发布版本或核实独立发布日期。实际阅读Entity-based Reasoning与Methodology相关部分;仅支持实体、关系与原文块的上下文组织方式,不把它描述为所有多跳RAG的统一标准。

留下你的想法 0
欢迎提问、补充和不同观点。评论通过审核后会公开显示。