Long-CLIP:無縫擴(kuò)展 CLIP 模型的長文本理解能力
一、背景
這里介紹一下新出的文章 Long-CLIP,方案雖然比較簡單,但是 CLIP 使用的場景非常多,因此對(duì)很多任務(wù)也會(huì)比較有幫助。
對(duì)應(yīng)的論文為:??https://arxiv.org/abs/2403.15378??
對(duì)應(yīng)的代碼庫為:??https://github.com/beichenzbc/Long-CLIP/tree/main??
二、摘要
CLIP(Contrastive Language Image Pre-Training)模型在涉及圖文相關(guān)的場景中非常常用,比如圖文檢索、文生圖以及大型多模態(tài)模型等。它們通常使用 CLIP 中的 Text Encoder 或 Image Encoder 對(duì)文本或圖像進(jìn)行編碼。然而,CLIP 中的 Text Encoder 只支持 77 個(gè) Text Token,甚至有研究表明其超過 20 個(gè) Token 就會(huì)導(dǎo)致性能下降,這會(huì)導(dǎo)致其無法處理長文本的場景,比如詳細(xì)描述。
在 Long-CLIP 中,作者通過對(duì) Positional Embedding 的 Knowledge-Preserved Stretching 以及 Primary Component Matching 方案對(duì) CLIP 模型進(jìn)行優(yōu)化,使其在保留短文本能力的同時(shí)擴(kuò)充長文本理解能力,并且可以無縫替換已有的 CLIP 模型,在針對(duì)長文本的圖文檢索任務(wù)上提升 20%,在傳統(tǒng)圖文檢索任務(wù)提升 6%。
三、方法
3.1 CLIP 模型
CLIP 模型是 OpenAI 在大規(guī)模圖像-文本對(duì)數(shù)據(jù)集上通過對(duì)比學(xué)習(xí)方式訓(xùn)練的圖文模型,具體論文可以參考 [2103.00020] Learning Transferable Visual Models From Natural Language Supervision,對(duì)應(yīng)的代碼庫為 GitHub - openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image。其核心思想為:一對(duì)圖像-文本分別提取特征,這一對(duì)特征的相似性應(yīng)該盡可能大,而圖像和其他文本對(duì)應(yīng)的特征相似性應(yīng)該盡可能小。
3.2 Knowledge-Preserved Stretching
CLIP 中的 Text Encoder 采用了可學(xué)習(xí)的絕對(duì) Position Embedding,因此輸入文本 Token 會(huì)受到 77 個(gè) Token 的限制,也有一些方案試圖解決這個(gè)問題,比如位置編碼插值方法。然而,這種簡單的線性插值方案可能導(dǎo)致對(duì)已有 Position Embedding 的干擾,導(dǎo)致影響模型對(duì)短文本的理解能力。
幸運(yùn)的是,作者發(fā)現(xiàn) CLIP 模型本身的前 20 個(gè) Token 的 Postion Embedding 對(duì)模型效果起到至關(guān)重要的作用,而在之后的 Position Embedding 并沒有經(jīng)過較充分的學(xué)習(xí)?;谶@一發(fā)現(xiàn),作者在進(jìn)行 Position Embedding 插值時(shí)會(huì)保留前 20 個(gè) Position Embedding,只對(duì)后續(xù)的 Position Embedding 進(jìn)行插值。
其相應(yīng)推理過程也很簡單,這里作者額外創(chuàng)建了一個(gè) positional_embedding_res,其有效長度為 248-20=(77-20)*4=228,也就是 57 個(gè) Position Embedding 擴(kuò)展為 228 個(gè) Position Embedding,推理時(shí)分別處理。
3.3 Primary Component Matching
在進(jìn)行長度外推后,直接使用長文本進(jìn)行微調(diào)并不能獲得理想的效果,主要是其會(huì)導(dǎo)致短文本能力的下降,尤其是在分類任務(wù)上。因此,作者進(jìn)一步探索了如何通過微調(diào)來解鎖長文本理解能力,同時(shí)保留短文本能力。
具體方案如下圖 Fig.3 所示,作者提出了 Primary Component Matching 策略:
- 同時(shí)輸入圖像、短文本以及詳細(xì)長文本,分別提取特征,分別對(duì)應(yīng)細(xì)粒度圖像特征、粗粒度文本特征和細(xì)粒度文本特征;
- 使用 Primary Component Extraction 模塊從細(xì)粒度圖像特征中提取粗粒度圖像特征。
- 訓(xùn)練的目標(biāo)為:細(xì)粒度圖像特征和細(xì)粒度文本特征對(duì)齊,粗粒度圖像特征和粗粒度文本特征對(duì)齊。?
那么什么是細(xì)粒度圖像特征,什么是粗粒度圖像特征呢?作者認(rèn)為,一個(gè)好的模型不僅應(yīng)該能捕獲各種屬性,還應(yīng)該理解它們之間的相對(duì)關(guān)系和不同的重要性。而長描述文本微調(diào)可能將模型推向于只捕獲各種屬性,為此,作者期望模型還能夠?qū)W⒂诓东@關(guān)鍵屬性對(duì)應(yīng)的粗粒度圖像特征,并與短文本特征對(duì)齊。
基于以上考量,作者將 Primary Component Extraction 模塊分為 3 個(gè)基本組件:
- Component-Decomposition Function:分解為特征值(重要性)和特征向量,Ifine 為細(xì)粒度圖像特征
? - Component-Filtration Function:按照特征值(重要性)過濾,這里作者保留了32 個(gè)最大的特征值
? - ?
- Component-Reconstruction Function:使用過濾后的特征值和特征向量恢復(fù)到原來的特征空間,Icoarse 為粗粒度圖像特征
?
上述的過程和我們常見的數(shù)據(jù)壓縮-重建,圖像去噪等處理高度相似,作者也同樣直接使用 PCA(Principal Component Analysis)方法來實(shí)現(xiàn)。
PS:其實(shí) OpenAI 在其文生圖模型 DALL-E 2([2204.06125] Hierarchical Text-Conditional Image Generation with CLIP Latents) 中也通過 PCA 來降低 CLIP 圖像 embedding 的維度。這是因?yàn)樽髡甙l(fā)現(xiàn),當(dāng)使用 SAM 訓(xùn)練 CLIP 時(shí),CLIP 表征空間的秩急劇下降,同時(shí)略微提升了評(píng)估指標(biāo)。作者發(fā)現(xiàn)僅保留 1024 個(gè)主成分中的 319 個(gè)也能幾乎保留全部信息。
四、評(píng)估
4.1 定量評(píng)估
如下圖 Table 1 所示,在長文本的文本-圖像檢索任務(wù)上,提出的 Long-CLIP 模型獲得了最優(yōu)的效果:
如下圖 Table 2 所示,在短文本的文本-圖像檢索任務(wù)上,提出的 Long-CLIP 模型甚至獲得了比原始 CLIP 更好的效果,并且明顯優(yōu)于直接微調(diào)的方案:
如下圖 Table 3 所示,在 0-shot 圖像分類任務(wù)上,提出的 Long-CLIP 模型明顯優(yōu)于直接微調(diào)的方案,并且相比原始 CLIP 差距不大:
4.2 消融實(shí)驗(yàn)
作者也進(jìn)一步進(jìn)行了消融實(shí)驗(yàn),來驗(yàn)證提出的兩個(gè)組件 Knowledge-Preserved Stretching(KPS) 以及 Primary Component Matching(PCM) 的有效性。如下圖 Table 4 所示,同時(shí)使用兩個(gè)組件在所有任務(wù)上獲得了最優(yōu)效果:
4.3 定性評(píng)估
為了驗(yàn)證提供模型的即插即用特性,作者直接替換了 Stable-Diffusion-V1-5 中的 CLIP text encoder,用于驗(yàn)證其文生圖能力,如下圖可以看出,替換后模型能更好的遵循指令,生成更多的細(xì)節(jié)信息,而原始的結(jié)果中往往容易忽略一些內(nèi)容:
PS:其實(shí) OpenAI 也在很早之前意識(shí)到了這個(gè)問題,在 DALL-E 3(Improving Image Generation with Better Captions)模型中,他們發(fā)現(xiàn)傳統(tǒng)的文生圖模型難以遵循詳細(xì)的圖像描述,并且經(jīng)常出現(xiàn)忽略單詞或混淆提示的語義,作者猜測(cè)可能是訓(xùn)練集中的噪聲或者不準(zhǔn)確的圖像描述導(dǎo)致的。相應(yīng)的解決方案是訓(xùn)練了一個(gè)詳圖圖像描述模型,然后對(duì)圖像生成高度描述性的文本,然后借助這些文本用于模型訓(xùn)練,可以大大提高文生圖的指令跟隨能力。此外作者也將相關(guān)能力應(yīng)用到了其強(qiáng)大的視頻生成模型 Sora 中。
PS:在 Google 的 Imagen([2205.11487] Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding)文生圖模型中作者也發(fā)現(xiàn)了類似的現(xiàn)象。具體來說,作者發(fā)現(xiàn)使用 CLIP 的 Text Encoder 和 T5-XXL 在 MS-COCO 等簡單任務(wù)上獲得了相似的表現(xiàn),但是在 DrawBench 上人們更喜歡 T5-XXL 作為 Encoder 的結(jié)果,作者也認(rèn)為主要原因是 DrawBench 中的文本 Prompt 更加復(fù)雜,比如包含更長、更詳細(xì)的描述。
五、參考鏈接
- ???https://arxiv.org/abs/2403.15378???
- ???https://github.com/beichenzbc/Long-CLIP/tree/main???
- ???https://arxiv.org/abs/2103.00020???
- ???https://github.com/openai/CLIP???
- ???https://arxiv.org/abs/2204.06125???
- ???https://cdn.openai.com/papers/dall-e-3.pdf???
- ???https://arxiv.org/abs/2205.11487????
本文轉(zhuǎn)載自 ??AI閑談??,作者: AI閑談
