← 返回列表

查询分解无法解决上下文饥饿——只是把它挪了个位置

The New Stack原文发布 2026-09-24 21:00首次收录 2026-09-25上架 2026-09-25 07:12

☆ 收藏查看原文 ↗

这件事讲了什么

文章作者做了一个实验:给 GitLab 公开文档做了一个聊天问答系统,拿一句包含五个不同问题的话去测试。主流做法是把复杂问题拆成五个小问题分别检索,再合并、重排、塞进有限的上下文窗口。结果五个正确答案虽然都被检索到了,但最终只有一条被保留,另外四条被排在前面的答案挤掉了;不拆分反而能保留三条。作者把这种现象叫“上下文饥饿”:某个子问题虽然找到了答案,却在最后分配上下文空间时被挤掉,而且常规召回率指标完全看不出来。文章指出,查询分解只解决了检索阶段的问题,分配阶段仍由“谁分高谁上”的不公平策略决定,需要引入公平性约束。目前这是作者在 GitLab 公开文档上做的实验,配套评测方法尚未说明是否开放使用。

可以使用的工具

文中可用工具

  • LlamaIndex SubQuestionQueryEngine把复杂问题拆成多个子问题并分别检索、再汇总答案
  • LangChain MultiQueryRetriever为同一个问题生成多种查询改写,合并去重后返回检索结果
  • RAG-Fusion用倒数排名融合把多次查询的检索结果合并成一个列表
这是基于来源内容整理的摘要。原文链接失效后,本页摘要和讨论仍会保留。

讨论 0

登录后参与讨论,阅读资讯无需注册。

还没有评论,来分享第一个看法。