0微調搞定160個測試集!最強多模態分割一切大模型來了,架構參數全開源

2023-12-10 31 12/10

大模型感知能力upup


多模態大模型
來做語義分割,效果有多好?

一張圖+文字輸入想分割的物體,大模型幾秒鐘就能識別並搞定!

只需輸入想分割的對象如“擎天柱”,單個目標立刻就能被精準識別、快速切割:

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源


個物體也是手到擒來,像是指定天空、水、樹、草、女孩、龍貓(Chinchilla),同樣能火速分割:

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

表情包也沒問題:

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

這是來自廈門大學等機構的最新多模態基礎感知大模型,一上來就在
160個測試集
上達成了SOTA或持平近似的結果,沒有針對任何下游任務進行微調。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

目前,模型架構和參數已經全部開源,一起來看看這是怎麼實現的。

多模態大模型APE長啥樣?

此前,視覺基礎模型(Vision Foundation Models)方向一直在探索建立一個通用的視覺感知系統。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

已有的方法可以
分爲三類
,但都有一些不足之處:

第一類
採用自監督的訓練方式,例如DINO和CLIP等,這類方法在做下游感知類任務的時候需要再訓練單獨的Head或者Adapter;

第二類
方法是開集檢測,對齊圖像的局部區域和文本表達,例如GLIP、UNINEXT和GroundingDINO等,但這類方法在每次推理時只能檢測非常有限數量的類別(例如lvis的1023類單詞要拆分成30多次推理)或者單個句子,檢測類別或者句子長度的提升會給計算量和性能帶來巨大的挑戰;

第三類
方法是開集語義分割,例如SAM、Xdecoder和SEEM等,但這類方法在加上語義信息時面臨着前景可數物體和背景不可數物體的粒度差異問題,導致性能下降,這類方法往往需要設計特定的網絡結構或者訓練策略來緩解前背景衝突。

針對以上問題,來自廈門大學等機構的研究人員提出了一種新的模型,名叫

(同時對齊和提示所有事物以實現通用視覺感知)。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

APE的框架如下所示:

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

它有以下6點值得關注的設計:

1、獨立提示

給定多個目標類別,例如Girl和Sky等,以往的方法通常直接聯結這些類別名組成一個單獨的Prompt:“Girl. Sky. …”,這種構造方式是期望可以建模不同類別名之間的相互關係。

但論文發現,這種類別名之間的相互關係不是必須的,每種類別名獨立建模就可以學習不同的實例。

爲此,論文對每種類別名或者描述的短語都進行獨立建模:[“Girl”, “Sky”, “Little child with hat on branch”, “The big chinchilla”, . . . ],並獲得其獨立的prompt embedding。

2、句子級嵌入

爲了減少計算複雜度和內存消耗,論文進一步將Word-Level Embeddings壓縮成Sentence-Level Embeddings,也就是將一句話中所有Word Embeddings求平均。

實驗中發現,這種Sentence-Level Embeddings足夠表達語義信息。

3、門控跨模態交互作用

GLIP等方法直接融合文本和視覺特徵,在類別名很多的情況下融合的代價逐步提升。

論文則針對不同的Prompt類型來進行特徵融合,對於純類別名(Vocabulary Prompt)的文本特徵,採用一種“zero”文本token來作爲它們的替代。

過往經驗表明,直接將Vocabulary Prompt和視覺特徵融合容易導致過擬合現象,使得在新類別上的表現欠佳。

語言描述(Sentence Prompt)的文本特徵則被融合到視覺特徵中以實現語義級的理解。

4、區域-句子對齊

論文直接通過矩陣乘法計算Object Embeddings和Prompt Embeddings之間的相似度,從而實現一次性檢測&分割萬物。

值得注意的是論文維持了一個Embedding Bank用於構建負樣本。

5、物-物-平衡對齊

分割任務的前景和背景的粒度是不同的,比如背景天空即使由好幾塊組成,但仍然被認爲是同一個標籤,而前景比如人則是單獨的標籤。

這種粒度差異會給模型訓練帶來挑戰,爲此論文提出統一前景和背景的粒度,對於不同塊的背景論文將其視爲獨立的標籤,如上圖中的“天空”。

這使得模型可以採用統一的架構訓練前景和背景數據,也可以方便地融入SA-1B這類大規模的Class-Agnostic數據。

6、數據配比

論文使用了10中常見的開源數據集進行訓練,包括:

通用檢測分割數據(COCO、Objects365),長尾檢測分割數據(LVIS),聯邦標註的數據(OpenImages),指向性檢測分割數據(VG、RefCOCO/+/g、GQA、Phrascut、Flickr30k),不帶語義的分割數據(SA-1B)。

論文提出一系列原則精心設計數據配比和損失權重。

160個測試集SOTA或近似打平

作者們進行了大規模的實驗,以驗證論文方法的有效性。

他們一共訓練了四組大模型:

  • APE (A):基礎版,基於DETA構建,並只在通常的檢測和分割數據集上訓練,包括COCO, LVIS, Objects365, OpenImages, and Visual Genome。
  • APE (B):APE (A)的基礎上加入Visual Genome和COCO的指向性檢測和分割數據進行訓練。
  • APE (C):進一步加入大規模SA-1B數據集進行訓練。
  • APE (D):除了上面的數據,進一步加入GQA, PhraseCut, Flickr30k數據集,並且修改了部分訓練策略。

其中,APE-ABCD分別對應不同的訓練數據。

實驗表明,這種方法在
160種測試集
上普遍取得了當前SOTA或具有競爭性的結果。

值得注意的是,論文只採用了一個模型架構和一套參數,
沒有針對下游任務進行微調

性能對比總覽

整體上看,APE方法在各個
檢測

分割

指向性檢測
數據集上都比之前的方法好,特別是在D3數據集上。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

開集檢測

在檢測上,論文主要比較了LVIS、OpenImages,Objects365和COCO這四個常見數據集。

APE的效果優勢非常明顯。

此前不少方法都在Objects365上預訓練過,例如GLIP、OWL和UNINEXT,但是它們在這些訓練過的數據集上效果也並不是很好。

另外,實驗還比較了RoboFlow100和ODinW評測基準。RoboFlow100和ODinW分別由100和35個獨立的小數據集組成,專門用於開集評測,APE在這兩個數據集上取得了新SOTA。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

開集分割

在開集分割評測基準上,當類別數量較多時候,例如PC-459、ADE20K和SegInW分別有459、150和85個類,APE的效果比其他方法好不少。

其中,SegInW由25個差異很大的小數據集組成,專門用於開集分割評測。而在類別數量較少的數據集上,APE的效果相對差些。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

視覺定位

在視覺定位D3評測基準上,APE取得的效果提升最明顯。特別在inter-scenario的設定下,大部分方法的指標都低於6,而APE可以取得21.0。

因爲在inter-scenario設定下,每張圖都要用422個句子去查詢,之前模型總是會每句話預測一個物體,因此效果不理想,而APE會拒絕不相關的查詢。

在intra-scenario設定下,APE在各項指標上也取得了15+個點的提升。

0微调搞定160个测试集!最强多模态分割一切大模型来了,架构参数全开源

參考鏈接:

[1]論文:https://arxiv.org/pdf/2312.02153.pdf

[2]開源項目:https://github.com/shenyunhang/APE

[3]演示:https://huggingface.co/spaces/shenyunhang/APE_demo