BLIP-2 2022.01

- 論文時間:2023年1月
- 官方github:https://github.com/salesforce/LAVIS/tree/main/projects/blip2
- BLIP-2:在凍結(jié)圖像encoders和LLMs輔助下,提升語言-圖像預(yù)訓(xùn)練效果
1. 論文目的
- 背景:端對端的訓(xùn)練模式,使得視覺-語言預(yù)訓(xùn)練大模型的成本變得越來越高。
- 目的:提出一個通用高效的視覺-語言預(yù)訓(xùn)練框架,不用全參訓(xùn)練就可以提升效果
2. 背景知識
- 交叉注意力(cross attention,CA)
- 互信息(mutual information)
- LM Loss / Prefix LM Loss
- ViT / OPT / FlanT5
3. 模型方法 —— 兩階段訓(xùn)練、聯(lián)合學(xué)習(xí)三個任務(wù)
BLIP-2,一個新的視覺-語言預(yù)訓(xùn)練方法,通過凍結(jié)單模態(tài)預(yù)訓(xùn)練模型來提升效果。為了實現(xiàn)跨模態(tài)交互,論文提出Query Transformer(Q-Former),并分為兩個階段進行預(yù)訓(xùn)練。
3.1 模型架構(gòu)
如下圖,Q-Former包括兩個共享自注意力層的Transformer子模塊,
- 圖像transformer模塊,和凍結(jié)的圖像編碼器相互作用;其輸入是一系列可學(xué)習(xí)的query embeddings,它們在自注意力層(SA)中相互作用;交叉注意力層(CA)用于將query embeddings和凍結(jié)圖像編碼器提取的特征進行相互作用。
- 文本transformer,可作為文本編碼器和解碼器;輸入是文本embeddings,自注意力層和圖像transformer模塊共享,以此使得文本可以與queries相互作用。
從實驗細(xì)節(jié)上看,Q-Former用預(yù)訓(xùn)練的 進行初始化,但是交叉注意力層的參數(shù)是隨機初始化的。總的來說,Q-Former包含了188M的參數(shù)量。值得注意,queries是作為模型的參數(shù),不是模型輸入。 實驗中使用32個queries,每個query有768維,和Q-Former隱含層維度一致,論文使用 來表示query表征的輸出,它的維度遠(yuǎn)比凍結(jié)的圖像編碼器特征維度?。ū热鏥iT-L/14的輸出特征維度是 )。
3.2 一階段預(yù)訓(xùn)練 —— 視覺-語言表征學(xué)習(xí)
通過帶凍結(jié)參數(shù)的圖像編碼器進行視覺-語言表征學(xué)習(xí)(representation learning),旨在讓queries學(xué)習(xí)如何提取出和文本最相關(guān)的視覺表征。受BLIP-1的啟發(fā),聯(lián)合學(xué)習(xí)三個子任務(wù),并共享同樣的輸入格式和模型參數(shù),每個任務(wù)采用不同的注意力掩碼策略用于控制queries和text之間的交互。
3.2.1 任務(wù)一:圖像-文本匹配(Image-Text Matching,ITM)
- 目的:旨在學(xué)習(xí)圖像和文本表征之間的細(xì)粒度對齊
- 本質(zhì):二元分類任務(wù),即判斷image-text pair是否positive(匹配)還是negative(不匹配)
-
掩碼策略:雙向自注意力掩碼,所有queries和texts都可以互相關(guān)注到

