Meta 聯(lián)合紐約大學和華盛頓大學提出MetaCLIP,帶你揭開CLIP的高質(zhì)量數(shù)據(jù)之謎。
自2021年誕生,CLIP已在計算機視覺識別系統(tǒng)和生成模型上得到了廣泛的應用和巨大的成功。我們相信CLIP的創(chuàng)新和成功來自其高質(zhì)量數(shù)據(jù)(WIT400M),而非模型或者損失函數(shù)本身。雖然3年來CLIP有大量的后續(xù)研究,但并未有研究通過對CLIP進行嚴格的消融實驗來了解數(shù)據(jù)、模型和訓練的關系。
CLIP原文僅有簡短的數(shù)據(jù)處理描述,而后續(xù)工作依靠已經(jīng)訓練好的CLIP來重新過濾數(shù)據(jù)去訓練CLIP(學生)模型。更廣泛地說,雖然目前的開源著重強調(diào)已訓練模型權重的公開,而訓練數(shù)據(jù)以及如何從低質(zhì)量數(shù)據(jù)獲得高質(zhì)量數(shù)據(jù)的技巧的公開度卻往往并不那么高。
本文帶你揭開CLIP的數(shù)據(jù)質(zhì)量之謎,為開源社區(qū)帶來元數(shù)據(jù)導向的CLIP預訓練(MetaCLIP)。

- 原文鏈接:https://arxiv.org/abs/2309.16671
- 項目鏈接:https://github.com/facebookresearch/MetaCLIP
- 論文標題:Demystifying CLIP Data
MetaCLIP數(shù)據(jù)質(zhì)量
MetaCLIP根據(jù)CLIP原文對數(shù)據(jù)處理的描述,提出可擴展到整個CommonCrawl上的數(shù)據(jù)算法。該算法接受原始互聯(lián)網(wǎng)數(shù)據(jù)分布,產(chǎn)生在元數(shù)據(jù)上平衡的高質(zhì)量訓練數(shù)據(jù)分布。
MetaCLIP產(chǎn)生的數(shù)據(jù)質(zhì)量源自兩個部分:
(1) 通過元數(shù)據(jù)字符串匹配來抓取高質(zhì)量人類監(jiān)督文本;
(2)通過平衡數(shù)據(jù)在元數(shù)據(jù)上的分布來最大限度保留長尾數(shù)據(jù)的信號、弱化噪聲以及頭部分布的冗余信息。MetaCLIP的元數(shù)據(jù)來自50萬個WordNet和維基百科的視覺概念(visual concept),它們使被匹配的alt文本包含超越人類平均認知水平的監(jiān)督質(zhì)量(superhuman level supervision)。
我們的實驗嚴格遵循CLIP設定來控制研究數(shù)據(jù)分布對結果的影響。整個數(shù)據(jù)提取,訓練無需已訓練CLIP來過濾數(shù)據(jù)以及潛在未知的來自OpenAI CLIP的數(shù)據(jù)偏見。
相反的是,MetaCLIP數(shù)據(jù)算法同時輸出訓練數(shù)據(jù)分布。這使得訓練數(shù)據(jù)更加透明,以方便調(diào)試模型。MetaCLIP在400M訓練數(shù)據(jù)上達到ViT-B 70.8%的零樣本ImageNet分類精度;使用1B訓練數(shù)據(jù)上達到72.4%;在2.5B訓練數(shù)據(jù)上使用ViT-bigG模型達到82.1%,而整個模型和訓練參數(shù)并未進行任何更改(比如學習率或批樣本量)。

