一文看完多模態(tài):從視覺(jué)表征到多模態(tài)大模型
本文經(jīng)自動(dòng)駕駛之心公眾號(hào)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
轉(zhuǎn)眼2024,距離上次知乎寫(xiě)作就快過(guò)去一年,上一次的計(jì)劃主題還是“開(kāi)源大模型”(參見(jiàn)《ChatGPT的朋友們:大語(yǔ)言模型經(jīng)典論文一次讀到吐》),無(wú)奈這個(gè)方向變化太快,而且也不乏優(yōu)質(zhì)總結(jié)文章,也就一直沒(méi)有動(dòng)筆。正好最近做圖文多模態(tài)大模型相關(guān)的工作,在查閱資料的過(guò)程中沒(méi)遇到比較完整的脈絡(luò)梳理文章,往往需要綜合參考;反觀(guān)這個(gè)方向的綜述型論文又過(guò)于追求“完美”,個(gè)人感覺(jué)詳略把控不盡人意。
因此,借此機(jī)會(huì)結(jié)合自己的學(xué)習(xí)過(guò)程,對(duì)多模態(tài)和多模態(tài)大模型做一個(gè)系統(tǒng)的梳理,嘗試以一個(gè)親歷者的視角談?wù)勥@部分技術(shù)的發(fā)展思路,希望能給讀者一些不一樣的收獲,如有偏頗,歡迎指正。
為了表述簡(jiǎn)單,我們不嚴(yán)謹(jǐn)?shù)膶ⅰ皥D文多模態(tài)”表述為“多模態(tài)”(標(biāo)題有些夸張),如果后面有機(jī)會(huì)可以討論更多模態(tài)的相關(guān)工作。此外,本文假設(shè)讀者已經(jīng)對(duì)視覺(jué)表征和多模態(tài)融合有一定入門(mén)背景,希望通過(guò)一篇文章回顧將過(guò)去幾年的經(jīng)典工作。
一、總覽
由于是講“圖文多模態(tài)”,還是要從“圖”和“文”的表征方法講起,然后講清楚圖文表征的融合方法。對(duì)于文本模態(tài)的表征發(fā)展,我們?cè)凇堕e話(huà)NLP:文本表征的半世今生》一文中有過(guò)一輪的梳理,因此本文只要講兩件事情:
- 視覺(jué)表征:分為兩個(gè)部分問(wèn)題,一是如何合理建模視覺(jué)輸入特征,二是如何通過(guò)預(yù)訓(xùn)練手段進(jìn)行充分學(xué)習(xí)表征,這兩點(diǎn)是基于視覺(jué)完成具體算法任務(wù)的基礎(chǔ);
- 視覺(jué)與自然語(yǔ)言的對(duì)齊(Visul Language Alignment)或融合:目的是將視覺(jué)和自然語(yǔ)言建模到同一表征空間并進(jìn)行融合,實(shí)現(xiàn)自然語(yǔ)言和視覺(jué)語(yǔ)義的互通,這點(diǎn)同樣離不開(kāi)預(yù)訓(xùn)練這一過(guò)程。模態(tài)對(duì)齊是處理多模態(tài)問(wèn)題的基礎(chǔ),也是現(xiàn)在流行的多模態(tài)大模型技術(shù)前提。
對(duì)于視覺(jué)表征,從發(fā)展上可以分為卷積神經(jīng)網(wǎng)絡(luò)(CNN)和Vision Transformer(VIT)兩大脈絡(luò),二者分別都有各自的表征、預(yù)訓(xùn)練以及多模態(tài)對(duì)齊的發(fā)展過(guò)程。而對(duì)于VIT線(xiàn),另有多模態(tài)大模型如火如荼的發(fā)展,可謂日新月異。
因此,本文的行文思路也就非常簡(jiǎn)單,如圖1所示。第一部分介紹以CNN為基礎(chǔ)的視覺(jué)表征和預(yù)訓(xùn)練手段,以及在此基礎(chǔ)上的多模態(tài)對(duì)齊的方法。由于預(yù)訓(xùn)練已經(jīng)成為AI技術(shù)取得效果的標(biāo)配,多模態(tài)對(duì)齊部分的內(nèi)容也是以多模態(tài)預(yù)訓(xùn)練技術(shù)承載;第二部分從VIT技術(shù)出發(fā),分別介紹VIT視覺(jué)表征的預(yù)訓(xùn)練探索工作、多模態(tài)對(duì)齊的預(yù)訓(xùn)練工作以及近兩年火熱的研究方向多模態(tài)大模型。
由于多年間的優(yōu)秀工作太多,不勝枚舉,本文僅挑選筆者從業(yè)過(guò)程中印象較深,且有標(biāo)志性特點(diǎn)的工作為代表。優(yōu)秀的工作不止于本文,不過(guò)還是期望通過(guò)有限的工作,將近幾年的圖文多模態(tài)相關(guān)技術(shù)串連起來(lái),方便讀者按圖索驥進(jìn)行更深入的學(xué)習(xí)。下面開(kāi)始正式的內(nèi)容。
二、CNN:視覺(jué)理解的一代先驅(qū)
2.1 卷積視覺(jué)表征模型和預(yù)訓(xùn)練
對(duì)視覺(jué)信息的表征,簡(jiǎn)單來(lái)說(shuō)是將圖像信息轉(zhuǎn)化成深度學(xué)習(xí)輸入所需的特征向量或向量序列,如圖2。深度學(xué)習(xí)時(shí)代,卷積神經(jīng)網(wǎng)絡(luò)(CNN)憑借其局部區(qū)域連接、權(quán)重共享以及位移不變性等特點(diǎn),天然的符合了圖像信息的建模歸納假設(shè),成為早期最適合視覺(jué)表征的模型。具體的,卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用視覺(jué)表征的模型很多,我們簡(jiǎn)單從LeNet-5、AlexNet、VGG和ResNet等模型的演進(jìn)一窺其在關(guān)鍵要素。
2.1.1 卷積視覺(jué)表征:從LeNet到ResNet
LeNet-5早期在數(shù)字識(shí)別中取得了成功的應(yīng)用,網(wǎng)絡(luò)結(jié)構(gòu)是 [CONV-POOL-CONV-POOL-FC-FC]。卷積層使用 55的卷積核,步長(zhǎng)為1;池化層使用 22 的區(qū)域,步長(zhǎng)為2;后面是全連接層;AlexNet相比LeNet-5做了更多層數(shù)的堆疊,網(wǎng)絡(luò)參數(shù)進(jìn)行了相應(yīng)的調(diào)整,并在ImageNet大賽2012奪得冠軍;相應(yīng)VGG網(wǎng)絡(luò)使用更小的卷積核,同時(shí)相比AlexNet進(jìn)一步提升了網(wǎng)絡(luò)層數(shù)。
隨著研究的深入,神經(jīng)網(wǎng)絡(luò)的層數(shù)也出現(xiàn)了爆發(fā)式地增長(zhǎng),由此也不可避免的帶來(lái)梯度消失和梯度爆炸的問(wèn)題,使得模型訓(xùn)練的困難度也隨之提升。一種解決方法是將神經(jīng)網(wǎng)絡(luò)某些層跳過(guò)下一層神經(jīng)元的連接,隔層相連,弱化每層之間的強(qiáng)聯(lián)系。這種神經(jīng)網(wǎng)絡(luò)被稱(chēng)為Residual Network(ResNet)殘差網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)的原理是將卷積層的堆疊,替換成跨層連接的模塊,如圖3所示。
有了合理的建模模型,可以使用具體任務(wù)的訓(xùn)練數(shù)據(jù)學(xué)習(xí)視覺(jué)表征,進(jìn)而完成不同的任務(wù)(如分類(lèi)、分割、目標(biāo)檢測(cè)等)。而更加有效的方式通常是先用“海量”的數(shù)據(jù)讓模型學(xué)到通用的視覺(jué)表征,再進(jìn)行下游具體任務(wù)數(shù)據(jù)的學(xué)習(xí),也就是預(yù)訓(xùn)練+微調(diào)的范式。
2.1.2 卷積視覺(jué)預(yù)訓(xùn)練
在CNN視覺(jué)表征體系下,早期的視覺(jué)預(yù)訓(xùn)練有另一個(gè)叫法是遷移學(xué)習(xí),在BERT的預(yù)訓(xùn)練+微調(diào)范式流行之前就已經(jīng)被廣泛應(yīng)用。遷移學(xué)習(xí)中,傳統(tǒng)CNN視覺(jué)模型在做具體任務(wù)訓(xùn)練之前,先在大量的圖像任務(wù)數(shù)據(jù)集上進(jìn)行預(yù)先訓(xùn)練(如ImageNet分類(lèi)任務(wù)數(shù)據(jù)集等)。然后使用預(yù)訓(xùn)練的CNN權(quán)重初始化Backbone,并增加一些任務(wù)定制網(wǎng)絡(luò)模塊,完成在下游任務(wù)上的微調(diào)(如Backbone+全連接層做分類(lèi)任務(wù))。
卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)表征和預(yù)訓(xùn)練的優(yōu)化升級(jí)工作還有很多,介紹相關(guān)內(nèi)容的資料也很多,篇幅原因我們對(duì)此不進(jìn)行詳細(xì)展開(kāi)和概述,而是把更多的筆墨放在近幾年更熱門(mén)的研究方向上。
2.2 早期多模態(tài)融合與預(yù)訓(xùn)練
接著是CNN體系下的多模態(tài)融合和預(yù)訓(xùn)練,視覺(jué)和自然語(yǔ)言的跨模態(tài)對(duì)齊和融合有兩種表現(xiàn)形式:一種是雙塔結(jié)構(gòu),多模態(tài)分別表征,通過(guò)對(duì)比學(xué)習(xí)機(jī)制實(shí)現(xiàn)視覺(jué)和文本在同一空間中的距離度量;另一種是視覺(jué)表征和文本表征通過(guò)交互型網(wǎng)絡(luò)結(jié)構(gòu)融合成多模態(tài)表征,進(jìn)而完成下游任務(wù)應(yīng)用。由于前者可以看作后者的特例,我們用后一種表現(xiàn)形式為例,將二者統(tǒng)一,進(jìn)而講述以CNN為基礎(chǔ)的早期多模態(tài)融合與預(yù)訓(xùn)練技術(shù)。
如圖4,展示了上述的多模態(tài)融合框架,包括視覺(jué)特征提取模塊、文本特征提取模塊和模態(tài)融合模塊。文本模塊是常見(jiàn)的Token Embedding方式;視覺(jué)表征方面,由于CNN已經(jīng)驗(yàn)證了有效性,因此大多數(shù)的工作在都考慮使用CNN做視覺(jué)特征抽取,得到高級(jí)語(yǔ)義特征,然后將高級(jí)語(yǔ)義表征作為輸入,和文本Token Embedding序列一起輸入到下游融合模塊。不同工作的差異主要集中在視覺(jué)特征提取CNN Backbone以及Modality Interaction兩個(gè)模塊。
我們以2019年作為粗略分界點(diǎn),在此之后BERT的訓(xùn)練范式開(kāi)始流行,多模態(tài)方向上的研究熱點(diǎn)則是借鑒BERT的成功,使用Transformer網(wǎng)絡(luò)(特指Transformer Encoder)作為Modality Interaction模塊把視覺(jué)和自然語(yǔ)言進(jìn)行特征融合,并通過(guò)大規(guī)模預(yù)訓(xùn)練來(lái)學(xué)習(xí)得到多模態(tài)表征;而在此之前的方案通常是簡(jiǎn)單的多層全連接網(wǎng)絡(luò)實(shí)現(xiàn),我們不多贅述。
順著這個(gè)思路,確定了使用Transformer作為模型融合模塊這個(gè)大方向后,第二個(gè)問(wèn)題是如何對(duì)視覺(jué)特征進(jìn)行有效編碼,得到和文本一樣的Token Embedding序列作為模型輸入?這一問(wèn)題的解法在CNN為主的時(shí)期有兩種主要方式,如圖5:
- Region Feature Base:先通過(guò)基于CNN的目標(biāo)檢測(cè)模型(Fast R-CNN等),識(shí)別圖像中的關(guān)鍵物體區(qū)域集合(ROI,Region Of Interest),并提取區(qū)域的表征向量,作為T(mén)ransformer模型的視覺(jué)輸入Embedding序列。這么做的動(dòng)機(jī)是,每個(gè)ROI區(qū)域,都有明確的語(yǔ)義表達(dá)(人、建筑、物品等),方便后續(xù)和文本特征的對(duì)齊。比較有代表性的工作如LXMERT、VL-BERT和UNITER等;
- Grid Feature Base:區(qū)域特征方法雖然看上去合理,但是依賴(lài)前置的目標(biāo)檢測(cè)模型,整體鏈路較重。因此也有工作探索,不經(jīng)過(guò)區(qū)域檢測(cè),直接使用CNN網(wǎng)絡(luò)提取深層的像素特征作為交互模型輸入,同樣取得了一些成果。比較有代表性的工作如Pixel-Bert等。
下面我們分別介紹這一時(shí)期的經(jīng)典工作,了解其中基本思路和方法。
2.2.1 LXMERT
LXMERT是早期進(jìn)行多模態(tài)特征融合的工作之一,如圖6,模型采用經(jīng)典的兩路深層表征輸入結(jié)構(gòu)。在視覺(jué)側(cè)關(guān)注單圖,圖像經(jīng)過(guò)目標(biāo)檢測(cè)模型得到區(qū)域塊的特征序列,又經(jīng)過(guò)Transformer做進(jìn)一步編碼區(qū)域塊之間的關(guān)系(Object-Relationship Encoder);文本側(cè)通過(guò)BERT結(jié)構(gòu)得到文本的特征序列(Language Encoder),最后兩者使用深層Transformer結(jié)構(gòu)做交叉Attention,最后進(jìn)行多任務(wù)的預(yù)訓(xùn)練。LXMERT的預(yù)訓(xùn)練任務(wù)相比BERT較多,包括Masked圖像特征的預(yù)測(cè)、圖像Label的預(yù)測(cè)(貓、狗等)、VQA、圖文是否匹配以及純文本側(cè)的Masked語(yǔ)言模型(MLM)。
預(yù)訓(xùn)練模型經(jīng)過(guò)特定任務(wù)微調(diào)后,LXMERT在兩個(gè)視覺(jué)問(wèn)答數(shù)據(jù)集(VQA和GQA)上達(dá)到了當(dāng)時(shí)最先進(jìn)的結(jié)果。作者還展示了LXMERT可以很好地泛化到一個(gè)具有挑戰(zhàn)性的視覺(jué)推理任務(wù)(NLVR2),并將之前的最佳結(jié)果提高了22%(從54%到76%),是一個(gè)比較優(yōu)秀的工作。
2.2.2 VL-BERT
另一個(gè)Region Feature Base的經(jīng)典工作是VL-BERT。如圖7,與LXMERT不同的是,VL-BERT屬于單路輸入模式,視覺(jué)特征在經(jīng)過(guò)目標(biāo)檢測(cè)模型進(jìn)行Region特征提取后,直接和文本Embedding一起拼接輸入到Transformer網(wǎng)絡(luò)中進(jìn)行多模態(tài)的交叉Attention。
VL-BERT設(shè)計(jì)了兩個(gè)預(yù)訓(xùn)練任務(wù):帶視覺(jué)特征的掩碼語(yǔ)言模型學(xué)習(xí)(Masked Language Modeling with Visual Clues)、帶文本特征的視覺(jué)Region分類(lèi)(Masked RoI Classification with Linguistic Clues)。經(jīng)過(guò)預(yù)訓(xùn)練和微調(diào)流程,模型可以適用于多種視覺(jué)和語(yǔ)言任務(wù),并在視覺(jué)問(wèn)答、圖像-文本檢索、視覺(jué)常識(shí)推理等任務(wù)上都取得了非常不錯(cuò)的性能。VL-BERT印證了,多模態(tài)語(yǔ)義特征不需要各自的單獨(dú)深度編碼,直接做交互也可以取得有效結(jié)果。
2.2.3 UNITER
如圖8,UNITER使用和VL-BERT類(lèi)似的架構(gòu),同樣的單路架構(gòu),同樣是目標(biāo)檢測(cè)模型做視覺(jué)的語(yǔ)義特征抽取,并進(jìn)一步使用更多的訓(xùn)練數(shù)據(jù)、更多的預(yù)訓(xùn)練任務(wù),希望得到一個(gè)更加通用的圖文多模態(tài)表征模型。UNITER通過(guò)在四個(gè)圖像和文本數(shù)據(jù)集(COCO, Visual Genome, Conceptual Captions, and SBU Captions)上進(jìn)行大規(guī)模的預(yù)訓(xùn)練,可以支持多種視覺(jué)和語(yǔ)言任務(wù)的聯(lián)合多模態(tài)表征。同時(shí)設(shè)計(jì)了四種預(yù)訓(xùn)練任務(wù):遮蔽語(yǔ)言建模(MLM),遮蔽區(qū)域建模(MRM,有三種變體),圖像-文本匹配(ITM),和詞-區(qū)域?qū)R(WRA)。
相比于之前方案,UNITER提出了通過(guò)最優(yōu)傳輸(OT,Optimal Transport)的方法來(lái)進(jìn)行WRA,在預(yù)訓(xùn)練過(guò)程中顯式地加強(qiáng)詞和圖像區(qū)域之間的細(xì)粒度對(duì)齊。相比其他工作僅使用圖像-文本匹配(ITM)的全局對(duì)齊方式,WRA更加精準(zhǔn)。經(jīng)過(guò)大量的消融實(shí)驗(yàn),UNITER還探索了預(yù)訓(xùn)練任務(wù)的最佳組合方式,并最終在視覺(jué)問(wèn)答,圖像-文本檢索,指代表達(dá)理解,視覺(jué)常識(shí)推理,視覺(jué)蘊(yùn)含,和NLVR2等任務(wù)上都達(dá)到了新的最先進(jìn)的水平。
UNITER稱(chēng)得上是Region Feature Based多模態(tài)預(yù)訓(xùn)練的集大成者,同時(shí)期的大多數(shù)工作也多是類(lèi)似結(jié)構(gòu)上的修補(bǔ)或增強(qiáng)。但也不乏另辟蹊徑的工作,其中以Grid Feature Based相關(guān)工作最具影響力。
2.2.4 Pixel-BERT
Pixel-BERT是Grid Feature Based多模態(tài)融合代表工作之一。如圖9,與Region Feature Based方法不同的是,Pixel-BERT不需要使用目標(biāo)檢測(cè)模型進(jìn)行ROI區(qū)域的特征抽取,而是直接通過(guò)卷積網(wǎng)絡(luò)提取圖片的像素級(jí)別特征,直覺(jué)和文本特征一起輸入到下游的Transformer網(wǎng)絡(luò)進(jìn)行特征融合。這種方式減少了目標(biāo)檢測(cè)區(qū)域框標(biāo)注的成本,同時(shí)緩解了視覺(jué)語(yǔ)義label與文本語(yǔ)義的不均衡問(wèn)題(區(qū)域框的物體類(lèi)別往往上千規(guī)模,而文本可以表達(dá)的語(yǔ)義遠(yuǎn)不止于此)。
詳細(xì)來(lái)說(shuō),當(dāng)時(shí)主流的Region Feature Based方法提取視覺(jué)特是使用如Fast R-CNN的目標(biāo)檢測(cè)模型,通常在Visual Genome數(shù)據(jù)集上訓(xùn)練得到。這種目標(biāo)檢測(cè)模型,通常先提取可能存在物體的區(qū)域,然后根據(jù)區(qū)域特征進(jìn)行物體類(lèi)別的分類(lèi)。相應(yīng)的,這些區(qū)域的特征往往局限在固定的類(lèi)目集合范圍內(nèi),語(yǔ)義范圍較為有限,這是也使用區(qū)域語(yǔ)義特征的固有缺陷。
此外,Pixel-BERT使用隨機(jī)像素采樣機(jī)制來(lái)增強(qiáng)視覺(jué)表示的魯棒性,并使用MLM和ITM作為預(yù)訓(xùn)練任務(wù)進(jìn)行預(yù)訓(xùn)練。最后通過(guò)對(duì)下游任務(wù)進(jìn)行廣泛的實(shí)驗(yàn),在包括視覺(jué)問(wèn)答(VQA)、圖像文本檢索和視覺(jué)推理等下游任務(wù)中取得了SOTA效果。
三、VIT:擁抱Transformer
Pixel-BERT之類(lèi)的網(wǎng)絡(luò),減少了對(duì)與目標(biāo)檢測(cè)模型的依賴(lài),僅使用深層卷積神經(jīng)網(wǎng)絡(luò)提取像素級(jí)別的特征作為下游多模態(tài)融合模塊,極大簡(jiǎn)化了圖文多模態(tài)表征模型的網(wǎng)絡(luò)結(jié)構(gòu)。那么,我們能不能進(jìn)一步簡(jiǎn)化視覺(jué)表征模塊,直接把圖像特征簡(jiǎn)單加工后就直接輸入到Transformer網(wǎng)絡(luò)和文本特征一起做模態(tài)的融合?要做到這一點(diǎn),我們需要先回答另一個(gè)問(wèn)題,Transformer網(wǎng)絡(luò)能不能替換CNN作為視覺(jué)表征的Backnone?雖然現(xiàn)在來(lái)看,答案是肯定的,但在開(kāi)始階段,這個(gè)過(guò)程并不是那么順利。
我們知道,CNN應(yīng)用于視覺(jué)表征有著很強(qiáng)的歸納偏置或者說(shuō)先驗(yàn),在 CNN 中,局部性、二維鄰域結(jié)構(gòu)和平移不變性是在整個(gè)模型的每一層中都有體現(xiàn),和視覺(jué)圖像的特點(diǎn)極其類(lèi)似:
- 局部感知性:卷積層通過(guò)卷積操作和參數(shù)共享,能夠高效地提取輸入圖像的局部特征。這種局部感知性使得CNN能夠捕捉圖像中的局部結(jié)構(gòu),例如邊緣、紋理等,從而更好地表征圖像。
- 層級(jí)結(jié)構(gòu):CNN的層級(jí)結(jié)構(gòu)包括卷積層、激活函數(shù)、池化層和全連接層。這種層級(jí)結(jié)構(gòu)使得CNN能夠逐層提取和組合特征,從低級(jí)到高級(jí),形成更復(fù)雜的視覺(jué)表征。
- 參數(shù)共享:卷積層中的參數(shù)共享使得CNN的訓(xùn)練更加高效。相同的卷積核在不同位置對(duì)圖像進(jìn)行卷積操作,共享參數(shù)減少了模型的復(fù)雜度,同時(shí)也增強(qiáng)了模型的泛化能力。
- 空間不變性:卷積操作具有平移不變性,即無(wú)論圖像中的物體在圖像中的位置如何變化,卷積核都能檢測(cè)到相應(yīng)的特征,這對(duì)于圖像分類(lèi)、目標(biāo)檢測(cè)和圖像分割等計(jì)算機(jī)視覺(jué)任務(wù)非常重要。
而在 Transformer 中的Self-Attention層則是全局的,對(duì)于視覺(jué)輸入的局部關(guān)系建模、圖像的2D位置關(guān)系的建模,以及圖像元素的平移不變性的把握上,都需要從頭學(xué)習(xí)。然而,即便是困難重重,因?yàn)橛蠦ERT的巨大成功,仍然有許多的研究者前赴后繼投入到這個(gè)方向,并最終取得成功,其中Vision Transformer (ViT) 是最為經(jīng)典的案例之一。
3.1 VIT范式視覺(jué)表征和預(yù)訓(xùn)練
3.1.1 VIT:Transformer視覺(jué)表征
如圖10,VIT將輸入圖片平鋪成2D的Patch序列(16x16),并通過(guò)線(xiàn)性投影層將Patch轉(zhuǎn)化成固定長(zhǎng)度的特征向量序列,對(duì)應(yīng)自然語(yǔ)言處理中的詞向量輸入。同時(shí),每個(gè)Patch可以有自己的位置序號(hào),同樣通過(guò)一個(gè)Embedding層對(duì)應(yīng)到位置向量。最終Patch向量序列和視覺(jué)位置向量相加作為T(mén)ransfomer Encoder的模型輸入,這點(diǎn)與BERT模型類(lèi)似。
同樣,VIT通過(guò)一個(gè)可訓(xùn)練的CLS token得到整個(gè)圖片的表征,并接入全鏈接層服務(wù)于下游的分類(lèi)任務(wù)。當(dāng)經(jīng)過(guò)大量的數(shù)據(jù)上預(yù)訓(xùn)練,遷移到多個(gè)中等或小規(guī)模的圖像識(shí)別基準(zhǔn)(ImageNet, CIFAR-100, VTAB 等)時(shí),ViT取得了比CNN系的模型更好的結(jié)果,同時(shí)在訓(xùn)練時(shí)需要的計(jì)算資源大大減少。按說(shuō),ViT的思路并不復(fù)雜,甚至一般人也不難想到,但是為什么真正有效的工作確沒(méi)有很快出現(xiàn)?不賣(mài)關(guān)子,VIT成功的秘訣在于大量的數(shù)據(jù)做預(yù)訓(xùn)練,如果沒(méi)有這個(gè)過(guò)程,在開(kāi)源任務(wù)上直接訓(xùn)練,VIT網(wǎng)絡(luò)仍會(huì)遜色于具有更強(qiáng)歸納偏置的CNN網(wǎng)絡(luò)。
因此,在此之后的一大研究方向就是如何更加有效的對(duì)VIT結(jié)構(gòu)的網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練。下面我們通過(guò)MAE和BEIT兩個(gè)優(yōu)秀的工作,來(lái)討論這個(gè)方向上的兩類(lèi)主流方案。
3.1.2 MAE:激進(jìn)的Mask自監(jiān)督預(yù)訓(xùn)練
與自然語(yǔ)言理解類(lèi)似,VIT模型能取得成功得益于預(yù)訓(xùn)練+微調(diào)的訓(xùn)練范式。前文提到,傳統(tǒng)CNN視覺(jué)模型的預(yù)訓(xùn)練,僅僅是在大量的圖像任務(wù)數(shù)據(jù)集上進(jìn)行預(yù)先訓(xùn)練(如ImageNet分類(lèi)任務(wù)等),然后使用訓(xùn)練后的權(quán)重進(jìn)行初始化Backbone,在下游任務(wù)上繼續(xù)微調(diào)完成相應(yīng)任務(wù)。
早期的VIT的預(yù)訓(xùn)練和CNN預(yù)訓(xùn)練一樣,都是通過(guò)大規(guī)模的有監(jiān)督分類(lèi)任務(wù)數(shù)據(jù)集進(jìn)行訓(xùn)練,和BERT的自監(jiān)督預(yù)訓(xùn)練仍有區(qū)別。而自監(jiān)督預(yù)訓(xùn)練有著數(shù)據(jù)獲取成本低、不需要標(biāo)注、任務(wù)難度大模型學(xué)習(xí)充分等諸多好處,因此很多研究工作探索自監(jiān)督視覺(jué)預(yù)訓(xùn)練,比較有代表性的實(shí)踐工作如Masked AutoEncoder(MAE)。
如圖11,所示,MAE以VIT為基礎(chǔ)模型,先對(duì)完整圖片進(jìn)行Patch掩碼,接著使用一個(gè)Transformer Encoder對(duì)未Mask的Patch進(jìn)行編碼,然后通過(guò)相對(duì)小的Transformer Decoder模型還原被Masked Patch,從而實(shí)現(xiàn)模型的自監(jiān)督預(yù)訓(xùn)練。
MAE取得成功的另一個(gè)核心原因是通過(guò)75%的高掩碼率來(lái)對(duì)圖像添加噪音,這樣圖像便很難通過(guò)周?chē)南袼貋?lái)對(duì)被掩碼的像素進(jìn)行重建,從而使編碼器去學(xué)習(xí)圖像中的語(yǔ)義信息。預(yù)訓(xùn)練之后,解碼器被丟棄,編碼器可以應(yīng)用于未掩碼的圖像來(lái)進(jìn)行識(shí)別任務(wù)。
相對(duì)于自然語(yǔ)言的自監(jiān)督訓(xùn)練,MAE使用了更大的掩碼比例。后人進(jìn)一步分析,這么做動(dòng)機(jī)是考慮自然語(yǔ)言和視覺(jué)特征的信息密度不同,簡(jiǎn)單來(lái)說(shuō):文本數(shù)據(jù)是經(jīng)過(guò)人類(lèi)高度抽象之后的一種信號(hào),信息是密集的,可以?xún)H僅預(yù)測(cè)文本中的少量被掩碼掉的單詞就能很好的捕捉文本的語(yǔ)義特征。而圖像數(shù)據(jù)是一個(gè)信息密度非常小的矩陣,包含著大量的冗余信息,像素和它周?chē)南袼卮嬖谳^大的相似性,恢復(fù)被掩碼的像素并不需要太多的語(yǔ)義信息。
3.1.3 BEIT:視覺(jué)“分詞”表征預(yù)訓(xùn)練
另一類(lèi)Transformer視覺(jué)模型預(yù)訓(xùn)練的代表范式是BEIT(BERT Pre-Training of Image Transformers)模型。為了與BERT的預(yù)訓(xùn)練框架對(duì)齊,BEIT通過(guò)輔助網(wǎng)絡(luò)模塊先對(duì)視覺(jué)Patch進(jìn)行Tokenizer,得到整張圖各部分的視覺(jué)Token ID。然后將視覺(jué)Patch視為自然語(yǔ)言中的單詞進(jìn)行掩碼預(yù)測(cè),完成預(yù)訓(xùn)練流程。
具體的如圖12,在預(yù)訓(xùn)練之前,BEIT先通過(guò)一個(gè)離散自回歸編碼器( discrete Variational AutoEncoder,dVAE)學(xué)習(xí)了一個(gè)“圖像分詞”器,最終可以將圖像編碼成離散的視覺(jué)Token集合。而在預(yù)訓(xùn)練階段,輸入的圖片存在兩個(gè)視角,一是圖像Patch,另一個(gè)是視覺(jué)Token。BEIT隨機(jī)對(duì)Patch進(jìn)行掩碼,并將掩碼部分替換為特殊的Mask Embedding([M],圖中的灰色部分),隨后將掩碼后的Patch序列輸入到VIT結(jié)構(gòu)的模型中。預(yù)訓(xùn)練的目標(biāo)則是基于被掩碼的圖像輸入向量序列,預(yù)測(cè)源圖像對(duì)應(yīng)的視覺(jué)Token ID。
BEIT需要單獨(dú)的dVAE網(wǎng)絡(luò)輔助,相對(duì)MAE更為復(fù)雜。在效果上,MAE驗(yàn)證了使用normalized pixels進(jìn)行目標(biāo)像素重建,也可以實(shí)現(xiàn)類(lèi)似效果,因此視覺(jué)tokenization過(guò)程并非必須。但即便如此,BEIT為視覺(jué)預(yù)訓(xùn)練提供了一個(gè)不錯(cuò)的范式,同樣是一次十分有價(jià)值的探索。
3.2 VIT為基礎(chǔ)的多模態(tài)對(duì)齊與預(yù)訓(xùn)練
以VIT為基礎(chǔ)的視覺(jué)預(yù)訓(xùn)練可以通過(guò)Transformers對(duì)視覺(jué)進(jìn)行有效表征,這種方法也逐漸成為目前視覺(jué)信息編碼的主流手段。以此為延伸,基于此的多模態(tài)預(yù)訓(xùn)練工作也層出不窮,也為如今的多模態(tài)大模型的順理成章打下了堅(jiān)實(shí)基礎(chǔ)。
如圖13,梳理了以VIT為延伸的多模態(tài)對(duì)齊和預(yù)訓(xùn)練工作,各工作之間都或多或少的有所關(guān)聯(lián),可謂是一脈相承。下面我們分別介紹這個(gè)技術(shù)方向的經(jīng)典工作,讀完本小結(jié)下面的內(nèi)容再來(lái)看圖中的模型關(guān)系,可能會(huì)更有感覺(jué)。
3.2.2 CLIP
CLIP模型是OpenAI 2021發(fā)布的多模態(tài)對(duì)齊方法。與OpenAI的許多工作類(lèi)似,CLIP強(qiáng)調(diào)強(qiáng)大的通用性和Zero-Shot能力,也因此至今仍有很強(qiáng)的生命力,相關(guān)技術(shù)被廣泛應(yīng)用。
CLIP的核心思路是通過(guò)對(duì)比學(xué)習(xí)的方法進(jìn)行視覺(jué)和自然語(yǔ)言表征的對(duì)齊。如圖xx(1),CLIP首先分別對(duì)文本和圖像進(jìn)行特征抽取,文本的Encoder為預(yù)訓(xùn)練BERT,視覺(jué)側(cè)的Encoder可以使用傳統(tǒng)的CNN模型,也可是VIT系列模型。得到圖文表征向量后,在對(duì)特征進(jìn)行標(biāo)準(zhǔn)化(Normalize)后計(jì)算Batch內(nèi)圖文Pair對(duì)之間的余弦距離,通過(guò)Triple Loss或InfoNCELoss等目標(biāo)函數(shù)拉近正樣本對(duì)之間的距離,同時(shí)使負(fù)樣本對(duì)的距離拉遠(yuǎn)。
經(jīng)過(guò)大量的圖文Pair對(duì)進(jìn)行預(yù)訓(xùn)練后,我們可以得到在同一表征空間下的文本Encoder和圖像Encoder。下游應(yīng)用通常也是兩種方式,一是在下游任務(wù)上對(duì)模型進(jìn)行微調(diào),適應(yīng)定制的圖文匹配任務(wù),或者僅使用文本或圖像Encoder做單模態(tài)任務(wù);另一種使用方式是直接使用預(yù)訓(xùn)練的圖文表征Zero-Shot方式完成下游任務(wù)。
CLIP進(jìn)行Zero-Shot的一種使用方式如圖14(2)和(3),對(duì)于一個(gè)圖像分類(lèi)任務(wù),可以首先將所有的候選類(lèi)別分別填充“A photo of a {object}”的模板,其中object為候選類(lèi)別,對(duì)于一張待預(yù)測(cè)類(lèi)別的圖像,通過(guò)圖像Encoder的到視覺(jué)表征后,與所有類(lèi)別的模板文本Encoder表征進(jìn)行相似度計(jì)算,最后選擇相似度最高的類(lèi)別即可作為預(yù)測(cè)結(jié)果。
CLIP憑借其簡(jiǎn)潔的架構(gòu)和出眾的效果,被后來(lái)很多工作引用,并使用CLIP預(yù)訓(xùn)練的Backbone作為視覺(jué)表征模塊的初始化參數(shù)。
3.2.3 VILT
CLIP方法簡(jiǎn)單有效,雙塔的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于下游應(yīng)用也十分友好。但是如同表示型語(yǔ)義匹配類(lèi)似,雙塔結(jié)構(gòu)同樣也有交互不足的問(wèn)題,內(nèi)積或余弦距離的模態(tài)融合方式匹配能力上限較低,對(duì)于一些需要細(xì)粒度跨模態(tài)匹配的任務(wù)(VQA等)有時(shí)力不從心。因此,交互式的多模態(tài)對(duì)齊和融合仍然極具價(jià)值,典型的如VILT模型。
VILT是VIT在圖文多模態(tài)方向上的工作延續(xù)。我們了解了基于Transformer的自然語(yǔ)言模型和視覺(jué)模型的預(yù)訓(xùn)練范式后,進(jìn)階到多模態(tài)融合十分容易理解。如圖15所示,與BERT文本對(duì)的輸入方式類(lèi)似,VILT將文本和視覺(jué)Patch的Embedding直接拼接作為T(mén)ransformer編碼器的輸入,兩種模態(tài)有各自可學(xué)習(xí)的位置編碼和模態(tài)類(lèi)型編碼。
通過(guò)深層的Transformer編碼,文本與視覺(jué)的模態(tài)得到了充分的融合。ViLT使用常用的ITM(Image Text Matching)和MLM(Masked Language Modeling)作為預(yù)訓(xùn)練目標(biāo)。
- ITM(Image Text Matching):圖文是否匹配的二分類(lèi)目標(biāo),正樣本為常用數(shù)據(jù)集中提供的語(yǔ)義一致的圖文Pair對(duì),負(fù)樣本對(duì)以0.5的概率隨機(jī)地用替換正圖文對(duì)中的圖片為其他圖片;此外借鑒前人工作,匹配目標(biāo)還增加了圖文子區(qū)域的匹配目標(biāo)Word Patch Alignment (WPA),該目標(biāo)并不常用,我們也不作過(guò)多展開(kāi)。
- MLM(Masked Language Modeling):以0.15的概率對(duì)文本的Token進(jìn)行掩碼,并通過(guò)圖文的整體上下文信息對(duì)預(yù)測(cè)被掩碼的Token。
如圖16,可以對(duì)比以CNN為基礎(chǔ)的多模態(tài)預(yù)訓(xùn)練和以VIT為基礎(chǔ)的預(yù)訓(xùn)練,在模型架構(gòu)上的區(qū)別。
而在ViLT之后,多模態(tài)預(yù)訓(xùn)練的一個(gè)較為明顯的趨勢(shì),是進(jìn)一步提升模態(tài)對(duì)齊與融合的效果以及模型結(jié)構(gòu)的通用性,使用統(tǒng)一模型視角進(jìn)行跨模態(tài)對(duì)齊和融合。在這個(gè)過(guò)程中,ALBEF(Align before Fuse)、BLIP(Bootstrapping Language-Image Pre-training)與BEIT-3系列等工作極具參考價(jià)值,下面我們簡(jiǎn)單對(duì)比其設(shè)計(jì)思路。
3.2.5 ALBEF與BLIP
ALBEF通過(guò)多任務(wù)聯(lián)合訓(xùn)練將類(lèi)似CLIP的對(duì)比學(xué)習(xí)和類(lèi)ViLT的交互融合范式統(tǒng)一到一個(gè)訓(xùn)練框架中。如圖17所示,模型結(jié)構(gòu)包括一個(gè)圖像Encoder(12層)、一個(gè)文本Encoder(6層)和一個(gè)多模態(tài)融合的Encoder(6層),各Encoder均沿用Transformer網(wǎng)絡(luò)。ALBEF的訓(xùn)練任務(wù)包括圖文對(duì)比ITC(Image-Text Contrastive Learning)、ITM(Image-Text Matching)、MLM(Masked Language Modeling)。
- ITC:在圖文模態(tài)深層融合之前,在對(duì)圖文的表征序列Pooling后,通過(guò)對(duì)比學(xué)習(xí)Loss對(duì)圖文單模態(tài)表征進(jìn)行對(duì)齊。這部分和CLIP模型的訓(xùn)練設(shè)置類(lèi)似,不同的是文本的Encoder相對(duì)視覺(jué)Encoder層數(shù)更淺。
- ITM:圖文Encoder輸出的表征序列深層交互后,判斷輸入圖文對(duì)是否匹配,與VILT一樣是二分類(lèi)任務(wù)。不同的是負(fù)樣本對(duì)的構(gòu)造,使用對(duì)比學(xué)習(xí)模塊進(jìn)行了Batch內(nèi)的難負(fù)樣本挖掘。主要思路是,對(duì)比學(xué)習(xí)模塊中一個(gè)Batch中,模型認(rèn)為最為相似的負(fù)樣本對(duì)可以作為難負(fù)樣本。
- MLM:與VILT類(lèi)似,隨機(jī)對(duì)輸入文本token進(jìn)行掩碼,通過(guò)圖文上下文的輸入信息預(yù)測(cè)被掩碼的Token。
最后,由于ALBEF的預(yù)訓(xùn)練數(shù)據(jù)多數(shù)為互聯(lián)網(wǎng)中挖掘的圖文對(duì),天然存在較大的噪聲數(shù)據(jù)。為了緩解這個(gè)問(wèn)題,ALBEF在訓(xùn)練過(guò)程中通過(guò)一個(gè)動(dòng)量自蒸餾的模塊(一個(gè)移動(dòng)平均版本的ALBEF模型),生成訓(xùn)練數(shù)據(jù)集的偽標(biāo)簽,用來(lái)輔助模型的訓(xùn)練。
ALBEF通過(guò)多任務(wù)訓(xùn)練機(jī)制將模態(tài)對(duì)比匹配和深度模態(tài)融合結(jié)合在一起,下游任務(wù)可以根據(jù)具體需求使用不同的模塊進(jìn)行微調(diào)。與之遙相呼應(yīng)的的是BLIP模型,在ALBEF基礎(chǔ)上,將MLM替換為L(zhǎng)M( Language Modeling)Loss,的使得訓(xùn)練得到的模型同時(shí)可以支持圖像描述文本的生成能力,如圖18所示。使得多模態(tài)融合預(yù)訓(xùn)練有了多模態(tài)大模型即視感。
經(jīng)過(guò)大規(guī)模多模態(tài)數(shù)據(jù)的預(yù)訓(xùn)練,ALBEF和BLIP在下游任務(wù)微調(diào)中均取得了十分亮眼的效果,在工業(yè)界也被廣泛應(yīng)用。
3.2.8 VL-BEIT、VLMO與BEIT-3
ALBEF和BLIP之類(lèi)的工作雖然能夠同時(shí)兼顧對(duì)比和深度融合兩種訓(xùn)練模式,但視覺(jué)和自然語(yǔ)言仍然需要單獨(dú)的Encoder分別編碼,這顯然還不是我們所期望的真正的多模態(tài)統(tǒng)一模型框架。我們可以從Microsoft Research的VL-BEIT、VLMO與BEIT-3這一系列工作一窺這個(gè)方向的探索過(guò)程。
VL-BEIT可以看作是前文提到的BEIT在多模態(tài)對(duì)齊預(yù)訓(xùn)練工作的延續(xù),同時(shí)借鑒了ViLT的網(wǎng)絡(luò)結(jié)構(gòu)。如圖19,與ViLT的區(qū)別在于,VL-BEIT期望將單模態(tài)和多模態(tài)統(tǒng)一到一個(gè)模型中,在預(yù)訓(xùn)練任務(wù)設(shè)計(jì)上,同時(shí)考慮了純文本、純視覺(jué)以及圖文多模態(tài)任務(wù)。純文本任務(wù)為MLM(a);純視覺(jué)特征的MIM,其中MIM的目標(biāo)是BEIT工作中的Visual Token ID(b);圖文多模態(tài)任務(wù)包括考慮文本特征的視覺(jué)Token預(yù)測(cè),以及考慮視覺(jué)特征的文本Token預(yù)測(cè)(c)。
VLMO是VL-BEIT的同期工作,如圖20。VLMO相較于VL-BEIT的不同之處在于:1、舍棄了視覺(jué)側(cè)的Visual Token ID預(yù)測(cè),簡(jiǎn)化了整體的網(wǎng)絡(luò)結(jié)構(gòu);2、增加了類(lèi)似CLIP的圖文對(duì)比學(xué)習(xí)任務(wù),以及交互型的圖文匹配任務(wù)。雖然VLMO相對(duì)于VL-BEIT在效果上并不出彩,但為后續(xù)BEIT-3的工作奠定了基礎(chǔ)。網(wǎng)絡(luò)結(jié)構(gòu)上,VLMO是VL-BEIT都使用MoME Transformer結(jié)構(gòu),對(duì)不同的模態(tài)使用不同的Expert頭,以區(qū)分不同模態(tài)的表征。
與VLMO網(wǎng)絡(luò)結(jié)構(gòu)類(lèi)似,BEIT-3將圖像、文本和圖文多模態(tài)輸入統(tǒng)一到一個(gè)單獨(dú)的Multiway Transformer網(wǎng)絡(luò)。不同于經(jīng)典的Transformer,BEIT-3使用一個(gè)多類(lèi)型輸入共享的多頭自注意力模塊(Multi-Head Self-Attention),不同類(lèi)型的模態(tài)輸入各有一個(gè)全連接專(zhuān)家模塊單獨(dú)學(xué)習(xí)。如圖21,視覺(jué)模態(tài)使用V-FFN、文本模態(tài)對(duì)應(yīng)L-FFN,圖文多模態(tài)輸入對(duì)應(yīng)VL-FFN,模型會(huì)根據(jù)不同類(lèi)型的模態(tài)輸入選擇不同的模塊生效。
在預(yù)訓(xùn)練任務(wù)上,如圖22,BEIT-3相比之下也更加全面,不僅包括常用的圖文對(duì)比學(xué)習(xí)、MLM和圖像文本描述生成任務(wù),還引進(jìn)了文本和圖像的單模態(tài)任務(wù)。這樣的訓(xùn)練方式,使得BEIT-3真正統(tǒng)一了多模態(tài)的不同輸入類(lèi)型,同時(shí)更加全面和靈活的支持不同模態(tài)的下游任務(wù)。為了能夠?qū)崿F(xiàn)這樣的能力,BEIT-3使用了更多的預(yù)訓(xùn)練數(shù)據(jù),模型容量相對(duì)于之前的工作也有了顯著的提高(達(dá)到1.9B),相應(yīng)地最終也取得了在當(dāng)時(shí)更好的效果。
BEIT-3將多模態(tài)對(duì)齊和預(yù)訓(xùn)練的研究推到了一個(gè)新的高度,驗(yàn)證了更多的數(shù)據(jù)+更大的模型取得更好的效果,在這個(gè)研究方向仍不失準(zhǔn)。雖然開(kāi)始飽受爭(zhēng)議,但隨著ChatGPT的問(wèn)世,這個(gè)發(fā)展思路的正確性被進(jìn)一步加深,也催生了后面多模態(tài)大模型的一眾研究工作。
四、多模態(tài)與大模型
寫(xiě)到這里,經(jīng)過(guò)大規(guī)模篇幅的鋪墊,終于到了大家都關(guān)心的多模態(tài)大模型章節(jié)。打開(kāi)前兩天的筆記,原來(lái)的計(jì)劃是這部分內(nèi)容參考綜述論文的梳理,選擇一些有代表性的工作進(jìn)行問(wèn)題的串連。當(dāng)我重新下載這篇綜述論文,想截一張示意圖時(shí),卻是目瞪狗呆。對(duì)比一下,圖23是年前的截圖,圖24是年后的。
這個(gè)速度,屬實(shí)有點(diǎn)跟不上了。調(diào)整情緒后,我告訴自己很多工作萬(wàn)變不離其宗,可以延續(xù)原來(lái)的思路繼續(xù)寫(xiě),不增加加新的內(nèi)容。這樣,應(yīng)該也挺合理的吧。下面我們通過(guò)各時(shí)期的優(yōu)秀工作,來(lái)系統(tǒng)看一下類(lèi)似GPT-4的多模態(tài)大模型的主流思路。
4.1 Flamingo
如今GPT-4代表著多模態(tài)大模型的頂尖水平,但在此之前,甚至在ChatGPT之前就已有相關(guān)探索工作,其中谷歌的Flamingo最具當(dāng)前主流技術(shù)雛形。事實(shí)上,F(xiàn)lamingo更像是圖文多模態(tài)領(lǐng)域的GPT-3,不同的是它支持圖文上下文的輸入,通過(guò)In-Context Few-Shot方式完成任務(wù)。Flamingo同樣支持視頻幀序列作為輸入,通過(guò)Prompt指令完成Video理解任務(wù)。
做到這種功能,在模型側(cè)和GPT-3類(lèi)似,不同的是Flamingo在文本Transfomer網(wǎng)絡(luò)中增加視覺(jué)輸入特征,模型結(jié)構(gòu)如圖26,包括三個(gè)部分。
- 視覺(jué)側(cè)特征抽取使用預(yù)訓(xùn)練的ResNet和采樣模塊(Perceiver Resampler,將變長(zhǎng)的視覺(jué)特征輸入轉(zhuǎn)成少量的視覺(jué)特征)模型;
- 文本側(cè)模型使用LLM(基座使用Chinchilla,同樣是谷歌發(fā)布的對(duì)標(biāo)GPT-3的大語(yǔ)言模型,并提供了1.4B、7B、和70B等版本,分別對(duì)應(yīng)Flamingo-3B、Flamingo-9B和Flamingo-80B);
- GATED XATTN-DENSE層,用于連接LLM 層與視覺(jué)特征,允許 LM 在處理文本時(shí)考慮視覺(jué)信息。通過(guò)交叉注意力,LM 可以關(guān)注與視覺(jué)特征相關(guān)的部分。預(yù)訓(xùn)練LLM和視覺(jué)ResNet參數(shù)訓(xùn)練過(guò)程中是凍結(jié)狀態(tài)。
相應(yīng)的,在數(shù)據(jù)層面Flamingo也是使用了多樣形式的訓(xùn)練語(yǔ)聊,包括:
- 圖文穿插形式:MultiModal MassiveWeb (M3W),43 Million;
- 圖文Pair對(duì)形式:LTIP(Long Text & Image Pairs),312 Million;
- 帶文本描述的短視頻:VTP (Video & Text Pairs) ,27 Million 。
最后Flamingo在各種多模態(tài)任務(wù)上的效果也非常優(yōu)秀,甚至在有些數(shù)據(jù)集上通過(guò)few-shot方式可以超過(guò)經(jīng)典模型的SOTA。
Flamingo憑借其出色的效果,吸引了許多研究者對(duì)于多模態(tài)大模型的注意,但當(dāng)時(shí)這種規(guī)模的模型訓(xùn)練不是誰(shuí)都能玩的起,因此并沒(méi)有引起特別火熱的跟風(fēng)潮。直到ChatGPT的出現(xiàn),讓人逐漸接受了大模型這條道路的正確性,以前覺(jué)得自己玩不起的機(jī)構(gòu),砸鍋賣(mài)鐵拉投資也愿意投入,自此相關(guān)的開(kāi)源研究開(kāi)始如火如荼。
在眾多開(kāi)源工作中,BLIP-2以及與之一脈相承的InstructBLIP算是早期的探路者之一,我們可以從這兩個(gè)工作開(kāi)始講起。
4.2 BLIP-2和InstructBLIP
BLIP-2的論文標(biāo)題是Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models,核心思路是通過(guò)利用預(yù)訓(xùn)練好的視覺(jué)模型和語(yǔ)言模型來(lái)提升多模態(tài)效果和降低訓(xùn)練成本。
BLIP-2的網(wǎng)絡(luò)結(jié)構(gòu)如圖28所示,從架構(gòu)上來(lái)說(shuō),和Flamingo十分類(lèi)似。包括視覺(jué)編碼層、視覺(jué)與文本的Adapter(Q-Former)以及大語(yǔ)言模型層。
- 視覺(jué)編碼層:使用ViT模型,權(quán)重初始化通過(guò)CLIP預(yù)訓(xùn)練完成,并剔除最后一次提升輸出特征的豐富性;訓(xùn)練過(guò)程中凍結(jié)權(quán)重,不更新;
- 文本側(cè)的大語(yǔ)言模型層:早期的BLIP-2使用OPT/FlanT5來(lái)實(shí)驗(yàn)Decoder based和Encoder-Decoder based LLM的效果;這部分同樣在訓(xùn)練過(guò)程中凍結(jié)權(quán)重,不更新;
- 圖文Adapter層:Q-Former結(jié)構(gòu),類(lèi)似BLIP網(wǎng)絡(luò)(同樣先進(jìn)行了圖文多模態(tài)預(yù)訓(xùn)練模塊),通過(guò)Queries向量,提取視覺(jué)側(cè)的關(guān)鍵信息輸入到LLM;這部分是多模態(tài)大模型訓(xùn)練過(guò)程中的主要參數(shù)。
和Flamingo相比,BLIP-2簡(jiǎn)化了視覺(jué)特征和大模型的交互,直接僅僅將視覺(jué)特征和文本特征一起作為大模型的輸入,沒(méi)有深層的交互模塊(如GATED XATTN-DENSE層);另一方面在視覺(jué)和LLM的Adapter層做了更多的設(shè)計(jì),即Q-Former結(jié)構(gòu),如圖29。從Q-Former結(jié)構(gòu)圖,我們可以看到BLIP的影子,最大的不同在于一個(gè)Learned Queries模塊,用于對(duì)ViT輸出的視覺(jué)特征進(jìn)行采樣(Pooling),得到固定長(zhǎng)度的視覺(jué)特征序列。
上面提到,為了避免災(zāi)難遺忘,BLIP-2凍結(jié)了ViT和LLM的參數(shù),只訓(xùn)練Q-Former模塊。為了訓(xùn)練更加穩(wěn)定,Q-Former模塊的訓(xùn)練包括兩個(gè)階段。
- Stage1: 將Q-Former與凍結(jié)的ViT拼接,借鑒BLIP,使用 ITC(圖文對(duì)比學(xué)習(xí))、ITG(圖生成文本)和ITM(圖文匹配)任務(wù)進(jìn)行學(xué)習(xí),對(duì)參數(shù)進(jìn)行初始化,學(xué)習(xí)圖文相關(guān)性特征。
- Stage2:如圖30,將Stage1得到的模型再拼接LLM,即Q-Former的輸出可通過(guò)線(xiàn)性投影輸入到LLM(凍結(jié)參數(shù)),進(jìn)行視覺(jué)到自然語(yǔ)言的生成學(xué)習(xí),目標(biāo)是訓(xùn)練Q-Former使其輸出的視覺(jué)特征和LLM的輸入分布對(duì)齊。
BLIP-2通過(guò)視覺(jué)和LLM的特征對(duì)齊,使得LLM具備了多模態(tài)理解能力,但其訓(xùn)練數(shù)據(jù)主要沿用BLIP(圖文Pair對(duì)形式),和當(dāng)下的多模態(tài)模型的主流技術(shù)方案仍存在一定GAP,是早期代表性探索之一。不過(guò),隨著指令微調(diào)成為大模型必備流程,后續(xù)BLIP-2也自然升級(jí)為InstructBLIP。
如圖31,InstructBLIP的網(wǎng)絡(luò)結(jié)構(gòu)與BLIP-2幾乎一致,同樣也是2階段訓(xùn)練,不同的是采樣了指令微調(diào)范式,將文本模態(tài)的Instruction也作為輸入同時(shí)給到Q-former和LLM進(jìn)行學(xué)習(xí)。
對(duì)應(yīng)的,InstructBLIP的另一個(gè)不同是訓(xùn)練數(shù)據(jù)也使用指令形式,將各種類(lèi)型任務(wù)的開(kāi)源學(xué)術(shù)數(shù)據(jù),使用模板構(gòu)造成指令多模態(tài)數(shù)據(jù)。數(shù)據(jù)模板如圖31。
通過(guò)指令數(shù)據(jù)和指令微調(diào),是的InstructBLIP可以像GPT-4一樣通過(guò)指令提示詞的方式完成任務(wù),雖然效果上仍有差距。即使不是InstructBLIP的訓(xùn)練范式并不是開(kāi)創(chuàng)性的,但是我們依然可以用InstructBLIP作為參考,來(lái)看對(duì)比后面要介紹的其他工作。
4.3 Qwen-VL
阿里巴巴的Qwen-VL是另一個(gè)比較經(jīng)典的模型,十分值得作為案例介紹多模態(tài)大模型的訓(xùn)練要點(diǎn)。Qwen-VL使用Qwen-7B LLM作為語(yǔ)言模型基座,Openclip預(yù)訓(xùn)練的ViT-bigG作為視覺(jué)特征Encoder,隨機(jī)初始化的單層Cross-Attention模塊作為視覺(jué)和自然語(yǔ)言的的Adapter,總參數(shù)大小約9.6B。
如圖33,Qwen-VL的訓(xùn)練過(guò)程分為三個(gè)階段:
- Stage1 為預(yù)訓(xùn)練,目標(biāo)是使用大量的圖文Pair對(duì)數(shù)據(jù)對(duì)齊視覺(jué)模塊和LLM的特征,這個(gè)階段凍結(jié)LLM模塊的參數(shù);
- Stage2 為多任務(wù)預(yù)訓(xùn)練,使用更高質(zhì)量的圖文多任務(wù)數(shù)據(jù)(主要來(lái)源自開(kāi)源VL任務(wù),部分自建數(shù)據(jù)集),更高的圖片像素輸入,全參數(shù)訓(xùn)練;
- Stage3 為指令微調(diào)階段,這個(gè)階段凍結(jié)視覺(jué)Encoder模塊,使用的數(shù)據(jù)主要來(lái)自大模型Self-Instruction方式自動(dòng)生成,目標(biāo)是提升模型的指令遵循和多輪對(duì)話(huà)能力。
Qwen-VL的另一個(gè)啟發(fā)是在Stage2和Stage3的訓(xùn)練過(guò)程中,不止使用VL數(shù)據(jù),還使用了純文本的訓(xùn)練數(shù)據(jù),避免遺忘LLM的能力,這個(gè)策略的效果在其他的工作中也有所印證。此外,相比InstructBLIP,Qwen-VL模型視覺(jué)和LLM的Adapter模塊簡(jiǎn)化很多,僅僅是一個(gè)淺層的Attention Pooling模塊,通過(guò)更加細(xì)節(jié)的訓(xùn)練流程和更加豐富的訓(xùn)練數(shù)據(jù),仍取得了比InstructBLIP更優(yōu)的效果。
4.4 LLaVA1.5
同樣,微軟的LLaVA也是一個(gè)持續(xù)更新的系列工作,這里主要總結(jié)LLaVA和LLaVA1.5的核心思路。圖34為L(zhǎng)LaVA1.5的數(shù)據(jù)和模型概況。可以看到,和Qwen-VL相比,LLaVA1.5在預(yù)訓(xùn)練和指令微調(diào)數(shù)據(jù)上使用了更少的數(shù)據(jù)(將Qwen-VL的Stage2和Stage3都視作指令微調(diào));在模型結(jié)構(gòu)上,除了視覺(jué)Encoder和LLM均使用了不同的基座模型,視覺(jué)和自然語(yǔ)言的Adapter使用更簡(jiǎn)單的MLP層。
LLaVA1.5模型的效果在一些評(píng)測(cè)數(shù)據(jù)集上相比Qwen-VL有更好的效果,說(shuō)明通過(guò)一些優(yōu)化工作,使用更少的數(shù)據(jù),更簡(jiǎn)單的Adapter結(jié)構(gòu),也能使LLM具備不錯(cuò)的多模態(tài)理解能力。在數(shù)據(jù)層面,如圖35,對(duì)比LLaVA1.5和LLaVA工作,通過(guò)增加高質(zhì)量細(xì)粒度的VL數(shù)據(jù)、豐富指令、純文本指令微調(diào)數(shù)據(jù)、提升圖片輸入像素、提升LLM參數(shù)規(guī)模等手段,可以有效提升模型效果。
4.5 VILA
另一個(gè)與LLaVA比較類(lèi)似,但有所補(bǔ)充的工作是英偉達(dá)的VILA(不是顯卡)。VILA模型的網(wǎng)絡(luò)結(jié)構(gòu)和LLaVA十分類(lèi)似,我們不做過(guò)多贅述。不同的是VILA通過(guò)實(shí)驗(yàn),總結(jié)了多模態(tài)預(yù)訓(xùn)練的一些經(jīng)驗(yàn),其中有些經(jīng)驗(yàn)在相關(guān)工作中也有所體現(xiàn),主要為以下三點(diǎn):
- LLM參與訓(xùn)練更好:在預(yù)訓(xùn)練階段凍結(jié)LLM參數(shù),能做到不錯(cuò)的zero-shot的能力,但會(huì)損失in-context學(xué)習(xí)的能力,而LLM參數(shù)參與訓(xùn)練的話(huà)可以有效緩解;
- 預(yù)訓(xùn)練數(shù)據(jù)使用圖文交替數(shù)據(jù)更好:圖文Pair對(duì)并不是最優(yōu)的選擇,圖文交錯(cuò)的數(shù)據(jù)效果更好;
- SFT時(shí)純文本數(shù)據(jù)圖文數(shù)據(jù)混合更好:在圖文指令微調(diào)訓(xùn)練數(shù)據(jù)中混入純文本的指令數(shù)據(jù),不僅可以緩解純文本能力的遺忘,還能提升VL任務(wù)的能力。
具體的,如圖37,VILA的訓(xùn)練分為3個(gè)階段,視覺(jué)編碼模塊ViT參數(shù)均是凍結(jié)狀態(tài)。Step 0 使用圖文Pair數(shù)據(jù)對(duì)初始化Projector(圖文Adapter)參數(shù),LLM模塊參數(shù)凍結(jié);Step 1使用圖文交替數(shù)據(jù)全參數(shù)預(yù)訓(xùn)練;Step 2使用指令微調(diào)數(shù)據(jù)進(jìn)行全參數(shù)微調(diào),其中微調(diào)數(shù)據(jù)混合了圖文指令和純文本指令;
VILA是較新的工作,因此有更豐富的模型效果對(duì)比,如圖38,相對(duì)各時(shí)期的SoTA,VILA在公開(kāi)評(píng)測(cè)指標(biāo)上有不錯(cuò)的效果。
4.6 Gemini 1.0和Gemini 1.5
目光來(lái)到閉源世界,與VILA同階段,谷歌公司發(fā)布了Gemini系列,又在近期發(fā)布了性能更強(qiáng)的Gemini 1.5,可惜被另一個(gè)熱愛(ài)閉源的OpenAI的Sora搶了風(fēng)頭,屬實(shí)悲催。由于Gemini系列并沒(méi)有開(kāi)源,我們只能通過(guò)技術(shù)報(bào)告中的簡(jiǎn)單介紹來(lái)了解其方法。
Gemini 1.0是一個(gè)多模態(tài)模型,這里模態(tài)除了圖圖像和文還包括音頻、視頻,符合谷歌多模態(tài)大模型一貫的ALL IN ONE的風(fēng)格,這也是依賴(lài)積累豐富的數(shù)據(jù)資源和算力資源。Gemini 1.0提供Ultra、Pro和Nano版本,分別適應(yīng)不同能力、參數(shù)大小和推理速度要求,最小的Nano甚至可以端上運(yùn)行。
方法上,Gemini 1.0的網(wǎng)絡(luò)結(jié)構(gòu)同樣是Transformer Decoders,支持32K上下文長(zhǎng)度,使用了Multi-Query Attention等優(yōu)化機(jī)制。如圖39,模型輸入可以是文本、音頻、視覺(jué)輸入,輸入視覺(jué)可以是圖片、圖表、截圖、PDFs或視頻等,輸出可以是圖片和文本(沒(méi)錯(cuò),可以生成圖片)。視覺(jué)的Encoder模塊借鑒了谷歌自己的Flamingo、CoCa和PaLI,結(jié)合這些模型,可以輸入多模態(tài)的同時(shí),也可以通過(guò)離散的視覺(jué)Tokens生成圖片或視頻等視覺(jué)模態(tài)。
對(duì)于音頻模態(tài),Gemini可以直接輸入U(xiǎn)niversal Speech Model (USM)的16kHz特征,具體可以參考USM工作。對(duì)于視頻理解,Gemini通過(guò)將視頻編碼為長(zhǎng)上下文窗口中的一系列幀來(lái)實(shí)現(xiàn)。視頻幀或圖像可以與文本或音頻自然交織在一起,作為模型輸入的一部分。Gemini同時(shí)支持不同像素輸入的視覺(jué)以滿(mǎn)足不同粒度的理解任務(wù)。
在具體訓(xùn)練數(shù)據(jù)方面,技術(shù)報(bào)告同樣并沒(méi)有提過(guò)多細(xì)節(jié),只是簡(jiǎn)單說(shuō)了數(shù)據(jù)包括什么模態(tài)、經(jīng)過(guò)了什么清洗步驟等,我們也不再深究。至于最近的Gemini 1.5,同樣是技術(shù)報(bào)告的形式發(fā)布,沒(méi)有特別多技術(shù)細(xì)節(jié),主要介紹了模型是如何的強(qiáng)。區(qū)別要點(diǎn)包括:模型在Gemini 1.0基礎(chǔ)上引入了sparse mixture-of-expert (MoE),同時(shí)強(qiáng)化了上下文長(zhǎng)度(32K->10M)同時(shí)幾乎沒(méi)有損失上下文感知能力。在訓(xùn)練過(guò)程中,Gemini 1.5強(qiáng)化了指令微調(diào)過(guò)程,使用了用戶(hù)偏好數(shù)據(jù)。
總體來(lái)說(shuō),雖然Gemini沒(méi)有提供技術(shù)細(xì)節(jié),但也體現(xiàn)了谷歌對(duì)于多模態(tài)大模型技術(shù)方向的判斷,比如我們可以get到網(wǎng)絡(luò)結(jié)構(gòu)的MoE、一個(gè)模型更多模態(tài)、超長(zhǎng)上下文、文本生成+多模態(tài)生成結(jié)合等。
4.7 LWM
最后,我們?cè)俳榻B一篇和Gemini類(lèi)似的開(kāi)源工作《World Model on Million-Length Video And Language With RingAttention》,模型名LWM(Large World Model)。至于為什么叫World Model,意思可以通過(guò)視覺(jué)和視頻的理解物理世界,,LWM是UC Berkeley最近發(fā)布的一篇工作,個(gè)人認(rèn)為在開(kāi)源方向上是一個(gè)優(yōu)秀的工作,但好像也是由于Sora和Gemini 1.5的熱度,沒(méi)有引起太多關(guān)注。
LWM希望完成的任務(wù)和Gemini十分相似,核心是超長(zhǎng)上下文理解的多模態(tài)大模型。憑借支持1M的token輸入,LWM可以對(duì)超過(guò)一小時(shí)的視頻進(jìn)行理解,在Gemini 1.5之前幾乎是多模態(tài)大模型中最長(zhǎng)的上下文輸入(之一)。LWM的主要工作要點(diǎn)包括:
- 支持超長(zhǎng)上下文,可處理超長(zhǎng)的文本、圖片序列或視頻等;
- 一些技術(shù)難點(diǎn)方案:Masked Sequence Packing方法混合的輸入長(zhǎng)度;通過(guò)loss weighting 平衡視覺(jué)和文本模態(tài);模型自動(dòng)生成長(zhǎng)序列問(wèn)答數(shù)據(jù)集用于模型訓(xùn)練;
- 實(shí)現(xiàn)了高性能的RingAttention,Masked Sequence Packing等優(yōu)化項(xiàng),完成了百萬(wàn)級(jí)別長(zhǎng)度的多模態(tài)序列的訓(xùn)練;
- 開(kāi)源7B參數(shù)規(guī)模的大模型,包括長(zhǎng)上下文的文本模態(tài)模型(LWM-Text,LWM-Text-Chat),和多模態(tài)模型(LWM,LWM-Chat)。
具體方案上,LWM使用Transformer架構(gòu),在LLama2 7B基礎(chǔ)上擴(kuò)充上下文理解的長(zhǎng)度上限,模型結(jié)構(gòu)如圖40:
與之前大多數(shù)方法不同的是,視覺(jué)的編碼器使用VQGAN,可以將256 × 256輸入圖片編碼成16 × 16 離散Token。這使得LWM不僅可以生成文本,也可以基于文本生成Image Token還原成視頻。對(duì)于多圖或視頻幀,可以分別做視覺(jué)特征抽取,和文本模態(tài)一起輸入到LLM中。
在模型訓(xùn)練流程上,主要分為兩個(gè)階段的訓(xùn)練:
- 階段一,使用Books數(shù)據(jù)集,先擴(kuò)充文本LLM上下文長(zhǎng)度到1M;
- 階段二,長(zhǎng)上下文的多模態(tài)訓(xùn)練,即混合圖-文數(shù)據(jù)、視頻-文本數(shù)據(jù)、以及純文本的Books數(shù)據(jù)進(jìn)行訓(xùn)練。
上面兩個(gè)過(guò)程有兩個(gè)核心問(wèn)題需要解決:1、長(zhǎng)文檔的可擴(kuò)展訓(xùn)練;2、如何穩(wěn)定地?cái)U(kuò)展LLM的上下文。前者關(guān)注訓(xùn)練的效率和開(kāi)銷(xiāo),后者則關(guān)注長(zhǎng)上下文拓展的有效性。針對(duì)問(wèn)題1,LWM主要實(shí)現(xiàn)了高效的RingAttention,同時(shí)結(jié)合了FlashAttention;針對(duì)問(wèn)題2,一方面,兩個(gè)訓(xùn)練階段都是多輪訓(xùn)練方式,逐步提升上下文長(zhǎng)度的方式,如圖41。另一方面通過(guò)簡(jiǎn)單的調(diào)整了RoPE的參數(shù),提升模型長(zhǎng)文本的位置編碼能力。
總的來(lái)說(shuō),LWM是一篇不錯(cuò)的文章,最重要的是開(kāi)源,技術(shù)方案基本沒(méi)有保留,值得拉出來(lái)單獨(dú)討論。在效果上LWM和Gemini 1.0 Pro以及GPT4有一定的競(jìng)爭(zhēng)力,更多的細(xì)節(jié)可以閱讀原論文。
五、總結(jié)
寫(xiě)到這里,吐一口老血,但還是要總結(jié)一下。本文梳理了2019年之后視覺(jué)表征和多模態(tài)表征的一些變化,主要涉及視覺(jué)表征和視覺(jué)預(yù)訓(xùn)練、多模態(tài)表征對(duì)齊(或融合)和多模態(tài)預(yù)訓(xùn)練、多模態(tài)大模型技術(shù)的相關(guān)工作。各工作之間的簡(jiǎn)化關(guān)系如圖42,脈絡(luò)主要是結(jié)合筆者自己各階段的實(shí)踐經(jīng)歷和認(rèn)識(shí),會(huì)出現(xiàn)一些地方不嚴(yán)謹(jǐn)?shù)牡胤剑瑲g迎指正。
關(guān)于未來(lái)暢想,從最近的工作上來(lái)看,多模態(tài)的呈現(xiàn)出以大模型為主線(xiàn),逐步開(kāi)始朝長(zhǎng)上下文、混合模態(tài)、世界模型、多模態(tài)生成等方向發(fā)展。開(kāi)始在自己工作的實(shí)踐中得到的一個(gè)個(gè)人觀(guān)點(diǎn),是多模態(tài)大模型的驚艷能力主要來(lái)自于文本大模型中所蘊(yùn)含的知識(shí),以及超強(qiáng)的上下文理解能力,視覺(jué)特征只是從屬的信息輸入或感知源。但近期Gemini 1.5、LWM、甚至Sora等工作又開(kāi)始嘗試大模型理解物理世界(引出世界模型的概念),大模型好像開(kāi)始從文本之外的模態(tài)強(qiáng)化輸入信息的影響力。不管怎么說(shuō),持續(xù)的更新迭代讓人耳目一新,相信也會(huì)不斷刷新人們對(duì)人工智能邊界的認(rèn)知。