AI模型的大一统!浅析微软的BEIT3:多模态领域乱杀的十二边形战士
點(diǎn)擊上方“視學(xué)算法”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
作者丨戰(zhàn)斗系牧師@知乎(已授權(quán))
來(lái)源丨h(huán)ttps://zhuanlan.zhihu.com/p/558533740
編輯丨極市平臺(tái)
導(dǎo)讀
?微軟最新升級(jí)的 BEiT-3 預(yù)訓(xùn)練模型,用一個(gè)模型搞定多領(lǐng)域SOTA。
無(wú)敵的十二寸Pizza餅戰(zhàn)士BEIT3說(shuō)在前面的話(有點(diǎn)小長(zhǎng),可以直接跳過(guò)的)
期待
在Swin-v2出來(lái)不久之后,我預(yù)感一個(gè)很棒的大一統(tǒng)模型很快就會(huì)到來(lái)了,當(dāng)時(shí),我躺在床上,給我的好伙伴寫(xiě)下了必勝的AI模型配方!
大數(shù)據(jù)量+大模型架構(gòu)+MAE(mask data)+多模態(tài)訓(xùn)練方式
寫(xiě)下這條配方時(shí)候我其實(shí)就覺(jué)得下一個(gè)無(wú)敵的模型估計(jì)很快就可以出現(xiàn)了。沒(méi)想到,學(xué)都還沒(méi)有開(kāi),BEIT-3就迎面向我們走來(lái)了。一個(gè)能在多模態(tài)領(lǐng)域亂殺的無(wú)敵十二邊形戰(zhàn)士,在純視覺(jué)領(lǐng)域都能是妥妥的SOTA。一個(gè)真正做到了大一統(tǒng)的模型框架!
疲憊
但是經(jīng)過(guò)這么多輪的,大模型的轟炸。其實(shí)人工智能組成的中堅(jiān)力量(實(shí)驗(yàn)室小作坊們)已經(jīng)沒(méi)有辦法頂?shù)米∵@些核彈的壓力了。這么大的模型,這么龐大的訓(xùn)練量,效果再炸裂又能怎樣,我又復(fù)現(xiàn)不出來(lái)。 這種聲音成為了現(xiàn)在開(kāi)發(fā)者們的主流心聲。大家都疲憊了,這種工作再棒其實(shí)也是無(wú)效工作,follow的成本太高了。那么這時(shí)候很又前瞻性的研究員們就要站出來(lái)抵抗了,問(wèn)出那個(gè)最知乎的問(wèn)題,那有沒(méi)有大模型有沒(méi)有不能覆蓋到的方向呢?”核彈“到底有沒(méi)有炸不到的點(diǎn)呢?
其實(shí)是有的,不如我先BEIT-3的工作內(nèi)容大概內(nèi)容和大家講一遍,然后慢慢和大家分析有沒(méi)有這個(gè)答案吧!
為什么會(huì)有這樣的一個(gè)工作?
其實(shí)先當(dāng)前的大一統(tǒng)的思路其實(shí)很清晰。發(fā)展的方向也是主要主要沿著以下三點(diǎn)進(jìn)行更新迭代,合適的骨干架構(gòu)、各任務(wù)的預(yù)訓(xùn)練模型、大參數(shù)量的模型架構(gòu)。 本文的BEIT-3也是順著這個(gè)思路對(duì)模型進(jìn)行迭代的,不僅在圖像+語(yǔ)言的方向取得SOTA,甚至在純圖像領(lǐng)域,也是一馬當(dāng)先,把分?jǐn)?shù)又往前卷了一步!其實(shí)我覺(jué)得ADE20k超過(guò)了大殺器Swin-V2、在coco上雖然不是漲點(diǎn)很多,但是也破了DINO的記錄,在圖像分類(lèi)任務(wù)上也擊敗了我的白月光CLIP,漲了0.6個(gè)點(diǎn),這個(gè)可是真正無(wú)敵的存在。
合適的骨干架構(gòu)—Multiway Transformer
從Transformer在語(yǔ)言翻譯上的大獲成功,再到ViT在視覺(jué)領(lǐng)域上的大放異彩,Transformer架構(gòu)已經(jīng)成為了視覺(jué)、語(yǔ)言通用的大殺器。對(duì)于多模態(tài)來(lái)說(shuō),有一個(gè)能夠在語(yǔ)言和視覺(jué)同時(shí)work的網(wǎng)絡(luò)架構(gòu)體系,使得無(wú)縫處理多種模態(tài)的任務(wù)成為可能。但是因?yàn)橐曈X(jué)和語(yǔ)言畢竟不是一個(gè)體系的數(shù)據(jù)類(lèi)型,一般來(lái)說(shuō)未來(lái)適配不同的下游任務(wù),我們都會(huì)重新設(shè)計(jì)Transformer架構(gòu)。這種方案其實(shí)不利于大一統(tǒng)的思路發(fā)展,所以我們需要有一個(gè)整體化的架構(gòu)范式,幫助我們完成大一統(tǒng)的理想。
其實(shí)不同的任務(wù)能不能集成在一個(gè)框架,其實(shí)有幾種的思考模式,比如第一種,弱聯(lián)系框架。多分支獨(dú)立進(jìn)行特征提取工作,最后只借助loss函數(shù)回歸彼此的信息,完成信息交互。但是這樣的操作其實(shí)無(wú)法做到充分的信息共享,而且參數(shù)沒(méi)有辦法有效地跨模態(tài)共享,所以一個(gè)大一統(tǒng)多模態(tài)框架需要滿足信息共享、信息交互的兩個(gè)特點(diǎn)。考慮到Transformer整體架構(gòu)的特性,這項(xiàng)工作中使用Multiway transformer作為骨干模型來(lái)編碼不同的模態(tài)。上圖所示,每個(gè)Multiway Transformer模塊由一個(gè)共享的自注意模塊和一組用于不同模態(tài)的前饋網(wǎng)絡(luò)(即單一模態(tài)專(zhuān)家)組成。我們根據(jù)每個(gè)輸入類(lèi)型,將其轉(zhuǎn)化為token的形式輸入到給各個(gè)模態(tài)的支路當(dāng)中。 在我們的實(shí)現(xiàn)中,每一層都包含一個(gè)視覺(jué)支路和一個(gè)語(yǔ)言支路。
此外,在前三層還有為融合多模態(tài)數(shù)據(jù)而設(shè)計(jì)的視覺(jué)-語(yǔ)言融合支路。以獲得更詳細(xì)的全局特征信息。通過(guò)共享自注意模塊學(xué)習(xí)到的不同特征,并對(duì)不同模態(tài)之間特征一一對(duì)齊,使得多模態(tài)(如視覺(jué)-語(yǔ)言)任務(wù)信息融合得更加緊密。與各自為營(yíng)的集成化的多模態(tài)模型相比,大一統(tǒng)體系結(jié)構(gòu)的BEIT-3能夠支持更廣泛的下游任務(wù)。例如,BEIT-3可以用作各種視覺(jué)任務(wù)的圖像主干,包括圖像分類(lèi)、目標(biāo)檢測(cè)、實(shí)例分割和語(yǔ)義分割。它還可以通過(guò)微調(diào),轉(zhuǎn)化為一個(gè)有效的圖像-文本檢索雙編碼器,以及多模態(tài)的推理任務(wù)和視頻理解任務(wù)。
一個(gè)模型可以同時(shí)滿足abcde個(gè)心愿!Masked Data modeling自監(jiān)督學(xué)習(xí)
基于掩碼數(shù)據(jù)的訓(xùn)練方法已經(jīng)成功的運(yùn)用在各個(gè)任務(wù)上。無(wú)論是及BEIT還是MAE,這種掩碼的自監(jiān)督的學(xué)習(xí)方法都讓模型變得更加的魯棒!我們通過(guò)統(tǒng)一的mask data的模式下在單模態(tài)(即圖像或者文本)和多模態(tài)(即圖像+文本)數(shù)據(jù)上對(duì)BEIT-3進(jìn)行進(jìn)一步的訓(xùn)練。
在預(yù)訓(xùn)練過(guò)程中,我們隨機(jī)屏蔽一定比例的文本標(biāo)記或給圖像數(shù)據(jù)加上補(bǔ)丁,并通過(guò)模型的訓(xùn)練使其達(dá)到恢復(fù)屏蔽標(biāo)記的能力。這種做法其實(shí)已經(jīng)在早期的BEIT實(shí)驗(yàn)中取得了成功,MAE也在最近的CVPR上大放異彩。那么我們的多模態(tài)的信息還原其實(shí)也是如此。不僅能學(xué)習(xí)各自模態(tài)的表征信息,而且還可以通過(guò)這種方式學(xué)習(xí)到不同模態(tài)之間的對(duì)齊。具體地說(shuō),文本數(shù)據(jù)通過(guò)SentencePiece標(biāo)記器進(jìn)行標(biāo)記。圖像數(shù)據(jù)則通過(guò)BEIT-v2 的tokener將其轉(zhuǎn)化為token,并將這里離散的圖像信息作為重構(gòu)的對(duì)象,以此來(lái)增強(qiáng)不同模態(tài)之間的理解,對(duì)齊兩種模態(tài)的信息。
在實(shí)驗(yàn)中BEIT-3隨機(jī)屏蔽15%的單模文本的標(biāo)記和50%的圖像-文本對(duì)的文本標(biāo)記。對(duì)于圖像,我們使用像BEIT中那樣的block-wise級(jí)別的掩膜策略來(lái)遮蔽40%的圖像補(bǔ)丁。我們只使用一個(gè)預(yù)訓(xùn)練的模型,來(lái)與之前的工作進(jìn)行更明顯的訓(xùn)練效果對(duì)比。相比之下,以往的視覺(jué)-語(yǔ)言多模態(tài)模型通常采用多種預(yù)訓(xùn)練任務(wù),如圖像-文本對(duì)比,圖文匹配,我們證明了一個(gè)更小的預(yù)訓(xùn)練模型,更小的batch size也可以用于自監(jiān)督的圖像恢復(fù)的訓(xùn)練任務(wù)。
基于對(duì)比學(xué)習(xí)的方法通常需要非常大的批規(guī)模進(jìn)行預(yù)訓(xùn)練,這帶來(lái)了更多的工程挑戰(zhàn),比如燒卡!燒GPU!
其實(shí)這里我想說(shuō)的是CLIP,其實(shí)CLIP的效果確實(shí)非常炸裂,而且zero-short的特點(diǎn)也具有足夠的賣(mài)點(diǎn)。但是確實(shí)強(qiáng)大的預(yù)訓(xùn)練模型就是CLIP狂妄的資本,如果脫離了預(yù)訓(xùn)練與數(shù)據(jù)的支撐,CLIP的思路是無(wú)法有效work的,從CLIP在MNIST數(shù)字識(shí)別的數(shù)據(jù)集上的效果我們大概也知道這種情況了。強(qiáng)大的預(yù)訓(xùn)練與數(shù)據(jù)集其實(shí)終究是飲鳩止渴,在強(qiáng)大的模型架構(gòu)才是發(fā)展的第一順位!
大模型,大爆炸
BEIT-3骨干網(wǎng)是繼ViT-giant之后建立的一個(gè)巨型基礎(chǔ)模型。所示,該模型由一個(gè)40層的Multiway Transformer組成,其中隱藏尺寸為1408,中間尺寸為6144,注意力頭為16。每一層都包含視覺(jué)支路和語(yǔ)言支路。視覺(jué)-語(yǔ)言支路也被在前三個(gè)Multiway Transformer層。自注意機(jī)制模塊也在不同的模態(tài)中參與共享。
BEIT-3共包含1.9Billion參數(shù),其中視覺(jué)專(zhuān)家參數(shù)692M,語(yǔ)言專(zhuān)家參數(shù)692M,視覺(jué)語(yǔ)言專(zhuān)家參數(shù)52M,共享自注意模塊參數(shù)317M。
當(dāng)和ViT-giant使用形同的圖像尺度時(shí)會(huì)有1B的參數(shù)量被激活。
BEIT-3下表所示的單模態(tài)和多模態(tài)數(shù)據(jù)進(jìn)行了訓(xùn)練。對(duì)于多模態(tài)數(shù)據(jù),大約有15M幅圖像和21M幅文本對(duì),收集自五個(gè)公共數(shù)據(jù)集:Conceptual 12M (CC12M), Conceptual Captions (CC3M) , SBU Captions (SBU) , COCO和Visual Genome (VG) 。
模型參數(shù)+訓(xùn)練數(shù)據(jù)參數(shù)對(duì)于圖像和文本的單模態(tài)數(shù)據(jù),我們使用來(lái)自ImageNet-21K的14M圖像和Wikipedia、BookCorpus 、OpenWebText3、CC-News和Stories的160GB英文文本語(yǔ)料庫(kù)。我們預(yù)訓(xùn)練BEIT-3為1M步。每個(gè)batch共包含6144個(gè)樣本,其中圖像2048張,文本2048張,圖文對(duì)2048對(duì)。我們的模型訓(xùn)練的時(shí)候batch要比對(duì)比學(xué)習(xí)的模型小很多。
文章的總結(jié)
在本文中,提出了BEIT-3,一個(gè)通用的多模態(tài)基礎(chǔ)模型,它在廣泛的視覺(jué)和視覺(jué)語(yǔ)言基準(zhǔn)上實(shí)現(xiàn)了最先進(jìn)的性能。
BEIT-3的核心思想是將圖像也理解為一種外語(yǔ),這樣我們就可以對(duì)圖像、文本以及圖像-文本對(duì)進(jìn)行統(tǒng)一的mask-data的“語(yǔ)言”建模。
還展示了Multiway transformer可以有效地為幫助不同的視覺(jué)和視覺(jué)-語(yǔ)言任務(wù)進(jìn)行模型的學(xué)習(xí)。
相比于其他的多模態(tài)的工作,BEIT-3要顯得簡(jiǎn)單有效,是擴(kuò)大多模態(tài)基礎(chǔ)模型的一個(gè)有前途的方向。
在未來(lái)的工作中,BEIT團(tuán)隊(duì)正在對(duì)BEIT-3進(jìn)行多語(yǔ)言的預(yù)訓(xùn)練模型的構(gòu)建工作,并在BEIT-3中加入更多的模態(tài)信息(如音頻),以促進(jìn)大一統(tǒng)的任務(wù)更夠更加的統(tǒng)一。
我的總結(jié)
其實(shí)沒(méi)有讀這篇文章之前,我只是覺(jué)得我戲謔的配方竟然真的成為了一個(gè)推動(dòng)大一統(tǒng)工作的一個(gè)方向,這其實(shí)讓我對(duì)這篇工作的期待度并沒(méi)有很高。但是仔細(xì)閱讀之后,其實(shí)我覺(jué)得BEIT-3給了我很多的思考。原來(lái)結(jié)構(gòu)真的可以不必如此復(fù)雜,利用數(shù)據(jù)量+自監(jiān)督+大參數(shù)量模型是真的可以做到一個(gè)很棒的效果。其實(shí)在VIT-MLP出來(lái)的時(shí)候,我覺(jué)得數(shù)據(jù)才是王道,在CLIP出來(lái)的時(shí)候我覺(jué)得預(yù)訓(xùn)練模型才是王道,在Swin-T和ConvNext出來(lái)之后我一直都覺(jué)得其實(shí)架構(gòu)才是王道,到MAE出來(lái)的時(shí)候,我覺(jué)得訓(xùn)練方式才是王道。其實(shí)我一直都沒(méi)有很能get到能夠影響CV模型精度的到底是什么。好在,看了文章之后我起碼知道了CLIP是錯(cuò)的。這也算是沒(méi)有白看這篇論文~
回到我剛開(kāi)始埋下來(lái)的坑中,那到底啥才是核彈炸不到的地方呢?其實(shí)答案很簡(jiǎn)單,我們回到數(shù)據(jù)本身,其實(shí)如果這個(gè)模態(tài)之間沒(méi)有必然的聯(lián)系和規(guī)律,自然這種方法就無(wú)法有效的捕捉模態(tài)之間的特征,退化為單一模態(tài)的樣式了。我再舉個(gè)例子,如果兩個(gè)模態(tài)的信息不是一一對(duì)齊,而是相互互補(bǔ)的呢?這種多路的注意力同就肯定無(wú)法合理化的進(jìn)行特征相互的補(bǔ)充了。
我覺(jué)得我們對(duì)于大模型的探索會(huì)一直繼續(xù),一直未完待續(xù)的!所以寫(xiě)這篇知乎的時(shí)候我人還在吃Pizza,我的錢(qián)包也因?yàn)?strong>假期的揮霍所剩無(wú)幾了,所以其實(shí)吃完P(guān)izza的我要繼續(xù)的寫(xiě)文章了,真的是不知道啥時(shí)候才能休息一會(huì)兒啊!
點(diǎn)個(gè)在看 paper不斷!
總結(jié)
以上是生活随笔為你收集整理的AI模型的大一统!浅析微软的BEIT3:多模态领域乱杀的十二边形战士的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么我们要写单元测试用例?
- 下一篇: 智联+影音,AITO问界M7想干翻的不止