大语言模型的后训练与“灾难性遗忘”问题——李宏毅2025大模型第六讲笔记

当你看到这样一个新闻:

"A 实验室/公司喜报:A使用某开源基座模型Q,经过后训练得到模型Q',Q'在数学编程领域的得分超过Q。"

请思考这样的模型会有什么问题,Q'真的超过了Q吗?学习本节课,你将得到答案

目录

一、后训练(Post-training)是什么?

二、后训练的核心挑战------灾难性遗忘

典型案例

三、遗忘的根源

四、解决方案:让AI用自己的话学习

[1. 经典经验回放](#1. 经典经验回放)

[2. 伪经验回放](#2. 伪经验回放)

[3. Self-Output 系列方法](#3. Self-Output 系列方法)

[4. 巧妙的解法:过滤高难度Token](#4. 巧妙的解法:过滤高难度Token)

五、结论与建议


一、后训练(Post-training)是什么?

后训练目标:将通用的"基础模型"变成特定任务或领域的"专才模型"。(如把Llama后训练后,变成金融、法律领域的专有模型)

后训练仍然沿用现有的模型训练范式:

  1. 预训练式:继续做文字接龙,使用领域文本。
  2. 有监督微调式:使用"指令-回答"对训练。
  3. 强化学习式:通过人类反馈优化模型。

二、后训练的核心挑战------灾难性遗忘

"手术成功,但病人死亡"------模型学会了特定的新东西,但是原有的通用知识记忆严重衰退,甚至完全丧失原有能力。

典型案例:

1、学中文,忘安全

* 基座模型:LLaMA-2-Chat只用英文回答问题,问它危险问题LLaMA-2会拒绝回答

* 用中文后训练之后:LLaMA-2会用中文回答问题,但安全对齐被破坏,开始回答危险问题。

2、即使用无害数据微调,模型的安全能力也会下降。1

3、专才代价是通才能力下降

* 提升某一能力(如编程),其他能力(如数学、语文)下降。

4、学新模态,忘旧格式

  • 通过后训练,想教纯文本语言模型LLaMA识别语音
  • 第一个Epoch:要求语言模型输出语音的情绪,并要求用json格式输出,模型输出错误的情绪,但是会用json格式输出结果(因为LLaMA知道什么是json)
  • 多轮Epoch后:能输出正确的情绪,但模型忘记了如何输出JSON格式。

三、遗忘的根源

那么为什么模型会发生灾难性遗忘?原因如下

  • 单目标优化:训练只优化新任务,不保护旧知识。
  • 知识覆盖:新任务参数覆盖旧任务参数。
  • 模型大小无关:研究1B-7B参数的模型,大小与遗忘程度无显著相关。而模型学的新知识越多,旧知识就遗忘得越厉害。
  • LoRA 不能根本解决:只是"学得少,忘得少"。

四、解决方案:让AI用自己的话学习

1. 经典经验回放

  • 在训练新任务时,混入5%旧任务数据,可有效防止遗忘。
  • 问题:商业模型原始训练数据不可获取。

2. 伪经验回放

目前商业开源大模型的训练资料不可取,那就让模型自己生成旧任务数据,作为回放材料。

  • 虽可能有事实错误,但能保留模型风格与知识结构。

3. Self-Output 系列方法

  • Mega-Pie:让模型自问自答,生成SFT数据。
  • Paraphrase答案改写:用模型自己改写后的答案训练。
  • self-output 选择性自我排练:模型答对时,用自己的答案训练;答错时才用人类答案。(这种方式跟RL-based的post-training很像)
  • "说我的语言":用LLM生成的答案教另一个LLM,比只用人类数据集的效果更好。2

4. 巧妙的解法:过滤高难度Token

人类写的数据,总有一些词汇是模型输出的过程中,模型很难学到的(如截图)。那么在训练中忽略模型最难预测的Token,避免强制教学。可提升泛化能力,减少遗忘。3

五、结论与建议

  1. 遗忘不可避免:后训练本质是单目标优化,会干扰旧知识。
  2. 安全与通用能力最易丢失。
  3. 最有效策略:让模型用自己的话学习,保持训练目标与自身分布一致。
  4. 警示:看到某个模型说自己通过后训练,某个专项能力吊打xx模型,需要警惕,它可能失去了很多通用能力。

1Fine-tuning Aligned Language Models Compromises Safety, Even When Users Do Not Intend To!

2I Learn Better If You Speak My Language

3https://arxiv.org/abs/2501.14

相关推荐
猿人谷1 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
说了很好2 小时前
PyTorch从零搭建DDPM:时间嵌入+UNet网络+扩散调度完整复现
人工智能
Bigfish_coding2 小时前
前端转agent-【python】-06 长期记忆(向量数据库 + 嵌入)
人工智能
小林ixn2 小时前
别再手写Prompt了!用AI Loop实现自动化自我迭代,效率提升10倍
人工智能·自动化运维
说了很好2 小时前
逐行注释DDPM源码:正向加噪、逆向去噪、MSE损失全流程复现
人工智能
Dilee2 小时前
Spring AI 1.1.7 接入 MCP:Filesystem Server 最小 Demo
人工智能·后端
Token炼金师2 小时前
大模型推理超参数原理详解
人工智能
Token炼金师2 小时前
大模型训练超参数:从Loss曲面到收敛策略的底层逻辑
人工智能
后端小肥肠2 小时前
Skill 囤了一堆却用不起来?我用 Codex 写了个整理神器
人工智能·agent
魏祖潇3 小时前
从"会聊天"到"能干活":用 OpenCode 给自己找个 AI 搭子
人工智能