这项由耶路撒冷希伯来大学、以色列理工学院、伊利诺伊大学厄巴纳-香槟分校及南加州大学联合开展的研究,以预印本形式于2026年4月16日发布在arXiv平台,论文编号为arXiv:2604.15574。有兴趣深入了解技术细节的读者可以通过该编号检索原文。

每当我们使用ChatGPT或类似的AI助手时,偶尔会发现它们自信满满地说出一些错误的事实——把某个真实城市的位置说错,把一位名人的出生地张冠李戴。这类现象有个专门的名字叫"幻觉"(hallucination),是目前AI领域最让工程师头疼的问题之一。大多数人以为这只是模型"学习不够"造成的,然而这项研究揭示了一个更出乎意料的真相:很多时候,AI在接受"补课"(微调)之后,反而把自己原本就会的知识给"忘"了。更关键的是,研究团队不仅找出了背后的原因,还给出了切实有效的解决方案。

以一个学生为核心比喻来理解整项研究会容易得多。假设有个学霸同学,在高中阶段积累了扎实的历史、地理和文学基础知识。毕业后,他参加了一个专门学习新编程语言的集训营。集训结束之后,他的编程能力确实提高了,可当你再问他"法国的首都是哪里?"时,他却支支吾吾说不准了。这种现象就是研究者所说的"事实遗忘",而集训营里学到的大量新知识正是让他忘掉旧知识的罪魁祸首。这项研究的核心任务,就是搞清楚集训营里究竟发生了什么,以及如何让他在学新知识的同时不丢掉旧知识。

一、学霸为什么会"忘事"——问题的本质

要理解这项研究,先要了解大语言模型是怎么"学习"的。在最初的预训练阶段,模型读取了海量的互联网文字,把人类世界的各种事实和知识"压缩"到了数十亿个参数里,就像把一座图书馆的内容都记进脑子里。这个阶段结束后,模型已经知道"巴黎是法国首都"、"鲁迅是中国著名作家"等无数事实。

然而,预训练完成的模型还不太懂得"好好说话"——它不知道用问答格式、对话格式和用户交流。于是工程师们会进行第二阶段的训练,称为"有监督微调"(Supervised Fine-Tuning,简称SFT)。这就像是让图书馆里的百科全书参加一个演讲培训班,学会用流畅清晰的方式回答问题。

问题就出在这个培训班上。当培训班的教材里包含了模型此前从未见过的新事实时,模型在学习这些新知识的过程中,会悄悄损坏它原本已经记住的旧知识。结果就是:它学会了新内容,却把老底子"覆盖"了一部分,开始对原本答得很好的问题给出错误答案——幻觉由此而生。

研究团队把这个现象套入了一个经典的学习理论框架,叫做"稳定性-可塑性困境"(stability-plasticity dilemma)。可塑性指的是学习新东西的能力,稳定性指的是保住旧知识的能力。通常情况下,这两者是此消彼长的关系,就像一块橡皮泥,你捏它越多它越容易变形,但原来的形状也越难保留。

为了精确研究这个问题,研究团队建立了一个非常精巧的实验框架。他们使用了一个叫做ENTITYQUESTIONS的数据集,这个数据集包含了大量来自维基百科的事实问答,例如"某某作品的语言是什么?"或"某某地方属于哪个国家?"。接着,他们使用一个名为SLiCK的方法,把每道题对模型来说分成四个等级:模型每次都能答对的(HighlyKnown,称为"熟知事实")、有时能答对的(MaybeKnown)、偶尔答对的(WeaklyKnown)、以及从来答不对的(Unknown,称为"未知事实")。

实验时,训练集由两部分混合而成:一部分是模型已经熟知的事实,作用是教模型用问答格式正常对话;另一部分是模型完全不知道的新事实,作用是测试模型学习新知识的能力。同时,另一批模型熟知的事实被单独留出来作为"哨兵",专门用来监测模型的旧知识是否在训练过程中被悄悄损坏。这个设计让研究团队可以清晰区分三件事:模型是否学会了答题格式、模型是否学会了新事实,以及模型是否在这个过程中忘掉了旧事实。

实验结果相当直观。训练开始后的头几个阶段,模型迅速掌握了问答格式,"哨兵"题的准确率也相应攀升,最高达到了93%。然而随着模型开始把新事实真正"消化进去",哨兵题的准确率就开始缓慢但稳定地下滑,最终下降了大约15个百分点。对比实验证实了这一点:当研究者把训练集中的新事实全部去掉,只用模型已知的事实来训练时,哨兵题的准确率从头到尾都保持稳定,毫无下滑迹象。由此可以确定,让旧知识受损的元凶正是新知识的学习过程,而非微调本身。

