模態(tài)編碼器 | FLIP:通過(guò)圖像掩碼加速CLIP訓(xùn)練

來(lái)聊聊Meta AI團(tuán)隊(duì)(何愷明組)提出的一個(gè)高效的CLIP加速訓(xùn)練方法——FLIP。看完MAE,很自然的一個(gè)想法就是將MAE用到CLIP里的圖像編碼器上,F(xiàn)LIP實(shí)現(xiàn)了這個(gè)想法,通過(guò)在訓(xùn)練過(guò)程中對(duì)圖像進(jìn)行隨機(jī)掩碼(masking),顯著提升了訓(xùn)練效率。
動(dòng)機(jī)也很簡(jiǎn)單,CLIP訓(xùn)練成本高,耗費(fèi)大量時(shí)間和資源,高效省時(shí)的訓(xùn)練方法則成為研究重點(diǎn)。
簡(jiǎn)單看下FLIP結(jié)果,只需要mask掉部分圖像,就可以將CLIP的訓(xùn)練過(guò)程加速2~3倍,而且可以實(shí)現(xiàn)更好的性能:

01、方法介紹

與CLIP相比,F(xiàn)LIP最關(guān)鍵的改進(jìn)就是借鑒了MAE(Masked Autoencoders)的思想,在訓(xùn)練過(guò)程中對(duì)圖像進(jìn)行隨機(jī)mask。這意味著圖像編碼器(image encoder)只需要處理未被mask的部分圖像塊(patches)。具體實(shí)現(xiàn)上的差異:
- 圖像編碼器(Image Encoder): FLIP的圖像編碼器與原始的ViT(Vision Transformer)架構(gòu)類似,但在patch embedding后沒(méi)有采用額外的LayerNorm,并且使用全局平均池化(global average pooling)來(lái)提取最終的全局特征,而CLIP則使用class token的特征。
- 文本編碼器(Text Encoder): FLIP使用非自回歸的Transformer,而CLIP則使用自回歸的Transformer(帶有因果注意力掩碼)。此外,F(xiàn)LIP使用長(zhǎng)度為32的WordPiece tokenizer,而CLIP使用長(zhǎng)度為77的BytePairEncoding tokenizer。
對(duì)圖像進(jìn)行掩碼處理,主要有以下幾個(gè)顯著的優(yōu)勢(shì):
- 加速訓(xùn)練: 由于圖像編碼器只需要處理部分圖像塊,大大降低了計(jì)算量,從而在相同的訓(xùn)練時(shí)間內(nèi)可以處理更多的圖像-文本對(duì),提高了訓(xùn)練效率。
- 節(jié)省顯存: 遮擋部分圖像可以顯著減少圖像編碼器的顯存占用(例如,遮擋50%的圖像,顯存消耗就降低50%)。這使得在有限的硬件資源下可以使用更大的batch size進(jìn)行訓(xùn)練,而對(duì)比學(xué)習(xí)通常需要較大的batch size才能取得更好的效果。
- 可能的正則化效果: 雖然圖像掩碼會(huì)導(dǎo)致部分信息丟失,但這可能反而起到一種正則化的作用,有助于模型更好地泛化,避免過(guò)擬合。
02、實(shí)驗(yàn)結(jié)果
與OpenCLIP對(duì)比
與OpenCLIP的對(duì)比結(jié)果清晰地展示了FLIP的效率提升。在訓(xùn)練相同epochs(32 epochs)的情況下:
- 使用50%掩碼的FLIP可以將訓(xùn)練速度提升2倍,同時(shí)在ImageNet1K上的zero-shot準(zhǔn)確率提高0.9%。
- 使用75%掩碼的FLIP可以將訓(xùn)練速度提升2.9倍,準(zhǔn)確率提高0.6%。
需要注意的是,如果不進(jìn)行unmasking tuning(即在訓(xùn)練后期少量使用無(wú)掩碼圖像進(jìn)行微調(diào)),F(xiàn)LIP的性能會(huì)有所下降,尤其是75%掩碼的情況,其性能甚至略遜于CLIP。這表明訓(xùn)練和測(cè)試過(guò)程中圖像分布的差異(distribution gap)仍然會(huì)對(duì)性能產(chǎn)生一定影響。

不同模型和數(shù)據(jù)集上的表現(xiàn)
論文基于ViT-L/16、ViT-B/16、ViT-L/14以及ViT-H/14等不同模型進(jìn)行了實(shí)驗(yàn),并在ImageNet1K上進(jìn)行了評(píng)估。結(jié)果表明,F(xiàn)LIP(50%掩碼)在zero-shot性能上優(yōu)于同樣基于LAION-400M數(shù)據(jù)集復(fù)現(xiàn)的CLIP以及開源的OpenCLIP(除了B/16模型),但略遜于OpenAI的CLIP。在linear probe和fine-tune實(shí)驗(yàn)中也觀察到了類似的趨勢(shì)。這很可能歸因于預(yù)訓(xùn)練數(shù)據(jù)集的差異(WIT-400M vs LAION-400M)。

