多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌
一、摘要
SigLIP【全稱:Sigmoid Loss for Language Image Pre-Training】,SigLIP是在batch內(nèi),利用sigmod對文-圖對做二分類;CLIP是在batch內(nèi),利用softmax對文-圖對做多分類。
SigLIP不需要對兩兩相似進行全局歸一化,這樣的做法允許擴大batch的大小,同時在較小的batch下也能表現(xiàn)的好。
如下圖所示:
SigLIP利用sigmod對文-圖對做二分類,是在指導模型朝著文字Tokens和圖像Tokens的兩個序列的對角線上值越來越大,非對角線上的值越來越小的方向前進。即,希望配對的文-圖對越來越匹配,非配對的文-圖對越來越不匹配。
二、亮點
1. 二分類損失的計算
只需要計算文-圖矩陣,對角線的得分就可以了,相比softmax計算更加簡單,快捷。
2. 高效的分片計算損失
將batch內(nèi)的數(shù)據(jù)分塊到每塊GPU之后,可以單獨計算更新每塊GPU上的sigmoid損失,不需要全局歸一化損失,然后所有GPU上的損失相加取平均,就能得到全局的損失,這樣能帶來高效的計算。
三、多模態(tài)訓練的寶貴經(jīng)驗
What matters when building vision-language models 是HuggingFace團隊做了大量實驗后,總結(jié)出來的多模態(tài)訓練的經(jīng)驗。其中就對比了??CLIP?
??與??SigLIP?
?的性能
3.1 SigLIP更有競爭力
在LLM相同的情況下,將視覺編碼器從CLIP-ViT-H切換到SigLIP-SO400M在基準測試中提升了3.3個百分點。
3.2 投影層:橋接視覺模型與語言模型
輸入投影目的是將預訓練的視覺模塊和語言模塊連接起來,對齊視覺輸入和文本輸入,主流方法有兩種:
- 交叉注意力(Cross-attention):通過視覺模塊對圖像進行編碼,并通過交叉注意力塊將圖像嵌入與文本嵌入注入到語言模型的不同層中。
- 完全自回歸架構(gòu)(fully autoregressive architecture):視覺編碼器的輸出直接與文本嵌入串聯(lián),并將整個序列作為語言模型的輸入。視覺序列可以進行壓縮,提高計算效率。
從實驗的結(jié)果來看:
- 在單模態(tài)預訓練模塊被凍結(jié)時,交叉注意結(jié)構(gòu)性能優(yōu)于完全自回歸結(jié)構(gòu)。然而,一旦解凍并訓練單模態(tài)網(wǎng)絡,盡管交叉注意結(jié)構(gòu)參數(shù)更多,但完全自回歸架構(gòu)反而展現(xiàn)出更佳的性能。
- 在完全自回歸架構(gòu)下,直接解凍預訓練模塊可能會導致訓練過程的不穩(wěn)。采用LoRA技術可以在保持訓練穩(wěn)定的同時,有效增加模型的表現(xiàn)力。
- 由于語言模型規(guī)模遠遠大于視覺模型,對最終結(jié)果輸出影響較大。所以建議采用自回歸模型,放開視覺模型的參數(shù)微調(diào)后,再對語言模型采用lora微調(diào),來提高模型的性能。
3.3 固定圖像大小和分辨率,提高模型泛化能力
視覺編碼器通常在固定大小的正方形圖像上進行訓練。調(diào)整圖像大小會改變其原始寬高比,這在某些任務(如閱讀長文本)存在問題。因此,在訓練時,最好要固定圖像的原始寬高比。
僅在單一分辨率上進行訓練存在局限性:低分辨率可能忽略關鍵視覺細節(jié),而高分辨率則降低訓練和推理效率。因此,要允許不同分辨率的圖像被納入到模型中訓練
測試結(jié)果如下:
在使用SigLIP作為視覺編碼器的情況下,采用固定長寬比的策略(AR preserving),使用預訓練的視覺編碼器來保持圖像的原始寬高比和分辨率,既加速了訓練和推理,又減少了內(nèi)存消耗,且性能不受影響。
3.4 一個圖片切成多個子圖,提高DocVQA任務的性能
將圖像分割成子圖,然后再與原始圖像連接可以提高下游任務的性能,但代價是需要編碼的圖像tokens數(shù)量大幅度增加。
在訓練期間將圖像分割成子圖像,可以在推理期間提高計算效率,提高性能。在涉及讀取圖像中的文本的任務中,性能的提高尤其明顯。
測試結(jié)果如下:
在指令微調(diào)階段,將每張圖像擴展為包含原始圖像和四個裁剪圖像的列表。這樣,模型在推理時既能處理單張圖像(64個視覺tokens),也能處理增強的圖像集(總共320個視覺tokens)
3.5 訓練多模態(tài)的技巧
1. 數(shù)據(jù)準備
- 交叉的圖像-文本文檔:選用OBELICS數(shù)據(jù)集,包含3.5億張圖像和1150億個文本tokens。OBELICS的長文檔設計使語言模型在維持性能的同時,能夠?qū)W習處理任意數(shù)量的交叉圖像和文本。
- 圖像-文本對:LAION COCO中的圖像由基于COCO訓練的模型進行標注,噪聲較少。并使用一個高召回率的NSFW分類器進行過濾。
- PDF文檔:為了克服VLM在提取圖像和文檔中文本時的不足,使用OCR-IDL的1900萬份行業(yè)文檔、PDFA6的1800萬頁數(shù)據(jù),并加入了Rendered Text來增強對字體多樣、顏色豐富文本的識別。
2.預訓練
- 第一階段,圖像最大分辨率設為384像素,使得可以使用平均大小為2048的批次大小
- 第二階段,引入PDF文檔,將分辨率提升至980像素,保持全局批次大小但減少單機批次大小,使用梯度累積彌補額外內(nèi)存。
3. 指令微調(diào)
- 多任務指令集:如視覺問答、計數(shù)、字幕、文本轉(zhuǎn)錄、文檔理解等。數(shù)據(jù)集采用共享的問題/答案格式,對于多問題/答案對,構(gòu)建多回合對話。
- lora微調(diào):使用一種LoRA變體DoRA對基礎模型進行指令調(diào)優(yōu)。
??https://arxiv.org/pdf/2303.15343??
??https://github.com/google-research/big_vision/tree/main??
本文轉(zhuǎn)載自 ??CourseAI??,作者: CourseAI