二、冻结部分"记忆回路"——第一种解决方案

找到了问题的源头,研究团队开始寻找解决方案。他们的第一个思路来自一个有趣的发现:大型语言模型内部并非铁板一块,不同类型的神经网络层承担着不同的职责。

模型内部大致有两类关键层:负责处理"关系和注意力"的注意力层(Attention Layers),以及负责存储和提取具体事实的前馈网络层(FFN Layers,也叫Feed-Forward Network)。可以把前馈网络层比作图书馆的书架,上面存放着具体的百科知识;而注意力层则像是图书馆员,负责根据问题找到正确的书架位置。

基于这个区别,研究团队做了一系列"局部冻结"实验。在训练时,他们分别尝试只更新注意力层、只更新前馈网络层,以及同时更新所有层,然后观察三种方案对新知识学习和旧知识保留的不同影响。

结果非常有启发性。当只更新前馈网络层时,模型的表现和正常全量训练几乎一模一样——它成功学会了新事实,但旧知识的损失幅度也与全量训练相当,两者的"遗忘"程度紧密绑定在一起。相反,当只更新注意力层时,情况发生了戏剧性的逆转:模型几乎完全没有学到任何新事实(新事实的准确率仅约1%),但旧知识的保留却极为完好,哨兵题准确率接近"从不学新东西"时的上限水平,同时模型仍然顺利掌握了问答的对话格式。

这意味着,如果在某些场景下,你根本不希望模型通过微调学新事实——比如对一个企业内部助手进行"让它更懂礼貌"的对齐训练,或者针对隐私保护需求进行微调——那么只需把前馈网络层冻结住,只允许注意力层更新,就可以在让模型学会新的对话风格的同时,几乎完全防止旧知识被意外覆盖,把"遗忘"幅度从约15%压缩到约3%。

研究者进一步做了更细粒度的实验,把注意力层内部的四个子模块(分别处理"查询"、"键"、"值"、"输出"的投影矩阵,记作q、k、v、o)也逐一单独测试。结果显示,只要冻结其中任意一个子模块而训练其余所有参数,就足以把旧知识的损失压制到极低水平。换句话说,学新事实这件事对参数的依赖极为集中,稍微卡住一个关键"阀门",新知识的涌入就会大幅受阻,旧知识也得以安然无恙。

不过,这个方法有个明显的局限:它本质上是通过"阻止学习新东西"来保护旧知识的。在很多真实场景下,我们恰恰希望模型在微调时既能学新知识,又不损失旧知识——这就引出了第二种、也是更有意思的解决方案。

三、"自我蒸馏"——既学新知,又不忘旧事

研究团队的第二个解决方案来自持续学习(Continual Learning)领域的一个经典技术,叫做"自我蒸馏"(Self-Distillation)。

"蒸馏"这个词源自化学,指的是通过加热让混合物中的不同成分在不同温度下蒸发,从而实现分离提纯。在机器学习中,"知识蒸馏"是让一个已经训练好的"教师"模型去指导一个正在学习的"学生"模型,让学生不仅学习正确答案,还要学习教师对各种可能答案的"信心分配"。"自我蒸馏"则更为精妙:教师和学生是同一个模型,只不过教师被冻结在某一个时间节点的状态,而学生则继续在新数据上更新学习。

可以用一个非常直觉的类比来理解这个机制。假设你是那个学霸同学,要去参加编程集训营,同时担心自己会忘掉历史地理知识。于是你在出发前做了一件事:给自己拍了一段详细的视频,里面讲了你对所有历史地理问题的理解,不只是正确答案,还包括你对各种"可能答案"的判断(比如"这道题我认为答案很可能是A,B也有一点可能,C基本不可能")。在集训营学习新知识的整个过程中,你每隔一段时间就会和视频里的"过去的自己"核对一下:对于那些老问题,你现在的思路和出发前的判断有没有偏离太远?如果偏离了,就调整一下,不要走太远。

在技术实现上,这个"核对"是通过在损失函数里加入一个额外的惩罚项来实现的。这个惩罚项会测量当前正在训练的模型和冻结的"教师"模型在同一批输入上给出的概率分布之间的差距,差距越大,惩罚越重。通过这种方式,模型被时刻提醒不要离它的"原始状态"飘得太远,从而保护了旧知识对应的参数不被随意改写。

