当ChatGPT等语言模型被要求“多思考一会儿”时,其回答质量确实会提升,但计算成本和响应时间也会随之飙升。这种被称为“测试时扩展”的技术,虽已成为提升AI表现的关键手段,却也暴露出一个工程难题:模型每多生成一个词,都需要重新审视之前所有内容,导致计算量随文本长度指数级增长。斯坦福大学等机构的研究者提出了一种名为“前缀滑动”的创新方法,试图破解这一困局。
传统语言模型依赖“全注意力机制”,即生成每个新词时需回顾此前所有内容。这种机制在短文本中表现良好,但面对长推理时,计算成本会急剧上升。例如,生成十万个词时,模型需处理的信息量是生成一千个词的百倍以上。研究者发现,模型在长推理过程中,实际并不需要记住所有中间步骤,就像人类心算时只需保留关键结果而非每个计算细节。
通过分析Qwen3-1.7B模型在数学竞赛题中的注意力分布,研究者绘制出一条“U形”曲线:模型对开头的前缀(系统指令和问题)和最近生成的几百个词高度关注,但对中间内容几乎忽略不计。这一发现与人类阅读推理小说的体验相似:开头背景和结局关键信息会被牢记,而中间冗长的推理过程则可能被遗忘。
基于这一观察,研究者提出了“前缀滑动”策略:模型在推理时仅保留前缀和最近固定长度的窗口内容,中间部分直接丢弃。例如,若前缀为100个词,滑动窗口设为4096个词,则无论模型生成多少词,每步计算成本始终控制在4196个词以内。这种方法使生成第一个词和第一亿个词的成本相同,理论上允许模型无限期思考,只要问题足够重要。
实验表明,前缀滑动在保持准确率的同时显著提升了速度。在AIME25数学竞赛、GPQA科学问答和MATH500数学题测试中,窗口大小为8192时,模型准确率与全注意力机制相当,但速度快了3倍。处理32000个词时,前缀滑动每秒可生成3291个词,而全注意力机制仅能生成1477个词。
技术细节上,研究者解决了位置编码的难题。当滑动窗口推进时,剩余词的位置编号可选择“继续编号”或“重置编号”。实验显示,两种方案在准确率上差异微小,最终选择了计算成本更低的“继续编号”方案。前缀滑动还被应用于强化学习训练阶段,通过“截断反向传播”技术,仅对推理轨迹的最后一段计算梯度,大幅降低了内存需求。
与其他“省内存”方案相比,前缀滑动优势明显。例如,“last k”方法虽简单,但会重复处理近期内容;“总结法”虽能提炼关键信息,但模型常忽略摘要重新推导;纯滑动窗口则易遗忘任务目标。在AIME25测试中,前缀滑动在准确率和速度的平衡上显著优于其他方法。
然而,前缀滑动并非万能。在代码生成任务中,模型常用大段注释推理,若窗口过小,关键信息会被滑出窗口,导致表现下降。对于短推理任务,前缀滑动加速效果有限。在需要读取外部长文本的场景中,模型也可能因窗口限制无法完整处理信息。
研究者将长文本处理方法分为“有界”和“无界”两类。全注意力机制属于无界方法,计算成本随文本增长持续上升;RNN等架构虽为有界方法,但需重新训练模型。前缀滑动的独特之处在于,它既是有界的,又能直接应用于现有模型,无需额外训练,还可选择性用于强化学习阶段,兼具实用性与灵活性。
这一研究也引发了对“思维链”概念的反思。注意力分布图显示,模型的推理过程并非连贯依赖所有中间步骤,而是更关注开头和结尾。这让人质疑:模型的长思考究竟是真实计算,还是一种自我强化的仪式?代码生成任务中,模型用注释“碎碎念”式推理的行为,更暴露了其与人类思维的相似性——边写边想,而非先规划后执行。未来,或许需要训练模型养成更高效的思维习惯,而非单纯依赖内存管理技巧。









