MiniGPT-4升級到MiniGPT-v2了,不用GPT-4照樣完成多模態任務
幾個月前,來自 KAUST(沙特阿卜杜拉國王科技大學)的幾位研究者提出了一個名為 MiniGPT-4 的項目,它能提供類似 GPT-4 的圖像理解與對話能力。
例如 MiniGPT-4 能夠回答下圖中出現的景象:「圖片描述的是生長在冰凍湖上的一株仙人掌。仙人掌周圍有巨大的冰晶,遠處還有白雪皚皚的山峰……」假如你接著詢問這種景象能夠發生在現實世界中嗎?MiniGPT-4 給出的回答是這張圖片在現實世界中并不常見,并給出了原因。
短短幾個月過去了,近日,KAUST 團隊以及來自 Meta 的研究者宣布,他們將 MiniGPT-4 重磅升級到了 MiniGPT-v2 版本。
論文地址:https://arxiv.org/pdf/2310.09478.pdf
論文主頁:https://minigpt-v2.github.io/
Demo: https://minigpt-v2.github.io/
具體而言,MiniGPT-v2 可以作為一個統一的接口來更好地處理各種視覺 - 語言任務。同時,本文建議在訓練模型時對不同的任務使用唯一的識別符號,這些識別符號有利于模型輕松的區分每個任務指令,并提高每個任務模型的學習效率。
為了評估 MiniGPT-v2 模型的性能,研究者對不同的視覺 - 語言任務進行了廣泛的實驗。結果表明,與之前的視覺 - 語言通用模型(例如 MiniGPT-4、InstructBLIP、 LLaVA 和 Shikra)相比,MiniGPT-v2 在各種基準上實現了 SOTA 或相當的性能。例如 MiniGPT-v2 在 VSR 基準上比 MiniGPT-4 高出 21.3%,比 InstructBLIP 高出 11.3%,比 LLaVA 高出 11.7%。
下面我們通過具體的示例來說明 MiniGPT-v2 識別符號的作用。
例如,通過加 [grounding] 識別符號,模型可以很容易生成一個帶有空間位置感知的圖片描述:
通過添加 [detection] 識別符號,模型可以直接提取輸入文本里面的物體并且找到它們在圖片中的空間位置:
框出圖中的一個物體,通過加 [identify] ,可以讓模型直接識別出來物體的名字:
通過加 [refer] 和一個物體的描述,模型可以直接幫你找到物體對應的空間位置:
你也可以不加任何任務識別符合,和圖片進行對話:
模型的空間感知也變得更強,可以直接問模型誰出現在圖片的左面,中間和右面:
方法介紹
MiniGPT-v2 模型架構如下圖所示,它由三個部分組成:視覺主干、線性投影層和大型語言模型。
視覺主干:MiniGPT-v2 采用 EVA 作為主干模型,并且在訓練期間會凍結視覺主干。訓練模型的圖像分辨率為 448x448 ,并插入位置編碼來擴展更高的圖像分辨率。
線性投影層:本文旨在將所有的視覺 token 從凍結的視覺主干投影到語言模型空間中。然而,對于更高分辨率的圖像(例如 448x448),投影所有的圖像 token 會導致非常長的序列輸入(例如 1024 個 token),顯著降低了訓練和推理效率。因此,本文簡單地將嵌入空間中相鄰的 4 個視覺 token 連接起來,并將它們一起投影到大型語言模型的同一特征空間中的單個嵌入中,從而將視覺輸入 token 的數量減少了 4 倍。
大型語言模型:MiniGPT-v2 采用開源的 LLaMA2-chat (7B) 作為語言模型主干。在該研究中,語言模型被視為各種視覺語言輸入的統一接口。本文直接借助 LLaMA-2 語言 token 來執行各種視覺語言任務。對于需要生成空間位置的視覺基礎任務,本文直接要求語言模型生成邊界框的文本表示以表示其空間位置。
多任務指令訓練
本文使用任務識別符號指令來訓練模型,分為三個階段。各階段訓練使用的數據集如表 2 所示。
階段 1:預訓練。本文對弱標記數據集給出了高采樣率,以獲得更多樣化的知識。
階段 2:多任務訓練。為了提高 MiniGPT-v2 在每個任務上的性能,現階段只專注于使用細粒度數據集來訓練模型。研究者從 stage-1 中排除 GRIT-20M 和 LAION 等弱監督數據集,并根據每個任務的頻率更新數據采樣比。該策略使本文模型能夠優先考慮高質量對齊的圖像文本數據,從而在各種任務中獲得卓越的性能。
階段 3:多模態指令調優。隨后,本文專注于使用更多多模態指令數據集來微調模型,并增強其作為聊天機器人的對話能力。
最后,官方也提供了 Demo 供讀者測試,例如,下圖中左邊我們上傳一張照片,然后選擇 [Detection] ,接著輸入「red balloon」,模型就能識別出圖中紅色的氣球:
感興趣的讀者,可以查看論文主頁了解更多內容。