李宏毅2025机器学习第六讲:深入解析Post-training中的灾难性遗忘问题
内容从剖析“灾难性遗忘”的多个真实案例入手,追溯至 2019 年的经典研究,引出至今依然有效的核心解法——“经验回放”,并最终聚焦于以“自输出 (Self-Output)”为代表的现代策略,看它们如何通过让模型“用自己的话学习”,巧妙化解新旧知识的冲突,保护模型的既有能力。

导语
本期是李宏毅「生成式AI时代下的机器学习(2025)」系列课程第六讲《生成式人工智慧的后训练(Post-Training)与遗忘问题》的全程实录。课程将带您深入探讨一个在模型微调中普遍存在却极易被忽视的致命陷阱:当我们试图将一个通用大模型(如 LLaMA)训练成特定领域的专家时,为何常常会陷入“手术成功,但病人死了”的困境——新技能学会了,但原有的安全对齐、推理等核心能力却被严重破坏。内容从剖析“灾难性遗忘”的多个真实案例入手,追溯至 2019 年的经典研究,引出至今依然有效的核心解法——“经验回放”,并最终聚焦于以“自输出 (Self-Output)”为代表的现代策略,看它们如何通过让模型“用自己的话学习”,巧妙化解新旧知识的冲突,保护模型的既有能力。
课程概览
一、什么是后训练 (Post-training)?
- 核心需求:将通用的基础模型(Foundation Model)通过进一步学习(Post-training),打造成擅长特定领域、特定语言或特定技能的专家模型。
- 技术方法:后训练在技术上与常规训练无异,可采用预训练(Pre-train)、监督式微调(SFT)或强化学习(RL)等方式。
- 适用对象 **:**后训练的对象不限于原始的预训练模型,也可以是已经过对齐(Alignment)的聊天模型(Chat Model)。
二、后训练的核心挑战:灾难性遗忘 (Catastrophic Forgetting)
-
核心悖论: 在教模型新技能的过程中,模型会轻易地遗忘(Forgetting)它原本已经具备的能力。这个现象被称为“灾难性遗忘”,是后训练最大的挑战。
-
普遍性验证:
-
预训练式后训练:教 LLaMA-2 中文后,模型学会了中文,但丧失了原有的安全防卫能力。
-
监督式微调 (SFT):即使使用完全无害的数据对模型进行微调,其安全对齐能力也会大幅下降。
-
跨能力影响:当专门教模型一项技能(如编程)时,它在其他领域(如数学)的能力会显著退化。
三、为什么会发生灾难性遗忘?
-
根本原因:后训练的优化过程只专注于最大化单一的新任务目标,不计代价地调整参数,从而破坏了储存旧知识的参数结构。这就像一场“手术成功,但病人死了”的悲剧。
-
关键观察:
-
与模型大小无关:研究表明,更大的模型(在 1B-7B 范围内)并不会更不容易遗忘。
-
与学习效果成正比:模型在新任务上学得越好,其遗忘原有技能的情况就越严重。
-
LoRA 的局限性:LoRA 等参数高效微调方法,其抗遗忘效果往往来自于“学得更少,忘得也更少”,并未从根本上解决问题。
四、如何解决遗忘问题
历史启示:经验回放 (Experience Replay):早在 2019 年的 GPT-2 时代,研究就已发现,在训练新任务时,混入一小部分(例如 5%)的旧任务数据进行“经验回放”,就能非常有效地防止遗忘。
-
现代困境与演进:由于大模型通常不开源其训练数据,直接的经验回放变得困难。因此,解决方案演变为让模型自己生成“伪”的旧数据。
-
现代主流策略:
-
自问自答 (Self-Synthesize):让基础模型自己生成类似其训练风格的问答对,用于回放。
-
改写 (Paraphrase):让基础模型将人工标注的答案用自己的语言风格“换句话说”,再用于训练。
-
自输出 (Self-Output):让基础模型直接回答问题,如果答案正确,就用模型自己的输出作为标准答案来训练它自己。
-
与强化学习 (RL) 的关联:自输出与 RL 的思想高度相似,这或许解释了为何 RL 本身就是一种比较能防止遗忘的技术。
五、应用实例与进阶技巧*
-
多模态模型训练:在教模型听懂语音时,可先让强大的纯文字模型根据语音的文本描述生成回答,再用这个回答作为目标来训练语音模型,从而保护其原有的文本能力。
-
过滤困难样本:另一项进阶技巧是,在训练时识别并忽略掉那些对基础模型来说极难生成的词元(Token),不计算其损失。这能避免模型在“学不会”的东西上过度挣扎,反而能更好地保留通用能力。
这堂课要讲的是后训练 (Post-training)与其伴随的遗忘 (Forgetting) 问题。

