RAG 上下文排序:先测模型的中段盲区
文章借助“Lost in the Middle”研究说明,相关信息在上下文中的位置会影响回答准确率,增加文档也可能降低效果。提出位置敏感性测试、重要片段重排和请求前长度检查三项工程措施。
原文暂未完整获取,基于公开信息的快读
dev.to 的一篇文章把 RAG 的问题指向了上下文排序:检索到了答案,模型也未必能用好它。根据现有摘要和节选,作者借助「Lost in the Middle」研究,提出位置测试、片段重排和请求前长度检查三项措施,提醒开发者别把大上下文窗口当成准确率保障。
目前能确认什么
RAG(检索增强生成)通常先检索相关文档,再将片段与问题一起交给模型。检索决定材料里有没有答案,生成还取决于模型能否利用这些材料。
节选援引的研究在多文档问答、键值检索任务中移动相关信息的位置,观察到准确率呈 U 形:靠近开头和结尾较好,中间较差。作者还引用了 GPT-3.5-Turbo 的一个案例:答案放在检索文档中段时,表现甚至低于不提供文档。
这些是特定实验的结果,不能直接套给所有模型。
作者提出的工程措施是:用真实业务材料测试不同位置的命中率;将高相关片段交替安排在首尾;发送前统计 token,超过预算就裁剪或报错。预算应来自测试,而非直接照搬模型的窗口上限。
我的判断
上下文能装下多少,与任务能可靠用好多少,是两件事。
排查 RAG 答错时,可以增加一个对照:保持问题和材料不变,只移动答案片段。如果结果明显变化,就有理由把上下文组织纳入排查,而不只调整检索。
但首尾重排不能直接当成固定最优方案。涉及时间顺序、代码依赖或跨段推理时,重排可能打断关系,应同时检查回答正确性和引用是否匹配。
节选没有给出当前模型的完整评测,也不足以核实示例中的模型名和 API 可用性。单句检索测试只能作为起点;生产任务若需要拼接多处证据,还要补测跨段推理,并在不同长度下重复测试,才能确定长度门槛。