阿里達摩院最新多模態大模型介紹,多項圖文任務取得SOTA效果
這篇文章給大家介紹一下阿里發表的多模態大模型工作mPLUG-Owl,共2篇文章,建立在前序圖像表征對齊預訓練大語言模型的思路,提出了不同的參數訓練方式、多模態解耦映射等優化方法,在多項任務取得了SOTA效果。
相關論文:
mPLUG-Owl Language Models with Multimodality
mPLUG-Owl2: Revolutionizing Multi-modal Large Language Model with Modality Collaboration
1.核心思路
多模態大模型希望構建一個能同時處理文本、圖像等不同模態信息的數據,解決復雜的圖文推理等多模態任務。在NLP中的大語言模型逐漸興起后,多模態模型的一個主要構建思路為:以預訓練的大語言模型LLM為基座,通過ViT等Vision Encoder將圖像映射成表征,和文本token embedding拼接到一起輸入大模型,結合預訓練、Instruction Tuning等方法進行訓練。
這種多模態大模型的建模方法,經過2年的研究,逐漸完善起來。阿里的mPLUG-Owl工作,就建立在這個思路基礎之上。
2.基礎模型結構
第一版本的mPLUG-Owl核心結構如下圖,主要包括一個預訓練的LLM、一個圖像編碼器、一個視覺抽象器3個部分。
其中的核心是,如何將圖像信息進行比較好的處理,和LLM的表征空間對齊。對于圖像信息,對圖像分patch后,采用預訓練ViT進行處理,生成每個patch的embedding。由于圖像中包含背景等噪聲信息,且維度較高,直接將原始圖像信息輸入語言模型難以學習且復雜度高。因此,文中引入了Visual Abstractor模塊,對基礎的圖像特征進行抽象。
Visual Abstractor由cross attention構成,使用一些可學習的token embedding和原始圖像的patch embedding進行cross attention計算,token的數量遠小于patch的數量,選擇性的將patch embedding的重要信息匯聚到可學習token上。
Visual Abstractor輸出多個視覺token embedding,和文本的token embedding拼接到一起,輸入到預訓練的LLM中。
3.訓練方式
視覺特征對齊語言模型的多模態大模型,一般采用兩個階段進行訓練。在第一個階段,使用基礎的圖文數據構建生成式任務,第二階段利用Instruction Tuning的方式讓模型進一步提升復雜多模態理解能力。
在之前的很多工作中,都采用這種兩階段的訓練,但是更新的參數不同。比如MiniGPT4只更新圖像表征到LLM輸入的MLP映射網絡,其他方法也對Visual Encoder進行了凍結。為了提升多模態的聯合學習能力,本文在預訓練階段,打開Visual Encoder的參數更新,強化模型的多模態訓練過程。在第二階段,凍結Visual Encoder參數,finetune語言模型參數。
4.V2版本優化
在近期阿里發布的mPLUG-Owl2工作中,主要對多模態的對齊進行了優化。
這里的核心優化點是對語言模型的self-attention機制進行了優化,對于兩個模態的表征,分別使用獨立layer normalization縮放到相同scale后,使用兩組不同的MLP網絡分別進行兩個模態表征到同空間的映射。
相比之前共享MLP的映射方法,這種獨立映射的方法保留了兩個模態個性化的信息,又能映射到相同空間。在attention后再分別接各自模態的layer normalization生成最終預測結果。
在知識星球中,也為大家整理了這種視覺對齊LLM的多模態大模型歷史工作,感興趣的同學可以加入學習。
5.實驗效果
文中對比了mPLUG-Owl在各項任務上和MiniGPT、BLIP、LLaVA等多模態大模型的效果,均取得了SOTA效果,驗證了mPLUG-Owl的多模態理解能力。
