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