
2022年前后,很多团队发现了一件让人头疼的事。
你花几百万美元训练出一个强大的语言模型,它会写代码、会解数学题、会听指令办事。然后你想让它再学一项新本领,比如医疗问诊,或者某种小语种翻译。结果呢?
新本领学会了,但原来的数学能力掉了一截,代码能力也跟着退步。这就像请了一位家教来给孩子补习英语,补习完发现孩子的数学突然不会做了。
这个现象有个专门的名字,叫"灾难性遗忘"
**灾难性遗忘*:神经网络在学习新任务时,会不自觉地覆盖掉之前学会的能力,哪怕新任务和旧任务毫不相关。
这不是一个新问题。早在1989年,McCloskey和Cohen就在心理学期刊上描述过这个现象。但放在今天的大模型时代,它的分量完全不同了。以前训练一个小模型可能花几天时间,忘了就忘了,重新训练也不心疼。现在预训练一个七十亿参数的模型要烧掉数百万美元的算力,如果后续的每一次"精加工"都会磨损底座能力,这事就变得非常不划算。
那问题到底出在哪?以色列特拉维夫大学和MIT CSAIL的研究团队,在这篇论文里给出了一个挺有意思的几何学解释。
问题出在哪:梯度更新"管得太宽"
先说结论:传统的梯度下降训练方式,天生就带着一个"误伤"机制。
想象你在训练一个简单的线性分类器,输入是二维坐标点,输出是类别。假设你先在四个类别上训练好了模型,这是"预训练阶段"。接着你拿两个新类别继续训练它,这是"微调阶段"。
论文里做了这样一个玩具实验,六个类别,两个阶段,结果非常直观:微调完之后,新学的两个类别分类正确了,但旧的四个类别的分类边界被严重扭曲,而这些旧类别在微调阶段根本没有出现过。
为什么会这样?
关键在于权重更新的数学形式。神经网络里的权重矩阵,本质上是一个把输入向量映射成输出向量的函数。每一步梯度下降,都会给这个权重矩阵加上一个增量,这个增量的形式是当前训练样本的梯度乘以样本本身的转置。
问题就出在这里:这个增量矩阵,一旦生成,就会作用在所有输入上,不管这个输入是不是来自当前的训练分布。
数学上可以证明,如果新样本和旧样本不是完全正交(也就是方向上毫无关联),那这次更新就一定会改变模型对旧样本的输出。而现实中,自然语言、图像这些数据几乎不可能做到完全正交。所以不管你用的是Adam还是更先进的Muon优化器,这个"误伤"问题是结构性的,换优化器也解决不了。
这就好比一个仓库管理员,接到指令要把某个货架重新摆放整齐。如果他动手的时候直接把整个仓库的灯光照明系统重新接线,而不是只调整那一个货架的局部灯光,那其他货架的工作人员肯定会被突然的光线变化搞懵,哪怕他们的货架根本没被动过。如果不做局部化处理,这种"连带伤害"是没法避免的,因为灯光系统本来就是全局共享的资源。权重矩阵就是这个全局共享的"灯光系统",每次调整都会波及所有使用它的输入。
研究团队管这种现象叫全局支持更新(global-support update)
**全局支持更新*:指更新矩阵会作用于输入空间中所有可能的点,而不仅仅是训练数据所在的局部区域。
LSL的核心思路:给权重更新装一个"门禁系统"
既然问题是更新管得太宽,那解法很自然:给更新加一个边界,让它只在训练数据所在的区域生效,这就是论文提出的局部支持学习(Local Support Learning,简称LSL)。
**LSL*:一种后训练框架,通过给每个权重适配器配一个门控函数,让新学的能力只在它自己的数据分布范围内生效,从而避免干扰模型在其他区域已有的能力。
具体怎么做呢?LSL给每个权重矩阵配了两个组件。第一个是标准的权重适配器,这其实就是LoRA
**LoRA(低秩适配器)*:一种参数高效微调技术,不直接修改原始权重矩阵,而是训练一个低维度的小矩阵作为"补丁"叠加上去,大幅减少训练所需的参数量。
这个适配器照常用梯度下降训练,没什么特别的。真正的创新在第二个组件:一个门控函数。它的任务是判断当前这个输入是不是属于新任务的训练分布,如果是,就放行,让适配器生效;如果不是,就关闭,只用原始的预训练权重处理这个输入。
论文里用了一个很形象的建筑比喻:这就像是给仓库货架装了一个感应门。只有持有这次装修许可证(属于新训练数据分布)的工作人员才能用新灯光系统,其他人路过还是用老灯光,互不干扰。
回到前面那个六分类的玩具实验,用LSL重新跑一遍会发生什么?论文的结果显示,新学的两个类别依旧能完美分类,而旧的四个类别的决策边界几乎原封不动,彻底避免了灾难性遗忘。
真正的难题:门怎么学会"认人"
但这里有个特别棘手的地方。
这扇门必须能识别出"这是不是属于我这次训练数据的分布",可是它在训练的时候,手里只有当前阶段的数据,根本没见过以前的数据长什么样。
这就好比你要训练一个保安,让他只放行"本小区住户",但公司只给了你本小区住户的照片,完全没给外来人员的样本。你怎么让这个保安在面对一张从没见过的脸时,大概率能判断出"这人不是本小区的"?
论文里先尝试了一个直觉上很合理的方案:训练一个MLP分类器
**MLP(多层感知机)*:一种最基础的神经网络结构,由多层全连接层组成,常用作简单的分类器。
直接用当前数据当正样本,用一些参考数据当负样本来训练。听起来挺合理,对吧?但实验结果给了一记响亮的耳光:这个MLP门控在分布内数据上表现还不错,可一旦遇到真正没见过的预训练任务数据(比如GSM8K数学题、HumanEval代码题),分类准确率直接掉了14到20个百分点。换句话说,这个保安在面对陌生面孔时,大概率会稀里糊涂地放行。
为什么MLP不行?论文给出了一个相当深刻的理论解释。分类器的训练目标是让正负样本被正确区分,但对于那些"既不是正样本也不是负样本"的全新区域,分类器的决策完全不受训练目标约束,它可以在那片区域随便乱判断,而这恰恰就是旧数据可能藏身的地方。
研究团队把这个现象拆解成两部分:缺陷(deficit)和过剩(excess)
**缺陷与过剩*:缺陷指门没能覆盖到的当前任务数据区域;过剩指门错误地对训练分布之外的区域保持开放。训练目标只能优化缺陷,对过剩完全"盲视"。
这是整篇论文里我觉得最有洞察力的部分。它指出了一个很反直觉的事实:你以为训练一个分类器就能让它"学会边界",但实际上,训练数据之外的世界,分类器完全没有被约束过,它的行为在那里是未定义的,是随机的,甚至可能是灾难性的。
为什么高斯混合模型能解决这个问题
那怎么办?论文给出的答案是用密度估计,具体来说,是高斯混合模型(GMM)
**GMM(高斯混合模型)*:一种概率模型,假设数据是由若干个高斯分布叠加而成的,可以用来估计一组数据点的"密度地图",即哪些区域数据点多、哪些区域数据点少。
GMM的妙处在于它有一个天然的物理特性:高斯分布的概率密度会随着距离中心点越来越远而指数级衰减。这意味着,哪怕GMM只见过当前任务的数据,它在训练数据附近的密度会很高,而在远离训练数据的区域,密度会自动降到接近于零,不需要专门去学习"什么是外面的世界",这个衰减是数学结构自带的。
这就跟手电筒的光斑很像。你拿着手电筒照亮眼前的一小片区域,光斑之外会自然变暗,而不需要你专门去关掉远处的灯。如果换成分类器,它更像是一个开关,要么全亮要么全暗,没有这种"距离越远越暗"的天然衰减特性,所以它在陌生区域的表现完全无法预测。
LSL具体是这样设计的:针对每个权重矩阵,训练两个GMM。第一个叫Φpos,专门拟合当前新任务的数据分布。第二个叫Φneg,拟合一个很小的、通用的参考数据集,这个参考数据集甚至不需要和模型原来的预训练数据有任何关系,论文里提到只用了不到100万个token,相当于Qwen预训练数据量的0.0000067%。
门控的判断规则很简单:对于每一个输入,如果Φpos给出的似然值比Φneg高,就说明这个输入更像是"当前新任务的数据",门打开;反之则说明它更可能是"陌生的旧数据",门保持关闭。
这里有个让人意外的发现。Φneg只用了极少量的通用数据,按理说它不可能覆盖预训练数据的全部范围,为什么还能有效拦截旧数据?论文给出的解释是,门不需要精确覆盖整个预训练分布的支撑集,它只需要捕捉到分布的"宽度"特征。一个狭窄的分布(比如某个专业领域的新任务)和一个宽泛的分布(通用预训练数据)放在一起比较,哪怕后者的样本量很小,它的"宽度"信号依然能被捕捉到。
实验数据证实了这个设计的有效性:加了GMM之后,门在面对分布外的预训练任务数据时,依然会打开大约16%的比例(配合时间平滑后降到5%),但模型整体保留了96.6%的预训练性能(平滑后达到98.8%)。
时间平滑:给门加一个"短期记忆"
GMM解决了主要问题,但还有一个细节没处理好:它是逐token判断的,完全没有时间连续性的概念。
问题在于,真实的数据流里,任务边界不会精确到每一个词都突变。一段关于化学的文本,里面可能夹杂几个和化学关系不大的连接词,如果门逐字逐句地开关跳动,会造成不必要的波动。
论文的解决方案很朴素:用指数滑动平均来平滑门的决策。这就跟温控器不会因为室内温度瞬间波动0.1度就立刻启动空调一样,它会观察一段时间的趋势,避免频繁的无意义开关。
消融实验显示,这个平滑机制确实有用,但贡献相对次要:GMM本身把保留率从76.6%拉到96.6%,是绝对的主力;平滑机制又在此基础上进一步提升到98.8%,是锦上添花的补充。
为什么门要按每个权重矩阵单独设置
还有一个设计选择值得细说:LSL给模型里的每一个权重矩阵都单独配了一个门,而不是在整个模型入口处设一个总闸。
论文专门做了对比实验,把LSL的逐矩阵门换成了一个放在词嵌入层之后的单一路由器,由它统一决定所有适配器是否生效。结果这个单一路由器的表现明显打折扣:在新任务上的学习效果只恢复了LSL提升幅度的50%到77%,在网络安全这个任务上,保留能力甚至出现了退化。
为什么会这样?论文给出的解释是,单一路由器只能依据词嵌入层这种浅层的表面特征做判断,而深层网络里的上下文信息更丰富。逐矩阵的门控可以在每一层都重新评估上下文,一旦某一层的门判断失误,影响范围也只限于那一层,不会像单一路由器的错误那样,一步错步步错,传导到整个网络的所有适配器。
这就像一栋大楼的消防系统,如果只在大门口装一个总探测器,一旦它误判,整栋楼的喷淋系统要么全开要么全关;但如果每层楼都装独立的探测器,一层的误判不会连累其他楼层。
实验结果:在七十亿参数模型上验证
说了这么多设计思路,实际效果怎么样?
研究团队选了Qwen2.5-7B-Instruct这个强基座模型,在三个风格迥异的任务上做微调:网络安全指令调优、英语到伊博语(尼日利亚的一种低资源语言)的翻译、以及化学指令调优(需要理解SMILES分子记号)。
对比的基线方法包括标准LoRA、OP-LoRA(一种通过正交化预训练权重主奇异方向来减少干扰的方法)、以及LwF(通过知识蒸馏惩罚模型输出偏离基座模型的程度)。
评估预训练能力保留的指标用了三个标准测试集:GSM8K测数学推理、HumanEval测代码生成、IFEval测指令遵循能力。
结果相当清楚。在三个新任务上,LSL都能学到接近满血状态的新能力,同时预训练能力的保留几乎是满分。相比之下,标准LoRA虽然学得也不错,但三个任务上都出现了明显的遗忘。OP-LoRA的表现和LoRA几乎一样,论文专门做了额外分析,发现微调更新里只有不到1.7%的能量落在预训练权重的主奇异方向子空间里,这意味着遗忘问题和"是否保护主奇异方向"这件事关系不大,这解释了为什么OP-LoRA没有带来实质性的改善。LwF表现比两个权重约束方法好一些,但依然不及LSL。
更有意思的是多阶段连续学习的实验。研究团队让模型依次学习伊博语翻译、化学、网络安全三个任务。基线方法(LoRA)在学完第一个任务之后,预训练能力的保留率就暴跌了44个百分点,而且后面学新任务的时候,之前学过的任务能力也在持续衰减:翻译任务学完之后又学了两个阶段,性能掉了8%;化学任务学完一个阶段后也掉了5%。更夸张的是,学完翻译任务之后,模型在网络安全这个还没学过的任务上零样本表现也下降了11%,这说明遗忘不仅发生在"旧任务"和"预训练能力"之间,不同新任务之间也会互相伤害。而LSL在整个连续学习过程中,几乎没有出现这些问题。
超参数鲁棒性:学习和遗忘被彻底解耦
传统微调方法有一个让人很头疼的特点:学习率、适配器秩、批大小这些超参数,调得越激进(学得越多),遗忘得往往也越严重。这是一个典型的此消彼长。
LSL的实验显示,这个此消彼长在它身上基本消失了。论文对学习率、LoRA秩、批大小分别做了扫描实验,LSL在各种超参数设置下都能保持满血学习能力,同时保留率几乎不受影响。相比之下,LoRA的表现随着这些超参数的调整明显在学习能力和遗忘程度之间摇摆。
这个发现挺重要的。它意味着调参的人不用再小心翼翼地在"学得够不够"和"忘得多不多"之间走钢丝,这两件事被架构设计给解开了。
效率和规模:这套方案划算吗
一个听起来很美的方法,如果代价高到没法用,那也只是纸上谈兵。论文专门测了效率数据。
在Nvidia B200 GPU上,针对Qwen2.5-7B-Instruct模型,GMM部分只占用13.8MB的额外内存(因为负样本GMM是共享的,每新增一个学习阶段只需要6.9MB)。推理延迟方面,LSL的适配器每次前向传播只多花86毫秒,和标准LoRA基线相比差距不大。训练时间方面,在100万token的数据上训练,加上GMM拟合步骤后,总训练时间是LoRA基线的1.64倍。
论文还测了不同模型规模下的表现,从1.5B到7B参数,LSL在所有规模下都有效,而且规模越大,保留效果越好。LoRA基线虽然也随规模变好,但提升速度明显慢很多,始终落后于LSL。这暗示着这套方法在未来更大规模的模型上可能有更好的发挥空间。
消融实验揭示的本质:局部性才是核心
论文里还做了一个很有说服力的消融实验,用来回答一个根本问题:LSL的效果到底是来自GMM这个具体架构,还是来自"局部支持"这个更一般化的设计思想?
研究团队设计了另一个局部门控方案,叫球体并集(Union of Spheres,UoS),就是把每个训练样本当成一个球心,画一个固定半径的球,所有球的并集就是门控的支持区域。这个方案的局部性是靠构造保证的,完全不依赖密度估计。
实验结果显示,UoS和GMM的保留效果几乎一样好,都接近最优,而前面提到的MLP分类器门控明显落后。这个结果证实了论文最核心的论点:真正起作用的是"局部支持"这个属性,不是GMM这个具体的数学形式。GMM之所以被选为最终方案,是因为它比UoS省内存得多,UoS需要存储大量样本点作为查找表,占用了5.67GB内存,而GMM用参数化的方式只需要13.8MB,差了三个数量级。
写在后面
读完这篇论文,我印象最深的其实不是GMM这个具体技巧,而是那个关于"缺陷"和"过剩"的理论拆解。
很多人(包括我自己之前)对"训练一个分类器来做边界判断"这件事会有一种默认的信任感,觉得只要数据够多、模型够好,分类器自然就能学会一个合理的边界。但这篇论文用很简洁的数学语言指出:训练目标本身只对训练数据覆盖到的区域负责,对训练数据之外的区域,它是完全不受约束的。这个"训练目标的盲区",恰好就是灾难性遗忘真正发生的地方。
这个洞察其实可以推广到很多场景,不只是这篇论文讨论的持续学习问题。任何依赖监督信号来划定边界的系统,都天然存在这种盲区风险。你训练一个异常检测模型,它在训练数据覆盖的"正常"区域表现很好,但在从未见过的异常模式面前,它的行为本质上是未定义的。这篇论文选择用密度估计来填补这个盲区,本质上是放弃了"用判别式方法划边界"的思路,转而用"用生成式方法画出已知区域的轮廓",这是一个值得记住的设计哲学转变。
论文里也坦诚地提到了局限:LSL的适配器没法合并进基础权重,推理成本会随着学习阶段数量线性增长。另外,论文的理论分析是针对单个权重矩阵展开的,扩展到整个多层网络目前只有实验证据支持,没有完整的理论证明。这些都是诚实的留白,也是后续工作可以继续深挖的方向。
如果一个模型能够不断学习新东西又不丢掉旧本领,这意味着什么?也许意味着知识可以真正沉淀在权重里,而不是每次都要塞进越来越长的上下文窗口里。这件事如果做成了,会不会改变我们训练和部署大模型的整个方式?
Q&A
Q1:局部支持学习(LSL)是什么?
A:LSL是一种后训练框架,通过给每个权重适配器配一个基于高斯混合模型的门控函数,让新学的能力只在训练数据所在的局部区域内生效,从而避免干扰模型已有的预训练能力和之前学过的技能,解决灾难性遗忘问题。
Q2:为什么普通的分类器不能当这个门控函数?
A:论文发现用MLP分类器当门控时,在没见过的旧数据上准确率比GMM低14到20个百分点。原因是分类器的训练目标只约束了训练数据覆盖的区域,对训练数据之外的区域完全没有约束,容易在陌生数据上误判放行。
Q3:LSL在实际效果和效率上表现如何?
A:在Qwen2.5-7B模型上,LSL学习新任务(如化学、网络安全)的同时能保留96.6%以上的预训练能力,远超LoRA等基线方法。它只需要额外13.8MB内存,推理每次前向传播仅多花86毫秒,整体开销和标准LoRA相当。
好文章,需要你的鼓励
GeoVerse融合几何潜在扩散模型与Wan2.2视频生成先验,并引入全局空间记忆机制,实现了跨视角一致、生成质量高且推理速度快的新视角合成,在多个数据集上大幅超越现有方法GLD。
本文解读TT-VidT,一种通过分离外观锚点与动作令牌、结合Diff Compression训练目标的视频自监督方法。在24种架构目标组合的受控实验中,仅TT3D与Diff Compression搭配才能进入强动作敏感区,且计算量比同类方法降低近一半。
Q&A Q1:Imprint Reader是什么? A:Imprint Reader是上海人工智能实验室团队开发的模型,通过SMaRT训练方法学会读取另一个模型冻结的权重更新,把参数层面的变化翻译成自然语言描述,判断这次更新到底注入了什么知识或诱导了什么行为习惯。 Q2:MetaEdit能做什么? A:MetaEdit能把Reader对目标行为的梯度信号迁移到原始模型上,不需要任何目标任务的训练数据,只用一句行为描述就能定向调整模型参数,已经在安全性拒绝率调节、数学推理风格转变和工具调用能力提升上验证过效果。 Q3:Imprint Reader读权重更新的准确率高吗? A:目前还不高,知识类目标的Pass@100只有2%,行为类目标是16%,说明自由生成描述的可靠性有限,但相比原始模型完全答不出来的0%基线,已经证明了权重更新的自然语言读取是可行的。
统一多模态模型能看也能画,理论上该会自我修正。本论文提出UMM-Reflection,用整条轨迹的强化学习联合训练诊断和修图能力,GenEval提升12分,且迁移到多个未训练基准,揭示RL提升的是选择可靠性而非新能力。