天天看點

AI模型的大一統!淺析微軟的BEIT3:多模态領域亂殺的十二邊形戰士

作者丨戰鬥系牧師

編輯丨極市平台

導讀

微軟最新更新的 BEiT-3 預訓練模型,用一個模型搞定多領域SOTA。

AI模型的大一統!淺析微軟的BEIT3:多模态領域亂殺的十二邊形戰士

無敵的十二寸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架構。這種方案其實不利于大一統的思路發展,是以我們需要有一個整體化的架構範式,幫助我們完成大一統的理想。

AI模型的大一統!淺析微軟的BEIT3:多模态領域亂殺的十二邊形戰士

其實不同的任務能不能內建在一個架構,其實有幾種的思考模式,比如第一種,弱聯系架構。多分支獨立進行特征提取工作,最後隻借助loss函數回歸彼此的資訊,完成資訊互動。但是這樣的操作其實無法做到充分的資訊共享,而且參數沒有辦法有效地跨模态共享,是以一個大一統多模态架構需要滿足資訊共享、資訊互動的兩個特點。考慮到Transformer整體架構的特性,這項工作中使用Multiway transformer作為骨幹模型來編碼不同的模态。上圖所示,每個Multiway Transformer子產品由一個共享的自注意子產品和一組用于不同模态的前饋網絡(即單一模态專家)組成。我們根據每個輸入類型,将其轉化為token的形式輸入到給各個模态的支路當中。 在我們的實作中,每一層都包含一個視覺支路和一個語言支路。

此外,在前三層還有為融合多模态資料而設計的視覺-語言融合支路。以獲得更詳細的全局特征資訊。通過共享自注意子產品學習到的不同特征,并對不同模态之間特征一一對齊,使得多模态(如視覺-語言)任務資訊融合得更加緊密。與各自為營的內建化的多模态模型相比,大一統體系結構的BEIT-3能夠支援更廣泛的下遊任務。例如,BEIT-3可以用作各種視覺任務的圖像主幹,包括圖像分類、目标檢測、執行個體分割和語義分割。它還可以通過微調,轉化為一個有效的圖像-文字檢索雙編碼器,以及多模态的推理任務和視訊了解任務。

AI模型的大一統!淺析微軟的BEIT3:多模态領域亂殺的十二邊形戰士

一個模型可以同時滿足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) 。

AI模型的大一統!淺析微軟的BEIT3:多模态領域亂殺的十二邊形戰士

模型參數+訓練資料參數

對于圖像和文本的單模态資料,我們使用來自ImageNet-21K的14M圖像和Wikipedia、BookCorpus 、OpenWebText3、CC-News和Stories的160GB英文文本語料庫。我們預訓練BEIT-3為1M步。每個batch共包含6144個樣本,其中圖像2048張,文本2048張,圖文對2048對。我們的模型訓練的時候batch要比對比學習的模型小很多。

文章的總結

  1. 在本文中,提出了BEIT-3,一個通用的多模态基礎模型,它在廣泛的視覺和視覺語言基準上實作了最先進的性能。
  2. BEIT-3的核心思想是将圖像也了解為一種外語,這樣我們就可以對圖像、文本以及圖像-文本對進行統一的mask-data的“語言”模組化。
  3. 還展示了Multiway transformer可以有效地為幫助不同的視覺和視覺-語言任務進行模型的學習。
  4. 相比于其他的多模态的工作,BEIT-3要顯得簡單有效,是擴大多模态基礎模型的一個有前途的方向。

在未來的工作中,BEIT團隊正在對BEIT-3進行多語言的預訓練模型的建構工作,并在BEIT-3中加入更多的模态資訊(如音頻),以促進大一統的任務更夠更加的統一。

我的總結

其實沒有讀這篇文章之前,我隻是覺得我戲谑的配方竟然真的成為了一個推動大一統工作的一個方向,這其實讓我對這篇工作的期待度并沒有很高。但是仔細閱讀之後,其實我覺得BEIT-3給了我很多的思考。原來結構真的可以不必如此複雜,利用資料量+自監督+大參數量模型是真的可以做到一個很棒的效果。其實在VIT-MLP出來的時候,我覺得資料才是王道,在CLIP出來的時候我覺得預訓練模型才是王道,在Swin-T和ConvNext出來之後我一直都覺得其實架構才是王道,到MAE出來的時候,我覺得訓練方式才是王道。其實我一直都沒有很能get到能夠影響CV模型精度的到底是什麼。好在,看了文章之後我起碼知道了CLIP是錯的。這也算是沒有白看這篇論文~

回到我剛開始埋下來的坑中,那到底啥才是核彈炸不到的地方呢?其實答案很簡單,我們回到資料本身,其實如果這個模态之間沒有必然的聯系和規律,自然這種方法就無法有效的捕捉模态之間的特征,退化為單一模态的樣式了。我再舉個例子,如果兩個模态的資訊不是一一對齊,而是互相互補的呢?這種多路的注意力同就肯定無法合理化的進行特征互相的補充了。

我覺得我們對于大模型的探索會一直繼續,一直未完待續的!是以寫這篇知乎的時候我人還在吃Pizza,我的錢包也因為假期的揮霍所剩無幾了,是以其實吃完Pizza的我要繼續的寫文章了,真的是不知道啥時候才能休息一會兒啊!

AI模型的大一統!淺析微軟的BEIT3:多模态領域亂殺的十二邊形戰士