一、 什么是后训练 (Post-training)?**
今天,我们已经拥有很多强大的开源模型,例如 Llama、Google 的 Gemma、DeepSeek,甚至是可微调的 ChatGPT。这些模型本身已具备非常通用的基础能力,就像是从学校毕业、具备基本技能的学生。
然而,在许多应用场景中,我们需要一个拥有某种专长的模型。这个专长可以指:
- 特定领域:如金融、法律。
- 特定人类语言:如中文、韩文、日文。
- 特定程序语言: 如 Verilog。
尽管通用模型在这些领域可能具备一定能力,但往往不够专精。因此,我们会准备特定资料,对这些通用模型进行进一步的调整,使其在特定领域表现得更好。这个将通用模型进行进一步学习的过程,就称为后训练 (Post-training),有时也叫做持续学习 (Continual Learning)。
在本课程中,我们将后训练前的模型称为基础模型 (Foundation Model),后训练后的模型称为微调模型 (Fine-tuned Model)。

注:上堂课讲的对齐 (Alignment),即从一个预训练模型 (Base Model) 训练得到一个聊天模型 (Chat Model),也可以视为一种后训练。但本堂课的后训练概念更为广泛:只要你希望为一个现有模型(无论是 Base Model 还是已经对齐过的 Chat Model)添加额外技能,都属于后训练的范畴。
后训练的技术方法
从技术上讲,后训练与训练语言模型的常规方法并无不同,主要有三种:
1.预训练风格 (Pre-train Style):继续用大量文本资料进行文字接龙。
2.监督式微调 (Supervised Fine-tuning, SFT):使用问答对 (Instruction-Following) 资料进行训练。
3.强化学习 (Reinforcement Learning, RL):根据输出的好坏给予奖励或惩罚。
你可以根据手上资料的类型选择合适的方法。
**二、后训练的核心难题:灾难性遗忘 (Catastrophic Forgetting)
虽然技术上没有新东西,但后训练面临一个巨大的挑战:模型会遗忘它原有的能力。
案例一:教 LLaMA-2 Chat 中文
-
背景:LLaMA-2 Chat 虽然能理解中文,但主要用英文资料训练,因此预设用英文回答。我们希望通过中文资料的后训练,让它学会用中文回答。
-
期待:模型既能用中文回答,又能保留原有的对齐能力(例如,安全防卫能力)。
-
现实:后训练后,模型学会了用中文,但丧失了安全防卫能力。
训练前:问它如何获取银行密码,它会拒绝回答,这是正确的行为。
训练后:再问同样的问题,它会用中文“热心”地教你几种攻击方式。
这个现象并非个案。另一篇论文也发现在用中文资料对 Llama-2 Chat 进行后训练后,模型在回答「气候变化如何影响生态系统」时,会陷入不断重复「第一点、第一点…」的崩溃状态。

从ToxiGen(一个检测模型有害言论的基准)的测试结果来看:
-
Llama-2 Base (未对齐): 说错话的几率高达 25%。
-
Llama-2 Chat (已对齐): 几率降至仅 0.22%,非常稳定。
-
中文后训练后: 说错话的几率大幅回升,原有的安全性几乎被破坏。

案例二:SFT 同样导致遗忘
你可能会认为是预训练风格的后训练导致了遗忘,但即使是 SFT 风格的训练也同样如此。

一篇早期研究发现,对 ChatGPT 3.5 进行微调会严重损害其安全性,即便训练资料本身是无害的。
- 恶意微调: 教模型如何制造炸弹,模型的安全性理所当然地崩溃了。
- 无害微调: 仅仅是帮模型改个名字(例如,让它自称为 “AOA”),也会导致其安全对齐能力大幅下降。
- 常规微调: 使用完全正常的 Alpaca 资料集(如「三原色是什么?」)进行微调,模型的安全性在多个方面依然会变差。
案例三:遗忘不仅限于安全性
我们实验室的研究也表明,对 Llama-3 进行 SFT 来教授推理、医学、程序代码和工具使用等新技能时:
- 目标任务能力:在被教授的领域,模型表现显著提升。
- 安全对齐能力:模型的安全性(在 HEXPHI 和 ADVBench 上的测试)急剧下降,从几乎 0% 的错误率飙升。
遗忘不仅仅破坏安全性。另一项研究发现,当你专门教模型一项技能时,它在其他领域的能力会下降:

- 教模型使用工具,它的数学和程序代码能力变差。
- 教模型数学,它的工具使用和程序代码能力变差。
- 教模型写程序代码,它的数学和工具使用能力大幅暴跌。

案例四:多模态学习中的遗忘
当我们尝试教 LLaMA 这样的文字模型“听懂”声音时,遗忘问题同样严重。

- 训练初期 (1 epoch):模型尚能遵循指令,以 JSON 格式输出答案。虽然答案内容(情绪识别)是错的,但它还记得什么是 JSON。
- 训练后期 (3 epochs):模型学会了正确识别语音中的情绪,但完全忘记了如何生成 JSON 格式。

三、为什么会发生灾难性遗忘?
原因非常直观:在后训练中,我们只专注于单一的训练目标(如提升程序代码能力),而完全忽略了模型在其他能力上的表现。优化演算法会不计代价地调整参数以达成当前目标,从而破坏了储存其他能力的参数结构。

