精品一区二区三区在线成人,欧美精产国品一二三区,Ji大巴进入女人66h,亚洲春色在线视频

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌

發(fā)布于 2024-12-23 08:54
瀏覽
0收藏

一、摘要

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ì)越來越不匹配。

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

二、亮點(diǎn)

1. 二分類損失的計(jì)算

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

只需要計(jì)算文-圖矩陣,對(duì)角線的得分就可以了,相比softmax計(jì)算更加簡(jiǎn)單,快捷。

2. 高效的分片計(jì)算損失

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

將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)力

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

在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)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

  • 在單模態(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é)果如下:

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

在使用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é)果如下:

多模態(tài)視覺層:CLIP、SigLIP誰更勝一籌-AI.x社區(qū)

在指令微調(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萬頁(yè)數(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

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 永丰县| 自贡市| 盐津县| 女性| 镇巴县| 申扎县| 宁武县| 新乡市| 东光县| 日土县| 蚌埠市| 弥勒县| 东海县| 陕西省| 即墨市| 姚安县| 新昌县| 三亚市| 房山区| 哈尔滨市| 航空| 巴马| 错那县| 株洲县| 广昌县| 岑巩县| 贵阳市| 肃宁县| 开江县| 巍山| 边坝县| 子洲县| 平邑县| 民乐县| 遂宁市| 梁河县| 西乌珠穆沁旗| 灵武市| 四子王旗| 美姑县| 建德市|