让大模型也学会"睡一觉":Google 把 NREM 和 REM 直接搬进了 LLM 训练协议
arXiv: 2606.03979 · 2026-06-02 作者: Ali Behrouz, Farnoosh Hashemi, Vahab Mirrokni(Google Research) 关键词: Sleep Paradigm / Memory Consolidation / Knowledge Seeding / Dreaming / Continuum Memory System
一、开场:你的模型其实从来没"休息"过
你有没有想过一件挺奇怪的事——当下所有大模型,从训练完那一刻起就再也没"睡过觉"。
它们的生命周期只有一个状态:要么在被 SFT/RL 的训练循环里疯狂吃数据,要么在生产环境里 24 小时被 query 怼着推理。中间没有任何停顿用来"消化"。所有"持续学习"的尝试——TTT、SEAL、各种 PEFT 加 retrieval 的组合——本质都是在清醒状态下边干活边学,没有一个真正的 offline 阶段把短期上下文里的零碎经验沉淀到长期参数里。
人脑显然不是这样工作的。神经科学里有一个挺成熟的共识:白天经验进入海马体(高频、易变、容量小),晚上 NREM 阶段大脑把这些痕迹缓慢回放、转写到新皮层(低频、稳定、容量大);REM 阶段则做"梦"——把经验组合、抽象,做无监督的能力打磨。睡眠不是停机,是一种完全不同的处理模式。
这篇 Google Research 的新工作 arXiv 2606.03979 干的事情就是:把这套机制几乎一比一复刻到 LLM 的训练—推理协议里。论文标题简单粗暴——Language Models Need Sleep——但读完会发现它真不是个比喻论文,而是给出了一整套可以工程化的两阶段架构。
我读完最直接的反应是:这套东西的几个零件单拎出来都很有意思——多频率参数分层、用小模型当 teacher 反向蒸馏到大模型、把"做梦"实现成 RL 自合成课程。哪怕你不全盘相信"睡眠"这个比喻,里面单点的工程招式也值得细品。
二、核心摘要
LLM 现在的训练范式只有"清醒"一个模式,导致三个一直没被根治的毛病:长程任务无法真正积累知识、新数据进来会冲掉旧能力(灾难性遗忘)、自我改进缺乏稳定的 offline 通道。这篇论文借神经科学里 NREM/REM 的双阶段睡眠机制,把 LLM 的生命周期切成 Wake 和 Sleep 两段:
- Sleep 内部又分两步:记忆巩固(NREM 类比)用 Knowledge Seeding 把小模型的知识"向上蒸馏"到大模型新增的 MoE 低秩专家上;做梦(REM 类比)用 RL 让模型自己合成课程,从教师采样 + 路由器随机扰动 + 梯度重要性筛选,做无监督的能力打磨。
- 关键骨架是 Continuum Memory System (CMS):把参数按更新频率切成多层,高频层快但易变,低频层慢但稳,巩固就是把高频的有效痕迹沉到低频去。
- 实验数据上,在 Qwen3-8B 数学推理(AIME-24/25、HMMT-25)、长上下文(BABILong 撑到 10M token、QASPER、LongHealth)、类增量分类(CLINC/Banking/DBpedia)、知识融合(SEAL 同台 PK)、Few-shot ARC 上都拿到了对当前 SOTA 的稳定优势。其中 ARC 少样本任务上 Sleep 拿到 80% vs SEAL 72.5% vs TTT 10% vs ICL 0%——这个 gap 真的有点夸张。
我的判断:论文的"睡眠—做梦"叙事是壳,真正硬的是里面的 CMS + Knowledge Seeding + Dreaming 这一套配方。如果你在做持续学习、Test-time training、Self-improving Agent,这篇值得当协议级别的工作仔细读一遍;如果只是关心 LLM 应用层,看图和实验表就够了。
三、问题:现有"持续学习"为什么都半吊子
聊新方法前,先把作者认定的痛点说清楚。
第一个裂缝:长程任务无法真正积累知识。当任务需要跨多文档、多时间步整合时,纯 ICL 的 token 开销和退化曲线大家都见过——超长上下文的 needle 找不回来、长度一拉就掉点。检索 + 上下文拼接是工程妥协,知识从来没有真正沉到模型参数里。
第二个裂缝:直接训新数据会灾难性遗忘。对预训完的模型直接做 SFT 或 RL on 新任务,老能力被覆盖几乎是必然的。EWC 之类的方法做了正则项约束,但效果到一定边界就上不去了。
第三个裂缝:自我改进没有稳定通道。SEAL、TTT、OPSD 之类的 self-improving 工作思路是"模型生成自己的训练数据再去 fit",但这些大多是单步即时的,缺一个明确的"我现在不接业务、专门修炼内功"的协议。
作者的归因挺有意思——这三个裂缝其实有一个共同根源:模型只有一个时间尺度。预训练参数和推理时上下文之间没有中间层,没有一个允许"慢慢消化"的离线状态。Wake 时所有东西都在线、抢同一组参数;想加一个慢速、稳定的存储层,就必须造一个明确的 Sleep 阶段把消化过程隔离开。
这个归因如果你接受,后面的设计就顺得多了。
四、Sleep 范式的整体框架
论文里 Figure 1 这张图概括了核心思路——把 LLM 的生命周期切成 Wake/Sleep 两个交替的阶段:

图 1:模型生命周期的两阶段切分。左侧"Active/Awake"时模型接收新输入、把交互痕迹存到高频参数里;右侧"Sleep"时模型断开外部输入,做两件事——把高频痕迹巩固到低频参数(NREM 类比)、生成合成数据做 RL 自我打磨(REM 类比)。睡眠不是停机,是一种"完全不同的处理模式"。
在这个框架下,参数本身按更新频率分层——这就是 Continuum Memory System (CMS):
- 高频层(fast):每次 Wake 都被更新,容量小、易变、对最新输入响应快;
- 中频层:在某些 Sleep 周期才被刷新;
- 低频层(slow):只在多次 Sleep 巩固后才更新,容量大、稳定、保留长期知识。
CMS 的实现是把每个 MLP 块改成稀疏 MoE,新增的"巩固专家"是低秩的(\(A \in \mathbb{R}^{d \times d_{\text{low}}}, B \in \mathbb{R}^{d_{\text{low}} \times d}\),其中 \(d_{\text{low}} \ll d\)),让总参数量可控。同时通过路由器决定哪些 token 走低频专家、哪些走高频专家——本质上是把 LoRA 风格的"额外参数"和 MoE 风格的"动态路由"做了一个混合。
这一层的设计目标其实就一句话:让模型在不破坏已有能力的前提下,能持续往参数里写东西。
五、记忆巩固:用小模型当老师把大模型教会
这是论文里我个人觉得最反直觉、也最值得单独拎出来讲的一招。