这个现象被称为灾难性遗忘 (Catastrophic Forgetting)。就像一场手术,虽然成功切除了病灶,但病人却失去了其他重要功能——手术成功,但病人死了。
一些观察:
-
与模型大小无关: 研究表明,更大的模型(在 1B 到 7B 范围内)并没有表现出更轻微的遗忘。

-
与学习效果成正比: 模型在目标任务上学得越好,它遗忘其他技能的情况就越严重。

-
LoRA 的作用:使用 LoRA (Low-Rank Adaptation) 似乎能减轻遗忘,但这往往是因为“学得更少,忘得也更少”。LoRA 限制了参数的改动范围,代价是模型在新任务上的学习效果也较差,这并非根本的解决方案。

四、如何解决遗忘问题?
来自 2019 年的启示:经验回放 (Experience Replay)
早在 2019 年,我们实验室就在 GPT-2 上进行了多任务学习的探索。我们发现,当教完模型一个任务(如阅读测验 SQuAD)再教下一个任务(如生成 SQL)时,它在第一个任务上的表现会急剧下降。

当时我们找到了一个非常有效的解决方案:经验回放 (Experience Replay)。

- 方法:在训练新任务(任务二)时,混入一小部分旧任务(任务一)的资料。
- 效果:仅需混入约 5% 的旧资料,就能非常有效地防止模型遗忘旧技能。
当时的结论是,灾难性遗忘似乎不是一个大问题,因为解决方案太简单了。
现代的困境与解决方案
然而,在 2025 年的今天,这个问题再次变得严峻,因为像 Meta 这样的大公司只发布模型,而不发布其完整的训练资料。我们无法拿到 Llama-2 Chat 的原始对齐资料来进行经验回放。
幸运的是,2019 年的研究也考虑了这种“无法获取旧资料”的情境,并提出了解决方案:伪经验回放 (Pseudo Experience Replay)。

- 方法:如果没有旧资料,就让模型自己生成。让训练好的模型(例如,在 SQuAD 上训练过的 GPT-2)自由生成文本,它会产生类似其训练资料的内容(自问自答的阅读测验)。
- 应用:在训练任务二时,将基础模型生成的“伪”任务一资料混入训练集中。
实验证明,使用模型自己生成的资料,同样可以有效防止遗忘。
现代后训练的主流方法
如今,基于“经验回放”和“伪经验回放”的思路,衍生出了多种主流的抗遗忘方法。核心思想是:让模型用“自己的话”来学习。

- Safety-Tune:在微调时,混入少量(如 3%)的安全对齐资料,这就是标准的经验回放。
- Self-Synthesize Rehearsal (Magpie):让基础模型自问自答,生成 instruction-following 格式的资料,然后将这些“自己合成”的资料用于后续训练。
- 改写 (Paraphrase):不用人工标注的答案,而是让基础模型将标准答案“换句话说”,再用改写后的答案去训练。因为改写后的句子更符合模型自身的语言风格,学习起来更不容易引起冲突。
- 自输出 (Self-Output):
-
将问题输入基础模型,让它直接生成答案。
-
通过某种机制(如对数学题核对答案,对程序代码进行编译)验证答案是否正确。
-
如果答案正确,就用模型自己的输出作为标准答案来训练它自己。
-
这种方法非常有效,因为它本质上是在强化模型已有的、正确的知识路径。

与强化学习 (RL) 的关联:Self-Output 的思想与 RL 非常相似。RL 也是让模型生成答案,然后根据好坏给予反馈。这或许可以解释为什么 RL(如 DPO)通常被放在训练的最后阶段,它可能本身就是一种比较能防止遗忘的技术。
五、应用实例与进阶技巧
-
多模态模型训练:在训练语音模型时,可以先用文字描述语音的特征(如语速、情绪、口音),让一个强大的纯文字模型根据这些描述生成回答。然后,再训练语音模型,使其在听到实际语音时,能输出与该文字模型一致的答案。我们实验室的Desktop2等模型就是采用这种方法,取得了很好的效果。

-
过滤困难样本:一篇研究发现,人工标注的答案中,有些词元(token)对于基础模型来说是极难生成的(即低机率)。如果在训练时,直接忽略掉这些对模型来说过于困难的学习目标(不计算这些 token 的损失),反而能让模型学得更好,同时更好地保留原有能力。

六、总结与建议
后训练是一个强大的工具,但务必警惕灾难性遗忘。
当你看到有人宣称“我微调的 Llama-3 在某个任务上打败了 GPT-4o”时,这完全是可能的。但你需要问一个关键问题:为了这个胜利,它损失了多少通用能力? 这个模型会不会变成一个只会解特定任务的“偏科生”,甚至连基本的人类语言都说不好了?
给进行后训练的同学的建议:
- 全面评估:除了评估模型在目标任务上的表现,一定要检查它在其他基础任务上的能力是否被保留。
- 采用抗遗忘策略:优先考虑使用Self-Output或相关的变体(如 Paraphrase、Pseudo Replay)。让模型用自己的、或与自己风格相近的资料进行学习,是目前最有效的防止遗忘的方法。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01 教学内容

-
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
-
大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

vx扫描下方二维码即可
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03 入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:
04 视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
05 行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!
06 90+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)