上下文窗口如何限制大模型的长程推理能力
大模型长程推理的致命短板并非记不住,而是“忘不掉”。由于缺乏主动遗忘机制,模型被迫平等对待窗口内的每个字,导致关键线索被海量噪声稀释,最终在静态的注意力权重中迷失逻辑链条。
可能包含AI生成内容
窗口扩容并未带来理解加深
把一堆无关的文本塞进一个窗口,信息密度会怎样变化?我常盯着早期大模型的评测报告看。报告里的数字很漂亮。几万字的上下文。超长文档解析。多跳问答全对。这里头的热闹持续了快两年。我总觉得需要退一步看。热力学里有个基本规律。系统体积膨胀,内部粒子的平均自由程会拉长。信息处理也一样。窗口拉大不等于理解加深。计算资源在暗中重新分配。注意力机制的权重开始发散。
人类处理长任务的方式很不一样。认知心理学早就划出了一条线。乔治·米勒在上世纪五十年代提出工作记忆的容量大约是七个组块。这个数字后来被修正得更小。四到五个单位。人脑不靠死记硬背堆字数。人脑靠压缩和丢弃。阅读一份长合同或推导一条复杂定理时,视觉信号进入皮层。前额叶负责实时筛选。无关的修饰语被迅速标记为冗余。核心变量被提取出来。剩下的算力留给逻辑推演。这种筛选是有生理代价的。认知负荷一旦逼近极限,推理链条就会出现卡顿。人脑的容错建立在主动遗忘上。忘掉的往往不是关键条件,而是干扰路径。大脑用极低的能耗完成了特征降维。
平等对待在长程推理中失效
大模型没有前额叶。它只有一套固定的矩阵乘法。Transformer架构的核心是自注意力计算。每个词都要和窗口里的其他词算一遍关联度。公式本身很干净。点积、缩放、softmax。输出一个概率分布。问题出在计算开销上。窗口长度翻倍,注意力矩阵的计算复杂度与显存占用会呈平方级增长。早期模型在八千字时就开始明显卡顿。工程师们引入了KV缓存技术。把历史计算结果存在显存里。下次只算新增的token。表面看吞吐量上去了。内存占用却没降。计算图的深度不断增加。模型实际上是在做全量扫描。它没有丢弃任何字。它把每个字都平等对待。
平等对待在长程推理里是个麻烦。
人类遇到干扰项会本能地绕开。模型遇到干扰项只会增加矩阵里的噪声。学术界做过几轮对照实验。把关键信息放在文档开头、中间、末尾。短窗口时模型表现稳定。拉到十万字以上,命中率出现明显波动。中间位置的信息最容易被忽略。两端的信息保留得相对完整。这种分布不是随机的。softmax函数的特性决定了权重分配。长序列会让概率分布趋向平坦。梯度信号衰减。注意力头开始平均用力。关键线索被淹没在背景噪声里。
静态缓存难以追踪动态状态
位置编码的衰减规律放大了这种倾向。旋转位置编码在拉大跨度时,正余弦函数的相位会发生偏移。语义相近的词在高维向量空间里的夹角变大。模型对十页前的限定条件产生模糊。它并非丢失了信息。它只是无法把远距离的向量和当前的生成目标对齐。人类遇到这种情况,会调动工作记忆去重新加载上下文。模型只能依赖静态的权重矩阵。矩阵是死的。它不会根据任务紧急程度动态调整读取优先级。算力全部分摊给每一个历史token。重要和不重要被一视同仁。
这里头有个常被忽略的取舍。扩大窗口是为了装下更多上下文。但上下文不等于有效信号。长程任务需要的是持续的状态追踪。解一道复杂的逻辑题,或者梳理一份三百页的财报。人脑会建立临时变量。不断更新当前假设。大模型的KV缓存是静态的。它记录了过去所有词的嵌入向量。它无法主动标记哪些向量重要。哪些可以暂时搁置。工程师们尝试过滑动窗口。尝试过分块注意力。尝试过稀疏化矩阵。效果有起伏。计算复杂度确实降了。长链条的逻辑连贯性也跟着受损。跳跃式计算会打断语义依赖。模型记不住十页前的限定条件。推演到后半段就开始编造。
架构瓶颈引发误差指数累积
说来也怪,模型越聪明,这种缺陷越明显。参数量上来之后,基础语言质量确实好了。长程推理的瓶颈却卡在同一个地方。注意力权重稀释。有人把问题归结为数据质量。训练集里长文本太少。模型没见过真正的长链条。有人指出架构本身有限制。Transformer天生适合局部关联。全局依赖需要额外模块。两派都有数据支持。改进数据确实能提升长文本表现。引入外部检索模块也能绕过窗口限制。但核心的计算开销还在。只要自注意力矩阵还是全连接,显存和算力的天花板就摆在那。
信息熵的概念能描述这种状态。上下文越杂乱,系统无序程度越高。模型为了维持连贯性,必须在每个生成步骤重新计算全局概率。计算图越来越深。前向传播的注意力信号衰减越来越快。误差累积不是线性的。它在长序列末端呈指数级放大。人类遇到记忆模糊时,会停下来检索外部笔记或回看原文。模型只能硬算。硬算的代价是生成质量断崖式下跌。逻辑链断裂后,模型会调用高频词库进行补偿。句子通顺。逻辑空洞。
线性优化无法跨越逻辑断点
我翻过几篇最近的技术报告。开源社区在做各种变体。线性注意力。状态空间模型。把平方复杂度压到线性。测试跑分很漂亮。长文档问答正确率往上走。代价是局部细节的捕捉变钝了。线性模型擅长宏观概括。遇到需要精确回溯的条款时,容易给出模糊答案。架构调整从来不是免费午餐。降低计算量,就得牺牲精度。提高容量,就得承受噪声。人类的工作记忆容量几万年没变过。我们照样能完成跨学科的复杂论证。靠的不是扩大内存。靠的是把信息结构化。大模型目前还在往缓存里塞字。它学会了排列组合。还没学会主动搭建骨架。
下一次窗口扩到两百万的时候,测试数据会再创新高。
长程推理的断点依然会出现在逻辑转折的地方。注意力分布图会在那里变平。权重会散开。模型会继续往下生成句子。