实验结果证明这个方法效果显著。在引入自我蒸馏后,模型学习新事实的速度与正常微调几乎相同,两者的学习曲线高度吻合。但与此同时,哨兵题(旧知识指标)的准确率损失从正常微调的约15%大幅压缩到了约3%——而那剩下的3%,研究者认为很可能是模型在适应新的问答格式时不可避免的轻微调整,而非真正的知识损失。换句话说,自我蒸馏几乎"完美地"同时实现了学新和保旧两个目标。

研究团队还仔细测试了这个方法对参数设置的敏感性。在三个关键超参数中,教师模型冻结在第几个训练轮次(epoch)的影响最大:如果在模型连问答格式都还没学会时就冻结教师(第0轮),学生模型的表现在新旧知识两方面都较差;将教师冻结在第1轮(刚学会问答格式但还未开始消化新事实)效果最佳。蒸馏强度(λ)则调控着一个直接的权衡:强度越低,学新事实越快但旧知识损失越多;强度越高,旧知识保护越好但学新事实所需的轮次也越多。温度参数(τ)主要影响训练过程的平滑性,较低的温度(如0.5)在旧知识保护和学习速度之间取得了最优平衡。

四、"幻觉"的真正根源——三个假说与一个答案

找到了两种有效的解决方案之后,研究者并不满足,他们还想搞清楚一个更深层的问题:旧知识究竟是怎么被"忘掉"的?新知识学习和旧知识损坏之间具体的因果链条是什么?

研究团队提出了三个竞争性假说,就像三条不同的"破案思路"。第一条思路叫"容量限制说":模型就像一个容量有限的硬盘,新文件塞进来太多,旧文件就会被压缩或覆盖,是一种纯粹的存储空间竞争。第二条思路叫"行为克隆说":微调会让模型养成一种坏习惯,无论知道还是不知道,它都倾向于给出一个答案,而不是说"我不确定",这种行为模式的改变导致它开始瞎猜。第三条思路叫"局部干扰说":当新旧知识对应的内部"表示"(representation,可以理解为模型处理信息时构建的内部符号)在空间上靠得很近时,更新新知识的参数会像"误伤"一样干扰旧知识的存储,而如果新旧知识对应的内部符号在空间上毫无交集,则不会产生干扰。

为了区分这三个假说,研究团队设计了一个极为精巧的合成实验。他们选取了一个单一的知识关系——"地点属于哪个国家"——然后人为制造了大量从未存在过的虚构地名,给这些虚构地名配上真实的国家名,作为"全新事实"让模型学习。这些虚构地名被分成两类:第一类叫"语义键",制作方法是把真实地名的组成部件打散重新拼接,例如把"Bergamo"和"Pasadena"的词素混合拼出"Bergadena",这样的名字读起来和真实地名非常相似,但其实并不存在;第二类叫"UUID键",就是完全随机生成的无意义编号,例如"Loc\_fcfb46ee",在拼写上与任何真实地名毫无关联。

两种虚构地名在训练时的规模从一千条到一百万条不等,其他所有条件完全相同。实验结果给出了非常清晰的答案。首先,无论哪种虚构地名,模型都完全学会了——两种条件下新事实的准确率都达到了100%,对已知事实的正常问答也都保持在90%以上,排除了学习效果差异的干扰。真正有差别的是旧知识的损失情况。对于"语义键"(那些读起来像真实地名的虚构名),旧知识的损失随着新事实数量的增加急剧攀升,在一百万条新事实的规模下,损失达到了约40个百分点。而对于"UUID键"(那些完全随机的编号),无论新事实规模扩大到多少,旧知识的损失始终维持在约4%的极低水平,几乎毫无变化。

这个结果对"容量限制说"和"行为克隆说"都构成了直接的反驳。如果问题是存储空间不够,那么UUID和语义键装的事实数量完全一样,应该产生相似程度的旧知识损失才对,可实际差异却天壤之别。如果问题是模型学了坏习惯"被迫猜测",那么两种条件下引入的未知事实数量也完全相同,同样不应该有如此巨大的差异。只有"局部干扰说"能够解释这一切:语义键之所以破坏力强,是因为类似真实地名的虚构名字会与真实地名共享内部表示空间,更新这些虚构地名的参数时,产生的"涟漪效应"会波及邻近的真实地名表示,把它们也一起扰动了;而UUID键在内部空间里与任何已知地名都相距甚远,更新它们的参数就像在荒无人烟的地方施工,不会误伤任何"邻居"。

