← 返回题目列表

什么是 Lost in the Middle?长上下文为什么会忽略中间信息?

高频 困难 第 24 / 25 题 更新于 2026/09/17
长上下文Lost in the Middle注意力RAG

简化版

Lost in the Middle 是指长上下文中同一条关键信息放在开头或结尾时容易被模型利用,放在中间时准确率明显下降的现象。它不等于模型“看不见”中间 token,而是位置分布、注意力竞争、训练偏差和大量干扰共同导致信息利用率下降。工程上要通过检索与重排减少噪声、把问题靠近证据、保留证据结构,并按位置分桶评测,不能把标称窗口长度当成有效理解长度。

详细版

长上下文能力至少包含三件事:能接收多长输入、能从中定位证据、能组合证据完成推理。Lost in the Middle 主要损害后两者;模型接口接受 128K 并不证明埋在第 64K 附近的事实能被稳定使用。

常见成因包括训练样本中答案更常靠近边界、自回归模型对近期 token 的偏好、长序列中注意力被许多相似片段分摊,以及提示与检索文档之间的位置设计。优化应先减少无关内容,再做重排、去重、分层摘要或检索;关键规则可在合法范围内靠近问题,但不能重复到产生冲突。

评测应把相同证据放到开头、中间、结尾和不同长度位置,分别测检索命中、答案正确率、引用准确率与延迟,并加入多跳证据和干扰文档。只有平均准确率会掩盖中部低谷。

完整版教学

一、这个现象究竟是什么

设上下文中有 30 篇文档,只有一篇包含答案。把它放在第 1 篇、15 篇和 30 篇,模型得到的准确率往往不是水平线,而呈现首尾较高、中部较低的 U 形趋势,这就是 Lost in the Middle 的典型表现。

它是统计现象,不代表所有模型、任务和长度都同样严重。简单关键词查找、复杂多跳推理、不同位置编码和微调方法会产生不同曲线,所以不能只背一句“模型会忘记中间”。

记忆钩子:窗口长度回答“能装下多少”,位置曲线回答“装进去以后各处能用好多少”。

二、看见 token 不等于利用证据

Transformer 会计算中间 token 的表示,因此“完全没读到”并不准确。真正的问题是模型生成答案时,相关证据能否在大量候选信息中获得足够影响,并与问题正确绑定。

长序列中可能有多个相似实体、重复标题和互相矛盾的版本。即使目标片段仍在注意力范围内,它的信号也可能被稀释。尤其需要跨两处证据组合时,先分别找到再正确关联比单点检索更困难。

因此要把检索能力和推理能力分开测:模型可能能复述中部句子,却无法用它推导最终结论。

三、训练分布与位置偏好

语言模型训练常采用固定长度切片,问答微调里的答案或指令也可能更常出现在某些位置。模型会学到位置先验:开头常有主题和系统规则,末尾常有最近问题与待续写内容。

自回归生成时,靠近末尾的 token 距离当前预测更近;开头则常通过全局主题获得特殊作用,中间内容可能同时缺少两种优势。这只是可能机制之一,不能把现象完全归因于单一位置编码。

改变 RoPE 缩放可让模型接收更长输入,但若没有足够长序列训练数据,位置利用能力仍可能不足。

四、注意力竞争会放大噪声

Softmax 注意力在大量 token 之间分配权重。假设相关片段本可获得 0.20 权重,加入许多语义相似但无关片段后,竞争可能使它降到 0.05;数值只是示意,却说明“塞更多资料”不一定增加有效信息。

有效信噪比 ≈ 相关证据影响 / 无关与冲突内容影响

重复片段也会造成问题。如果同一政策的旧版出现五次、新版只出现一次,模型可能受数量暗示偏向旧版。去重、版本过滤和权威性排序比简单扩窗更重要。

五、用位置分桶实验发现中部低谷

构造同一个问题和证据,只改变证据所在百分位,例如 0%~10%、45%~55%、90%~100%。每个位置放入相同数量与难度的干扰项,避免把位置和内容差异混淆。

证据位置命中 100 题准确率
开头8686%
中间6161%
结尾8282%

这组示例的中间相对开头下降 25 个百分点。还应在 8K、32K、64K 长度下重复,绘制二维热力图,而不是用一个窗口长度代表全部表现。

六、RAG 的首要策略是少而准

若检索已经选出三段高相关证据,就不要再为了“充分”加入二十段低分文本。先做文档权限与版本过滤,再混合检索、重排、去重,最后按证据完整性装入上下文。

排序时可以把最关键证据放在问题附近,并保留标题、来源和段落边界。把文档切得过碎会失去上下文,切得过大又引入噪声,需要在评测集上调节 chunk 与 overlap。

多跳任务不能只按单段分数选择,必须保证所需证据组共同进入窗口;否则每段都很相关,推理链却缺一环。

七、位置调整不是万能修补

把所有关键内容都复制到末尾会增加 token,并可能产生新旧版本冲突。系统提示、用户问题、工具结果和证据之间还有指令优先级与安全边界,不能随意重排到改变语义。

更稳的做法是提取一份带引用的“证据摘要”,放在问题附近,同时保留原片段供核查。摘要有损,所以关键数字、否定条件和来源位置应结构化保存。

如果资料规模远大于窗口,应该使用分层检索或 map-reduce,而不是靠位置技巧把全部材料塞进一次调用。

八、线上监控要区分长度与位置

记录输入长度、证据位置百分位、检索分数、引用位置和答案结果,可以发现准确率是否随位置下滑。注意不要记录敏感原文,可存文档 ID、token 区间和哈希。

A/B 测试重排策略时,除整体正确率,还要比较各位置桶、不同文档数量、TTFT 和成本。若整体提高 2%,但中部问题仍下降 20%,系统仍有明显长上下文风险。

回归集应固定关键证据并周期性换干扰文档,防止模型只记住测试答案。

九、常见误区与追问

  • 误区:Lost in the Middle 表示模型完全无法读取中间 token。 它描述利用率下降,不是物理不可见。
  • 误区:换成更大上下文窗口就自然解决。 接收长度、训练长度和有效检索能力是不同指标。
  • 误区:把证据全部复制到结尾最稳。 会增加噪声、冲突和成本,也可能改变提示结构。
  • 误区:只测 needle-in-a-haystack 就够。 单点查找不能代表多跳组合和真实问答。
  • 误区:RAG 返回越多文档,答案越可靠。 低相关内容会稀释关键证据。
  • 追问:怎样证明模型有中部问题? 固定内容和干扰,仅移动证据位置,按位置分桶比较。
  • 追问:提示工程能完全修复吗? 可改善布局与强调,但训练偏差和长序列能力仍需模型与检索共同解决。
  • 追问:长文总结如何缓解? 分层切分、局部摘要、带引用汇总,并对跨段事实做单独核验。

十、加强记忆

Lost in the Middle 记住“能装不等于能用”:中间 token 仍被计算,但在训练位置偏好和长序列注意力竞争下,证据影响可能被稀释。验证时固定内容只移动位置,按窗口长度与位置分桶;治理时先做权限、版本、检索、重排和去重,把少量关键证据靠近问题并保留引用。长窗口是容量,RAG 与布局才决定有效信噪比。