Kaelem

你给了模型一本书,它只读了第一页

·13 min read
AI论文解读长上下文LLM推理优化

128K Token中,仅前0.1%贡献了50-80%的注意力

有一个反直觉的事实:你把一整本百科全书塞给一个大语言模型,问了它一个问题——答案就藏在第3742页的某一行里。模型翻完了全部128,000个token,然后给了你一个错的。你把那一页原封不动地复制给它:"你看,答案在这。"它说:"哦,对不起,我没注意到。"

这不是个例。这是一类正在被广泛记录的失败模式:证据已经在输入里了,但模型在生成答案时就是没用上。 Yen等人(2025)、Ye等人(2026)、Bei等人(2026)在多个基准测试中反复观察到这个现象。模型的上下文窗口越来越长——128K、256K、1M——但"装得下"不等于"用得上"。

伊利诺伊大学香槟分校的赵彦钧等人最近在 arXiv 上提交的 ReContext 论文,用一组精确到令人不安的数据揭开了这个问题的本质。他们计算了上下文中所有 token 相对于问题的注意力相关性,然后按照得分从高到低排序。在128K个token中,排在前0.1%(也就是前128个token)已经贡献了大约50%到80%的累计相关性得分。 剩下的127,872个token加在一起,在模型"眼里"的重要性还比不上那一小撮。

换句话说,模型不是"读了但没理解"——它根本就没把注意力分配给那99.9%的内容。


三条路的共同死穴:减少输入,而非放大信号

谜题:三个方向,三个死角

研究者在提出自己的方法之前,先用排除法审视了现有的三条路。

第一条路:注意力干预。 已经有一些工作尝试直接修改模型底层的注意力行为——比如在推理时强制重新分配注意力权重,或者修改解码逻辑中的KV缓存策略(Li et al., 2024; Tang et al., 2024; Ye et al., 2026)。这条路的问题在于"侵入性":你需要改模型的前向传播或解码逻辑,这对不同架构的模型缺乏通用性,部署上也很痛苦。更关键的是,上下文里的证据你怎么知道哪些重要?修改注意力需要你先知道改什么——这恰恰和"找证据"本身形成了死循环。

第二条路:外挂检索和记忆。 经典的RAG方案(Lewis et al., 2021)在生成之前先检索相关段落,或者用外部记忆存储向量化表示(Xu et al., 2025)。这条路的问题是信息失真:检索可能漏掉细粒度信息,多跳推理需要的"中间证据"在一个检索步骤中根本不会被召回。

第三条路:压缩。 把长上下文压缩成短摘要再输入模型(Jiang et al., 2023, 2024; Zhao et al., 2025c)。但压缩天然损失信息——你没法保证被压缩掉的恰好是无关的,而不是你会后悔丢掉的那一个临界证据。

三条路的共同死穴:它们都试图在"让模型看到的更少"上做文章。检索减少输入,压缩减少输入,注意力干预也是变相减少干扰。但问题的本质不是信息太多了——而是模型不知道该看哪


递归证据池:三轮迭代,层层深化

方法:不是"减少噪音",是"放大信号"

ReContext 做了一个关键的概念翻转:它不减少任何东西。原始的128K上下文完整保留在输入中。它只是在模型准备输出答案之前,额外插入一个"证据池"——一个由模型自己从完整上下文中挑选出来的、按问题相关性排序的证据片段合集。

第一步:用问题的相关性当探针。 ReContext 把问题 token 对上下文中每一个 token 的注意力分数当作"相关性信号"。注意,这里不是把注意力当作最终答案的依据——而只是当作一个"候选提名机制"。相当于模型在说:"我感觉这些位置可能和问题有关,你帮我看看。"

第二步:从候选token还原成完整文本。 单个token没有意义——"42"可能是一个年龄、一个数量、一个编号。ReContext 把选中的token映射回原文中的连续文本片段(evidence spans),保证提取出来的证据是人类可读的完整句子或段落。

第三步:递归更新证据池。 这可能是整个方法最精妙的地方。第一轮选出的证据被放入"证据池",然后在下一轮中,模型重新读取"完整上下文+问题+当前证据池",用这个更新后的模型状态重新计算注意力分数。因为证据池里的内容改变了模型的隐藏层表示,下一轮的注意力分配会自然地偏向和已有证据相关的其他内容——就像一个侦探发现第一条线索后,自然会顺着线索去找下一条。这个过程重复几个固定轮次(通常3-5轮)。