- 多模態(tài)特征矩陣:query embeddings
- 分類任務(wù):將每個query嵌入輸入到兩分類線性分類器得到logit,然后對所有l(wèi)ogits取平均
- 負(fù)采樣技術(shù):難負(fù)樣本挖掘策略(hard negative mining)
3.2.2 任務(wù)二:基于圖像的文本生成(Image-grounded Text Generation,ITG)
- 目的:給定輸入圖像作為條件,生成文本。
-
掩碼策略:多模態(tài)因果自注意力掩碼,類似在UniLM的掩碼策略;細(xì)節(jié)如下圖所示
除此之外,論文還用一個新的標(biāo)記 [DEC] 作為第一個文本token來替代原先的 [CLS] 標(biāo)記,表示開始解碼任務(wù)。 - queries的作用:被強制用于抽取和文本相關(guān)的視覺特征,原因是Q-Former不允許文本tokens直接關(guān)注到(凍結(jié)參數(shù)的)圖像編碼器提取的視覺特征,所以需要先通過queries將生成文本所需的視覺信息提取出來,然后文本tokens才能通過自注意力層關(guān)注到必要的視覺信息。
3.2.3 任務(wù)三:圖像-文本對比學(xué)習(xí)(Image-Text Contrastive Learning,ITC)
- 目的:學(xué)習(xí)如何對齊圖像表征和文本表征,以最大化他們之間的互信息(mutual information)
-
方式:通過image-text pair的正負(fù)樣本相似度之間的比較進行學(xué)習(xí),具體如下

-
掩碼策略:單模態(tài)自注意力掩碼策略(如下),使得queries和文本之間都不能看到彼此,目的是防止信息泄露

- 優(yōu)勢:由于使用了凍結(jié)的圖像編碼器,相比于端對端全參訓(xùn)練而言,每個GPU可以fit進更多的樣本
3.3 二階段預(yù)訓(xùn)練 —— 視覺-語言生成學(xué)習(xí)
在生成式預(yù)訓(xùn)練階段,將第一階段預(yù)訓(xùn)練后的Q-Former、凍結(jié)的圖像編碼器、凍結(jié)的LLM三者連接起來,如下圖所示,
論文用全連接(FC)層將輸出的query特征嵌入 映射到和文本嵌入的維度相同的特征,然后將該特征拼接到輸入文本嵌入的前面,用作軟視覺提示(soft visual prompts)來約束LLM的生成內(nèi)容。
3.3.1 方法優(yōu)勢
- 因為在第一階段預(yù)訓(xùn)練中,Q-Former已經(jīng)獲取了提取文本相關(guān)的視覺信息的能力,也就意味著它能摒棄不相關(guān)的視覺信息,提供更多實際有用的視覺信息給到LLM
- 減少了LLM去學(xué)習(xí)視覺-語言對齊的負(fù)擔(dān),也因此緩解了知識災(zāi)難性遺忘的問題
3.3.2 基于兩種類型的LLM實驗
-
基于decoder-only的LLMs,用LM損失進行預(yù)訓(xùn)練

-
基于encode-decoder的LLMs,用Preifx LM損失進行預(yù)訓(xùn)練。如下圖,將輸入text分成兩部分,text前綴部分(“a cat”)和視覺表征拼接一起作為LLM編碼器的輸入;text的后綴部分(“wearing sunglasses”)是生成目標(biāo),用于LLM的decoder部分的訓(xùn)練

4. 實驗
4.1 預(yù)訓(xùn)練數(shù)據(jù)集與構(gòu)建
總共129M張圖像,包括:
- COCO
- Visual Genome
- CC3M
- CC12M
- SBU
- LAION400M(只用其中的115M張圖像)
采用CapFilt方法(在BLIP 2022.02中有介紹),基于 標(biāo)題生成模型,對網(wǎng)絡(luò)圖像生成10個候選標(biāo)題,然后和原始標(biāo)題一并進行排序,根據(jù)CLIP(ViT-L/14)模型計算的圖像-文本相似度進行排序。實驗中,排序前2的標(biāo)題固定被用作訓(xùn)練,每一步迭代時,隨機從這兩個標(biāo)題中選一個作為“y”。
4.2 圖像編碼器選型
兩種SOTA的ViT模型:
- CLIP的ViT-L/14(2021年)
- EVA-CLIP的ViT-G/14(2022年)
4.3 LLM選型
- OPT系列(2022年),作為decoder-only的LLMs
- FlanT5系列(2022年),作為encoder-decoder的LLMs
4.4 預(yù)訓(xùn)練參數(shù)設(shè)置
- 迭代步數(shù):第一階段預(yù)訓(xùn)練250k;第二階段預(yù)訓(xùn)練80k
- batch大?。?/li>
- 第一階段:對于ViT-L設(shè)置2320;對于ViT-G設(shè)置1680
- 第二階段:對于OPT設(shè)置1920;對于FlanT5設(shè)置1520


