首創pix2emb范式!NUS清華聯合發布NExT-Chat:對話/檢測/分割全能多模態大模型
隨著ChatGPT的爆紅,多模態領域也涌現出一大批可以處理多種模態輸入的對話模型,如LLaVA, BLIP-2等等。
為了進一步擴展多模態大模型的區域理解能力,近期新加坡國立大學NExT++實驗室和清華大學的研究人員聯手打造了一個可以同時進行對話和檢測、分割的多模態模型NExT-Chat。
作者:張傲,姚遠,吉煒,劉知遠,Chua Tat-Seng
多模態對話模型Demo:https://next-chatv.github.io/
論文:https://arxiv.org/pdf/2311.04498.pdf
代碼:https://github.com/NExT-ChatV/NExT-Chat
文章探索了如何在多模態模型中引入位置輸入和輸出的能力。
其中,位置輸入能力指的是根據指定的區域回答問題,比如圖1中的左圖。
而位置輸出能力指的是定位對話中提及的物體,如圖1右圖的小熊定位。
圖1:位置輸入和輸出示例
現有的方法主要通過pix2seq的方式進行LLM相關的位置建模。
比如Kosmos-2將圖像劃分成32x32的區塊,用每個區塊的id來代表點的坐標。Shikra將物體框的坐標轉化為純文本的形式從而使得LLM可以理解坐標。
但使用pix2seq方法的模型輸出主要局限在框和點這樣的簡單格式,而很難泛化到其他更密集的位置表示格式,比如segmentation mask。
為了解決這個問題,本文提出了一種全新的基于embedding的位置建模方式pix2emb。
pix2emb
不同于pix2seq,所有的位置信息都通過對應的encoder和decoder進行編碼和解碼,而不是借助LLM本身的文字預測頭。
圖2:pix2emb方法簡單示例
如圖2所示,位置輸入被對應的encoder編碼為位置embedding,而輸出的位置embedding則通過Box Decoder和Mask Decoder轉化為框和掩模。
這樣做帶來了兩個好處:
1. 模型的輸出格式可以非常方便地擴展到更多復雜形式,比如segmentation mask
2. 模型可以非常容易的定位任務中已有的實踐方式,比如本文的detection loss采用L1 Loss和GIoU Loss (pix2seq則只能使用文本生成loss),本文的mask decoder借助了已有的SAM來做初始化。
NExT-Chat模型
通過借助pix2emb方法,作者訓練了一個全新的NExT-Chat模型。
圖3:NExT-Chat模型架構
NExT-Chat整體采用了LLaVA架構,即通過Image Encoder來編碼圖像信息并輸入LLM進行理解,并在此基礎上添加了對應的Box Encoder和兩種位置輸出的Decoder。
然而,在正常情況下,LLM并不知道何時該使用語言的LM head還是位置解碼器。
為了解決這一問題,NExT-Chat額外引入一個全新的token類型<trigger>來標識位置信息。
如果模型輸出了<trigger>,則<trigger>的embedding會被送入對應的位置解碼器進行解碼而不是語言解碼器。
此外,為了維持輸入階段和輸出階段,位置信息的一致性。NExT-Chat額外引入了一個對齊約束:
圖4:位置輸入、輸出約束
如圖4所示,box和位置embedding會被分別通過解碼器、編碼器或解碼器編碼器組合,并要求前后不發生變化。
作者發現該方法可以極大程度促進位置輸入能力的收斂。
NExT-Chat訓練
模型訓練主要包括3個階段:
第一階段:
該階段目的在于訓練模型基本的框輸入輸出基本能力。NExT-Chat采用Flickr-30K,RefCOCO,VisualGenome等包含框輸入輸出的數據集進行預訓練。訓練過程中,LLM參數會被全部訓練。
第二階段:
該階段目的在于調整LLM的指令遵循能力。通過一些Shikra-RD,LLaVA-instruct之類的指令微調數據使得模型可以更好的響應人類的要求,輸出更人性化的結果。
第三階段:
該階段目的在于賦予NExT-Chat模型分割能力。通過以上兩階段訓練,模型已經有了很好的位置建模能力。作者進一步將這種能力擴展到mask輸出上。實驗發現,通過使用極少量的mask標注數據和訓練時間(大約3小時),NExT-Chat可以快速的擁有良好的分割能力。
這樣的訓練流程的好處在于:檢測框數據豐富且訓練開銷更小。
NExT-Chat通過在充沛的檢測框數據訓練基本的位置建模能力,之后可以快速的擴展到難度更大且標注更稀缺的分割任務上。
實驗結果
在實驗部分,NExT-Chat展示了多個任務數據集上的數值結果和多個任務場景下的對話示例。
RES任務
表1:RES任務上NExT-Chat結果
作者首先展示了NExT-Chat在RES任務上的實驗結果。
雖然僅僅用了極少量的分割數據,NExT-Chat卻展現出了良好的指代分割能力,甚至打敗了一系列有監督模型(如MCN,VLT等)和用了5倍以上分割掩模標注的LISA方法。
REC任務
表2:REC任務上NExT-Chat結果
作者然后展示了NExT-Chat在REC任務上的實驗結果。
如表2所示,相比于相當一系列的有監督方法(如UNITER),NExT-Chat都可以取得更優的效果。
一個有意思的發現是NExT-Chat比使用了類似框訓練數據的Shikra效果要稍差一些。
作者猜測是由于pix2emb方法中LM loss和detection loss更難以平衡,以及Shikra更貼近現有的純文本大模型的預訓練形式。
圖像幻覺任務
表3:POPE數據集上NExT-Chat結果
如表3所示,NExT-Chat可以在Random和Popular數據集上取得最優的準確率。
表4:RefCOCOg數據集上NExT-Chat結果
在區域描述任務上,NExT-Chat可以取得最優的CIDEr表現,且在該指標打敗了4-shot情況下的Kosmos-2。
Demo展示
在文中,作者展示了多個相關demo:
圖5:定位小熊
圖6:復雜定位
圖7:描述圖片
圖8:區域描述
圖9:推理
總結
本文探索了一種不同于pix2seq形式的位置建模方式pixemb。
通過pix2emb方法,作者構建了NExT-Chat多模態大模型。
NExT-Chat大模型可以在對話過程中完成相關物體的檢測、分割并對指定區域進行描述。
通過充足的實驗評測,作者展示了NExT-Chat在多種場景下的優秀數值表現和展示效果。