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