消融實驗表明:字符串匹配(MetaCLIP w/o bal. (400M))和平衡分布(MetaCLIP(400M)) 對MetaCLIP的數(shù)據(jù)質(zhì)量產(chǎn)生重大貢獻。
CLIP數(shù)據(jù)算法介紹
本文正式提出CLIP數(shù)據(jù)算法,來簡化和產(chǎn)生高質(zhì)量的訓練數(shù)據(jù)。
該方法大致分為:創(chuàng)建元數(shù)據(jù),提出數(shù)據(jù)算法,提高數(shù)據(jù)質(zhì)量及輸出訓練數(shù)據(jù)等四個步驟。
具體方法見下:
(1) 實現(xiàn)了CLIP數(shù)據(jù)的相關描述,包括如何創(chuàng)建元數(shù)據(jù);
(2)提出如下數(shù)據(jù)算法:第一部分為元數(shù)據(jù)字符串匹配,第二部分為平衡數(shù)據(jù)分布。該算法簡潔可擴展,本文已證明可在所有CommonCrawl 300+B 級圖片樣本并行運行;
(3)可植入已有數(shù)據(jù)流水線或者數(shù)據(jù)加載器(data loader)來提高數(shù)據(jù)質(zhì)量;
(4)輸出訓練數(shù)據(jù)在元數(shù)據(jù)上的訓練分布使得訓練數(shù)據(jù)更透明。
該算法的python代碼如下:

MetaCLIP的元數(shù)據(jù)來自WordNet和Wikipedia的高質(zhì)量視覺概念(visual concept)。我們根據(jù)CLIP原文描述實現(xiàn)了從維基百科提取uni/bi-gram以及高頻標題的過程。
相關選取的超參數(shù)如下:

元數(shù)據(jù)的創(chuàng)建來源
MetaCLIP算法簡潔,可以將兩部分分開植入已有的數(shù)據(jù)流水線。
如下圖所示,該算法可以在數(shù)據(jù)流水線的早期進行植入,來減小數(shù)據(jù)規(guī)模和對計算資源存儲的開銷:
- 第一部分(元數(shù)據(jù)字符串匹配)能減少50%的數(shù)據(jù)量;
- 第二部分(平衡數(shù)據(jù)分布)能減少77%的數(shù)據(jù)量。

算法可輕松接入已有數(shù)據(jù)流水線,降低處理低質(zhì)量數(shù)據(jù)的開銷
下圖展示了平衡數(shù)據(jù)分布的效果:橫坐標將元數(shù)據(jù)里每個視覺概念的匹配數(shù)量從低到高排列,縱坐標累計匹配。
表格中展示了不同頻率區(qū)段視覺概念的匹配數(shù)量:

平衡數(shù)據(jù)分布使得1.6B的原始數(shù)據(jù)被下采樣成400M的訓練數(shù)據(jù)。
我們可以看到MetaCLIP數(shù)據(jù)算法對頭部分布進行了高度下采樣,這將降低頭部分布的冗余無效信息和頭部數(shù)據(jù)的噪聲(比如untitled photo),所有長尾分布的視覺概念全部保留。
實驗結果
我們設計了兩個數(shù)據(jù)池來運行數(shù)據(jù)算法。
- 第一個池的目標是獲得400M訓練數(shù)據(jù)來和CLIP進行比較;
- 第二個池的目標是所有CommonCrawl數(shù)據(jù)。
我們進一步對第二個數(shù)據(jù)池運行了兩次數(shù)據(jù)算法,一次設定頭尾分布的閾值(t=20k)與400M一致(最終獲得1B數(shù)據(jù)),一次設定尾部分布的比例與400M尾部的比例一致(t=170k,最終獲得2.5B數(shù)據(jù))。
MetaCLIP在DataComp的38個任務上的實驗結果如下:

我們可以看到MetaCLIP在400M上略好于OpenAI CLIP或者OpenCLIP。在第二個池上性能進一步超越400M。更多的數(shù)據(jù)在更大的模型ViT-bigG上產(chǎn)生更好的效果。而這些性能的提升完全來自數(shù)據(jù)而非模型結構改進或者訓練技巧本身。
在CLIP/SLIP每個分類任務上的詳細實驗結果請參考原文。
實驗結論
本文提出了CLIP的數(shù)據(jù)算法來產(chǎn)生高質(zhì)量訓練數(shù)據(jù):算法可在所有CommonCrawl 的300+B 級圖片樣本對上并行運行。
實驗表明元數(shù)據(jù)字符串匹配和平衡分布都對結果有重大貢獻,算法無需使用CLIP模型過濾或者提高訓練開銷來提升性能,并且使得訓練數(shù)據(jù)分布更加透明。
本文轉(zhuǎn)自 機器之心 ,作者:機器之心

















