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