跳到主要内容

右缘准确率下降:为什么上下文窗口的最后 20% 是个陷阱

· 阅读需 12 分钟
Tian Pan
Software Engineer

200K token 的上下文窗口并不是真正的 200K token 窗口。将其填满,你刚刚付费使用的模型就会悄然变成一个更糟糕的版本——这种退化并非发生在“迷失在中间(lost in the middle)”所预言的中间位置,而是在右侧边缘,也就是近因偏差(recency bias)本应拯救你的地方。包装盒上的标签卖给你的是余量;而硅片卖给你的却是悬崖。

这是一种大多数团队尚未内化的不同失效模式。“迷失在中间”训练了一代提示词工程师(prompt engineers),让他们习惯于将关键指令放在开头,将关键问题放在结尾,坚信首因效应(primacy)和近因效应(recency)能确保信号得以传递。然而,当利用率接近宣称的窗口极限时,这种启发式方法会悄然失效。这种下降并非逐渐的、线性的,也与模型在半满状态下的表现不对称。一旦超过某个随模型而异的利用率阈值,你就进入了一个不同的运行机制,在 30K 时有效的提示词结构在 180K 时会彻底失败。

经济上的诱惑让情况变得更糟。如果你刚刚为百万 token 的窗口付费,那么使用它的压力是巨大的——你会倾倒整个代码库,喂入每一张支持工单,交给它季度财报,并让它找出重点。结果就是,你会得到一个看似推导严密、实则自信错误的答案,而在审计时它会瞬间瓦解。

超越“迷失在中间”:一种不同的失效模式

2023 年最初的 Lost in the Middle 论文发现了一个 U 型性能曲线:模型在上下文的开头(首因偏差)和结尾(近因偏差)是可靠的,而中间部分则会下垂。这一发现足够稳健,以至于成为了提示词工程界的民间法则:系统指令放第一,问题放最后,中间塞入任何你必须提供的内容。

最近的研究表明,这种 U 型曲线仅在窗口填充率低于一半时才成立。Positional Biases Shift as Inputs Approach Context Window Limits (Veseli 等人,2025) 追踪了当你向宣称的上限推进时,曲线是如何变形的。超过 50% 的利用率后,首因偏差会显著减弱。超过 80% 后,曲线根本不再像 U 型。你面对的是一个原始的近因梯度——而且即便这个梯度,其绝对性能底线也远低于短上下文的基准水平。

翻译一下:过了半程点,你就不能再死守“结尾的信息是安全的”这种启发式法则了。结尾仍然是“最不坏”的区域,但“最不坏”并不等同于“好”。整个性能面都向下平移了。

Chroma 的 Context Rot 研究通过对 18 个前沿模型(包括 Claude Opus 4、Sonnet 4、GPT-4.1、GPT-4o、Gemini 2.5 Pro/Flash、Qwen3 变体等)的直白实证研究强化了这一点。随着输入长度的增加,每一个模型都出现了退化。不是部分,是每一个。在 1K token 时保持近乎完美准确度的任务,随着窗口填满,准确度会出现不可预测的跌落。有些模型跌落得缓慢且较晚;有些——尤其是 Gemini 变体——则在很早的时候就表现出剧烈的波动。Claude 的衰减最慢,尽管随着上下文变大,它有时会用拒绝回答来代替答案,这本身也是一种失效。

基准测试到底说了什么

从论文中提取汇总数据是很有价值的,因为营销与现实之间的差距比大多数团队想象的要大。

  • RULER (NVIDIA) 测试了 17 个长上下文模型,发现虽然每个模型都宣称至少有 32K token 的上下文,但只有 4 个模型在 32K 时通过了定性性能阈值。其余模型在达到宣称的最大值之前就早已跌破及格线。论文提出了一个非常有用的术语——有效上下文长度(effective context length):即你的模型在处理实际任务时的准确度不再可靠的那个临界点。
  • NoLiMa 移除了“大海捞针(needle-in-a-haystack)”测试中容易被利用的字面关键词匹配捷径,并重新测试了 13 个宣称至少有 128K 窗口的模型。在 32K 时,13 个模型中有 11 个已经跌破了其短上下文基准性能的 50%。GPT-4o 作为表现最好的模型之一,在 32K 时也从短上下文的 99.3% 下降到了 69.7%。大多数模型永远无法接近其宣传的窗口利用率。
  • Chroma 的上下文腐烂(context rot)分析显示,在所有测试的 18 个模型中,连贯、逻辑有序的文档实际上比打乱顺序的版本损害检索准确度。连贯性会以某种方式集中注意力,从而使干扰项更具诱惑力。而随机性反而打破了这种魔咒。
  • 来自 Databricks 的长上下文 RAG 基准测试显示,知名模型在非常特定的阈值处发生退化:Llama-3.1-405B 在超过 32K 后开始衰减,GPT-4-0125-preview 坚持到了 64K,而较新的 Claude 和 GPT 变体将拐点向后推了,但并未能消除它。

所有这些研究都呈现出一个模式:退化并非逐渐发生的。性能起初保持近乎完美,然后突然崩塌。一个额定 200K 的模型在处理非琐碎任务时,通常在超过约 130K(约为宣称上限的 65%)后就变得不可靠。一个额定 1M 的模型通常在超过 200K–300K 后就变得不可靠。你为之付费的宣传窗口的最后一部分,其实根本无法正常工作。

为什么右边缘会特别失效

有三种机制共同导致了右边缘性能下降,理解这些机制能让你预测特定部署的表现。

注意力稀释 (Attention dilution)。 Softmax 注意力会将权重归一化为所有 token 的概率分布。随着窗口被填满,每个单独 token 的权重都会缩减。位于 950K 位置的一个相关句子正与 999,999 个干扰 token 竞争。信号并没有增长 —— 而是底噪升高了。相关的片段仍然在那里,只是模型无法透过迷雾找到它。这就是为什么连贯的文档反而有害:连贯性会产生密集且看似合理的干扰项,看起来很像答案。

位置编码衰减 (Positional encoding decay)。 大多数现代开源模型使用某种形式的旋转位置嵌入 (RoPE)。RoPE 具有内置的长期衰减特性:两个 token 之间的距离越远,位置信号对它们的关联就越弱。前沿实验室通过各种插值 (interpolation) 和外推 (extrapolation) 技巧来扩展其宣称的上下文窗口,但这些技巧并不能干净利落地扩展有效窗口。这种扩展有时只是审美上的 —— 模型可以处理这些 token,只是无法可靠地将它们相互关联。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates