谷歌最新记忆研究:LLM 也需要睡觉,短期记忆怎么变成长期知识?

📅 发布时间:2026/8/1 23:44:31
谷歌最新记忆研究:LLM 也需要睡觉,短期记忆怎么变成长期知识? 一句话讲清楚这篇论文想解决一个很现实的问题 LLM 在对话里明明刚学会了你的项目规则关掉窗口后却像什么都没发生 Google Research 和 Cornell 的答案是让模型也有“白天学习、晚上整理”的节奏。如果你每天都在用 LLM 大概率遇到过一个很拧巴的现象模型在一个长对话里可以“临时学会”很多东西比如你的项目背景、命名习惯、某个私有 API 的使用方式但只要上下文结束这些知识就像没发生过一样。换句话说今天的大模型很擅长即时反应却很难自然地把“刚刚学到的东西”变成“以后还会记得的能力”。这篇论文抓住的正是这个问题。研究团队把当前 Transformer 的记忆系统拆成两个极端 Attention 像短期记忆只要还在 context window 里就能工作 MLP/FFN 像长期记忆存着预训练阶段留下来的知识但部署后基本不再更新。中间缺的是把短期经验稳定转移到长期参数里的机制。论文借用了人类学习里的 sleep analogy 人醒着的时候接收新经验睡眠时 replay 、整理、抽象、压缩再把新记忆接到更稳定的认知网络里。对应到 LLM 作者提出了一个叫Sleep的范式。这里的“休息”并不被动。模型在没有外部输入的时候专门进行两件事■Memory Consolidation。 把高频、脆弱、容易被覆盖的记忆蒸馏到低频、更稳定的参数模块中。■Dreaming。 让模型自己生成 synthetic data 用 RL 选择和训练那些真正能提升能力的“梦”。这听上去有点科幻但论文给出了相当具体的工程设计并在 continual learning 、 long-context understanding 、 knowledge incorporation 、 few-shot abstract reasoning 、 math reasoning 等任务上做了验证。论文提出的 Wake/Sleep 视角 continual learner 没有传统意义上的训练/测试分割而是在 Active/Wake 与 Sleep 两种状态之间循环。大模型的“失忆症”到底在哪里论文开头用了一个很形象的类比 anterograde amnesia 也就是顺行性遗忘。人可以保留过去已经形成的长期记忆也能感知当下发生的事但很难把新的短期经验转成长期记忆。放到 LLM 上这个类比非常贴。当前模型的知识大致来自两处■预训练和 post-training 留在参数里的长期知识■当前 context window 里暂时可用的短期信息。第一部分很稳定但有 knowledge cutoff 也很难频繁更新。第二部分很灵活成本低、上手快但 context 一结束信息就消失。所以问题不是“模型能不能学一点新东西”。它在 context 里当然能学。真正的问题是这些临时学到的东西能不能在不毁掉旧能力的情况下被写入更持久的结构传统路线有几条■重新 pretraining 效果可能好但成本太高也不适合频繁更新■fine-tuning / LoRA 更轻量但连续更新容易引发 catastrophic forgetting ■RAG / long context 能把信息放进输入里却没有真正改变模型自身参数■in-context learning 很灵活但本质仍受 context window 限制。论文的判断是 lifelong adaptation 不能继续沿用“训练阶段结束部署阶段只推理”的旧范式。一个持续学习的模型应该像人一样有Wake time和Sleep time。Wake time 负责接触世界 Sleep time 负责整理自己。Sleep 的核心先固化再做梦整套 Sleep 分成两个阶段。第一阶段是 Memory Consolidation 对应人类睡眠里的 NREM/slow-wave sleep 。它负责把短期、局部、易碎的经验变成更稳定的知识。第二阶段是 Dreaming 对应 REM sleep 。模型会生成 synthetic data 并通过 reinforcement learning 学会挑选能让自己变强的训练样本。Memory Consolidation 的整体流程模型先扩展可用参数容量再通过 Knowledge Seeding 把高频记忆迁移到更低频、更稳定的记忆模块中。这里的“高频”和“低频”来自论文沿用的 Continuum Memory System 视角。可以把模型里的记忆模块想成一排不同更新速度的容器■高频模块更新快适合快速吸收新信息但也容易遗忘■低频模块更新慢适合长期保存抽象知识但不能被随便覆盖■Attention 近似处在极高频一端 context 结束就会丢■传统 FFN/MLP 近似处在极低频一端训练后几乎不更新。Sleep 要做的事就是在这些不同频率的模块之间建立“向下沉淀”的通道。多频率记忆层级高频 FFN 先吸收新信息再按 1k→5k→10k 这样的节奏把知识逐步 consolidation 到更稳定的模块。Memory Consolidation 给新知识留出位置continual learning 最大的麻烦是新知识要写进模型时可能会覆盖旧知识。论文把这个问题归因于容量和干扰如果所有新经验都挤进同一批参数时间一长就会出现 catastrophic forgetting 。所以 Sleep 的第一步避开了全量参数训练改做Parameter Expansion。论文假设每个 MLP block 可以看成 sparse MoE 里面有多个 expert 。睡眠周期到来时模型会在更稳定的低频模块里激活一批新的 low-rank expert 把它们专门分配给从高频模块迁移过来的知识。这有点像给新记忆开一个“新抽屉”■旧 expert 保持冻结避免旧知识被污染■新 expert 被激活用来接收最近一段时间沉淀出来的知识■router 负责选择参与更新的 expert ■consolidation 结束后高频模块里旧的 low-rank 参数可以被 reset 为下一轮新经验腾位置。Sleep cycle 中的 routed expert update router 只选择部分 expert 更新其余 expert 保持 inactive 用局部扩展降低新旧知识干扰。这个设计有两个工程上的好处。第一模型不需要真的动态改变 tensor 维度。论文提到可以预先放好这些参数只是在 forward/backward 里先 mask 掉等 sleep stage 再激活。这比在线上系统里频繁改模型结构要现实得多。第二它把“可塑性”和“稳定性”拆开了。新参数提供 plasticity 旧参数提供 stability 。持续学习系统最怕这两个目标互相打架 Sleep 的设计就是让它们尽量分区。Knowledge Seeding 从小的自己蒸馏到大的自己Memory Consolidation 里最关键的技术叫Knowledge Seeding。传统 distillation 通常是大模型教小模型。 Knowledge Seeding 反过来让一个 smaller self 把已经学到的知识蒸馏给一个 larger self 。这里的 smaller self 指参数尚未扩展、或者某些新参数还没激活时的模型状态 larger self 则是扩展了新 expert 后的模型状态。论文称这个过程为 upward distillation 。直觉上 smaller self 已经在 wake 阶段吸收了一段新经验但容量有限、记忆脆弱 larger self 通过新激活的参数提供更大的存储空间。睡眠时 smaller self 作为 teacher larger self 作为 student 把知识转移过去。这个过程有两个难点■student 比 teacher 更大直接照着 teacher output 学可能学得很表面■sleep 阶段不依赖外部数据不能假设有一批干净标注数据可用。论文的解决方案是 Generalized Knowledge Distillation RL-based imitation learning 。具体做法可以拆成三步1.teacher 先生成一批数据也就是 sleep 阶段里的 replay/dream source 2.student 在 on-policy 设置下生成自己的输出并接受 teacher logits 的 token-level 反馈3.再加入 Learning to Imitate 让 student 学会复现 teacher 的 sampling behavior 避免停留在局部分布拟合。Learning to Imitate 的 reward 又分两部分■semantic reward 看 student 的续写和 teacher 生成内容在语义上是否一致■absolute reward 看 token 层面的编辑距离是否足够接近。我的理解是单纯的 distillation 更像“把答案抄下来”而 imitation learning 更像“学会老师为什么会这样生成”。前者能保留知识后者让新参数真正会调用这部分知识。这也是论文对 sleep analogy 的一次具体落地睡眠会 replay 白天看到的东西也会把经验重新组织成可迁移、可复用的抽象。Dreaming 模型开始自己造训练题Memory Consolidation 解决的是“怎么记住”。 Dreaming 解决的是“怎么继续变强”。这一部分和 SEAL 类工作有联系模型会根据当前任务 context 生成 self-edit 或 synthetic data 然后用这些样本训练自己。论文把这些 synthetic data 称作 dreams 。但直接让模型不断 self-training 有风险。生成质量不稳定时模型会把自己的错误越练越深连续多轮更新还可能带来 catastrophic forgetting 。Sleep 的 Dreaming 阶段做了几件事来缓解这个问题■先从 task context 生成多个 dreams ■MoE router 会额外选一个 random expert 让生成过程带一点“无关知识扰动”鼓励模型组合不同记忆■用 gradient-based data selection 给每个 dream 打分■选 Top-k 高价值 dreams 再混入少量 random samples 保持多样性■对每个 dream 建一个 isolated model instance 用 LoRA 做局部 SFT ■如果这个 dream 让下游任务表现变好 reward 为 1 否则为 0 ■最后用 ReST-EM 优化 dream generation process 。这个流程里最有意思的一点是它没有把 synthetic data 当成越多越好。论文强调的是哪些梦值得留下。一个 dream 的价值不取决于它看起来多流畅而取决于它能不能让模型在任务上真的变强。这对今天很多自我改进方法也有启发模型自己生成训练数据并不稀奇难点在于建立可验证的 selection signal 。实验一 continual learning 不再一学新就忘旧论文先单独评估 Memory Consolidation 不加入 Dreaming 任务是 class-incremental text classification 。数据集包括 CLINC 、 Banking 、 DBpedia backbone 使用 Llama-3B 和 Llama3-8B 。对比方法包括■ICL 相同 continual pre-training 过程但没有 sleep ■EWC 经典 regularization continual learning 方法■InCA 带 external learner 的 in-context continual learning ■Hope 多层 in-context updating baseline 但没有显式 distillation 。从图里的走势看 Sleep 的优势体现在两处最终 accuracy 更高类别不断增加后也掉得更慢。也就是说它解决的重点是“学新类时别把旧类忘光”。CLINC 上的 class-incremental learning 结果 Sleep 在持续接收新类别时保持更高准确率。Banking 数据集结果 Sleep 相比 ICL 、 EWC 、 InCA 、 Hope 更能抵抗连续学习中的性能衰减。DBpedia 数据集结果显式 self-distillation 比只靠 prompt-level adaptation 更稳定。这组实验最重要的点是 Sleep 解释了不同路线在持续学习里的差异■相比 ICL Sleep 把 prompt-level adaptation 转成了 parametric memory ■相比 Hope Sleep 加入显式 self-distillation 抽象能力更强■相比 EWC Sleep 给新知识准备了更干净的落点减少它们挤占旧参数的机会。实验二 long-context 不是只靠更长窗口第二组实验看 long-context understanding 和 in-context learning 。论文使用 MK-NIAH 、 LongHealth 、 QASPER 三个任务对比 ICL 、 DuoAttention 、 Cartridges 并改变 Sleep 的 consolidation stage 数量和最低更新频率。MK-NIAH 结果更多 sleep consolidation stages 带来更好的多 key retrieval 表现。LongHealth 结果 Sleep 在长临床文档问答中体现出更稳定的上下文吸收能力。QASPER 结果该任务中数值越低越好 Sleep 变体整体优于 prompt-only 或压缩 KV 表示的路线。论文观察到两个趋势■consolidation stages 越多 in-context learning 和 long-context understanding 越好■最稳定记忆的更新频率如果提高性能反而下降因为长期记忆变得太“容易动” retention 会变弱。这个结论挺关键。很多 long-context 工作默认把重点放在“窗口变长”或“KV 更高效”。 Sleep 的思路更像是别只把窗口拉长还要让模型在窗口关闭前把真正有用的部分整理进自己身上。长上下文负责“看见” sleep-time consolidation 负责“留下”。实验三新语言、 BABILong 与数学推理论文还做了一个很适合解释 catastrophic forgetting 的任务 continual translation of novel languages 。模型先后接触两个预训练阶段没见过的语言需要把短语翻译成英文。单独学每种语言时 ICL 和 Sleep 都能提升但连续学习两个语言后 ICL 迅速退回到接近预训练行为而 Sleep 保留了更多收益。Novel language continual translation 红点代表单语言学习蓝点代表连续学习 Sleep-3 接近恢复单语言表现。论文还在 BABILong 上评估了长程推理。对比对象包括 GPT-4 、 GPT-4o-mini 、 Llama-8B RAG 以及 RMT 、 ARMT 、 Titans 等长上下文小模型。论文总结称 Sleep 扩展到 10M tokens 时接近 perfect score 。BABILong benchmark Sleep 在极长上下文推理中展现出很强的扩展能力。数学推理实验则使用 Qwen3-1.7B 和 Qwen3-8B 在 AIME-24 、 AIME-25 、 HMMT-25 上比较 Base 、 SFT 、 GRPO 、 OPSD 和 Sleep 。模型方法AIME-24HMMT-25Qwen3-1.7BBase49.825.7Qwen3-1.7BSleep53.229.3Qwen3-8BBase73.842.4Qwen3-8BSleep79.246.1这张表我只抽了两个最直观的列避免手机端表格太宽。完整结果里 Sleep 在 Qwen3-1.7B 上 AIME-25 为 40.2 在 Qwen3-8B 上 AIME-25 为 69.0 整体优于 SFT 、 GRPO 和 OPSD 。消融也比较清楚去掉 imitation learning 、 semantic reward 或 expansion 都会让 Qwen3-8B 的数学表现下降。实验四 Dreaming 对知识写入很关键完整 Sleep 还要看 Dreaming 阶段。论文在 SQuAD factual knowledge incorporation 上做实验模型接触新 passage 后不带 passage 回答相关问题评估它是否真正把事实吸收进模型。核心结果如下方法单段落CPTBase31.931.9No Dreaming33.432.0SEAL46.743.2Sleep-2L48.144.3Sleep-4L48.946.2这里的 CPT 设置更难模型在一次 continued pretraining 中接触 200 个 passages 并在 974 个相关问题上评估。 Sleep-4L 达到 46.2 高于 SEAL 的 43.2 。更有信息量的是消融■removing Dreaming 后单段落从 48.9 降到 35.7 ■CPT 从 46.2 降到 36.2 ■去掉 gradient-based selection 或 random expert 也会有不同程度下降。Dreaming 在这里已经不是锦上添花。没有它模型虽然有 consolidation 但自我生成、筛选、强化新知识的能力明显弱很多。论文还在 few-shot abstract reasoning 上给了一个小表方法成功率ICL0TTT10SEAL72.5Sleep80这个结果很有意思因为它指向了从少量例子里抽象规则的能力。 Sleep 的优势可能来自两部分叠加先把新经验 consolidation 到更稳定的层级再用 Dreaming 生成更能训练规则归纳能力的数据。这篇论文真正值得关注的地方我觉得这篇论文最值得看的地方是它把 continual learning 从单点技巧扩展成一套日程安排什么时候吸收信息什么时候整理记忆什么时候自测。过去讨论模型更新经常会卡在几个局部方案里要么扩大 context 要么做 RAG 要么 fine-tune 要么加 memory module 。 Sleep 的视角更像是在问一个长期运行的智能系统应该怎样安排自己的学习节奏这个问题至少包含四层■时间结构。 什么时候接收外部信息什么时候内部整理■记忆层级。 哪些内容留在短期 context 哪些内容进入低频参数■容量管理。 新知识写入哪里如何避免挤掉旧知识■自我改进。 模型生成的数据如何筛选哪些 synthetic data 真的有训练价值Sleep 给出的答案并不简单但方向很明确模型不能永远只在 wake 状态运行。一个真正持续学习的 LLM 需要有专门的 sleep-time compute 把白天获得的信息压缩、重组、蒸馏、验证。这也让我想到现在很多 Agent 系统的尴尬我们给 Agent 配了 memory 、 database 、 vector store 、 tool logs 但很多时候这些只是外部记录。 Agent 本体并没有真正把经验吸收到可复用的能力里。如果 Sleep 这类方法继续发展未来的 Agent 可能会出现一种新的日常机制■白天和用户交互积累任务轨迹■夜间自动 replay 高价值轨迹■把稳定模式写入参数或 adapter ■生成 synthetic tasks 做自测■删除低价值、重复、冲突的记忆■第二天以更强的状态继续工作。这比“无限堆上下文”更接近 lifelong learning 。也要看清它的边界当然这篇论文还不是一个能直接部署到所有生产 LLM 上的完整方案。最大的现实门槛在模型结构。 Sleep 依赖多频率 memory blocks 、 MoE expert 、可 mask/activate 的参数区域闭源模型用户基本碰不到这些层所以短期内很难靠 API 复现。其次 Sleep-time compute 本身有成本。 Dreaming 阶段要生成多个 synthetic samples 还要做 selection 、 LoRA-style updates 、 reward evaluation 。它可能适合周期性更新而不是每次用户对话后立刻执行。第三论文里的很多实验很有启发但真实开放环境更复杂用户数据噪声、隐私约束、错误记忆回滚、多租户模型隔离、安全对齐都还需要额外机制。最后模型自己生成 dream 再训练自己天然有 self-reinforcement 风险。论文通过 selection signal 和 reward 缓解这个问题但大规模长期运行时仍需要更强的监控和审计。所以我更愿意把 Sleep 看成一个重要范式提案而不是一个已经终结 continual learning 的最终答案。它把问题问对了 LLM 不该只会“当场聪明”还要学会把经验沉淀下来。小结这篇论文可以用三句话收束第一当前 LLM 的核心短板之一是短期 in-context knowledge 很难转成长期 parametric knowledge 。第二 Sleep 把模型生命周期拆成 Wake/Sleep 两个阶段并用 Memory Consolidation Dreaming 对应“固化记忆”和“自我改进”。第三实验覆盖 continual learning 、 long-context 、 knowledge incorporation 、 few-shot reasoning 、 math reasoning 等场景结果支持 sleep-time consolidation 对持续学习有实质帮助。如果未来 LLM 要从“会回答问题的模型”走向“长期陪你工作的 Agent”这种 sleep-time learning 可能会变得越来越重要。白天工作晚上复盘。人类靠这套机制学会世界模型也许也需要类似的节奏。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】