模型刚学会一项新任务,旧任务还能不能做好,应当一起验收。查阅持续学习的早期研究和大语言模型微调论文后,可以看到这已经是一个专门研究的问题。研究者把学习新内容时旧能力明显退步的现象称为灾难性遗忘。

这个词很重。使用时要有证据。一次回答不满意,可能与输入、采样或评判方式有关,不能立刻归因于训练遗忘。需要把模型更新前后的表现放在相同条件下比较,看旧任务的退步是否稳定出现,再查它与本轮训练之间的关系。

旧任务为什么要继续保留

早期 EWC 研究尝试减慢那些对旧任务重要的权重的学习速度,让网络继续学新任务时少改变已有能力。它的实验包括手写数字分类和连续学习 Atari 游戏。这些工作说明保留旧能力可以被纳入训练设计,但年代、模型和任务都很具体,不能直接当作今天企业大模型的保证。

后来的大语言模型研究把问题放到持续指令微调里。Luo 等人检查了领域知识、推理与阅读理解,观察的模型规模从 10 亿到 70 亿参数。研究在这些条件下发现遗忘现象,还比较了不同模型结构。结果提醒人,训练报告里只给新任务的提升,信息仍不完整。

论文在所测规模区间内还观察到,较大模型的遗忘程度可能更明显,作者讨论了较高初始表现带来的影响。这个结果不能被缩成“越大的模型越容易忘”。超出样本范围以后,训练资料和优化设置都可能变化,采购方依然要查看自己准备使用的那个版本。

改善办法也需要用同一批题复核

这项研究发现,通用指令训练有助于减轻后续微调中的遗忘。它提供了一种值得比较的训练安排,具体能保住哪些能力,还要看任务。早期方法着重限制重要参数的变化,后来的实验考察训练过程,两类材料共同说明,解决办法需要落实到训练设计和验收结果。

对企业的小规模微调,我建议在训练开始前就保存旧模型的任务成绩。挑仍然需要继续使用的能力,用固定输入和明确标准记录结果。新任务另外准备验收题。训练结束后两边都跑,才能看见新增能力是否伴随不愿接受的损失。

若只报一个平均分,两类变化可能相互抵消,新任务大幅进步,旧任务小幅下降,总分仍然好看。旧任务恰好承担重要工作时,这个平均数就很难帮助决策。验收记录应保留按任务分开的结果,失败样本让实际使用者看过,再决定是否接受这次更新。

外部知识库和智能体记忆也不能自动解决训练遗忘。前者提供检索资料,后者保存可供以后读取的信息,而这里讨论的是模型训练后原有任务能力的变化。资料仍然能找到,不代表模型还能按原来的要求处理它。系统用了多个组件,更需要把问题定位到具体一步。

发布前留好旧版本与配置,先让新模型承担已经通过验收的范围。遇到旧任务明显退步时,可以缩小应用范围,或回到训练方案继续比较。负责交接的人应能找到新旧两份成绩,知道这次更新增加了什么,也知道哪些旧任务还没有通过。

参考资料