What is 灾难性遗忘?

    一种现象,神经网络在新数据上微调时丧失先前学到的知识,导致此前能良好处理的任务性能下降。

    Definition

    灾难性遗忘(也称为灾难性干扰)发生在一个在某组数据上训练的神经网络在另一组数据上训练后,在原始数据上的性能急剧下降。在LLM场景中,这表现为在领域特定数据上微调预训练模型会导致模型丧失在预训练期间编码的通用能力——语法、推理、世界知识、指令遵循。

    这个问题的产生是因为神经网络的权重在任务间共享。当模型更新权重以学习微调数据中的模式时,这些更新可能会覆盖编码先前知识的表示。激进的微调(高学习率、多epoch、小数据集)会加剧这个问题,因为更大的权重更新更可能破坏现有知识。结果是一个在微调领域表现良好但在通用任务上产生不连贯或错误输出的模型。

    灾难性遗忘特别隐蔽,因为它在开发过程中往往不被发现。如果评估仅关注目标任务(在微调过程中性能提升),通用能力的退化就会被忽视,直到用户在生产环境中遇到问题。一个在支持工单分类上表现出色但无法再构造语法正确句子的客服模型就经历了灾难性遗忘——领域特定的收益以基本语言能力为代价。

    Why It Matters

    每个微调项目都必须在专业化和泛化之间取得平衡。团队希望模型在特定任务上表现出色,同时不丧失使LLM有价值的广泛能力。灾难性遗忘是使这种平衡变得困难的主要风险。一个忘记如何推理、遵循指令或生成连贯文本的模型是无用的,无论它在目标领域学得多好。

    防止灾难性遗忘是LoRA等参数高效微调方法占据主导地位的原因。通过仅修改模型参数的一小部分(通过低秩适配器),LoRA在添加领域特定知识的同时保留了大部分预训练表示。与全量微调相比,这大幅减少了遗忘,使得创建保留通用能力的专业化模型成为可能。

    How It Works

    灾难性遗忘源于神经网络的优化动态。在微调过程中,梯度下降将权重向最小化微调数据损失的方向移动。如果微调数据分布与预训练数据有本质差异,这些梯度方向可能与维持预训练性能的方向正交甚至相反。模型本质上是为了适应新模式而遗忘了预训练的知识。

    缓解策略包括:低学习率(较小的权重更新破坏性更小)、参数高效微调(修改更少的参数保留更多预训练知识)、正则化(惩罚与预训练权重的大偏差)、数据混合(在微调数据中包含预训练分布的样本)、短训练时长(限制epoch数以减少权重变化的总幅度)以及弹性权重整合(惩罚对先前学习任务中重要权重的更改)。

    Example Use Case

    一个团队使用高学习率(5e-4)和10个epoch在500个医疗问答样本上微调7B模型。模型在医疗问题上达到92%的准确率,但无法再维持连贯的多轮对话,产生语法错误,并且无法完成微调前能处理的基本推理任务。他们使用LoRA(秩16)、学习率2e-5和3个epoch重新开始——模型达到了88%的医疗准确率,同时保留了所有通用能力,展示了防止灾难性遗忘的重要性。

    Key Takeaways

    • 灾难性遗忘发生在微调用领域特定模式覆盖预训练知识时。
    • 它由破坏预训练期间学到的表示的权重更新引起。
    • 如果评估仅关注目标任务,这个问题往往是不可见的。
    • LoRA和其他参数高效方法通过修改更少的权重大幅减少遗忘。
    • 低学习率、短训练时间和数据混合是额外的缓解策略。

    How Ertas Helps

    Ertas Studio通过默认使用基于LoRA的微调、推荐保守的学习率,以及使用户能够在整个训练过程中同时评估通用能力和特定任务性能来缓解灾难性遗忘。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.