在其他圖像數(shù)據(jù)集上的對(duì)比結(jié)果也顯示,F(xiàn)LIP明顯優(yōu)于基于LAION-400M復(fù)現(xiàn)的CLIP和OpenCLIP,但在部分?jǐn)?shù)據(jù)集上略遜于OpenAI的CLIP,這再次印證了預(yù)訓(xùn)練數(shù)據(jù)集的重要性。
論文還進(jìn)一步在zero-shot圖像-文本檢索、zero-shot魯棒性、圖像描述(image captioning)以及視覺(jué)問(wèn)答(visual question answering)等任務(wù)上進(jìn)行了對(duì)比實(shí)驗(yàn)。結(jié)果表明,F(xiàn)LIP在這些任務(wù)中均表現(xiàn)出良好的性能,僅在zero-shot魯棒性方面略遜于OpenAI的CLIP(這同樣可能是由于訓(xùn)練數(shù)據(jù)集的差異)。

消融實(shí)驗(yàn)
為了深入理解FLIP中各個(gè)設(shè)計(jì)選擇的影響,論文進(jìn)行了一系列消融實(shí)驗(yàn),這些實(shí)驗(yàn)基于ViT-L/16模型在LAION-400M數(shù)據(jù)集上訓(xùn)練6.4個(gè)epochs。

- (a) 不同掩碼比例(mask ratio): 實(shí)驗(yàn)表明,隨著掩碼比例的增加,batch size增大,F(xiàn)LOPs和訓(xùn)練時(shí)長(zhǎng)均下降。50%的掩碼比例在速度和性能之間取得了最佳平衡,而75%的掩碼比例則由于信息丟失過(guò)多而導(dǎo)致性能下降。
- (b) Batch size的影響: 實(shí)驗(yàn)證實(shí),更大的batch size可以帶來(lái)更好的性能,這突顯了圖像掩碼帶來(lái)的額外優(yōu)勢(shì)。
- (c) 文本掩碼(text masking): 實(shí)驗(yàn)表明,對(duì)文本進(jìn)行掩碼會(huì)導(dǎo)致性能下降。這可能是因?yàn)閳D像信息通常是冗余的,而文本信息密度更高。此外,由于文本編碼器的計(jì)算量相對(duì)較小,因此文本掩碼并不是一個(gè)有效的優(yōu)化手段。
- (d) 推理階段的掩碼: 實(shí)驗(yàn)對(duì)比了在推理階段使用掩碼圖像和非掩碼圖像的性能差異。
- (e) Unmasking tuning的影響: 正如前面提到的,由于訓(xùn)練和測(cè)試數(shù)據(jù)分布的差異,如果沒(méi)有unmasking tuning,模型性能會(huì)受到影響。
- (f) 添加MAE的重建損失: 實(shí)驗(yàn)表明,添加MAE的重建損失并不能帶來(lái)性能提升。
Scaling性能
由于FLIP顯著加速了CLIP的訓(xùn)練,論文還進(jìn)行了大規(guī)模的scaling實(shí)驗(yàn),包括:
- 模型Scaling(Model scaling): 使用ViT-H代替ViT-L,將模型參數(shù)增加了一倍。
- 數(shù)據(jù)Scaling(Data scaling): 將預(yù)訓(xùn)練數(shù)據(jù)集從LAION-400M擴(kuò)展到更大的LAION-2B數(shù)據(jù)集(固定訓(xùn)練過(guò)程中采樣的樣本總量)。
- 訓(xùn)練計(jì)劃Scaling(Schedule scaling): 增加訓(xùn)練過(guò)程中采樣的樣本量(從12.8B到25.6B,即訓(xùn)練epochs從32增加到64)。
實(shí)驗(yàn)結(jié)果表明:增大模型規(guī)模可以帶來(lái)穩(wěn)定的性能提升。使用更大的訓(xùn)練數(shù)據(jù)集在后期可以帶來(lái)額外的性能提升。僅增加采樣數(shù)據(jù)量(在相同的LAION-400M數(shù)據(jù)集上增加epochs)并不能顯著提升性能。

通過(guò)組合scaling實(shí)驗(yàn),特別是model+data scaling的組合,可以在各個(gè)任務(wù)上取得較好的性能。而model+data+schedule的聯(lián)合scaling在ImageNet1K數(shù)據(jù)集上取得了最高的zero-shot性能,達(dá)到78.1%,與目前OpenCLIP開源的最佳模型(同樣基于ViT-H和LAION-2B,采樣32B數(shù)據(jù)量,性能為78.0%)相當(dāng)。但得益于圖像掩碼,F(xiàn)LIP的訓(xùn)練速度比后者快2.5倍。
03、總結(jié)
FLIP增大模型尺寸繼續(xù)漲點(diǎn);FLIP增大數(shù)據(jù)規(guī)模繼續(xù)漲點(diǎn);FLIP增大訓(xùn)練時(shí)長(zhǎng)幾乎沒(méi)什么漲點(diǎn)。
FLIP給出資源受限情況下的視覺(jué)語(yǔ)言訓(xùn)練新范式,也給出模型訓(xùn)練中數(shù)據(jù)規(guī)模和模式尺寸的通用Trick。摘要最后一句提到“We hope that our work will foster future research on scaling vision-language learning.”。預(yù)計(jì)會(huì)成vision-language learning的一個(gè)通用Trick,是對(duì)的MAE一次推廣。





































