首页/AI/RAG 与向量库速查/Lost in the Middle 与上下文排序

Lost in the Middle 与上下文排序

长上下文模型对开头与结尾的信息更敏感,中间位置容易被忽略:把高相关片段放在首尾、或减少条数并用明确编号,可缓解「检索到了但没被用上」。

RAG 与向量库速查AI更新于 2026-10-13

长上下文里的位置偏差

长上下文模型对开头与结尾的信息更敏感,夹在中间的内容容易被忽略,检索明明命中了却没能被用上。典型表现是答案只用了最前面一两段,后面的关键条款没有进入回答。缓解方向有两条:减少无关条数、以及把高相关内容安排在首尾位置。

基本信息

现象相关信息在上下文中间位置利用率下降
来源长上下文模型的位置敏感度研究
缓解手段排序调整、条数压缩、逐条编号
验证方式对比不同排序策略下的答案完整性

重排后排序策略

重排后排序策略
ranked = rerank(query, candidates, top_n=8)
# 方案一:高相关放最前
ordered = ranked
# 方案二:两端强相关、中间弱相关(示例按分数交错)
# first, last = ranked[0], ranked[1]
# ordered = [first] + ranked[2:] + [last]   # 需结合模型实测选择

使用要点

  • 先减条数再调顺序:无关片段本身就是噪声,压缩往往比排序更有效
  • 给每条片段编号并保持编号稳定,引用与复核都依赖编号
  • 把最强相关放首位,因为多数模型对开头更敏感
  • 排序策略效果因模型与提示词而异,必须实测而不是照搬
  • 对跨段问题单独建样本,这类问题最容易暴露位置偏差

缓解手段对比

手段做法代价
条数压缩只保留重排后的前几条可能丢掉次要但有价值的信息
首尾放置强相关放两端、弱相关居中需要按模型实测验证
逐条编号每条带编号并要求引用回答略长,但便于核对
分段归纳先分块小结再汇总多一次模型调用,延迟增加

常见问题

  • 相关片段全塞在中段:模型回答仍只引用开头内容
  • 条数压到极少但未验证答案完整性,出现漏答
  • 排序策略换了但评测集没变,无法确认是否真的改善
  • 把无关片段混进来充数,位置偏差与噪声叠加
缓解手段要与评测一起验证:排序策略的效果因模型与提示词模板而异,换模型后需要重新确认结论是否成立。

易错点

  • 把相关片段全塞在中间位置,模型回答的引用仍停留在开头片段
  • 条数减少但未验证答案完整性,出现漏答
  • 用无关内容填充上下文长度,噪声与位置偏差叠加
  • 换模型后沿用旧的排序策略,效果不再成立却毫无察觉

数据来源与参考

  • Liu et al., Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