SAFE:基于预训练模型的持续学习新框架

SAFE框架利用慢速与快速参数高效调优策略,提升预训练模型在持续学习中的性能,有效避免灾难性遗忘。

原文标题:【NeurIPS2024】SAFE: 慢速与快速参数高效调优用于基于预训练模型的持续学习

原文作者:数据派THU

冷月清谈:

持续学习的目标是从连续的数据流中学习新知识,同时不忘记之前的知识。SAFE框架利用预训练模型,并通过慢速和快速参数高效调优来解决持续学习中的挑战。

首先,SAFE通过迁移损失函数,衡量预训练模型和应用参数高效调优后模型之间的相关性,保留预训练模型中的通用知识。这使得慢速高效调优的参数能够捕捉更多信息特征,提高对后续类别的泛化能力。

其次,SAFE在增量学习阶段平衡了稳定性和适应性。它固定慢速高效调优的参数,并持续更新快速参数,并利用跨分类损失和特征对齐方法来避免灾难性遗忘。

最后,在推理阶段,SAFE采用基于熵的聚合策略,动态地利用慢速和快速学习者之间的互补性。

实验结果表明,SAFE在多个基准数据集上优于现有的持续学习方法。

怜星夜思:

1、SAFE框架中提到的“慢速”和“快速”参数高效调优具体是如何实现的?它们分别更新哪些参数,更新频率是多少?
2、文章提到了使用跨分类损失和特征对齐来避免灾难性遗忘,这两种方法具体是如何工作的?它们之间有什么联系和区别?
3、基于熵的聚合策略在推理阶段是如何动态利用慢速和快速学习者的?这种策略相比于简单的平均或加权平均有什么优势?

原文内容

来源:专知

本文约1000字,建议阅读5分钟

我们提出了一个慢速与快速参数高效调优(SAFE)框架。


持续学习旨在从数据流中逐步获取新概念,同时避免遗忘先前的知识。随着强大**预训练模型(PTMs)的兴起,越来越多的研究关注如何使用这些基础模型来训练增量学习系统,而不是从头开始学习。现有的研究通常将预训练模型视为一个强大的起点,并在第一阶段直接应用参数高效调优(PET)**以适应下游任务。在随后的阶段,大多数方法会冻结模型参数,以解决遗忘问题。然而,直接将PET应用于下游数据并不能充分挖掘预训练模型中的固有知识。此外,在增量学习阶段冻结参数会限制模型对第一阶段未涵盖的新概念的适应性。
为了解决上述问题,我们提出了一个慢速与快速参数高效调优(SAFE)框架。具体来说,为了继承基础模型中的通用知识,我们通过衡量预训练模型与应用PET后的模型之间的相关性,加入了一个迁移损失函数。在第一阶段进行校准后,慢速高效调优的参数能够捕捉到更多的信息特征,从而提高对后续类别的泛化能力。此外,为了进一步融入新概念,我们在稳定性和适应性之间找到了平衡,通过固定慢速高效调优参数并持续更新快速参数来实现这一目标。具体而言,我们提出了一种跨分类损失与特征对齐方法,用以规避灾难性遗忘。在推理阶段,我们引入了一种基于熵的聚合策略,动态地利用慢速和快速学习者之间的互补性。
在七个基准数据集上的广泛实验验证了我们方法的有效性,显著超越了当前的最新技术。代码将在 https://github.com/MIFA-Lab/SAFE 上发布。



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU


跨分类损失,我理解的是让模型在学习新类别时,也要兼顾旧类别的分类性能,防止模型过度偏向新类别而忘记旧类别。特征对齐可能是通过某种方式约束新旧类别特征的分布,让它们保持一定的相似性,从而减少遗忘。

感觉这两个方法像是从不同角度来解决遗忘问题。跨分类损失是从输出层入手,保证所有类别的分类准确性。特征对齐是从特征层面入手,保证新旧特征的 consistency。两者结合起来应该能更好地防止遗忘。

我猜想,“慢速”参数的更新频率应该比较低,可能类似于学习率衰减的方式,逐渐降低更新幅度,而“快速”参数则保持相对较高的更新频率,以便快速适应新数据。至于具体更新哪些参数,我估计可能跟模型结构有关,比如Transformer模型中不同层的参数更新策略可能不同。

我猜想,基于熵的聚合策略可能是根据模型对每个样本预测的置信度来决定如何组合慢速和快速学习者的输出。如果模型对某个样本的预测置信度高,就更倾向于相信对应的学习者;反之,则可能进行平均或加权平均。

“基于熵的聚合策略”这个说法很有意思。简单平均或加权平均的方式比较固定,而基于熵的策略可以根据具体情况动态调整,感觉更智能一些。期待看到具体的实现细节。

从文章中“固定慢速高效调优参数并持续更新快速参数”这句话来看,我感觉像是把模型分成两部分,一部分参数学习慢,一部分学习快。有点像一些元学习方法中,区分meta learner和local learner,一个学习全局知识,一个学习局部知识。等代码出来看看是不是这样。

关于“跨分类损失和特征对齐”,我觉得可以参考一些增量学习的经典论文,比如iCaRL和LwF。iCaRL使用了exemplar memory和classification loss,LwF使用了knowledge distillation loss。SAFE的方法可能跟这些方法有一些相似之处,但也做了改进。

熵反映了模型预测的不确定性。利用熵来动态聚合,应该比简单的平均或加权平均更灵活,能够更好地利用两个学习者的优势,从而提高整体性能。有点像集成学习中的动态选择策略。

关于“慢速”和“快速”参数高效调优,文章中提到了慢速参数主要在第一阶段进行调整,目的是捕捉预训练模型中的通用知识,而快速参数则在后续阶段持续更新,以适应新概念。至于具体的实现细节,比如哪些参数被归类为“慢速”或“快速”,以及它们的更新频率,还需要等代码开源后才能进一步了解。