![]()
新智元报道
![]()
都在卷上下文窗口,以为越大越强。CMU新论文发现:大模型缺的不是长上下文,是「睡一觉」。
这两天,一篇arXiv上的论文在Hacker News上引发热议。
![]()
这篇论文题目为《Language Models Need Sleep》(大模型需要睡觉),作者是来自CMU的Sangyun Lee、Giulia Fanti,以及马里兰大学的Sean McLeish和Tom Goldstein。
![]()
https://arxiv.org/pdf/2605.26099
它要解决的,是一个被整个行业卷疯了的问题:长上下文。
这两年,大模型的上下文窗口从几千token一路扩展到几十万乃至百万级。对前沿模型来说,百万级上下文已经不再罕见。
所有人都默认一条逻辑:窗口越大,模型记得越多,就越聪明。
但这篇论文偏要打破这个行业共识:模型答不对,不是记不住,而是「缺觉」了。
长上下文
可能从一开始就卷错了方向
先说清楚现在主流大模型是怎么处理长文本的。
纯Transformer有个硬伤:注意力的计算量随上下文长度呈平方级增长,缓存占用则线性增长:塞得越多,越烧钱。
于是一些前沿长序列模型开始采用混合架构:注意力负责高保真地读取近期token,再穿插固定大小的「快速权重」(fast weights,可快速更新的轻量记忆)负责压缩存储活跃窗口之外的信息。
注意力+SSM(状态空间模型)的混合设计,如今在大规模前沿模型里已经很常见。这套设计的逻辑是:只要快速权重的存储容量够大,长上下文问题就解决了。
但论文实验结果,直接打脸了这个假设。
![]()
论文核心架构图。当上下文窗口被填满,模型在「驱逐边界」(Eviction boundary)前先做N次离线递归前向传播,反复更新SSM模块中的快速权重(Fast weight)。随后注意力缓存(KV cache)被丢弃,模型仅凭巩固后的快速权重,一次前向就答出「8」。
研究者设计了一组受控实验:在token预算相同、需要存储的信息量固定的前提下,只调一个变量:所需的推理深度。
结果发现,随着推理深度增加,普通的SSM-注意力混合模型性能持续下降。哪怕快速权重的容量明明是够的。
这意味着瓶颈并非「记忆容量」。真正缺的,是把已经被驱逐出缓存的上下文,转化成有用内部状态的那部分计算量。
能记住,窗口塞得下,不等于会推理。整个行业卷了两年的「窗口大小」,可能从一开始就找错了那个最关键的按钮。
模型怎么「睡」?
一次计算调度的重新分配
那论文的解法是什么?让模型「睡一觉」。
这听起来似乎有点玄乎,但背后的机制并不复杂,它的灵感来自生物学:
动物把短期记忆转为长期记忆的过程,被认为依赖海马体回放,尤其发生在睡眠期。睡眠期间动物对外界刺激没有反应,说明这件事的认知收益,值得它付出「断联」的代价。
模型的「睡眠机制」,则是照搬了这个调度逻辑。该机制的触发时机是:当上下文窗口被填满。这时模型不急着清空缓存,而是先进入睡眠模式。
在这段睡眠里,它对累积下来的全部上下文做N次离线递归前向传播,通过一个习得的局部规则,递归地更新SSM模块中的快速权重。
当然,和动物睡觉一样,这个阶段模型不接收任何外部输入token。睡醒之后,KV缓存被清空,模型带着更新过的快速权重继续干活。
这里的关键在于:额外的计算被整体挪到了睡眠阶段。只要这一步赶在缓存驱逐前、或在空闲期完成,模型醒着回答时就仍是一次标准前向传播,推理延迟不会增加。
这才是这套机制最聪明的地方:醒着的时候只管快答,真正费脑子的整理工作,留给睡觉。
![]()
HN上有人点出了这套机制的巧思:定期停下来,把近期上下文写进一个快速权重状态,这一步等于给了模型一段专门的「消化时间」,而不是让它在回答时硬扛。
他更看好E2E-TTT那套做法,这是一种更灵活的持续学习方案。
递归不只为回答
也为记忆
这里你可能会问:让模型「多想几步」,这不是早就有的思路吗?
的确,此前的Looped LM(循环语言模型)、测试时计算(test-time compute),走的都是同一条路:让模型在回答时多绕几圈。
论文里用到的Ouro 1.4B,本身就是一个这样的循环模型。Ouro并非这篇论文新发布的模型,而是此前已有的工作,它采用参数共享的循环架构,让同一批Transformer块反复作用,从而在潜在空间里做迭代计算。
这篇论文的创新之处在于它把「循环」这件事的作用,从输出端挪到了记忆端。
以往的循环模型,把递归计算花在「预测」上:回答问题时多想几步。这篇论文的核心洞见是:递归不仅能用于预测,也能用于记忆巩固。
把读过的token变成好用的记忆,这件事本身就不简单,一次传播未必做得完。就像梯度下降,也是靠一次次迭代,才慢慢把权重调好的。睡眠期多循环几次,就是多给模型几步,让它把上下文嚼得更透,压进快速权重里。
而且和以往的循环模型不同,这个模型回答时根本不用循环——该花的算力,睡觉时已经花完了。以前是回答时多想,现在是睡觉时多想。
不过在Hacker News上,也有人对「睡眠」这个说法提出相当尖锐的质疑:看不出这个方法在「睡眠」期间真的更新了模型权重。
被更新的,似乎只是SSM的状态:任何Mamba类模型每处理一个token都会做的常规更新。这位用户的判断是:论文只是优化了模型,让它在即将驱逐缓存时更充分地利用这个状态而已。
![]()
还有人翻出别的研究于它对比:端到端测试时训练(E2E-TTT),以及Letta团队的「睡眠时计算(sleep-time compute)」。焦点只有一个:去掉「睡眠」这个新包装,它到底比前人多走了几步?
![]()
Letta团队《睡眠时计算》论文提出,让模型在用户提问前离线「思考」上下文,预先算好可能用得上的量,从而压低测试时的计算开销。与本文同属「离线计算」路线,但是另一项独立研究。https://arxiv.org/pdf/2504.13171
但换个角度看,这恰恰说明它踩在一条正在成形的路上。把部分计算从「回答时」前置到「空闲时」,并非这篇论文独创。
离线思考、算力前置,正在成为一条新路线。它和「回答时无限拉长思维链」走的是相反方向:一个把算力往前挪,一个把算力向后堆。
52%的提升从哪来
成本是什么
支撑这个机制的,是一堆扎实的数据。
论文的实验任务有三类:元胞自动机、Depo多跳图检索,以及GSM-Infinite数学推理。
这些任务有个共同点:普通Transformer和SSM-注意力混合模型,在上面都会失败。
第一个数据。在GSM-Infinite的六步运算子任务上,Ouro 1.4B用4次循环后,最终准确率从0.419提升到0.615;更难的八步运算,从0.210提升到0.272。
第二个数据,在滑动窗口驱逐的设置下,使用循环让准确率从0.596一路拉到0.905。论文称之为52%的提升。
![]()
元胞自动机任务上的准确率对比。不循环的基线模型在50亿训练token后仅约10%准确率,2次循环升至约20%,3至4次循环时超过30%。
还有一条规律:增加睡眠时长N,性能会随之提升,而且在最需要深度推理的样本上,增益最大。睡得越久,想得越深。
当然,这52%的数据,对应条件是特定模型(Ouro 1.4B)、特定任务(GSM-Infinite)、特定子集(滑动窗口驱逐设置)上的相对提升,并非「大模型推理能力整体暴涨52%」,不能把这个数字泛化到所有任务、所有模型。
睡眠也是有「代价的」,作者也提到了:训练时需要做N倍更深的前向和反向传播,这会让训练更慢、更不稳定。
大模型要「卷睡觉」了
刚卷完上下文,接下来,AI该「卷睡觉」了。 这意味着AI的「空闲时间」也要变得值钱了,如果这条路走通,改变的可能不只是一个跑分数字。
想象长程的AI智能体、连续多轮对话、超长文档处理这类场景。
模型完全可以在「空闲期」做一件事:把堆积的上下文整理、巩固,折叠进权重。等下一个请求到来时,它不必重新翻一遍历史,而是带着已经消化好的记忆,一次前向给出答案。
「让AI休息」这件事,可能不再只是一个拟人化的比喻,而是会变成一种专门的算力调度策略。
当然,它的约束依然存在:训练成本、稳定性、工程调度,都仍未被解决。
作者也谈到了该论文的局限:这是一篇arXiv预印本,而且,实验模型规模中等偏小,只是方法层面的探索。没人能据此推断这套机制已经能用在GPT、Claude、Gemini这些生产系统上,中间还隔着很长的路。
但它至少提醒了我们:让大模型变强的方式,未必只是让它在醒着的时候算得更多,有时让它闲下来,反而是让它变强的开始。
参考资料:
https://news.ycombinator.com/item?id=48281226%20
https://arxiv.org/pdf/2605.26099
编辑:元宇





京公网安备 11011402013531号