灾难性遗忘与微调版本管理

窄任务 SFT、强 DPO 或激进 CPT 后,模型可能出现灾难性遗忘(catastrophic forgetting)——领域或对齐指标上升,通用对话、推理、安全性下降。本篇汇总缓解手段与 checkpoint 版本管理,与 01-04 数据混合08-01 基线评估 衔接。

段末注释:KL 约束(Kullback–Leibler divergence constraint)在 DPO/RLHF 中限制新策略偏离参考策略 (\pi_{\mathrm{ref}}) 的程度,是防止对齐阶段遗忘预训练/SFT 能力的重要机制(见 Math-05/20)。

系列索引:微调技术路线导读


一、遗忘的表现

类型 现象
通用对话 胡言、拒答增多、风格变窄
推理 简单数学/逻辑变差
格式 非目标任务格式崩(若过拟合单一 system)
安全 对齐过度导致过度拒绝

检测:除主任务 test 外,保留 通用抽检集(50–200 条 instruct 样本)与固定 decode 规则


二、成因

阶段 原因
CPT 仅领域语料、lr 过大
SFT 单任务数据、epoch 过多、lr 过高
DPO/GRPO (\beta) 过小、偏好数据分布偏、reward 过窄
全参 可训练权重大,遗忘风险高于 LoRA

三、缓解策略

3.1 数据层

手段 说明
通用数据混合 SFT 掺 5–20% 通用 instruct(01-04
CPT 混通用语料 领域 CPT 时保留部分通用 text
多任务 SFT 主任务 + 轻量辅助任务

3.2 训练层

手段 说明
LoRA / PEFT 冻结大部分基座(05-04
较小 lr、少 epoch SFT 1–3 epoch;早停看 eval_loss
KL / β DPO 增大 (\beta) 贴近 ref(06-01
CPT lr 低于 SFT(05-02

3.3 对齐层

手段 说明
保留 SFT checkpoint 对齐变差可回滚
GRPO reward 不过窄 避免只优化格式 hack
拒绝采样质量 01-03 偏好数据

Math 对照表:Math-04/20 §5(KL、SFT mix、较小 lr)。


四、版本管理

4.1 命名规范

1
2
3
{project}/{base_model}/{stage}-{date}-{metric}/
例:emotion/gemma-4-e4b/sft-20260629-f1-0.89/
emotion/gemma-4-e4b/dpo-20260630-beta0.1/

stagecpt | sft | dpo | grpo | merged

4.2 必须保存的元数据

字段 内容
base_model_id 基座路径/版本
peft_config r, alpha, target_modules
data_version 数据集 hash 或版本号
train_config lr, epoch, max_length, seed
eval_snapshot 主任务 + 通用抽检指标
prompt_template system 全文

08-01 的固定 decode/parse 一并记录。

4.3 checkpoint 选择

策略 说明
best eval_loss 训练监控;需验证任务 F1
best task metric 自定义 callback 存 F1 最高
last checkpoint 仅当 clearly 未 overfit
保留 top-k 磁盘允许时留 2–3 个供 A/B
1
2
3
4
5
6
7
8
9
# SFTConfig 示例
SFTConfig(
save_strategy="steps",
save_steps=100,
save_total_limit=3,
load_best_model_at_end=True,
metric_for_best_model="eval_loss",
greater_is_better=False,
)

上线前:在 封存 test 上跑 08-01 流程,勿用训练调过的 val 作唯一依据。

4.4 回滚策略

1
2
3
4
5
生产:adapter_v2 (DPO)
↓ 通用抽检失败
回滚:adapter_v1 (SFT) 或 merged_sft
↓ 仍不满意
回滚:base instruct 零微调

DPO/GRPO 务必永久保留 SFT adapter02-04)。


五、A/B 与迭代

步骤 动作
1 固定 test + 通用集
2 新 checkpoint vs 当前生产,同脚本评估
3 主指标 Δ > 阈值 通用集无显著退化
4 小流量灰度 → 全量

六、常见踩坑

现象 对策
只对主任务调参 并列监控通用抽检
merge 后无法回滚 merge 前归档 adapter
覆盖同名 output_dir 用日期/指标命名
DPO 后「变傻」 升 β;回滚 SFT

七、小结

防遗忘 = PEFT + 混合数据 + 保守 lr/epoch + 对齐 KL + 双集评估。版本管理 = 分 stage 存 adapter + 元数据 + 保留 SFT 备份 + test 上选 checkpoint

系列闭环:00 导读 → 训练 → 08-01 基线 → 本文 → 部署

-------------本文结束感谢您的阅读-------------