打个比方:这不像一个学生在反复思考——那会导致推理时间和不确定性爆炸。它更像一个编辑流程:编辑先快速浏览全书,用荧光笔标出和问题相关的段落(第一轮),然后对着标出的段落重新翻一遍书,发现更多相关的段落(第二轮),最后把所有标出的段落整理成一个"摘要备忘"放在案头,再开始写答案。

ReContext 的计算开销是可控且可预测的:只增加3-5次额外的前向传播,不需要任何模型权重更新。


关联记忆:ReContext的理论根基

理论:关联记忆的科学解释

研究者在附录中还给了一个漂亮的理论分析,把整个 ReContext 框架映射到经典的关联记忆(associative memory)模型上。

在关联记忆理论中,"记忆"不是一个被动的存储库,而是一组可以通过"线索"(cue)激活的"痕迹"(trace)。你听到"生日"这个词,大脑里关于"蛋糕"、"礼物"、"去年生日"的记忆痕迹就会自动浮起来——不是你去数据库里搜索,而是线索和痕迹之间的关联强度自动完成了匹配。

ReContext 完美映射了这个框架:

  • 上下文 = 记忆存储(128K token 是"所有可能被想起的事")
  • 问题 = 检索线索("你听到的词")
  • 注意力 = 线索-痕迹关联("哪些记忆痕迹和这个词有关")
  • 证据回放 = 痕迹重新激活("把最相关的记忆重新调到意识的前台")

研究者甚至证明了:在特定假设下,递归证据回放可以单调地将模型的隐藏表示推向正确答案的表示方向——也就是说,每多一轮回放,模型的内部状态都在往"更接近正确答案"的方向移动。这不是经验猜测,是有单调收敛证明的理论保证。


三个骨架·八个基准·一致领先

实验:三个骨架,八个基准,一致的提升

在三个骨架上,ReContext 的平均排名分别是 1.00、1.46、1.29——也就是说,在几乎所有任务-模型组合上,ReContext 都是表现最好的方法。对比 vanilla 基线,ReContext 将平均准确率从 0.24 提升到 0.30,相对增益达到 24.6%

拿 Qwen3-4B 来说:

  • TriviaQA 128K:Vanilla 只有 0.04,ReContext 达到 0.30——七倍以上的提升。注意 DAC 在同样任务上是 0.21,A-MEM 是 0.19。ReContext 的 0.30 是碾压式的领先。
  • NQ 128K:Vanilla 0.02,ReContext 0.08
  • Clip. 128K:Vanilla 0.38,ReContext 0.52——14个点的绝对提升。

在 Qwen3-4B 的 HotpotQA 128K 上(一个需要多跳推理的数据集),所有基线方法几乎都没超过 0.07,但 ReContext 做到了 0.08——这"多出来的一点点",恰好是因为证据池递归更新机制能够让不同跳的证据在后续轮次中相互触发。


诚实边界

论文证明了四件事。 第一,128K上下文中前0.1%的token贡献50-80%的相关性得分。第二,ReContext作为无训练推理时方法,在三个骨架、八个数据集上一致优于所有基线。第三,递归证据回放在关联记忆框架下有理论收敛保证。第四,完整上下文保留(不剪枝、不压缩)是设计的关键。

论文没有证明四件事。 第一,未测试256K+上下文的行为。第二,递归轮数固定,未探索自适应策略。第三,当模型自身注意力分配很差时,ReContext可能也无能为力。第四,未在70B+模型上验证。


Big Picture:当"装得下"和"用得上"不再是同一个问题

过去两年,长上下文被当作一个能力上限的问题来追求——我们不断地用RoPE、YaRN、MInference等技术把窗口从4K撑到128K再到1M。但很少有人问:容器里的东西,模型真的能用吗?

ReContext给出的回答是:不能,只靠撑大容器是不够的。 证据利用率不是"越大越好"的被动副产品——你需要主动设计一个机制来桥接"在输入中"和"在推理中"之间的鸿沟。

而且最优雅的是,ReContext 不是另一个需要海量计算和数据的训练方案。它是一个推理时脚手架——不需要改模型权重、不需要外挂检索引擎、不需要KV缓存的黑客手段。它做的只是一件非常基本的事:在模型生成答案之前,帮它把最相关的证据调到注意力中心。

这才是"context harnessing"(上下文驾驭)的真正含义——不是把马关进更小的围栏,而是给它一副更聪明的缰绳。


本文基于 arXiv 2607.02509v1 "ReContext: Recursive Evidence Replay as LLM Harness for Long-Context Reasoning" (Yanjun Zhao et al., UIUC, 2026) 撰写。