检索对了,答案仍错?RAG的「中间迷失」实验设计

在证据内容不变的前提下,仅改变其在上下文中的位置,检验RAG答案是否随之改变。
文章从RAG检索成功但答案仍错的失败模式出发,引出《Lost in the Middle》的核心发现:相关信息位于长上下文中间时模型性能容易下滑。为隔离位置变量,作者设计了一套可复现实验:每道题只保留一段支撑证据,构造开头、中间、结尾三个版本,题目、证据原文、干扰项与指令全部固定,仅改变段落顺序。实验强调使用带标注题目集、多组干扰项顺序和不同上下文长度,并警惕截断导致的证据丢失。评估同时关注答案准确率、引用正确性和位置敏感度,并要求报告不确定性区间。无论位置效应是否复现,结论都需限定在测试的模型、题目集与上下文长度内。
检索对了,答案仍错?RAG的「中间迷失」实验设计

一个RAG系统成功检索到了包含答案的段落,这段文字也确实进入了模型的上下文窗口。但最终生成的答案仍然是错的。这种失败模式值得深究——检索质量本身无法解释它,问题出在模型如何使用收到的证据。
本文围绕一个可检验的研究问题展开:**在证据内容完全不变的前提下,仅改变它在上下文中的位置,答案会随之改变吗?**这一问题的背后,是Liu等人关于长上下文使用的经典研究《Lost in the Middle》。
论文说了什么:位置影响使用效率
《Lost in the Middle: How Language Models Use Long Contexts》系统考察了语言模型如何处理输入中不同位置的信息。在多文档问答和键值检索两类实验中,研究者观察到一个反复出现的模式:当相关信息出现在上下文靠近开头或结尾的位置时,模型表现通常最好;而当同样的信息被放在长上下文的中间区域时,性能会出现下滑。
这一发现对RAG工程有直接的警示意义:**把证据塞进上下文窗口,并不等于模型会可靠地使用它。**不过,原文作者也明确将其视为一个待验证的假设,而非对所有当前模型都成立的普适结论。正因如此,才需要设计可复现的实验去测量自己的系统。
长上下文窗口指语言模型单次推理可接收的输入 token 数量上限。近年来主流模型的上下文窗口从数千 token 扩展到十万甚至百万级别,使得在提示中放入多篇文档、完整代码库或长对话记录成为可能。然而窗口容量与有效利用是两回事:模型对输入中不同区域信息的注意力分配并不均匀,且注意力机制的计算与内存开销随序列长度呈平方级增长,工程上常借助位置编码外推、滑动窗口注意力或检索式记忆来缓解。因此“能放进去”只是第一步,证据在窗口内的实际位置会直接影响模型能否稳定召回并据此推理。
实验设计:只动位置,不动内容
要隔离「位置」这个变量,起点应选择每道题只有一段明确支撑证据的问答对。这样在引入多证据问题之前,可以先把位置效应单独测清楚。
对每道题构造三个版本:支撑段落分别位于开头、中间、结尾。题目文本、证据原文、干扰段落和指令全部保持不变,唯一变化的是段落顺序。举个具体的例子:
- 问题:「客户有多长时间可以申请退款?」
- 支撑证据:「退款申请须在购买后30天内提交。」
需要观察的是:模型能否在三种位置下都稳定回答「30天」,并正确引用对应的段落?
让对比具有统计意义
单个例子说明不了什么。实验应使用带标注的题目集,用多组不同的干扰项顺序重复对比,并覆盖不同的上下文长度。每次对比内部,模型版本、生成参数和输出预算必须固定;段落重排时,段落ID要始终跟随对应文本。
还有一个容易被忽略的坑:必须确认输入没有被截断。否则测到的可能是「证据丢失」,而不是「证据位置」的影响。此外,加入一个只含支撑段落的基线版本,可以识别出那些即使没有干扰项模型也答不好的题目,避免把模型能力问题误判为位置问题。
上下文截断是长输入实验中最常见的混淆源。当拼接后的提示超过模型上下文窗口或服务端的 max_tokens 限制时,系统通常会从尾部或头部静默丢弃内容,导致支撑证据根本不在模型可见范围内。此时观测到的准确率下降反映的是“证据缺失”,而非“证据位于中间”。实验前应显式统计每条提示的 token 数,确保低于窗口上限并留出生成预算;同时记录服务端是否发生截断,必要时对超长样本做筛选或分桶报告,避免把容量问题误读为位置效应。
三个核心指标
答案准确率:回答是否与标注答案一致。
引用正确性:被引用的段落是否真的支撑该答案。仅仅返回一个存在的段落ID并不够——引用必须与答案在语义上对应。
位置敏感度:开头、中间、结尾三种放置方式之间,准确率变化有多大。
结果应按模型和上下文长度分别报告,并附上估计值的不确定性区间。没有误差范围的对比,很难支撑有意义的结论。
不确定性区间用于量化观测到的准确率差异在多大程度上可能由随机性造成。对于二分类的正确/错误结果,可用 Wilson 区间或 bootstrap 重采样估计准确率的置信区间;当比较开头与中间两种放置方式时,应针对配对样本计算差值区间,而不是孤立比较两个点估计。样本量较小时区间会很宽,此时“中间更差”的结论可能并不稳健。报告区间能让读者判断效应是否具有实际意义,也便于跨模型、跨上下文长度进行可比对照。
两种结果都有价值
如果中间位置表现更差,下一步实验可以在相同token预算下比较不同的上下文排序策略,看能否缓解这一衰减。
如果没有出现明显差异,这同样是有用的信息——它意味着论文描述的模式在本次测试条件下没有清晰复现,这本身就是一个需要解释的发现。
无论哪种结果,结论都必须有边界:限定于所测试的模型、题目集和上下文长度。跨模型的泛化推断需要额外证据。
写在最后
检索成功只是RAG答案成功的一半。下一个问题是:模型能否可靠地使用我们提供的证据,以及我们的上下文构造方式是在帮助它还是在阻碍它。
需要说明的是,本文描述的是一个基于研究文献的实验计划,结果尚未实测。如果你在自己的RAG应用中测试过段落顺序对答案的影响,欢迎分享观察。
参考文献:Liu et al., Lost in the Middle: How Language Models Use Long Contexts, https://arxiv.org/abs/2307.03172
相关推荐

WorkBuddy全流程教程:从零搭建AI办公自动化智能体
WorkBuddy 全流程教程精讲:从下载安装、三种工作模式到多模态绘本视频实战,再到专家团搭建智能体与工作流配置,帮你用低成本 AI Agent 实现办公自动化。

WorkBuddy智能体全攻略:7天从入门到自动化实战
基于B站256集WorkBuddy全套精讲课程,系统拆解腾讯AI办公工作台的核心能力:Agent原理、Skill封装、连接器跨平台、定时自动化、知识库与零代码开发,附学习路径建议。

8个AI账号翻车7个:我用AI干活的真实复盘
B站8个AI运营账号仅1个跑通。本文拆解"演AI"与"用AI干活"的本质区别,分析5条视频217万播放背后的产能控制、评论区运营和交付节奏策略。