图 2:巩固阶段两步走。上半部分是参数扩展——给现有 MLP 块加新的低秩专家,扩容但不替换原有参数;下半部分是 Knowledge Seeding——用一个较小的"种子模型"作为 teacher,把它在某批数据上的行为蒸馏到刚扩容的大模型上。
Knowledge Seeding:反着来的蒸馏
直觉上的蒸馏永远是大模型→小模型。但 Sleep 在 Wake 阶段记录交互痕迹的是高频小容量参数(你可以理解成"种子模型"),到了 Sleep 阶段反而要把这部分知识写到更大的低频参数里。这个方向论文叫做"Self Knowledge Seeding (SKS)"——自己当自己的老师。
为什么不直接用大模型在新数据上做 SFT?因为新数据通常很少(几十个样本到几个文档级别),直接 fit 大模型容易过拟合且会冲走旧能力。而高频的小种子模型本身参数容量小,对小批量数据的拟合带宽天生更大、噪声更可控;用它作为 teacher 给大模型当锚点,相当于先让小模型把"这批数据该长什么样"刻画清楚,再让大模型学这个刻画。
技术实现上是 GKD 风格的混合蒸馏:
前一项是用真实数据的 off-policy 蒸馏,后一项是从 teacher 采样 on-policy 蒸馏,\(\lambda\) 控制混合比例。\(\mathcal{F}\) 是任意散度(KL、reverse-KL、JS 都可),实验里默认 forward-KL。
Learning to Imitate:再加一层 RL 模仿
光蒸馏 logits 还不够,论文还塞了一个基于 RL 的模仿学习目标。奖励函数是语义和绝对编辑距离的混合:
\(r_{\text{sem}}\) 用一个冻结的奖励模型打分,\(r_{\text{abs}}\) 用归一化的编辑距离硬约束(编辑距离超过阈值 \(z_0\) 直接给 0 奖励)。这套配置的工程意义是:纯语义奖励容易被 reward hacking,加一个绝对距离的硬阈值兜底,能保证大模型生成的内容至少在表层结构上跟 teacher 是对得上的。
最终的 Knowledge Seeding 损失把蒸馏散度和模仿奖励混合:
\(\alpha\) 控制蒸馏 vs 模仿的权重。
我看到这一段的第一反应是:"这玩意儿训练起来稳定吗?"——一个生成式 RL 加一个 KL 正则的混合 loss,超参敏感性听起来就吓人。但作者后面消融数据撑住了——把 RL 的 imitation 项摘掉性能直接掉 2 个点以上,证明这一项不是凑数的。
六、Dreaming:让模型自己出题再做题
REM 阶段的核心问题是:没有新数据怎么继续学?
人做梦时大脑在重组白天的经验、模拟没遇到过的场景。Sleep 把这个过程实现成一套自合成课程:
- 从模型自己采样 m 个"梦境":\(\{\texttt{DREAM}^{(i)}\}_{i=1}^m \sim \texttt{LM}_\theta(\cdot \mid C)\)
- 路由器扰动:在采样过程中,MoE 路由器额外随机选一些"无关"专家进来——相当于强行把不相干的知识混进来当干扰,逼模型学会泛化
- 梯度重要性筛选:用 \(g_{\text{DR}}^{(i)} = \nabla_\theta \mathcal{L}_{SFT}(\texttt{DREAM}^{(i)}, \theta)\) 给每个梦境打重要性分,挑 top-k 加 b 个随机样本
- 奖励:如果某个梦境训完之后下游任务性能上升,奖励 1,否则 0
这个设计让我想起 Self-Reward 和 GRPO,但 Sleep 把它放在了一个明确的"离线阶段"——Wake 时不做 RL、不动这部分参数;只有进入 Sleep 才会跑 Dreaming 循环。这种解耦的好处是 Wake 阶段的推理延迟完全不受影响,所有自我改进的代价都摊到了离线时间。
我比较欣赏的是 step 3 的梯度筛选:直接用对当前模型参数的梯度大小判断"这个梦境对学习有价值",相当于给数据打了一个 active learning 风格的 importance score。比起 self-improving 工作里常见的"全部样本都用"或者"靠 reward 模型筛",这条路在自动化程度和计算开销上都更轻。
七、实验:哪个数字最让人心动
实验铺得相当广——类增量学习、长上下文、持续翻译、数学推理、知识融合、Few-shot 学习全打了一遍。我挑几个 representative 的说。
长上下文:BABILong 撑到 10M token
这个我觉得是最能打动人的一组数据:

图 3:BABILong 长上下文跑分。横轴是上下文长度(log scale,从 4K 一路到 10M token),纵轴是任务准确率。Hope(黄)在 10M 长度仍维持高位,Titans / ARMT(蓝绿)在 1M 后明显衰减,GPT-4o 这一类纯长上下文窗口的模型在 256K 之后基本崩盘。
10M token 的需求场景其实不多见,但能在 10M 长度仍稳定运行说明 CMS 的低频参数确实在做"长期记忆"的工作——不是靠把所有 token 塞进 KV cache 硬扛,而是真的把信息写进了参数。
类增量学习:CLINC / Banking / DBpedia

图 4-1:CLINC150 类增量分类。每次见到新意图后做评估,Hope(蓝色实线)在所有阶段都比 EWC、InCA 高,且后期不掉点,灾难性遗忘几乎被压住了。


