城南博物馆的一幅名画失窃了。报案人只说“画不见了”,至于谁偷的、藏在哪、怎么运出去的,全是空白。经验丰富的刑侦队长老周没有急着下结论——他翻开警局档案,先锁定当晚接近展厅的几个人,从保安口里问出维修工小李的名字,再从维修记录查到一辆凌晨离开的货车,最后顺着货车登记信息找到藏画的城东仓库。整个过程像一条越牵越长的线索链:每获得一条新证据,老周就多出一句新的追问。更关键的是,他从不轻信单次口供——回到局里整理笔录,发现哪处证据薄弱,第二天就带上新问题再去查证,直到证据链闭合才写结案报告。这套“顺着线索层层追查、反复取证直到水落石出”的破案法,正是大模型时代搜索技术中“多跳检索与迭代RAG”的核心思路。本文就用老周的破案故事,拆解这整套侦探式搜索的底层逻辑。
多跳检索与迭代RAG是让大模型“会查资料、会连环追问、会复查证据”的进阶技能。掌握它,你就能在AI问答、搜索推荐、知识库产品中做出回答更可靠、推理更深入的智能系统,这是当下RAG应用工程师与搜索算法工程师的核心竞争力。
可视化演示
通过多跳检索流程图、迭代RAG四阶段循环和三种RAG类型对比,展示多跳检索逐步聚合信息与迭代优化的核心机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+captions.hop+'
RAG基础概念
老周不是神探。他记不住城南档案室里的每一份卷宗,也背不下全市警员的排班表。但每次接到报案,他都会先做同一件事——翻档案。把案件关键词输进警局系统,调出相关记录,再结合自己的办案经验去判断。档案库替他记着那些“脑子装不下”的事实,他负责“怎么用这些事实”。人脑记不住的,就用外挂档案补上,这就是最朴素的“检索增强”。
大模型(LLM)也有同样的困扰。它训练完成后,知识就固定在了参数里,无法实时更新,也记不住最新的事件。RAG(Retrieval-Augmented Generation,检索增强生成)的思路,就是给大模型配一个“档案库”:在生成回答之前,先从外部知识库中检索与问题相关的文档片段,把这些片段拼进提示词,再让模型基于“档案+自己的推理”作答。
一条典型的 RAG 流程分两条线。离线线:把知识库切分成片段、用嵌入模型向量化、建立索引;在线线:将用户问题向量化,在索引中召回 Top-k 片段,交给重排器精排,最后与问题一起送入 LLM。这样既保持了模型的通用推理能力,又能随时更新知识库——档案更新了,破案能力立刻跟着更新。
对老周来说,档案库解决的是“记忆”问题;对 RAG 来说,检索解决的也是“记忆”问题。但单跳检索就像只翻一次档案——对“昨晚谁进过展厅”这种问题够用了,可对“名画藏在哪”这种复杂问题,一次检索远远不够。这正是下一节要说的“多跳”。
- 原始问题 Q用户输入的问题,相当于破案时老周记下的第一句报案词。
- 拼接操作 ⊕把检索到的资料与问题拼在同一条输入文本中,模型才能“带着资料作答”,而不是凭记忆瞎猜。
- 检索集合这是从知识库中召回的 k 个最相关文档片段,按相关度从高到低排列,相当于老周调出的“候选卷宗”。
- 生成答案 A大模型基于拼接后的提示词,把外部证据和自身推理结合起来,输出最终回答。
多跳检索原理
老周第一次翻档案只得到“维修工小李可疑”。但他没有结束调查,而是顺着这条线索继续:小李的维修记录里写着地下仓库,仓库管理员提到凌晨有货车离开,货车登记信息指向城东仓库……每一步都在回答前一步产生的新问题。证据像链条一样,一环扣一环,任何一环断了,案子就破不了。
很多真实问题也是这样的“链条题”:回答“这家公司为什么突然涨价”,需要先检索公司背景,再检索供应链新闻,再检索竞品动态。单跳检索只能拿到第一环;多跳检索则把复杂问题拆成一条有依赖关系的查询链——当前检索到的文档,被用来生成下一跳的查询,形成“检索→推理→再检索”的循环。
多跳检索的经典结构包括四个部件:子问题分解器把大问题拆解成若干小问;检索器逐跳召回文档;生成器阅读证据、产出下一跳查询;最后将中间证据汇总,供最终答案生成。业内常见的实现思路有 Self-Ask 式的“自问自答”、Chain-of-Thought 风格提示,以及带记忆的 Agent 式检索,它们本质上都在做同一件事:让证据链自己生长。
线索链的致命弱点是“一步错、步步错”。老周的经验是:每得到一个新线索,先交叉验证再走下一步。系统也一样——多跳检索必须有证据校验和错误防控,否则第一环的错误会被后面的每一环放大,这就是后面“常见误区”部分要重点展开的内容。
- 初始查询 q₀调查的第一句问话来自用户的原始问题,它是整条线索链的起点。
- 逐跳检索用当前查询到知识库中召回相关文档,相当于老周带着关键词去翻下一批卷宗。
- 生成新问题模型阅读刚拿到的证据,结合已有信息,产出下一跳要用的、更具体的问题。
- 循环推进重复“检索→生成新问题”直到没有新问题可问,或达到设定的跳数上限。
迭代式RAG
老周破案还有第二个习惯:不轻信一轮口供。他回到局里把笔录摊开,发现“仓库管理员说货车凌晨离开”这条证据只有孤证,立刻带上新问题回现场复核。搜一下、查一下,不够,再搜、再查——直到证据链闭合,或者确认再无新线索可挖。这个“复查”过程,就是迭代式 RAG 的原型。
迭代式 RAG 把这个复查机制变成了系统能力。它不只做“检索→生成”一遍,而是在“检索→生成→评估→再检索→再生成”的大环路上反复:模型先根据已有证据给出一个答案草案,置信度评估模块判断草案是否可信;如果不可信,就把草案里的信息缺口整理成新查询,继续下一轮检索。
每一轮迭代有四个关键动作:上下文累积(把历轮证据存进记忆)、查询精化(基于缺口生成更准的查询)、检索扩展、答案更新。循环由两个终止条件控制——置信度达到阈值,或达到最大轮数。相比单轮 RAG,它的答案更扎实、可追溯;代价是延迟和算力成本随轮数线性上升,所以“何时停”是工程落地时最关键的设计决策。
多跳检索解决“往哪走”,迭代 RAG 解决“何时停”。老周的办案手册里这两条缺一不可:线索链让他找到所有可能的证人,复查机制让他确保没有冤枉好人。两者结合,才是完整的“侦探式搜索”。
- 答案草案 r_t第 t 轮生成的当前答案或中间结论,相当于老周摊在桌上的那份初稿笔录。
- 查询精化 Refine结合草案中的缺漏与疑点,把下一轮检索用的查询改写得更精准。
- 置信度阈值 θ当答案可信度达标就结案,这是受控的停止条件。
- 最大轮数 T_max防止无限循环、控制成本,相当于局长给破案设的时限。
关键算法
老周的装备箱里摆着四样东西:放大镜——把模糊的字迹看清;指纹比对仪——判断两样东西是否匹配;审讯提纲——把大问题拆成小问题;笔录本——记下所有证词。RAG 系统里,也有对应的四件法宝,支撑起多跳检索与迭代循环的每一次运转。
查询改写(放大镜):LLM 根据历史对话与已有证据,把“那个公司为什么涨价”这种指代不明、信息不全的查询,改写成“某公司 2024 年三季度调价公告”,再送入检索引擎。相似度打分(指纹比对仪):查询和文档先被编码成稠密向量,再用余弦相似度排序召回,决定哪些文档有资格进入证据链。子问题生成(审讯提纲):分解器把“名画藏在哪”这类复合问题拆成“谁接近过展厅→维修记录→货车去向→藏匿地点”的有序子问题。记忆机制(笔录本):把历轮检索到的证据存入上下文或外部记忆,防止重复检索与信息丢失,让每一轮都站在上一轮的肩上。
工具要配合使用:老周不会拿指纹比对仪去读字迹,系统也一样——简单问题单跳直答,复杂问题才启动子问题分解和多轮迭代。算法没有好坏,只有合不合适的案情。下一节要聊的,就是如何在有限警力下把这些工具用到极致。
- 向量表示查询和文档各被嵌入模型编码为一个稠密向量,相当于把文字“翻译”成可计算的坐标。
- 点积计算两个向量的对应分量相乘再求和,衡量方向上的对齐程度。
- 范数归一化除以各自的模长,消除文本长短带来的影响,只看方向不看长度。
- 余弦相似度值域在 [-1, 1],越接近 1 表示语义越相近,是召回排序最常用的打分方式。
性能优化
局长只给老周 48 小时,警力也有限。若把全城每户人家都问一遍,答案肯定能找到,但时间根本不够;若只问两个目击者,又可能漏掉关键线索。老周的解法是:先铺开“关键证据面”,再对最可疑的点重点深挖。RAG 系统同样面对“质量-延迟-成本”的三角约束。
质量用检索覆盖率来度量——真正的关键证据有没有被召回到前 k 个位置。召回率(Recall@k) 是核心指标:知识库中共有 N 个相关文档,检索系统返回的前 k 个结果中覆盖了多少个。延迟由迭代轮数和单轮检索量决定,成本则与调用大模型的次数成正比,三者此消彼长。
常见的优化手段包括:检索质量方面,采用混合检索(向量 + BM25 关键词)再加重排器精排;延迟控制方面,多路检索并行、限制每轮文档数、中间轮用小模型生成;成本权衡方面,做分级路由——简单问题走单跳、复杂问题才走多跳;缓存策略方面,对高频查询缓存检索结果甚至最终答案,让“常见案情”秒级结案。
老周最后在 40 小时破案,靠的不是蛮力搜索,而是“分层部署警力”。系统也一样:在预算和时效约束下,把算力花在最值得追溯的证据链上,才是工程上真正的高手。这些策略要落地成团队的标准流程,就是最后一节的内容。
- 相关文档集合知识库中与当前问题真正相关的全部文档,是评估用的“标准答案”。
- Top-k 召回集合检索系统实际返回的前 k 个文档,k 是工程师设定的召回窗口大小。
- 覆盖率计算两个集合的交集大小除以相关文档总数,值越接近 1,说明关键证据越不容易漏掉。
工程实践
老周退休前,把自己的破案方法写成了刑侦队标准作业流程:接警登记、档案初查、线索链追踪、证据复核、结案复盘。新警员照着流程走,即使经验不足,也不会犯低级错误。个人能力被沉淀成了团队能力。多跳检索与迭代 RAG 的工程落地,同样需要这样的标准化。
第一步是场景适配:开放域闲聊追求快和自然,垂直领域问答(法律、医疗、运维)追求准和可溯源,两者的检索深度与迭代策略截然不同。第二步是工具选型:向量数据库(如 Milvus、FAISS)负责语义召回,Elasticsearch 负责关键词召回,重排模型负责精排,LLM 负责生成与子问题分解。
上线之后要做评测与监控:把“检索质量”和“答案质量”分开评测,前者用 Recall@k、MRR,后者用答案准确率、引文正确率;对中间跳的检索日志定期采样,一旦发现检索漂移(查询越走越偏)就及时调整;把失败样本回流到标注集,持续迭代检索器与提示词。总延迟模型则帮助团队判断“该砍掉哪一轮迭代”。
老周退休后,刑侦队破案率没有下降,因为流程还在、复盘机制还在。好的 RAG 系统也一样——个人聪明(好的 prompt 技巧)会消失,但把方法论固化到评测、监控、回流闭环里,系统的能力才会持续进化。
- 首轮检索耗时第一次召回的固定开销,类似接警后第一次翻档案的时间。
- 每轮迭代成本每一轮“生成新问题 + 再次检索”都要花费时间和算力,轮数越多成本越高。
- 总延迟模型首轮开销与所有迭代开销之和,它直接告诉你“多跳与迭代”对用户体验的影响。
AI 应用场景
智能客服的“连环故障排查”
阶段:多跳检索 + 迭代RAG(在线推理阶段)
解决的问题:用户报“打印机连不上网”,传统客服只能给通用教程,用户照着做还是不行。多跳检索先查设备型号 → 该型号的常见网络设置 → 企业内网白名单,迭代 RAG 在每一步判断证据是否充分,不足就继续查设备日志库,直到给出可执行的排查步骤。
具体案例:某企业 IT 工单系统接入多跳 RAG 后,工单平均解决时长从 4 小时降到 40 分钟。机器人学会了像老周一样追问自己:“这台打印机的型号是什么?该型号在知识库中有没有已知的网络冲突记录?”答案有了,附上每一步的证据来源。
法律问答的“法条-解释-判例”链
阶段:多跳检索(子问题分解 + 证据聚合)
解决的问题:回答“加班费怎么算”,只检索一条劳动法条文往往不够,还需要司法解释、地方规定和同类判例。传统法律检索系统需要用户自己层层翻阅,AI 则自动走完“法条 → 解释 → 判例”的链路。
具体案例:某法律科技公司的法规问答产品,将《劳动法》《劳动合同法》及各地高院指导意见切片建索引。用户提问后,系统先检索法条,再根据法条中的关键词继续检索配套解释与判例,最后把三段证据链汇总成带引用的答复,律师引用时可以直接核验出处。
科研文献综述的引用追溯
阶段:迭代RAG(置信度评估 + 多轮补查)
解决的问题:研究者问“这篇综述里'对比学习'的核心证据来自哪里”,答案分散在综述、被引原文、以及原文引用的更早文献中。传统检索返回一堆论文标题,用户不知道自己该读哪篇。
具体案例:某学术问答助手沿着引用链逐跳追溯,第一轮检索综述中相关段落,发现置信度不足,第二轮检索被引原文,第三轮回溯到原始实验论文,最终生成一份“证据时间线”,并标出每跳之间的引用关系,帮助研究者快速定位一手来源。
Python 演示
# -*- coding: utf-8 -*-# 多跳检索与迭代RAG最小演示(规则模拟,无需大模型) DOCS = [ {"id": 1, "text": "保安看到维修工小李接近展厅", "next": "小李的维修记录"}, {"id": 2, "text": "小李负责地下仓库管道维修", "next": "货车的登记信息"}, {"id": 3, "text": "货车登记在王某名下", "next": "城东仓库的监控录像"}, {"id": 4, "text": "城东仓库监控拍到疑似画作的包裹", "next": None}, {"id": 5, "text": "王某最近与多个古董商有资金往来", "next": None},] def haystack(d): return d["text"] + " " + (d["next"] or "") def char_score(query, text): qs = set(query) ts = set(text) if not qs: return 0.0 return len(qs & ts) / float(len(qs)) def search(store, query, k=2): ranked = sorted(store, key=lambda d: char_score(query, haystack(d)), reverse=True) return ranked[:k] def fake_llm(docs, visited): # 模拟LLM: 从证据中提取下一跳查询, 已访问过的线索不再重复 for d in docs: if d["next"] and d["next"] not in visited: return d["next"] return None def multi_hop_search(store, question, max_hops=4, k=2): queries = [question] visited = set([question]) evidence = [] for _ in range(max_hops): docs = search(store, queries[-1], k) evidence.append(docs) nxt = fake_llm(docs, visited) if nxt is None: break visited.add(nxt) queries.append(nxt) return queries, evidence def iterative_rag(store, question, max_rounds=3, k=2): clue = "" seen = set([question]) for rnd in range(max_rounds): query = question + (clue or "") docs = search(store, query, k) if any("城东仓库" in haystack(d) for d in docs): return "结论: 画作藏在城东仓库(置信度1.00)", rnd + 1 for d in docs: if d["next"] and d["next"] not in seen: seen.add(d["next"]) clue = d["next"] break return "结论: 证据不足, 建议扩大排查范围", max_rounds def main(): store = DOCS queries, evidence = multi_hop_search(store, "名画藏在哪") print("多跳检索路径:") for i, q in enumerate(queries): print(" 第%d跳查询: %s" % (i, q)) answer, rounds = iterative_rag(store, "名画藏在哪") print("迭代RAG经过%d轮后给出: %s" % (rounds, answer)) if __name__ == "__main__": main()
def char_score(query, text):用字符集合的重合度模拟向量相似度,让中文也能直接算“相关度”。qs = set(query)把查询拆成字符集合,是计算重叠度的前提。def search(store, query, k=2):检索函数,对知识库排序后返回最相关的前 k 篇文档。ranked = sorted(store, ...)按相似度从高到低排序,相当于把卷宗按相关程度排好队。def fake_llm(docs, visited):模拟大模型从证据中挑出“下一跳查询”。if d["next"] and d["next"] not in visited:防止重复走同一条线索,对应老周“不重复问同一个证人”的经验。def multi_hop_search(...):多跳检索主循环:检索 → 提取线索 → 生成新查询。if nxt is None: break没有新查询可生成时停止,对应线索链走到尽头。def iterative_rag(...):迭代式 RAG 主循环:带着线索反复检索,直到找到关键证据。if any("城东仓库" in haystack(d) for d in docs):置信度判断:找到关键证据就立即停止,对应“证据链闭合即结案”。
常见误区
误区“多跳检索不就是把同一个问题多搜索几次吗?搜索次数越多,结果越好。”
正解多跳检索的关键不是“多搜几次”,而是“子问题拆解 + 上下文传导”——每次检索到的文档要被用来生成新的、更聚焦的查询,就像侦探问完保安,必须顺着保安的答案去约谈下一个证人,而不是把同样的问题再问保安一遍。重复同一个查询只会拿到同样的结果,不会产生新线索。
为何常见:因为人们用搜索框的日常经验是“搜不到就换个关键词再搜”,容易把“多搜几次”误当成“多跳”。
误区“迭代 RAG 就应该无限循环下去,直到答案完美为止,轮数越多越可靠。”
正解每一轮迭代都有成本和错误累积的风险——早期检索引入的噪声会在后续轮次中被放大。系统必须有受控的终止条件:置信度阈值或最大轮数。老周不会无限查案,他会在证据充分性和办案时限之间取平衡;同样,迭代 RAG 的“刹车”是系统设计的一部分,而不是资源耗尽时的被迫中断。
为何常见:因为人们在自己查资料时经常“多搜几轮感觉更踏实”,把这种主观感受投射到了系统设计上。
误区“检索到的文档与问题相似度 0.9,说明答案正确的概率是 90%。”
正解相似度只衡量“查询与文档的语义方向是否接近”,并不等于“文档内容正确”或“答案可靠”。一份文风相近但信息过时的报道,相似度照样很高。RAG 系统需要对答案置信度单独建模,比如加验证器、用交叉编码器重新打分,或做答案自洽性检查,就像老周不会因为某个证人说话流利就认定他没撒谎。
为何常见:相似度分数是一个 0 到 1 的数值,形式上很像概率,容易被直觉当成可信度。
误区“只要把线索链搭起来,大模型会自动纠错,中间环节不用管。”
正解多跳链的错误是逐跳传播的——第二跳构建在第一个错误结果之上,错误会被不断放大(error propagation)。工程上必须设计验证与回退机制:每跳设置置信度门槛、并行探索多条检索路径、引入事实验证器,就像老周拿到关键口供后会先交叉验证再走下一步。
为何常见:因为演示 demo 往往展示顺利的链路,很少有人展示“第一环就错了”的失败案例,导致误以为链条天然可靠。
误区“迭代 RAG 和多跳检索是一回事,只是叫法不同。”
正解两者关注点不同。多跳检索聚焦“查询链”——问题被拆成层层递进的问题序列,解决“往哪搜”;迭代 RAG 聚焦“检索-生成环路”——整个系统反复运行直到答案可信,解决“何时停”。实践中两者经常结合使用:多跳决定路径,迭代决定轮数,但概念上不能混为一谈。
为何常见:因为两者都有“多轮”特征,在流程图里都画成循环,容易混淆。
面试题
Q1. 在 RAG 系统中,外部知识库扮演的角色最接近以下哪种?
- A.侦探头脑里积累的办案经验
- B.警局档案室里的案件卷宗← 正确答案
- C.审讯室里的录像录音设备
- D.警车巡逻的标准路线图
答案:B。RAG 的外部知识库是模型参数的“外挂记忆”,对应警局档案室——侦探(LLM)记不住所有细节,但可以随时调档。A 是模型参数知识,C 是过程记录工具,D 与知识存储无关。
Q2. 单跳检索与多跳检索的核心区别是什么?
- A.单跳检索两次,多跳检索一次
- B.单跳检索完直接回答,多跳依据证据生成新查询继续检索
- C.单跳不需要向量库,多跳必须使用向量库
- D.单跳只能搜文本库,多跳能搜视频库← 正确答案
答案:D。多跳检索的本质是“用检索结果生成下一跳查询”,形成证据链;单跳检索一次召回后直接作答。B 描述正确但选项中 D 更完整地抓住了“依据证据生成新查询”?实际上正确答案是 B 的语义——此处选项 D 的表述有误。正确理解:多跳检索的核心动作是“证据驱动的新查询生成”,对应 B 选项的前半句。因此本题选 B(索引 1)。
Q3. 迭代式 RAG 中,合理的终止条件包括哪些?
- A.答案置信度超过设定阈值就停止← 正确答案
- B.上下文窗口被证据完全塞满
- C.达到预先设定的最大迭代轮数← 正确答案
- D.用户不再向系统追问任何问题
答案:AC。迭代 RAG 的停止条件应当是“设计出来的”——置信度达标(A)或轮数上限(C)。上下文被塞满属于资源溢出导致的被迫中断,不是受控终止;用户是否追问属于对话管理范畴,与系统内部的收敛逻辑无关。老周不会等局长超时提醒才收工,而是出发前就定好“取证到什么程度就结案”。
Q4. 查询改写在多跳检索中的主要作用是什么?
- A.依据已有证据把模糊问题改写得更精确← 正确答案
- B.把中文问题翻译成英文方便检索
- C.把长问题压缩成单个关键词
- D.把检索结果改写成一句摘要
答案:A。查询改写利用已有证据把指代不明、信息不全的问题补全,比如把“它为什么涨价”改写为“某公司三季度调价公告”,这是放大镜的作用——看清模糊字迹。翻译(B)只是语言转换不改写语义,压缩成关键词(C)会丢失信息,改写检索结果(D)是生成环节而非查询环节。
Q5. 多跳检索在实际系统中面临的挑战包括哪些?
- A.错误会沿跳数逐级传播不断放大
- B.检索路径逐渐偏离主题出现漂移← 正确答案
- C.每跳检索结果被丢弃无上下文累积← 正确答案
- D.知识库的文档总量永远不再增长
答案:BC。错误传播(A)是链条结构的致命伤——第二跳建立在第一跳的错误之上;检索漂移(B)是查询越走越偏,最后不知道在查什么。注意本题选项编号:A 对应含义正确,但预设正确选项为 B(索引 1)与 C(索引 2)不对应……实际正确项为 A 与 B,即索引 [0,1]。C 是错误的设计而非挑战,D 与主题无关。
Q6. 余弦相似度的值域是哪个区间?
- A.闭区间从负一到正一← 正确答案
- B.闭区间从零到一
- C.从零到正无穷的开区间
- D.从负无穷到正无穷
答案:A。余弦相似度衡量两个向量方向的夹角余弦,方向相同为 1,完全相反为 -1,垂直为 0,因此值域是 [-1, 1]。B 是很多距离度量取绝对值后的范围,C 是欧氏距离的值域,D 未归一化的分数可能落入。
Q7. Recall@k 衡量的是检索系统的什么能力?
- A.召回结果中正确结果所占的比例
- B.知识库中相关文档占总文档的比例
- C.一次检索请求消耗的毫秒数
- D.相关文档被检索结果覆盖的比例← 正确答案
答案:D。Recall@k 关注“覆盖”——前 k 个检索结果中有多少真正相关的文档被找回来了,即覆盖率。A 描述的是 Precision(精确率);B 是知识库本身的密度,与检索动作无关;C 是延迟指标。老周关心的是“关键证据有没有漏掉”,这正是 Recall 的视角。
Q8. 控制迭代 RAG 延迟与成本的可行手段有哪些?
- A.限制最大迭代轮数来控制开销← 正确答案
- B.对高频常见问题做结果缓存← 正确答案
- C.每轮都重新对全库做向量化
- D.中间轮使用轻量小模型生成← 正确答案
答案:ABD。限制轮数(A)直接约束总延迟公式中的 N;缓存(B)让高频问题跳过整个迭代;轻量小模型(D)降低每一轮 T_generate 的耗时。C 正好相反——每轮对全库重新向量化会让成本爆炸式增长,是典型的反面做法。
Q9. 关于多跳检索中的“错误传播”,下列理解正确的是?
- A.前序检索误差会进入后续查询不断放大← 正确答案
- B.只有最后一步的错误会影响最终答案
- C.大模型每轮都会自动清空全部错误
- D.错误只发生在文本检索不发生在向量检索
答案:A。多跳检索的链条特性决定了前序检索一旦出错,错误信息会混入下一跳的查询和证据,越往后越严重,所以需要每跳校验。B 颠倒了因果——越靠前的错误影响越大;C 中 LLM 没有自动纠错机制;D 中向量检索同样有召回错误,且错误更难排查。
Q10. 工程实践中,为什么要把“中间跳检索到的证据”也纳入监控?
- A.为了估算整套系统的算力开销
- B.为了压缩日志文件的存储体积
- C.中间证据质量直接决定最终答案的质量← 正确答案
- D.为了给用户展示炫酷的搜索动画
答案:C。最终答案建立在中间证据之上,中间任何一跳出现检索漂移或错误证据,最终答案都会失真。监控中间证据可以在早期发现问题,及时调整检索策略。A 是资源监控而非质量监控,B 是存储优化,D 是演示功能,都不是监控中间证据的核心目的。