在当前的人工智能研究领域,基础模型(Foundation Models)已经在多种机器学习任务中展现出了卓越的性能。这些模型通常需要在庞大的数据集上进行预训练,然后再针对特定的下游任务进行微调,以达到最优的性能。然而,预训练数据往往来源于互联网,这就不可避免地引入了数据偏差(bias)和噪声 (noise)。本文介绍被ICLR 2024接收为spotlight的工作"Understanding and mitigating the label noise in pre-training on downstream tasks"。该研究首次深入揭示了预训练数据中的噪声对下游任务性能的影响,这些影响发生的原因、以及如何减轻这种影响。以本项研究为基础,我们在position paper中进一步提出基础大模型时代的全新研究方向:理解、解释、以及消除大模型本身的Catastrophic inheritance。
论文标题: Understanding and Mitigating the Label Noise in Pre-training on Downstream Tasks 论文链接: https://arxiv.org/abs/2309.17002,http://arxiv.org/abs/2403.06869 (加长版)
Position paper: https://arxiv.org/abs/2402.01909
代码链接:https://github.com/Hhhhhhao/Noisy-Model-Learning/tree/master (Initial Setup) 文章第一作者是来自CMU的博士生陈皓,通讯作者是微软亚洲研究院高级研究员王晋东。其他作者来自卡耐基梅隆大学、南方科技大学和RIKEN。
背景与动机
基础大模型在不同的机器学习任务中都取得了非常好的结果。通常来讲,在下游任务上应用Foundation models需要在非常庞大的数据上进行预训练(pre-training),再在下游任务上进行微调(Linear probing, LoRA, full fine-tuning, etc.). 这些预训练数据一般是从网络上采集,比如Laion-2B和Common Crawl, 所以不可避免的在预训练中引入一些Bias/Noise数据。这些预训练数据里的bias/noise可能会对Foundation model在下游任务上造成一些难以预测和不可避免的影响(如下图所示), 但是这些不同影响的在下游任务上具体表现形式以及原因并不清楚,但是对与这些模型的安全应用来说又十分重要。我们把这个全新的研究方向称之为 灾难性继承(Catastrophic Inheritance) 。
为何此问题如此困难? 因为基础模型要么不开源,要么太大了不好从头训练,大多数预训练数据也并不开源,这造成了黑盒的模型的数据。因此,我们要探索黑盒情形、设计的算法也必须是轻量有效的。
今天介绍的ICLR 2024 spotlight是我们在这个方向下做的第一步关于预训练数据噪音(Pre-training Noise)的工作 -- Noisy Model Learning。
Noisy Model Learning
谈到Noise, 通常大家的第一反应是Noisy Label Learning。我们提出的Noisy Model Learning与Noisy Label Learning略有不同(如下图所示):
Noisy label learning强调在下游任务的数据中存在Noise(标注错误)。目标是在有噪音的下游任务上学习一个Robust的分类器(或别的模型)。通常来讲,模型可以是train from scratch或者fine-tune pre-trained model。 Noisy model Learning强调在上游预训练的数据中存在Noise。相比于下游Noise, 预训练中的Noise取决于预训练的proxy task,可以存在不同的形式。在完成预训练后,Noisy Model Learning强调这些预训练中的Noise在下游上的影响,并且在对预训练模型没有全部权限的情况下如何减轻预训练Noise不好的影响。下游任务的数据可以是干净的也可以是有噪音的。
我们的研究展示了预训练噪声对基础模型在下游任务中性能的复杂影响。通过一系列实验,我们发现预训练中的轻微噪声(如5%或10%)实际上可以提高模型在ID下游任务上的性能,而对于OOD任务则可能导致性能下降。此外,我们还探索了预训练噪声对模型特征空间的影响,并提出了一种新的调整策略——NMTune——来有效减轻预训练噪声的不良影响。
Effects of Pre-training Noise
为了研究预训练中Noise的影响,我们设计了两组实验:
预训练:ResNet-50和ViT-B-16在Fully-Supervised (FS)和Image-Text Contrastive (CLIP) Learning的预训练 预训练数据:对Fully-Supervised (FS) Learning来说,我们采用ImageNet-1K作为预训练数据,并且随机污染标签当作噪音。对CLIP来说,我们采用YFCC15M+CC12M作为预训练数据,并且随机交换两组image-text pair中的text作为噪音。对于这两个数据和两种预训练方式,我们引入不同程度的噪音0%,5%,10%,15%,20%,30%。 下游任务评测:我们采用两种评测方式In-Domain (ID)和Out-of-Domain (OOD). 对于两种评测方式,我们对预训练的模型都采用Linear Probing的评测方式。ID采用14和数据集,OOD采用DomainNet和ImageNet variants. 除Linear Probing之外,在我们最近的扩展中也采用了ViT-B-16+LoRA和full fine-tuning来研究不同tuning的方法带来的影响。
预训练结果
预训练中我们采用了比较常用的training recipe, 并且clean pre-trained的模型与public的模型表现比较接近,在这里不再赘述。
Pre-training Noise在下游分类任务Linear Probing的影响
从有噪音预训练的模型在下游分类任务上做linear probing的结果上,我们有一些有趣的发现:
对ID任务来说,预训练中的 轻微noise (up to 5% or 10%)会得到更好的结果 对OOD任务来说,预训练中的noise会导致结果单调下降
ID任务上的结果与传统Noisy Label Learning的认知和我们的直觉相反。因此我们做了更多的实验来验证。
Pre-training Noise在下游分类任务LoRA/Full Fine-Tuning的影响
对Linear probing来说,预训练模型的权重并没有被改变。在下游任务上只有linear classifier是可训练的。所以我们继续探索了LoRA和full fine-tuning,来看看在预训练权重(部分)改变的时候是否还有和之前一致的观察。
从上图结果来看:
预训练的轻微噪音在下游ID任务做LoRA和full fine-tuning时仍然会带来结果的提升。 但是随着可改变的权重/feature变多,提升的幅度变小。 对OOD来说,LoRA和full fine-tuning仍然可以观察到一旦noise引入预训练,结果会变差。 幅度依然会随着可改变的权重/feature变多而变小。
Pre-training Noise在下游检测/分割任务的影响
除了分类任务外,我们也在检测和分割任务上观察到了类似的现象
理解:Feature Space Analysis
有了之前的观察后,我们尝试在预训练模型的feature space上做一些分析来解释为什么微量的预训练noise对ID任务是有帮助的,以及为什么预训练noise对OOD任务总是有害的。
我们对不同预训练模型在下游数据集上的feature做SVD,并且定义了两个metric:
SVE衡量singular value的分布。如果singular value分布的更均匀,SVE更大,说明模型在feature space上的有效dimension/capacity更多. LSVR衡量最大singular value对singular value总和的占比。这里我们取了negative log, 占比越小,LSVR约大。
我们发现:
在ID任务上,SVE在不同数据集上的pattern非常类似。 随着预训练noise的增加,SVE和ID Accuracy都先增加后降低。说明在有预训练noise时,模型用更多的dimension/capacity来拟合noise。微量的noise(5%, 10%)导致模型的feature space分布的更均匀,在ID下游任务上有更好的initialized feature和更好的表现。 在OOD任务上,随着预训练noise的增加,LSVR单调增加。 说明在预训练有noise时,模型把更多的singular value分配到了尾部的singular vector上,导致feature space上学到的dominant/most transferable singular vector更少。
值得一提的是,我们并不认为预训练噪音对ID任务上的帮助是来自于正则化的效果。相反,更多是来自于模型overfit/memorize预训练噪音而导致的feature space分布更均匀。不过这需要更多的工作来验证。
消除影响:NMTune方法
了解了feature space的不同后,我们提出了一个非常简单和直接的,在下游任务上直接缓解预训练noise的影响的方法 -- NMTune。
在下游任务上adapt预训练模型时,我们提出三个正则项:
MSE项帮助模型保持预训练的知识。 Cov项帮助模型学到更均匀的feature space。 Svd直接鼓励模型的最大singular value更大。
NMTune既可以应用到LP也可以应用到LoRA上,并且取得很好的缓解效果。在如今标准的CV和NLP大模型上都能稳定提点。
在ID上,NMTune不仅提高了模型整体的表现,同时也使clean预训练的模型表现的比noisy预训练模型更好 在OOD上,NMTune提高了模型的表现,也使noise带来的表现下降得到了一定缓解。
更多实验与讨论
真实噪音预训练模型
我们在真实噪音预训练的vision和language模型上验证了NMTune的有效性。
预训练Asymmetric噪音
之前我们主要考虑了预训练中的随机噪音,这里我们进一步探讨其他种类的噪音是否会带来一致的观察。我们在ImageNet-1K上选出了和CIFAR-100重合的类别,并且只在这些类中引入噪音,然后重新进行了之前的实验。在下游任务上,我们选择了与预训练中有噪音的类别直接相关的任务(related),和类别无关的任务(unrelated).
我们发现预训练的Asymmetric噪音对于类别相关的下游任务仍然有帮助。并且NMTune可以用来缓解asymmetric noise的影响。
Noisy Model Learning + Noisy Label Learning
最后我们探讨了Noisy Model Learning和Noisy Label Learning的结合。
我们发现,在下游任务上也有噪音时,之前的观察仍然成立,并且NMTune仍可以用来缓解预训练噪音在下游上的影响。
论文中有更详细的讨论。
Conclusion
对预训练数据的理解可以更好的帮助我们构建更高效/安全的Foundation Model。我们提出了一个非常有趣的新方向,Catastrophic Inheritance,来研究各种预训练数据的bias对foundation model在下游任务上的影响。作为第一篇探讨预训练噪音的工作,我们的探索集中在supervised pre-training上(supervision可以是各种形式,不局限于label)。最近我们也把预训练噪音的探索延伸到了diffusion model和language model上,以及其他种类的预训练数据bias,欢迎关注我们后续的工作。随着我们对预训练噪声研究的不断深入,我们相信这一新兴研究领域将揭示更多有趣的发现。