类增量这块 Hope 的优势虽然不夸张但很稳——三个数据集都在 ICL/EWC/InCA 之上,且增加巩固阶段(Hope-1 → Hope-3)单调改进。这种稳定性比单点 SOTA 更有意义。
数学推理:Sleep vs OPSD vs GRPO
| 模型 | 方法 | AIME-24 | AIME-25 | HMMT-25 |
|---|---|---|---|---|
| Qwen3-8B | OPSD | 76.6 | 67.4 | 45.1 |
| Qwen3-8B | Sleep | 79.2 | 69.0 | 46.1 |
| Qwen3-1.7B | GRPO | 51.0 | 38.6 | 26.1 |
| Qwen3-1.7B | Sleep | 53.2 | 40.2 | 29.3 |
8B 上对 OPSD 涨了 2-3 个点,1.7B 上对 GRPO 涨了 2-3 个点。AIME/HMMT 这一档的提升幅度不算炸裂但稳定。我的判断是:Sleep 的 Dreaming 阶段相当于多跑了一轮自合成课程的 RL,相当于免费给模型加了一份训练数据——增益的来源没什么神秘。
8B 上的消融数据更有意思:
| 组件 | AIME-24 | AIME-25 | HMMT-25 |
|---|---|---|---|
| Sleep(完整) | 79.2 | 69.0 | 46.1 |
| − 模仿学习(imitation RL) | 76.8 | 67.9 | 45.0 |
| − 语义奖励(保留绝对奖励) | 78.9 | 69.2 | 44.5 |
| − 参数扩展 | 78.2 | 67.9 | 44.9 |
每一项都在贡献。模仿学习这一块的贡献最大(去掉掉 2.4 分),证明前面那个混合奖励 RL 不是噱头。
知识融合:SEAL 是个挺硬的对手
SEAL 是去年自适应 LLM 那条线最强的工作之一,作者给单独安排了一组 PK:
| 设置 | 方法 | 准确率(%) |
|---|---|---|
| 单段落 | 微调(无 Dreaming) | 33.4 |
| 单段落 | SEAL | 46.7 |
| 单段落 | Sleep(Transformer + 4 层) | 48.9 |
| 持续预训练 n=200 | SEAL | 43.2 |
| 持续预训练 n=200 | Sleep(Transformer + 4 层) | 46.2 |
知识融合这块的消融最戏剧——把 Dreaming 整个拿掉,性能从 48.9 → 35.7,掉 13 个点。也就是说在这个任务上,Dreaming 几乎贡献了全部增量。这一点完全符合直觉:知识融合本来就是一个需要"内化"的任务,单纯的蒸馏只能把 teacher 的浅层映射学进来,要真正把新事实编织进既有知识网,就得做合成课程让模型反复触碰。
Few-shot ARC:80% vs 0%
这个差距是论文里最炸的一组:
| 方法 | ARC 准确率 |
|---|---|
| ICL | 0% |
| TTT | 10% |
| SEAL | 72.5% |
| Sleep | 80% |
ARC 是 François Chollet 那套抽象推理评测,对纯 ICL 极度不友好。Sleep 拿到 80% 跟 SEAL 比起来 gap 不算夸张,但跟 ICL/TTT 比是降维打击。我看到这个表的第一反应是:这个 baseline 列表是不是有点'巧'?——ICL 0% 当然合理(ARC 本来就不能靠 ICL),但 TTT 10% 跟一般人对 TTT 的认知差别挺大。理论上 TTT 应该至少有 30-40%。这个我没去深查代码,标个疑点。
长上下文 ICL 的频率消融:图很说话

图 5:CMS 的频率层数消融。横轴是参数频率层数,纵轴是任务性能。三个长上下文任务都呈现出"层数越多 / 最低频率越低,性能越好"的趋势。这其实是在说:长程任务真的需要慢速、稳定的低频参数来托底,单一时间尺度的模型注定吃亏。
Continual translation:旧语言学没忘

图 6:CTNL 任务。红点是单语言训练的性能(上限参考),蓝点是持续学习两种语言后的性能。ICL 在持续学习设定下急剧下降(说明上下文方法根本撑不住跨语言切换),Hope-3 几乎完全恢复到单语言水平——这就是"睡完一觉,旧能力还在"的字面意思。
八、有意思的细节:CMS 的频率到底学到了什么
论文还做了一个我个人很喜欢的可视化——画出不同任务在 CMS 不同频率层的"用量":

