大语言模型需要“睡眠”来巩固记忆 · AI HOT
Berryxia.AI @berryxia 62
2026-05-26 23:07 ·37天前
AI 摘要 CMU与UMD的研究指出,当前长上下文大语言模型(如Mamba、Jet-Nemotron、Qwen3.5)的瓶颈并非记忆容量,而是“巩固计算”不足。论文《Language Models Need Sleep》提出,可模仿人类睡眠的海马回放机制,在清空前对模型的fast weights进行多次迭代更新(N次forward pass),以提升推理能力。实验表明,该机制在Rule 110元胞自动机及多跳图检索等任务上显著提升了模型性能,且不增加推理延迟。
Berryxia.AI @berryxia · X 2026-05-26 23:07 · 37天前
在 X 看原推 · x.com AI 摘要 CMU与UMD的研究指出,当前长上下文大语言模型(如Mamba、Jet-Nemotron、Qwen3.5)的瓶颈并非记忆容量,而是“巩固计算”不足。论文《Language Models Need Sleep》提出,可模仿人类睡眠的海马回放机制,在清空前对模型的fast weights进行多次迭代更新(N次forward pass),以提升推理能力。实验表明,该机制在Rule 110元胞自动机及多跳图检索等任务上显著提升了模型性能,且不增加推理延迟。
按"memory 够大就能解决"的逻辑,这个任务应该没难度。fast weight 容量足以记住 24 位串。你只要存好就行。
t=0(不演化,纯检索):几乎满分。 t=4:开始往下掉。 t=32:直接趴在 10% 附近,跟瞎猜没差。
注意:序列长度没变,要存的信息也没变,变的只是回答问题前需要的「计算深度」。也就是说,并不是模型"记不住",而是它没有足够的算力,把记住的东西"想清楚"。
真正的瓶颈不是 memory 容量,是 consolidation 计算。
把 context 转译成可用的 weight memory,本身就是一个非平凡的计算过程。它不可能 one-shot 完成。
如果你重新看那张曲线,会有种别扭的感觉:我们这几年砸钱砸算力解决的,是一个不是问题的问题。
大脑早就在做的事,我们一直不让 AI 做 这种「计算受限」的问题,在生物学里其实有非常优雅的解法。
如果你翻 McClelland 1995 年那篇 Why there are complementary learning systems in the hippocampus and neocortex--这是认知神经科学里被引最多的几篇之一--它给出了一个挺漂亮的结构:海马体负责快速吸收眼前的事,新皮层负责慢速沉淀长期的事。两者之间的桥梁,是一个被称作 hippocampal replay(海马回放)的过程,主要发生在睡眠期间。
简单讲:白天你吸收信息,海马体把它们存成短期记忆。到了晚上,特别是慢波睡眠阶段,海马体反复"重播"白天的片段,把它们慢慢转录到新皮层的突触权重里。等你醒来,这些记忆就从"今天的"变成了"我的"。
睡眠是有代价的。一只睡着的动物,不能进食,不能逃跑,不能交配--纯粹的认知机会成本。进化是个抠门到家的优化器,它绝不会保留一个 1/3 时间躺平的状态,除非这个状态给的回报大到无法回避。
研究者从这个隐喻里抽出了一个可以装进 transformer 的具体机制。
"Sleep" 是什么:把 N 次 forward pass 塞进 context 切换的缝隙里 想象一个 hybrid 模型,每读 L 个 token 就要清掉一次 KV cache。论文做的事情是:在清掉之前,先让模型对当前 context 跑 N 次 forward pass。每跑一次,SSM 的 fast weights 就被更新一次,按一条学到的局部规则。
跑完 N 次之后,清空 KV cache。fast weights 留下来。继续读下一段。
到预测的时候,模型只跑一次正常的 forward pass。预测延迟没有任何变化。
这就是它叫 sleep 的原因:所有"额外的思考"都发生在"不响应外界"的那段时间里。用户看不到。用户感觉到的依然是单次 forward pass 的延迟。但模型内部已经把记忆整理好了。
Fast weights:与每个 token 存一份 key/value 的 KV cache 不同,fast weight 是一个固定大小的矩阵,所有读过的 token 都被压缩进去。它更省内存,但天然 lossy--存得下,不一定整理得好。Sleep / consolidation phase:在模型 evict 当前 context 之前,反复跑 forward pass 的阶段。N 是 sleep 的"深度"。N=1 时退化为普通 hybrid 模型,N>1 时多出来的算力全部用于优化 fast weights。
为什么是 N 次而不是 1 次?这里有一个挺反直觉的洞察。
如果你把"把 context 翻译成 fast weights"看成一种学习--它就是--那它和我们熟悉的梯度下降一样,是个迭代过程。Gradient descent 一步走不完一座山。Memory consolidation 一次 forward pass 也整不出一个好的内部表示。
之前的"depth-recurrent"模型也用过类似思路:让模型在预测时多 loop 几次,来获得更深的计算。但那种 loop 的代价是预测延迟变高。
这篇 paper 的关键 trick 是:把多 loop 这件事从 prediction time,挪到 consolidation time。预测时还是单次。loop 全在 sleep 里完成。
像不像考前一晚把书翻熟、第二天交卷只花一支笔的时间?
数据:从"不会"到"会"的临界点 把这个机制装回前面那个让 hybrid 模型趴下的 Rule 110 任务,结果很直白:
信息量没变。序列长度没变。预测延迟没变。变的只是"睡多久"。
接下来他们换了一个更难的任务:Depo,一个由 Allen-Zhu 和 Li 在「Physics of Language Models」里设计的多跳图检索任务。给模型一个被打乱的有向环(最多 75 个节点),然后问"从节点 a 出发,跳 k 步到哪里"。k 越大越难。
这都还是小模型。论文压轴的实验把同样的方法套到两个真实的预训练 LLM 上--Jet-Nemotron 2B 和 Ouro 1.4B--在 GSM-Infinite(一个合成数学推理 benchmark)上微调。问题长度 2000-3300 token,远远超过他们设定的 context window L=2000。
Ouro 这个 1.4B 的小模型,光是多睡几遍,6 步推理的准确率从 41.9% 拉到 61.5%。
最戏剧性的数字在 sliding-window eviction 那一节。他们把窗口砍到 L=512,让 sequence 是窗口的 4-6 倍--这是一个把信息逼到极限的设定。在这种情况下,baseline(1 loop)就算在最简单的 2 步问题上也只有 0.596。加上 sleep 后,飙到 0.905。
52% 的相对提升。 同一个模型,同样的 token 预算,只是醒着的时候少做点,睡着的时候多做点。
这种"几乎免费的提升"在 LLM 领域已经很罕见了。
这不是一个 trick,是个范式拐点 如果你只是把这篇 paper 当作"又一个长上下文优化方法"读,你会错过它真正的意义。
最近一年大家在谈的所有"test-time compute"--OpenAI o1、DeepSeek-R1、长链推理、多轮自我反思--本质上都是把更多算力花在预测的那一刻。模型在跟用户对话时多想几秒,多输出几千个 token 的 reasoning trace,换更准的答案。
这条路的隐性代价用户都在承担:延迟。你看 o1 转半天才吐答案,那个圈圈就是你的算力账单。
这篇 paper 提出了另一条线:consolidation-time compute。算力不花在用户等待的时候,花在 context 还没结束、还在被读取的间隙里。
Test-time compute:算力 = 用户等待的时间。每多想一秒,用户多等一秒。 Consolidation-time compute:算力 = 模型"消化"信息的时间。用户什么都没看见,只感受到回答更靠谱了。 一个人在你问问题时陷入长考--是 test-time compute。 同一个人头一晚把材料看熟--是 consolidation-time compute。
两种都是「多算」,但谁更让人愿意合作,你心里有数。
更深一层:sleep-time 不是"反正模型闲着不如让它转一下"。它是必需的工作时间。
睡眠剥夺的研究在生物学里有相当深的积累。Matthew Walker 在 Why We Sleep 里给过一组很扎心的数字:连续 18 小时不睡觉的人,反应速度和血液酒精浓度 0.05% 的人接近。他们的大脑没"满",他们的大脑只是没机会整理。
我们正在用同样的方式拖垮我们的 AI。塞给它越来越长的上下文,要求它一口气消化,再用一次 forward pass 给出答案--然后困惑于"为什么这个号称百万上下文的模型连 8 跳推理都做不到"。
它做不到不是因为不够大。它做不到是因为我们从来不让它合眼。
一个被工作伦理污染的智能观 ML 这个行业有一个非常深的、几乎从来没被说出口的隐性假设:算力花在 inference 之外,是浪费。
所以我们把模型搞得越来越大,越来越能在一个 forward pass 里命中答案。我们鼓吹"零样本",我们鼓吹"上下文学习",我们对"模型不需要训练就能解决新任务"这件事抱有近乎宗教的好感。
最复杂的认知系统--人脑--把 1/3 的时间用在"不响应外界刺激"上。这段时间里它不能进食,不能逃跑,不能学习新事物,不能交配。如果智能的本质是"在一次 forward pass 里搞定一切",那进化早就该把睡眠淘汰掉了。
但它没有。所有有大脑的动物都睡觉。从果蝇到鲸鱼。睡眠不是 bug,是 feature,而且是认知架构里最不可替代的 feature 之一。
我们之所以一直忽略这一点,可能不是技术原因。是文化原因。
24/7 always-on 是硅谷推销给世界的工作伦理。我们把它默认装进了我们对智能系统的想象里。我们做 chatbot 时希望它"随时响应"。我们做 agent 时希望它"持续在线"。我们做 LLM 评估时几乎没有任何指标在意它"是否需要离线整理时间"。
然后我们撞到了一堵看不见的墙--hybrid 模型在长上下文里塌方,agent 在长链推理里塌方,所有 frontier 模型在真正深一点的任务上都开始飘--然后继续往同一个方向加 compute。
这篇 paper 提供的不只是一个新算法。它提供了一个被我们集体忽略的维度:
智能还包括"在被允许离线时,能不能把信息整理好"。
这是个让人有点不舒服的视角。因为它意味着:未来真正强的 LLM,可能不是一直在线的那种,而是有清醒期、有睡眠期、有做梦期的那种。它会在某些时刻"对外界无响应",换来的是更靠谱的回答。
听起来像科幻。但其实--做出来了。CMU 和 UMD 的这几个研究者,已经把它跑通了。
结尾 这篇论文的方法本身远未成熟。训练成本随 N 线性增长。在 sequence 维度上不能完全并行化。论文自己列了一堆 limitation。
如果你最近两年看 LLM scaling,会发现 frontier 在悄悄地从 "更大的模型" 转向 "更聪明地花算力"。我们已经知道:算力花在 pretraining 里能换 capability,花在 inference 里能换 reasoning。这篇论文加了第三个抽屉:花在 sleep 里能换深度。
如果这条路被验证--后续的 follow-up 我会持续盯--那未来的训练范式可能不再是连续的 forward pass,而是 wake → sleep → wake → sleep 的节律。
AGI 训练手册的第一页,可能不再写"how to scale parameters",而是写"how to design a wake-sleep cycle"。
那一刻,我们对智能的定义会再退一步,离生命近一步。
下一次,有人跟你说他们的模型在长上下文上表现很差,你可以问一句:
原文来源:Language Models Need Sleep · alphaXiv 2605.26099
Hybrid 架构就是干这个的:用 attention 抓近期的精度,用 SSM(state-space model)压缩远期的记忆。
一种是 KV cache,一种是 fast weights,两条腿走路。你不再受限于上下文窗口大小,理论上可以一直读下去。
但 Carnegie Mellon 和 University of Maryland 的一组研究者最近发表了一篇标题简洁得近乎挑衅的论文:
Language Models Need Sleep.
而且更尴尬的是,他们用一系列实验把"为什么需要"讲清楚了。读完之后,你会发现整个行业可能一直在按错的方向用力。
我们一直在解决一个不是问题的问题 近几年关于长上下文的 narrative 高度统一:memory 不够大。所以解决方案就分两路。一路是把窗口拉长--从 4k 到 32k,到 100 万,到 1000 万。另一路是把存储压缩--把 attention 的二次复杂度,换成 SSM 这种线性复杂度的 fast weight 存储。Hybrid 模型属于第二条路。
听起来无懈可击。Memory 不够大那就加 memory,要么直接加,要么换种更省的方式存。
研究者搞了一个非常小、非常干净的 toy task:把一个叫 Rule 110 的元胞自动机当作输入。Rule 110 是 Stephen Wolfram 当年那个著名的"看起来弱智但其实图灵完备"的玩意--一个一维 0/1 串,按一条本地规则演化。它的关键特性是:预测它 t 步以后的状态,是个 P-complete 问题,没有已知的并行捷径。
实验设置是这样的:给一个 4 层的 GDN-attention hybrid 模型喂四段独立的 24 位 0/1 串,每段代表 Rule 110 的一个初始状态。喂完之后,模型必须预测每段在 t 步演化后的第一位。这里 t 就是推理深度。
关键的"陷阱"在于:每读完 24 个 token,强制清空 KV cache。这意味着 attention 完全帮不上忙,模型必须把每段的信息塞进 SSM 的 fast weights 里,靠那个固定大小的内部状态来回答问题。
按"memory 够大就能解决"的逻辑,这个任务应该没难度。fast weight 容量足以记住 24 位串。你只要存好就行。
t=0(不演化,纯检索):几乎满分。 t=4:开始往下掉。 t=32:直接趴在 10% 附近,跟瞎猜没差。
注意:序列长度没变,要存的信息也没变,变的只是回答问题前需要的「计算深度」。也就是说,并不是模型"记不住",而是它没有足够的算力,把记住的东西"想清楚"。
真正的瓶颈不是 memory 容量,是 consolidation 计算。
把 context 转译成可用的 weight memory,本身就是一个非平凡的计算过程。它不可能 one-shot 完成。
如果你重新看那张曲线,会有种别扭的感觉:我们这几年砸钱砸算力解决的,是一个不是问题的问题。
大脑早就在做的事,我们一直不让 AI 做 这种「计算受限」的问题,在生物学里其实有非常优雅的解法。
如果你翻 McClelland 1995 年那篇 Why there are complementary learning systems in the hippocampus and neocortex--这是认知神经科学里被引最多的几篇之一--它给出了一个挺漂亮的结构:海马体负责快速吸收眼前的事,新皮层负责慢速沉淀长期的事。两者之间的桥梁,是一个被称作 hippocampal replay(海马回放)的过程,主要发生在睡眠期间。
简单讲:白天你吸收信息,海马体把它们存成短期记忆。到了晚上,特别是慢波睡眠阶段,海马体反复"重播"白天的片段,把它们慢慢转录到新皮层的突触权重里。等你醒来,这些记忆就从"今天的"变成了"我的"。
睡眠是有代价的。一只睡着的动物,不能进食,不能逃跑,不能交配--纯粹的认知机会成本。进化是个抠门到家的优化器,它绝不会保留一个 1/3 时间躺平的状态,除非这个状态给的回报大到无法回避。
研究者从这个隐喻里抽出了一个可以装进 transformer 的具体机制。
"Sleep" 是什么:把 N 次 forward pass 塞进 context 切换的缝隙里 想象一个 hybrid 模型,每读 L 个 token 就要清掉一次 KV cache。论文做的事情是:在清掉之前,先让模型对当前 context 跑 N 次 forward pass。每跑一次,SSM 的 fast weights 就被更新一次,按一条学到的局部规则。
跑完 N 次之后,清空 KV cache。fast weights 留下来。继续读下一段。
到预测的时候,模型只跑一次正常的 forward pass。预测延迟没有任何变化。
这就是它叫 sleep 的原因:所有"额外的思考"都发生在"不响应外界"的那段时间里。用户看不到。用户感觉到的依然是单次 forward pass 的延迟。但模型内部已经把记忆整理好了。
Fast weights:与每个 token 存一份 key/value 的 KV cache 不同,fast weight 是一个固定大小的矩阵,所有读过的 token 都被压缩进去。它更省内存,但天然 lossy--存得下,不一定整理得好。Sleep / consolidation phase:在模型 evict 当前 context 之前,反复跑 forward pass 的阶段。N 是 sleep 的"深度"。N=1 时退化为普通 hybrid 模型,N>1 时多出来的算力全部用于优化 fast weights。
为什么是 N 次而不是 1 次?这里有一个挺反直觉的洞察。
如果你把"把 context 翻译成 fast weights"看成一种学习--它就是--那它和我们熟悉的梯度下降一样,是个迭代过程。Gradient descent 一步走不完一座山。Memory consolidation 一次 forward pass 也整不出一个好的内部表示。
之前的"depth-recurrent"模型也用过类似思路:让模型在预测时多 loop 几次,来获得更深的计算。但那种 loop 的代价是预测延迟变高。
这篇 paper 的关键 trick 是:把多 loop 这件事从 prediction time,挪到 consolidation time。预测时还是单次。loop 全在 sleep 里完成。
像不像考前一晚把书翻熟、第二天交卷只花一支笔的时间?
数据:从"不会"到"会"的临界点 把这个机制装回前面那个让 hybrid 模型趴下的 Rule 110 任务,结果很直白:
信息量没变。序列长度没变。预测延迟没变。变的只是"睡多久"。
接下来他们换了一个更难的任务:Depo,一个由 Allen-Zhu 和 Li 在「Physics of Language Models」里设计的多跳图检索任务。给模型一个被打乱的有向环(最多 75 个节点),然后问"从节点 a 出发,跳 k 步到哪里"。k 越大越难。
这都还是小模型。论文压轴的实验把同样的方法套到两个真实的预训练 LLM 上--Jet-Nemotron 2B 和 Ouro 1.4B--在 GSM-Infinite(一个合成数学推理 benchmark)上微调。问题长度 2000-3300 token,远远超过他们设定的 context window L=2000。
Ouro 这个 1.4B 的小模型,光是多睡几遍,6 步推理的准确率从 41.9% 拉到 61.5%。
最戏剧性的数字在 sliding-window eviction 那一节。他们把窗口砍到 L=512,让 sequence 是窗口的 4-6 倍--这是一个把信息逼到极限的设定。在这种情况下,baseline(1 loop)就算在最简单的 2 步问题上也只有 0.596。加上 sleep 后,飙到 0.905。
52% 的相对提升。 同一个模型,同样的 token 预算,只是醒着的时候少做点,睡着的时候多做点。
这种"几乎免费的提升"在 LLM 领域已经很罕见了。
这不是一个 trick,是个范式拐点 如果你只是把这篇 paper 当作"又一个长上下文优化方法"读,你会错过它真正的意义。
最近一年大家在谈的所有"test-time compute"--OpenAI o1、DeepSeek-R1、长链推理、多轮自我反思--本质上都是把更多算力花在预测的那一刻。模型在跟用户对话时多想几秒,多输出几千个 token 的 reasoning trace,换更准的答案。
这条路的隐性代价用户都在承担:延迟。你看 o1 转半天才吐答案,那个圈圈就是你的算力账单。
这篇 paper 提出了另一条线:consolidation-time compute。算力不花在用户等待的时候,花在 context 还没结束、还在被读取的间隙里。
Test-time compute:算力 = 用户等待的时间。每多想一秒,用户多等一秒。 Consolidation-time compute:算力 = 模型"消化"信息的时间。用户什么都没看见,只感受到回答更靠谱了。 一个人在你问问题时陷入长考--是 test-time compute。 同一个人头一晚把材料看熟--是 consolidation-time compute。
两种都是「多算」,但谁更让人愿意合作,你心里有数。
更深一层:sleep-time 不是"反正模型闲着不如让它转一下"。它是必需的工作时间。
睡眠剥夺的研究在生物学里有相当深的积累。Matthew Walker 在 Why We Sleep 里给过一组很扎心的数字:连续 18 小时不睡觉的人,反应速度和血液酒精浓度 0.05% 的人接近。他们的大脑没"满",他们的大脑只是没机会整理。
我们正在用同样的方式拖垮我们的 AI。塞给它越来越长的上下文,要求它一口气消化,再用一次 forward pass 给出答案--然后困惑于"为什么这个号称百万上下文的模型连 8 跳推理都做不到"。
它做不到不是因为不够大。它做不到是因为我们从来不让它合眼。
一个被工作伦理污染的智能观 ML 这个行业有一个非常深的、几乎从来没被说出口的隐性假设:算力花在 inference 之外,是浪费。
所以我们把模型搞得越来越大,越来越能在一个 forward pass 里命中答案。我们鼓吹"零样本",我们鼓吹"上下文学习",我们对"模型不需要训练就能解决新任务"这件事抱有近乎宗教的好感。
最复杂的认知系统--人脑--把 1/3 的时间用在"不响应外界刺激"上。这段时间里它不能进食,不能逃跑,不能学习新事物,不能交配。如果智能的本质是"在一次 forward pass 里搞定一切",那进化早就该把睡眠淘汰掉了。
但它没有。所有有大脑的动物都睡觉。从果蝇到鲸鱼。睡眠不是 bug,是 feature,而且是认知架构里最不可替代的 feature 之一。
我们之所以一直忽略这一点,可能不是技术原因。是文化原因。
24/7 always-on 是硅谷推销给世界的工作伦理。我们把它默认装进了我们对智能系统的想象里。我们做 chatbot 时希望它"随时响应"。我们做 agent 时希望它"持续在线"。我们做 LLM 评估时几乎没有任何指标在意它"是否需要离线整理时间"。
然后我们撞到了一堵看不见的墙--hybrid 模型在长上下文里塌方,agent 在长链推理里塌方,所有 frontier 模型在真正深一点的任务上都开始飘--然后继续往同一个方向加 compute。
这篇 paper 提供的不只是一个新算法。它提供了一个被我们集体忽略的维度:
智能还包括"在被允许离线时,能不能把信息整理好"。
这是个让人有点不舒服的视角。因为它意味着:未来真正强的 LLM,可能不是一直在线的那种,而是有清醒期、有睡眠期、有做梦期的那种。它会在某些时刻"对外界无响应",换来的是更靠谱的回答。
听起来像科幻。但其实--做出来了。CMU 和 UMD 的这几个研究者,已经把它跑通了。
结尾 这篇论文的方法本身远未成熟。训练成本随 N 线性增长。在 sequence 维度上不能完全并行化。论文自己列了一堆 limitation。
如果你最近两年看 LLM scaling,会发现 frontier 在悄悄地从 "更大的模型" 转向 "更聪明地花算力"。我们已经知道:算力花在 pretraining 里能换 capability,花在 inference 里能换 reasoning。这篇论文加了第三个抽屉:花在 sleep 里能换深度。
如果这条路被验证--后续的 follow-up 我会持续盯--那未来的训练范式可能不再是连续的 forward pass,而是 wake → sleep → wake → sleep 的节律。
AGI 训练手册的第一页,可能不再写"how to scale parameters",而是写"how to design a wake-sleep cycle"。
那一刻,我们对智能的定义会再退一步,离生命近一步。
下一次,有人跟你说他们的模型在长上下文上表现很差,你可以问一句:
原文来源:Language Models Need Sleep · alphaXiv 2605.26099