持续学习正在经历一场静默的转型

2014年到2020年之间,如果你去读关于"灾难性遗忘"的论文,会发现大家讨论的问题出奇地统一:一个神经网络学完任务A之后,再学任务B,之前学的东西就会被冲掉。研究者们围着这个问题打转了将近十年,发明了各种花样的方法,有的往内存里存旧数据,有的给参数上枷锁不让它乱动,有的干脆给网络开新的房间放新任务。
但如果你现在去看2025年、2026年最新的论文,会发现一件挺意外的事情。
**持续学习这个词的意思,已经悄悄变了。**
以前问的是"怎么让一个模型不断学新东西还不忘旧东西",现在的问题变成了"一整个系统,包括模型、外部记忆、工具库、交互规则,应该怎么共同进化"。这不是概念偷换,这是这个领域真实发生的转向。一篇来自中国科学院自动化所、新加坡国立大学、清华大学等机构联合完成的综述论文,把这场转向的脉络给梳理出来了,标题就叫《Continual Learning in Transition》,持续学习的转型期。
这篇文章想带你搞清楚这场转型到底发生了什么,以及为什么它可能比表面上看起来重要得多。
老问题:为什么神经网络学了新的就忘了旧的
先说清楚经典持续学习到底在纠结什么。
设想你在教一个模型认猫和狗的图片,它学得挺好。然后你又给它一批新数据,教它认鸟和鱼。学完之后你拿之前的猫狗图片去测试,发现它已经不认得猫狗了。这就是**灾难性遗忘**,学新任务时对参数的更新,把支撑旧任务的那部分权重给覆盖或者搅乱了。
这个问题的核心矛盾,论文里叫**"稳定性与可塑性的权衡"**。
> 可塑性:模型要足够灵活,能吸收新知识。稳定性:模型要足够稳固,不能被新东西一冲就垮。这两者天然对立,你往一边偏就得从另一边扣钱。
围绕这个矛盾,经典方法大致分成四路人马。
一路叫**回放法**,简单说就是留一个小仓库,把之前任务的样本存一部分下来,学新任务的时候混着老样本一起训练,让模型时刻记得老知识长什么样。这就像你搬新家之后,还是每周回老家吃一顿饭,别把老邻居的样子都忘了。
一路叫**梯度法**,代表是GEM(梯度episodic记忆)和OGD(正交梯度下降),它们不直接存数据,而是在计算梯度更新方向的时候,故意避开那些会伤害旧任务的方向。
一路叫**架构扩展法**,比如PackNet、HAT,思路是干脆不共享全部参数,给每个任务开一小块专属空间,或者需要时就长出新的模块,这样任务之间物理隔离,谁也不干扰谁。
最后一路叫**正则化法**,代表作EWC(弹性权重巩固)会去算每个参数对旧任务有多重要,重要的就在更新时上"电子镖铐",让它变化幅度小一点。
这四条路子看起来五花八门,但如果你把它们放在一起看,会发现它们悄悄共享了三个从没被说出口的假设。
第一,学习这件事只发生在训练阶段,模型一旦部署就不再"学"了。第二,能力全部装在模型参数里,没有别的地方能存东西。第三,更新方式永远是反向传播梯度,数据来自外部提供或历史留存,这叫**离策略(off-policy)**,意思是训练用的数据不是模型当下这个策略自己产生的。
这三条假设在过去十年里几乎没人质疑,因为当时的场景就是这样:一个模型,一次训练,一堆离线数据。但现在的大模型和智能体系统把这三条假设一条条撬开了。
撬动第一块石头:学习不再只发生在训练时
这篇综述提出了一个三维框架,分别叫**"何时"(When)、"何处"(Where)、"如何"(How)**,用来描述这场转型。我们先看"何时"这条轴。
经典设定里,学习只有一个阶段:训练。但现在大模型的生命周期被拉长成了三段:预训练、后训练、推理时。而且这三段现在都可能发生"学习"。
**预训练阶段的持续学习**,指的是模型已经在一批基础数据上训练好了,现在想让它继续吸收新的语料,比如新出现的领域知识、新语言、新时间段的信息,但又不想让它把已经学到的东西忘光。这个方向有个挺聪明的做法叫**"学习率重新预热+小比例数据回放"**,简单说就是训练新语料的时候,学习率先拉高再慢慢降,同时混入一小部分老语料,两招搭配下来,一个405M到10B参数规模的模型可以吸收新语料,几乎不损失在原始分布上的表现。
这就像你要重新装修客厅,但不想把卧室震坏。装修队的做法是先把工具调到合适的震动幅度(重新预热学习率),再时不时进卧室检查一下有没有裂缝(回放老数据),而不是猛地一锤子下去再看结果。
**后训练阶段的持续学习**,则关注一个更现实的问题:现在的大模型不是训练一次就完事,而是要经历监督微调、人类反馈强化学习(RLHF)、可验证奖励强化学习(RLVR)等好几轮迭代,每一轮都有可能把前面几轮建立起来的能力磨损掉。
> RLHF:让模型的输出更符合人类偏好的一种训练方式,通过人类打分反馈来调整模型行为。RLVR:类似思路,但反馈信号来自可以自动验证对错的任务,比如数学题答案对不对、代码能不能跑通,不需要人工打分。
研究者们发现了一个挺扎心的现象:模型规模越大(在1B到7B这个区间),持续微调造成的遗忘反而越严重。而且有一部分"遗忘"其实是假象,叫**"虚假遗忘"(spurious forgetting)**,模型底层的知识没真丢,只是任务对齐的表层被打乱了,只要把模型底层的一部分层冻住不让它动,这种遗忘大部分就能避免。这说明表面上看到的能力下降,未必是知识真的消失了,可能只是"调用接口"被搞乱了。
**推理时的持续学习**,这是最颠覆经典框架的一段。经典设定里推理是"只读"的,模型看到输入,给出输出,过程结束,什么都不留下。但现在有一批方法,比如TTT-LM(测试时训练),让模型在推理过程中真的更新一部分参数或者内部状态,把当前看到的信息压缩进"快速权重"里,从而影响接下来的判断。
> TTT(Test-Time Training):在模型实际使用阶段,通过自监督或奖励信号继续更新部分参数或隐藏状态,让模型能"边用边学"。
再往前推一步,TTRL(测试时强化学习)直接让模型根据自己多次采样投票的结果作为奖励信号,在测试阶段自我改进,完全不需要标注数据。这就好像一个学生做题时,虽然没有老师批改,但他把自己十次尝试里出现频率最高的答案当成"大概率对的",反过来强化自己下次这样做的倾向。
如果没有这层推理时更新的能力会怎样?模型面对长时间的对话、持续变化的用户需求、训练时压根没见过的反馈信号,只能一次次从零应对,永远学不会任何东西,哪怕它已经和你聊了一百轮天。
撬动第二块石头:能力不再只能装在参数里
第二条轴叫"何处",问的是能力被存在哪。
经典答案是"参数",能力就是权重矩阵里那些数字。但现在的智能体系统,越来越多地把能力外挂到模型周围的一层结构上,论文把这层结构叫**"harness"(可以理解为脚手架或者外骨骼)**,具体分成三类:记忆、技能、协议。
**记忆**,指的是可以跨会话读写的信息存储,比如对话历史、长期记忆库、检索到的文档片段。这条线的方法进化得挺有意思。MemoryLLM给模型配了一个固定大小的可学习记忆池,模型自己往里面写新知识,不用改动骨干参数。MemoryBank更进一步,借用了心理学里的**"艾宾浩斯遗忘曲线"**,让重要信息随着交互反复被强化,冗余信息逐渐淡化,这相当于把持续学习经典的"稳定性可塑性权衡"从参数层直接搬到了记忆层。
> 艾宾浩斯遗忘曲线:一种描述人类记忆随时间衰退规律的心理学模型,重要或反复接触的信息遗忘得慢,不重要或很少接触的信息遗忘得快。
A-MEM走得更细,把记忆的最小单位切到"原子命题"级别,读写和遗忘都按事实来做,避免整段文字被覆盖导致连带遗忘。MemRL则把记忆更新从"按规则检索"升级成"用强化学习驱动的自我进化"。
**技能**,指的是模型可以主动调用的执行单元,比如外部工具、函数模块、可调用的子智能体。Voyager这个例子特别典型:它让一个智能体在Minecraft游戏世界里探索,把探索过程中写出来的代码当成可复用的技能,存进一个持久化的技能库,库越攒越大,智能体能做的事情就越来越多,而且技能之间是离散的模块,新技能不会干扰旧技能。
如果Voyager把每次学到的操作都直接融进模型参数里会怎样?大概率会遇到经典的灾难性遗忘问题,新技能一多,旧技能就开始互相打架。把技能存成外部可调用的模块,相当于给每个技能发了单独的房间钥匙,谁也不挤谁的地方。
SkillRL更进一步,用强化学习同时优化技能库和策略本身,技能库的成长也开始由任务实际效果来驱动,而不是靠人工规则去筛选。
**协议**,指的是模型和环境交互时遵守的规则和格式,比如系统提示词、规则文件、消息格式。Promptbreeder是这条线上最典型的代表,它用一个LLM去进化提示词本身,通过自我参照的变异机制,让系统提示词变成一个能被任务反馈不断改写的对象。工程实践里,像Cline、Aider、Cursor这些编程助手工具,也在做类似的事,把智能体的行为规则写成文件,随着项目需求变化反复修订。
这三类载体有个共同特点:它们都可以在不改动模型权重的前提下被读取、扩展、重新编排。这意味着持续学习不再只能靠"改参数"这一条路走。
不过论文也很诚实地指出,协议这条线目前研究得还挺薄弱,远不如记忆和技能那样已经形成密集的研究谱系,但它是三类外部化载体里不可或缺的一环。
撬动第三块石头:更新方式不再只靠离策略梯度
第三条轴叫"如何",这条轴的转变发生在两个层面。
第一层转变发生在梯度更新内部,从**离策略**转向**在策略(on-policy)**。这个区别听起来技术,但它其实牵扯到一个非常关键的发现。
> 离策略:训练用的数据来自历史回放、静态语料库、蒸馏目标,跟当前正在更新的模型策略没有直接关系。在策略:训练数据由当前正在被更新的这个策略自己生成,再根据奖励信号进行调整。
研究者Shenfeld等人做了一件挺漂亮的实证工作,他们发现遗忘的程度,和微调后的策略跟参考策略之间的**KL散度**大小直接相关。
> KL散度(Kullback-Leibler Divergence):衡量两个概率分布之间差异大小的一种数学指标,数值越大说明两个分布差得越远。
在策略强化学习在解一个新任务的时候,天然倾向于找到那个"离原来分布最近"的解,也就是KL散度最小的那个解。而离策略的监督微调,则可能收敛到一个跟参考模型相去甚远的分布上。
这个发现挺反直觉的。大部分人会以为强化学习因为涉及更多探索、更多试错,应该比老老实实的监督微调更容易"跑偏",忘记原来学到的东西。但实际情况恰恰相反,在策略强化学习反而是那个更"克制"的选择,因为它的更新目标结构上就偏好离原来行为最近的解。这不是一个可以随便调的超参数,而是这类方法本身自带的一个几何性质。
这就像两种减肥方式。方式一是严格照搬一套完全陌生的食谱(离策略),可能瘦得快,但整个人的饮食习惯全变了,很容易反弹到一个完全不认识的状态。方式二是根据自己现在的口味偏好,微调着来(在策略),每次调整都基于"我现在爱吃的东西"来做小幅度改进,虽然看起来变化更保守,但因为一直贴着原来的习惯走,反而更不容易"面目全非"。
第二层转变,是彻底跳出梯度计算这个框架,论文称之为**"超越梯度的学习"**。这里最成熟的代表是**模型合并(model merging)**。
模型合并的思路是,不去重新训练模型,而是直接在权重空间里把几个已经训练好的模型"加起来"或者按某种规则组合。开创性的工作Task Arithmetic提出了**"任务向量"**的概念,把一个任务专用模型的权重减去基础模型的权重,得到一个向量,然后靠算术组合这些向量就能拼出一个多任务模型。后续的TIES-Merging会去修剪掉那些量级很小的变化,再对齐方向一致的部分来减少冲突。
模型合并对持续学习最大的意义在于,它完全不需要访问历史训练数据就能获得多任务能力,直接解决了经典持续学习里"旧数据不可得"这个核心痛点。
另一个"超梯度"的代表是**零阶优化(zeroth-order optimization)**,只靠前向传播来估计梯度方向,完全不需要反向传播。这条线上有个特别有意思的实证发现,来自ZeroFlow这项工作,它发现零阶优化的更新方式因为自带一种"隐式平滑"的特性,在对抗灾难性遗忘这件事上,效果居然能匹配甚至超过传统的一阶梯度微调。
这个发现和上面提到的在策略强化学习的低KL散度特性,其实是同一类道理的两种体现:更新方式本身自带的某种"温和性",反而是对抗遗忘最有效的武器,比专门设计一套复杂的防遗忘机制更管用。
三条轴交织在一起才是真实的世界
论文特别强调,这三条轴不是互相独立的分类框,很多真实存在的方法同时踩在几条轴线的交叉点上。
Reflexion这个方法就是个典型例子,它同时是"推理时"(何时)、"记忆载体"(何处)、"超越梯度"(如何)三者的组合,它让智能体对自己的失败进行语言化的反思,然后把反思内容直接写入外部记忆,不涉及任何梯度计算。
TTRL则同时占据"推理时"和"在策略"两个坐标,它在部署阶段用模型自己生成的奖励信号来驱动参数更新。
AgentEvolver更极致,它同时横跨参数和记忆两个载体:在策略强化学习负责更新策略参数,同时被筛选出来的高质量轨迹会被存进经验记忆库里。
还有一种更特殊的情况,是一个方法的坐标位置会随时间发生迁移。SKILL0就是这样的例子:它先在外部技能库这个载体上通过强化学习积累可复用的能力,然后用课程学习的方式,把选出来的技能重新"内化"进模型参数里。这意味着同一份能力,先是存在harness上,后来又被搬进了模型内部,这个过程本身就体现了未来"参数与harness双向迁移"的一种可能性。
更大的问题:三层能力载体各有天花板
说完了三条轴,论文在后面几节抛出了一个更本质的问题:现在的能力被分散存在参数、外部记忆、上下文窗口三层里,每一层都有自己的容量上限,这个上限会不会成为发展的瓶颈。
参数层的更新成本最高,需要反向传播和对齐数据,但一旦写入,召回最稳定,能力是真正"内化"的。外部记忆层写入成本低、可解释性高,但每次用都要经过检索这一环,检索带宽决定了容量天花板。上下文窗口是推理阶段最快的通道,但也是最不稳定的,窗口长度有硬性上限,而且存在一个"大海捞针"现象:超长上下文里,模型对不同位置信息的关注度是不均匀的,并不是窗口拉得越长,有效信息密度就线性增长。
论文提出了一个特别值得琢磨的观点:靠不断拉长上下文来替代真正的持续学习,这条路是有天花板的。
有一个具体的反例特别能说明问题:在软件工程这类领域,把丰富的经验压缩成一段文字摘要是很脆弱的,如果压缩过程中把某个"来之不易的优化背后的原因"漏掉了,后面的压缩步骤(比如上下文精简)反而可能悄悄把这个已经解决的问题又搞砸,因为决策背后的逻辑从来没真正进入过摘要文本。
这就好像你把一整年的项目经验写成一页纸的总结交给下一任负责人,总结里写了"我们后来把方案从A改成了B",但没写清楚"为什么当初一定要改成B,改回A会踩什么坑"。下一任负责人拿到这页纸,觉得A看起来更简单,直接改回去了,结果同样的问题又发生了一次。信息压缩得越狠,这种隐性知识的丢失就越容易反复发生。
论文由此推出一个结论:随着任务复杂度上升、推理链条变长,光靠上下文根本扛不住全部的能力积累,更新信号必然要往记忆层和参数层回流。这三层不是互相替代的关系,而是一个按更新速度分工的层级体系。
同样地,检索增强生成(RAG)长期被当作用外部记忆解决持续学习问题的方案,但论文指出它也会衰退:随着对话和任务序列拉长,检索结果会逐渐被过时文档主导,低质量条目不断堆积,跨会话一致性下降。这也是MemoryBank引入艾宾浩斯遗忘曲线的动机所在,外部记忆同样需要一套"主动遗忘"的机制,否则记忆系统会从能力载体慢慢退化成噪音收集器。
工程打磨算不算持续学习
这里论文提出了一个挺值得深想的立场性问题:现在很多让智能体越用越好的手段,比如编程助手里的规则文件、系统提示词的不断迭代、工具库的持续扩充,这些到底算不算持续学习,还是说只是工程师手工调优的产物?
论文的判断是:这些工程实践在"功能层面"确实达成了持续学习的部分目标,但在"机制层面"还不能算是真正的持续学习。理由有三个。
第一,harness提供的是"可被外部编辑的能力",而不是"自我积累的能力"。规则文件可以被人反复修订,让系统行为越来越好,但修订这件事的主体是人,不构成一个由系统自身经验驱动的闭环。
第二,那些真正闭环的方法,比如Promptbreeder、Voyager、AgentEvolver,虽然证明了harness层确实可以承载真正意义上的持续学习,但它们用的更新机制,进化搜索或强化学习,在评估、稳定性和可复现性上还远未成熟。
第三,harness上积累的能力和特定上下文强绑定,迁移性差得多。一个为某个项目写的规则文件,或者为某个框架积累的技能库,一旦换了场景就很难无损迁移,而参数虽然改起来贵,一旦内化了,反而具备相对更好的可迁移性。
这段判断挺重要的一点是,它没有一棒子打死工程实践的价值,而是把"看起来在进步"和"真的在自我学习"这两件事分开了。很多人看到智能体产品越用越顺手,会直觉认为这就是AGI要来了的信号,但这篇论文提醒你,那份顺手很可能大部分来自模型周围那层脚手架被人工打磨得越来越精细,而不是模型本身具备了自主进化的能力。
遗忘不再是单一维度的坏事
经典持续学习里,遗忘是一维的:参数被覆盖了。但在现在这种多层载体的结构下,遗忘至少分成四种面孔:参数层的灾难性遗忘、记忆层的检索衰退和条目老化、上下文层的窗口溢出和注意力稀释、技能与协议层因为场景漂移导致的能力错配。
这四种遗忘的时间尺度、可观测性、可逆性都不一样,很难用一个统一指标去衡量,这也让"遗忘到底发生在哪一层"变得难以定位。论文提出一个挺有启发性的重新框定:把遗忘从"参数层的一次性灾难",重新理解成"跨多层载体的主动压缩与释放过程"。
这个视角转变意味着,未来的持续学习研究,可能不再是单纯地去"防止遗忘",而是要去设计一套统一的标准,决定什么信息该留在哪一层、该以多快的速度被压缩或释放。这套标准现在还不存在,论文认为这正是把"协同进化"从直觉变成理论的核心难点。
长程智能体才是真正的考场
论文特别强调了一个观点:未来评判持续学习好不好,不应该靠静态的、一次性的测试集,而应该靠一个智能体能不能在长时间、多步骤的开放环境交互中,守住目标、追踪状态、纠正错误、积累经验。
静态测试集测的是模型出厂时自带的能力,长程任务测的是运行过程中的净能力增益。一个在固定测试集上表现很好的模型,未必能在几十上百步的交互里不跑偏目标、不丢失状态。
这里有个特别现实的问题叫**误差累积**。一个任务如果要经过几十到几百个步骤,每一步的小错误会沿着调用链条累积放大,第k步一次错误的检索,可能导致第k+1步调用了错误的技能,进而影响后面所有的决策。这种复合误差在经典持续学习的序列学习场景里也有研究,但在LLM智能体系统里出现了新的麻烦。
首先,错误不只发生在参数层,而是发生在记忆、技能、协议、参数组成的复合状态里。其次,大部分harness操作是不可微的,传统基于梯度的敏感性分析用不上了。第三,智能体缺乏训练和评估之间的清晰边界,一个错误的状态可能通过即时反馈被写回记忆,形成一个自我强化的错误闭环。
Reflexion靠语言化的自我反思来纠错,TTRL靠部署时更新来纠错,这证明了抗漂移的路径确实可行,但论文也坦率指出,这两者目前都还是单一机制,缺乏一个统一的框架。
写在后面
读完这篇综述,最让我停下来想的一点,是它对"工程进步是不是等于AGI进步"这个问题给出的那个三点论证。我们太容易被产品体验的提升说服,觉得系统变聪明了就是模型本身在学习,但论文提醒你,很多聪明其实是人工打磨的规则文件和越攒越厚的技能库堆出来的,模型本体可能一点没变。
另一个让我意外的细节,是在策略强化学习"遗忘更少"这件事居然有严格的数学解释,KL散度约束,而不是一个含糊的经验观察。这说明"哪种更新方式更温和"这个问题,原来是可以被精确刻画的,而不只是靠实验跑出来的运气。
论文里那个把遗忘拆成四种面孔的说法也值得记住。以前提到遗忘,脑子里默认就是"参数被覆盖",现在知道记忆会老化,上下文会溢出,技能会因为场景漂移而错配,遗忘原来不是一件事,是四件不同性质的事情叠在一起。
那这四种遗忘最后会不会需要四种完全不同的"解药",还是说存在一个统一的原理能同时管住它们?这个问题现在没人有答案。
Q&A
Q1:持续学习和普通的模型训练有什么区别?
A:普通训练是一次性的,数据固定不变。持续学习面对的是不断变化的数据流,模型要在学新任务的同时不忘掉旧任务,核心矛盾是稳定性和可塑性的权衡,太稳定学不会新东西,太灵活又会忘记旧知识。
Q2:为什么在策略强化学习比传统微调更不容易让模型遗忘?
A:研究发现遗忘程度和微调后模型与原始模型之间的KL散度大小直接相关。在策略强化学习在解决新任务时天然倾向于找到离原始分布最近的解,KL散度小,所以遗忘更轻;而传统的离策略监督微调可能让模型漂移到离原始分布很远的地方。
Q3:记忆、技能、协议这三种外部载体具体指什么?
A:记忆是可以跨会话读写的信息存储,比如对话历史和长期记忆库;技能是模型可以主动调用的执行单元,比如外部工具和可复用的代码模块;协议是模型和环境交互时遵守的规则和格式,比如系统提示词和规则文件。三者都能在不改动模型参数的前提下被编辑和扩展。