图 7:路由器在不同任务上选中的参数频率分布。不同任务确实激活了不同频率的参数——这间接证明 CMS 的"分层"不是摆设,而是真的学到了"什么放在快速记忆、什么放在长期记忆"的归类。

图 8:频率层的另一个统计视角。短期任务(高频)和长期任务(低频)的参数激活分布有明显的区分,证明 CMS 不是把所有信号都摊到同一组参数上。
这种"参数自动按频率分工"的现象,是这篇文章里我觉得最值得单独研究的子问题。换句话说,即使你不接受"睡眠"这个比喻,CMS 这一层也可以独立拿出来用——它给所有想做"长期记忆 + 短期适配"的工作提供了一个很干净的参数组织模板。
九、和已有工作的关系
| 方向 | 代表工作 | 与 Sleep 的差异 |
|---|---|---|
| Test-Time Training | TTT、SEAL、OPSD | Sleep 把"测试时学习"扩展为离线阶段,并引入"小→大"播种 |
| 长上下文记忆 | Titans、ARMT、Mamba 类 | Sleep 把记忆从 forward path 的 KV / hidden state 转到 可写参数 的 CMS |
| 知识蒸馏 | GKD、on-policy distillation | Sleep 反向用:用小学生当老师,给大模型补课 |
| 自我改进 RL | GRPO、Self-Reward、SPIN | Sleep 把自合成课程明确放在"睡眠"阶段,与 Wake/Consolidate 解耦 |
| 持续学习 | EWC、InCA、ER | Sleep 不做正则约束,靠"分层参数 + 离线巩固"绕开遗忘 |
放在更大的 picture 里看,Sleep 其实是把过去几条独立线索(参数分层 / on-policy 蒸馏 / 自合成 RL / 离线巩固)做了一个集成。集成本身不算革命,但把"睡眠"作为一个明确的训练阶段抽象出来,在工程语言上是有创新的——它给了一个清晰的接口让所有这些技巧可以堆在一起。
十、我的判断
亮点: - 把"睡眠—做梦"做成可工程化的两阶段训练协议,比纯比喻更落地。 - "用小模型当 teacher"是反直觉但切中要害的一招。Wake 阶段的高频参数自然就是"小模型",把它当 teacher 蒸馏到大的低频参数上,避免了直接 SFT 大模型的过拟合和遗忘问题。 - CMS 的多频率分层是一个值得拿出来单独研究的子问题,对持续学习社区有外溢价值。 - 实验广度撑得起方法的 claim,BABILong 10M、ARC 80%、知识融合上把 SEAL 摁住,这几个数都挺硬。
疑问: - 真实部署中 Wake/Sleep 调度策略怎么定?论文给的是离线模拟,没谈线上系统如何感知"该睡了"——是按时间触发、按累计交互次数触发,还是按某种"上下文压力"信号触发?这块在工程落地里其实是个非平凡问题。 - Dreaming 的奖励函数仍依赖一个验证器,验证器本身的偏差会被强化。论文跑了几轮 Dreaming 没看到崩溃,但更长 horizon 的自我中毒风险是值得关心的。 - CMS 的稀疏 MoE 在推理时会不会显著拖慢首 token 延迟?论文没有完整 latency 报告。MoE 路由本身对推理工程不友好,加上多层频率参数,部署成本可能比方法本身更让人头疼。 - TTT baseline 在 ARC 上只有 10% 我觉得偏低,但因为没去查作者的 TTT 实现细节,这只是个疑点不是断言。
适合谁读: - 关心持续学习 / 测试时学习 / Self-improving Agent 的研究者,强烈推荐细读; - 想给私有模型做"日级别"知识更新的工程团队,CMS 这一层可以独立借鉴; - 对 LLM 与神经科学类比感兴趣的从业者,可以把这篇当一个"比喻被认真工程化"的案例读。
如果你最近在做长程任务、Agent 持续学习、知识融合相关的事,这篇值得花一晚上细读。它的一些零件——尤其 Knowledge Seeding 的反向蒸馏、Dreaming 的梯度筛选——单独拿出来都可能在你的项目里有用。
论文链接:arXiv 2606.03979
觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我