李宏毅 AI 课程:后训练与持续学习
整理监督微调、强化学习、灾难性遗忘、回放和安全能力保持方法。
文章目录
03 后训练与持续学习:如何学习新能力而不遗忘
原始课件:
post_training (v8).pptx(61 页)
1. 后训练的三种形式
模型完成预训练后,仍可通过不同目标继续学习:
- 预训练式继续训练:继续做下一个 token 预测,适合加入领域语料或新语言。
- 监督微调:用输入和目标回答直接训练新任务或新格式。
- 强化学习与偏好优化:根据奖励信号优化推理、安全性或用户偏好。
三者的共同风险是:参数为新任务发生变化后,旧任务的能力、安全边界和输出格式可能退化,即灾难性遗忘。
2. 新能力与旧行为的冲突
Teaching Llama 2 to Speak Chinese 展示了通过继续训练和指令微调增强中文能力的路线,但也说明加入新语言或新任务时需要处理原有能力变化。
课件用语音适配举例:模型在目标情绪识别任务上变强后,可能失去通用指令跟随、结构化 JSON 输出或安全拒答能力。也就是说,评估后训练不能只看目标任务增益,还要检查原有能力和行为约束。
相关研究包括:
- Continual Learning of Large Language Models:系统讨论大型语言模型持续学习中的遗忘问题。
- Fine-tuning Aligned Language Models Compromises Safety:少量普通微调也可能削弱原有安全对齐。
- arXiv:2402.13669:研究后训练对模型行为和既有能力的影响。
- arXiv:2412.19512:探讨模型合并或参数组合在缓解遗忘中的作用。
3. 模型更大并不自动解决遗忘
课件引用 arXiv:2401.05605 和 arXiv:2308.08747 强调:规模增加可能提高容量,但不能保证继续训练后保留所有旧能力。遗忘取决于新旧任务的梯度冲突、数据分布变化和训练强度。
参数高效微调提供了一种折中。LoRA Learns Less and Forgets Less 的结论可以概括为:LoRA 对新任务的拟合能力可能弱于全参数微调,但因为改动范围受限,也往往更少破坏旧能力。
4. 经典缓解方法
4.1 正则化
正则化方法限制重要参数的变化。基本思想是先估计哪些参数对旧任务重要,再在训练新任务时惩罚这些参数的大幅移动。Memory Aware Synapses(MAS)是这一类方法的代表。
优点是无需保存大量旧数据;缺点是参数重要性估计不一定准确,并且当新旧任务高度冲突时,过强约束会妨碍新任务学习。
4.2 经验回放
在训练新任务时混入旧任务样本,是最直接也最有效的遗忘缓解方法。它让优化过程持续看到旧分布,从而减少参数只为新任务服务的倾向。
现实困难是旧数据可能受隐私、版权、存储或访问权限限制,因此需要生成式回放。
4.3 生成式回放
LAMOL 让语言模型生成旧任务的伪样本,并与新任务共同训练。这样不需要永久保存全部原始数据,但伪样本的错误或分布偏差可能累积。
5. 用模型自己的输出保留能力
大型语言模型可以在后训练前生成旧行为样本,作为“自我复习”材料。常见流程是:
- 使用原模型对通用指令生成回答。
- 对回答进行筛选、改写或多样化。
- 将这些旧行为样本与新任务样本混合。
- 训练后同时评估新任务、通用能力和安全性。
相关研究与数据方法:
- Magpie:从已对齐模型中自动生成高质量指令数据。
- Selective Self-Rehearsal:选择更容易遗忘或更关键的旧行为进行复习,减少无效回放。
- arXiv:2402.11192:使用教师模型或旧模型提供保持原能力的监督。
- arXiv:2403.01244:利用合成回放缓解继续训练中的遗忘。
生成式回放最值得注意的不是“生成更多数据”,而是有目的地覆盖容易丢失的能力、格式和安全边界。
6. 安全对齐也会被遗忘
The Butterfly Effect of Altering Prompts 等研究显示,模型安全行为会受提示和微调分布影响。安全不是训练完成后永久固定的属性,而是一组可能被后续参数更新覆盖的行为模式。
因此,任何领域微调都应保留一组安全回归测试,包括:
- 对危险请求的拒答是否仍然稳定。
- 正常请求是否被过度拒绝。
- 系统指令与用户指令冲突时是否遵循优先级。
- 多语言、角色扮演和长上下文下是否仍保持边界。
7. 语音模型的后训练案例
语音适配通常在文本语言模型与语音编码器之间加入适配模块,使语言模型能够理解语音表示。
Dynamic-SUPERB 及其 Phase 2 用大量语音任务检验模型是否具备广泛迁移能力,而不只是某个单一数据集上的高分。
这类方法再次体现了本章主线:目标任务进步并不等于整体模型进步,必须测量通用指令能力是否被保留。
8. 实践中的训练与评估流程
- 在训练前建立能力清单:目标能力、通用能力、安全行为、格式遵循。
- 保存旧模型在代表性提示上的输出,构造回放集。
- 优先尝试 LoRA、适配器等受限参数更新。
- 混合新数据、旧数据或生成式回放数据。
- 分别监控学习率、训练步数和新旧任务梯度冲突。
- 训练后同时报告“学会了什么”和“失去了什么”。
9. 重要方法与研究索引
| 方法 | 核心机制 | 对应研究 |
|---|---|---|
| 全参数继续训练 | 直接改变全部参数学习新分布 | Continual Learning of LLMs |
| LoRA | 用低秩增量限制参数改动 | LoRA Learns Less and Forgets Less |
| 参数重要性正则化 | 限制旧任务重要参数的变化 | MAS 等持续学习方法 |
| 经验回放 | 新训练中持续混入旧样本 | 持续学习经典方法 |
| 生成式回放 | 由模型生成旧任务伪样本 | LAMOL |
| 自我复习数据 | 用旧模型回答保存通用行为 | Magpie |
| 选择性复习 | 优先回放容易遗忘的样本 | Selective Self-Rehearsal |
| 语音行为对齐 | 将语音表示接入文本语言模型 | BLSP、DiVA |
10. 本章结论
- 后训练不是单向增益,新能力、旧能力和安全行为之间可能发生冲突。
- 模型规模不能自动消除灾难性遗忘。
- LoRA、正则化和回放分别从参数范围、参数约束和数据分布三个角度缓解遗忘。
- 模型自己的旧输出是一种实用的复习数据来源,但必须进行质量控制。
- 后训练评估必须包含回归测试,不能只报告目标任务分数。