研究团队还进行了一组交叉验证实验,专门测试"幻觉是否由关联值(国家名)决定"。他们将国家名也分成三种:真实国家名、仿造的语义国家名,以及UUID式国家标识。然后把所有两种地名键和三种国家值的组合都测试了一遍,共六种条件。结果非常清晰:旧知识损失完全由地名键决定——语义键配任何值都造成约38%~41%的损失,UUID键配任何值都只造成约4%的损失。这彻底确认了干扰来自于"实体名字如何在模型内部被表示",而非它对应的答案是什么。

五、解剖"干扰"的内部痕迹——自我蒸馏为何有效

确定了干扰机制之后,研究者进一步追问:自我蒸馏究竟是通过什么方式阻止了这种干扰?它是一种通用的"减少参数变化量"的正则化效果,还是有其特定的针对性作用?

为了回答这个问题,他们拿自我蒸馏与另一种常见的"减少参数变化"方法——L2正则化——做了对比。L2正则化是一种通用的约束手段,它会在训练时惩罚参数偏离初始值太远,效果类似于给参数变化量套上一根橡皮筋。研究者特意把L2正则化的强度调整到与自我蒸馏产生相同量级的参数变化,然后测试两种方法对旧知识的保护效果。结果显示,L2正则化下旧知识的损失仍然接近10个百分点,与正常微调相比基本没有改善;而且增大L2正则化的强度虽然能减少一些旧知识损失,但代价是让新事实的学习速度严重受阻。这说明自我蒸馏的效果并非简单地来自于"让参数变化变少",而是有其独特的作用机制。

更直接的证据来自对模型内部"表示"的跟踪分析。研究者在训练过程中,每隔一定步骤就从模型的第14层(这是这个28层模型的正中间位置,也是研究表明实体知识最密集编码的位置)提取被测试旧事实对应地名的内部向量,并计算这些向量与训练前版本的"方向差异"——就像追踪一个人在心理地图中走了多远。

三条曲线的对比揭示了关键信息。正常微调下学语义键的那条曲线:训练开始时,内部向量偏移迅速爬升到约5%,这是所有条件共有的部分,对应的是模型学习问答格式带来的基础调整;随后,当语义键的新事实开始被消化,曲线继续上升,最终稳定在约11%。正常微调下学UUID键的那条曲线:同样在最初爬升到约5%之后,就停住了,不再继续偏移,因为UUID键和旧知识在内部没有交集,学UUID键不会波及旧知识的邻域。自我蒸馏下学语义键的那条曲线:同样经历了最初约5%的爬升,随后和UUID那条曲线一样,稳定在约5%,没有继续上升。

换句话说,UUID和自我蒸馏达到了相同的效果——两者的共同点是"学新知识时不扰动旧知识的内部表示"。UUID是因为它天生就和旧知识在内部空间里毫无交集;自我蒸馏则是通过强制约束输出概率分布,阻止了梯度信号沿共享表示路径反向传播,从而人为地切断了新旧知识之间的"误伤通道"。

研究者还进一步测试了究竟是"对整个词汇表的概率分布约束"在起作用,还是只需要约束概率最高的那一小部分词语就够了。他们设计了"Top-k蒸馏":只对教师模型认为最可能的前76个词(约占词汇表的0.5%)施加概率分布约束,完全忽略其余所有词。结果令人振奋:Top-k蒸馏的效果与完整蒸馏几乎完全相同,旧知识损失同样被压缩到约3%。作为对照,"随机76个词蒸馏"(随机选76个词施加约束,而非概率最高的那些)则毫无效果,旧知识损失与正常微调相当。这意味着真正关键的不是约束多少词,而是约束那些模型认为"最可能、最有竞争力"的候选答案——正是这些高概率词语代表着语义上相互竞争的候选实体,约束它们的相对概率关系,就相当于保住了模型对旧知识"倾向性判断"的完整性。

六、弱知识的奇异命运——被"强化学习"意外伤害的边缘知识

研究者还观察到了一个反直觉的现象,值得单独拿出来说说。上面的讨论都集中在模型"每次都能答对"的高置信度知识上。但实验数据中还有"偶尔答对"(MaybeKnown)和"答对了但很不稳定"(WeaklyKnown)的事实,它们呈现出截然不同的命运。

"偶尔答对"的知识(MaybeKnown)在正常微调后损失更加惨烈,准确率从约0.64骤降至约0.43,下跌约21个百分点,明显超过"高置信度知识"约13个百分点的跌幅。可以理解为这类知识编码得不够牢固,本来就摇摇欲坠,新事实带来的"地震"一来,它就比高置信度知识倒得更快。值得欣慰的是,自我蒸馏对这类脆弱知识的保护效果也更为突出,能够挽回约15个百分点,相对保护率约达90%。

