CLIP 已经被证明是一种高效的 文本-图像对预训练方法 ,CLIP模型不仅能够实现可迁移的图像特征,而且也可以广泛应用在一些多模态任务中,比如最近比较火的 AIGC模型 如 DALLE2 和 Stable Diffusion 均使用了CLIP模型来引导文本到图像的生成。近日,Meta AI团队(Kaiming He组)在论文Scaling Language-Image Pre-trainingvia Masking中提出了一种简单高效的CLIP加速训练方法 FLIP :只需要 mask掉部分图像 ,就可以将CLIP的训练过程 加速2~3倍 ,而且可以实现更好的性能。这篇文章将简单介绍FLIP的主要方法以及一些重要的实验结论。
主要方法
CLIP包括两个模型:文本encoder和图像encoder,训练采用文本-图像对数据,并通过 对比学习 将文本encoder提取的文本特征和图像encoder提取的图像特征进行对齐,具体过程如下所示(详细版见之前的文章神器CLIP:连接文本和图像,打造可迁移的视觉模型):在具体的实现上,FLIP和原始的CLIP在image encoder和text encoder上和OpenAI的CLIP有如下不同:
- FLIP的image encoder和原始的ViT一样,在patch embedding后没有采用额外的LayerNorm,而且用global average pooling来提取最后的全局特征(CLIP 采用class token的特征);
- FLIP的text encoder是一个非自回归的transformer,而CLIP采用了自回归的transformer(加上causal attention mask),另外采用长度为32的WordPiece tokenizer,CLIP采用长度为77的BytePairEncoding tokenizer。
论文里面也指出,这些设计上的不同并不会导致较大的性能差异。另外模型训练时基于谷歌的JAX框架在TPUv3上训练的。除了ViT-L/16,论文还基于ViT-B/16,ViT-L/14以及ViT-H/14进行了实验,在ImageNet1K上的结果如下表所示,可以看到FLIP(mask 50%)在zero-shot性能上可以超过同样基于 LAION-400M 复现的CLIP(除了B/16)以及开源的OpenCLIP,而略差于OpenAI的CLIP,在linear probe和fine-tune实验上可以得到同样的结论。
消融实验
论文中还对不同的设计进行了详细的对比实验,这里是基于ViT-L/16模型在LAION-400M数据集上训练6.4 epochs。其中(a)表对比了不同mask ratio的影响(无unmasking tuning),可以看到随着mask ratio的增加,batch size增大,FLOPs和训练时长均下降,但是mask 50%可以取得最好的效果,当mask 75%,信息丢失带来的不利影响较大。而(b)表对比了batch size对模型性能的影响,可以看到大的batch size效果较好,这是图像mask带来的额外收益。(c)表实验了text masking,可以看到对文本mask会带来性能的下降,这主要是因为图像的信息往往是冗余的但文本信息密度高,而且由于text encoder的计算占比较小,所以text masking并不是一个好的选择。而(e)表对比了unmasking tuning的影响,如前面所说,由于训练和测试时的图像分布gap,如果没有unmasking tuning过程,模型性能会表现差一些,其中(d)表对比了inference采用mask图像和unmask图像的性能差异。最后(f)表是增加MAE的重建损失,但是模型效果是没有提升的。
scaling性能
由于FLIP可以大大加速CLIP的训练,论文最后还基于FLIP进行了大规模的scaling实验,这主要包括三个方面:
- Model scaling :使用ViT-H替代ViT-L,模型参数增大了2倍;
- Data scaling :将预训练数据集从LAION-400M扩展到更大的数据集LAION-2B(固定训练过程采样的样本总量);
- Schedule scaling :增加训练过程的采样数据量(从12.8B->25.6B,即训练epochs从32增加至64);
其中实验结果如下图所示,可以看到 增大模型可以带来比较稳定的性能提升;而采用更大的训练数据集在最后也可以带来性能提升;但是采用原来的LAION-400M数据集只增加采样数据量并不能带来性能提升 。
小结
FLIP通过简单的图像mask来提升CLIP的训练速度,并可以带来性能上的提升,另外我们也可以看到训练数据集的差异(尽管数据量都达到了400M)还是对模型有一定的影响。
参考
- Learning Transferable Visual Models From Natural Language Supervision
- Scaling Language-Image Pre-training via Masking