"答对了但很不稳定"的知识(WeaklyKnown)则出现了最令人意外的情况。这类知识的基础准确率本来就很低(约0.15~0.17),但在"只用高置信度知识训练"的条件下,准确率反而进一步崩溃到约0.04~0.05,远远低于正常微调。研究者的解释是:当你只喂给模型那些"每次都答对"的问题时,模型会把自己调整成一个"高置信度回答模式"——它更擅长在有把握时给出答案,反而对那些需要"挖掘隐藏记忆"才能找到的知识变得更迟钝了。正常微调因为包含了各种类型的训练样本,反而给了模型一个更加多样化的优化信号,让那些边缘知识得以被偶尔激活,保持了比"只用高置信度知识训练"更高的准确率。

这个发现提醒我们,知识的保护和遗忘远比表面看起来复杂——不同置信度的知识对各种干预手段的反应截然不同,"对高置信度知识最好的方案"未必对所有知识都是最优选择。

七、研究结论的完整图景

回过头来看整项研究,它形成了一个相当完整的故事链条。大语言模型在微调时产生幻觉,核心原因不是模型"原来就不知道",也不是模型"变懒了瞎猜",而是新旧知识在模型内部共用了相似的"表示空间",导致学新知识的参数更新不可避免地干扰到了旧知识的存储——就像你在一块密集居住区修路,稍不注意就会震坏邻居家的地基。

对于这个问题,研究团队提供了两条互补的出路。当你不需要模型学任何新事实、只需要它适应新的对话风格或对齐规范时,冻结前馈网络层(或者更精细地,只允许注意力层的某个子模块更新)是一个简洁高效的选择,可以把旧知识损失从约15%压缩到约3%。当你确实需要模型在微调时学习新知识,同时又不想让旧知识受到太多损害时,自我蒸馏是更灵活的选择,它能在基本不牺牲学习速度的前提下,把旧知识损失同样控制在约3%的水平。

归根结底,这项研究最重要的贡献是改变了我们对AI幻觉的认知框架。幻觉并非模型的先天缺陷,也不是不可避免的代价,很大程度上是一个可以被工程手段直接针对和解决的"干扰问题"。这为未来构建更可靠、更"记性好"的AI系统指明了一条具体可行的路。

每一次大型AI公司对自己的模型进行更新和改进时,背后都有可能经历了类似的微调过程,而这项研究揭示的机制意味着,未来的AI开发者可以借助自我蒸馏这类技术,让模型在"长本事"的同时不"忘老本",用户使用AI助手时遭遇莫名其妙的事实错误的概率也将随之降低。这或许不是什么轰动一时的新闻,但对于每天与AI打交道的人来说,这种"悄悄变好"的改变才是最切实的进步。有意深入研究这个方向的读者,可以通过arXiv编号2604.15574找到完整的技术论文。

Q&A

Q1:大语言模型微调时为什么会产生幻觉?

A:微调时引入新事实会导致旧知识被破坏,核心原因是新旧知识在模型内部共享相似的"表示空间"——更新新知识对应的参数时,会像涟漪一样波及邻近的旧知识存储区域,导致模型原本能正确回答的问题开始出错。与模型本身不知道某件事或变得"懒惰随意猜测"无关,而是一种类似"误伤邻居"的干扰效应。

Q2:自我蒸馏技术是怎么防止大语言模型忘掉旧知识的?

A:自我蒸馏在训练时保留一个"教师版本"(即训练前某阶段的模型快照),在学习新知识的过程中,持续要求当前模型在旧问题上的输出概率分布不要偏离教师版本太远。这相当于给模型设置了一道"护栏",阻止梯度信号通过共享的内部表示空间干扰旧知识,从而在几乎不牺牲学习新知识速度的前提下,把旧知识损失从约15%压缩到约3%。

Q3:冻结注意力层和冻结前馈网络层对大语言模型的影响有什么区别?

A:两者效果截然相反。冻结前馈网络层(只允许注意力层更新)会阻止模型学习几乎所有新事实,但能很好地保护旧知识,适合只需要模型学习对话格式而不需要吸收新内容的场景。冻结注意力层(只允许前馈网络层更新)则与全量训练几乎没有区别——模型仍会学习新事实,旧知识损失同样约为15%,因为事实知识主要存储在前馈网络层中。