ChatRex: Taming Multimodal LLM for Joint Perception and Understanding 論文理解和翻譯

一、TL;DR

  1. MLLM在感知方面存在不足(遠遠比不上專家模型),比如Qwen2-VL在coco上recall只有43.9%
  2. 提出了ChatRex,旨在從模型設計和數據開發兩個角度來填補這一感知能力的缺口
  3. ChatRex通過proposal邊界框輸入到LLM中將其轉化為retrieval任務
  4. 構建了一個data-engine,提出了Rexverse-2M數據集,支持了感知和理解的聯合訓練。

二、簡要介紹

為什么要開發本文方法?

  1. MLLM缺乏細粒度的感知能力,特別是在目標檢測方面。Qwen2-VL-7B在IoU閾值為0.5時僅達到了43.9%的recall

為什么出現這種情況?

MLLMs中感知和理解之間的性能差距主要源于兩個因素:

  1. 感知和理解這兩個任務之間的建模沖突
  2. 缺乏能夠平衡感知和理解的數據。

對于目標檢測,一種常見的做法是將邊界框坐標量化為LLM詞匯表中的token,以適應自回歸框架。盡管這通過next token預測確保了與理解任務的兼容性,但我們認為這種方法與準確建模感知存在沖突,原因有三:

  1. 錯誤傳播:表示一個邊界框通常需要9個token,包括數字、方括號和逗號,其中任何一個標記的錯誤都可能導致級聯錯誤,在多目標檢測中情況會變得更糟。在后續實驗中,我們發現這是召回率低的原因之一;
  2. 預測順序的模糊性:在目標感知中,物體之間沒有固有的順序,然而自回歸的特性卻強加了一個順序,LLM必須決定先預測哪個物體;
  3. 量化范圍限制:當圖像尺寸較大時,容易出現量化誤差。

ChatRex怎么解決?

對于像圖像描述和圖像問答這樣的多模態理解任務,我們保留了自回歸文本預測框架。對于感知,特別是目標檢測,將其轉變為一個基于檢索的任務。

具體來說,直接將邊界框作為輸入提供,每個邊界框通過將其RoI feature與其位置embedding相結合來表示為一個對象token。當LLM需要引用一個物體時,它輸出相關邊界框的索引。這種方法將每個邊界框表示為一個未量化的單一token,其順序由輸入的邊界框決定,有效地解決了之前的建模沖突。

使用這種方法有兩個關鍵挑戰:

  1. 需要高分辨率的視覺輸入:雙視覺編碼器設計,增加了一個額外的視覺編碼器,為感知提供高分辨率的視覺信息
  2. 一個強大的目標proposal模型:引入了一個通用提議網絡(UPN),它在預訓練的開放集目標檢測模型上利用基于粒度的提示學習。這使得能夠生成覆蓋多樣化粒度、類別和領域的proposal,從而為LLM提供強大的邊界框輸入。

從數據角度來看:

  1. 當前的MLLMs也受到缺乏能夠有效平衡感知和理解的數據的限制。
  2. 開發了一個完全自動化的數據引擎,構建了Rexverse-2M數據集,該數據集包含不同粒度級別的圖像-區域-文本注釋三元組。
  3. 數據引擎由三個主要模塊組成。第一個模塊為輸入圖像生成圖像描述,第二個模塊使用一個基礎模型對引用的對象或短語進行對齊,第三個模塊在多個粒度級別上細化區域描述。

實驗結果表明,ChatRex在目標檢測任務中表現出色,包括COCO、LVIS和RefCOCO/+/g,同時在多模態基準測試中也展現出具有競爭力的性能。如圖1所示。

三個主要貢獻:

  • 揭示了MLLMs在感知方面的性能差距,并引入了解耦的模型ChatRex和通用提議網絡(UPN),以解決感知和理解之間的建模沖突

  • 開發了一個自動化數據引擎,創建了Rexverse-2M,這是一個全面支持感知和理解任務的數據集,用于模型訓練。

  • 實驗結果表明,ChatRex展現出強大的感知和多模態理解能力,強調了這兩種互補能力對于MLLM來說都是必不可少的。

三、模型結構

ChatRex 采用了一種將感知與理解解耦的設計(注意后面的訓練策略)。

  1. 對于感知部分,我們訓練了一個通用proposal網絡來檢測任意物體,并為 LLM 提供邊界框輸入。
  2. 對于理解部分,我們采用了標準的 LLaVA ?結構,并引入雙視覺編碼器以實現高分辨率圖像編碼。

3.1 通用提議網絡(UPN)

要求proposal模型具備兩個關鍵特性:

  1. 強大的泛化能力,能夠在任何場景中為任意物體生成提議框;
  2. proposal框應全面,涵蓋實例級和部件級的物體。

我們采用了雙粒度提示調整策略(直接采用多數據集合并不行,由于其標注規則不一樣):

具體來說,我們以 T-Rex2 作為基礎模型。該模型輸出目標查詢 Qdec,這些查詢通過一個 MLP 來預測邊界框。這些邊界框的分類是通過查詢和提示嵌入 E 之間的點積來實現的:

其中,C 表示類別數量,N 表示檢測查詢的數量(默認為 900),D 是輸出查詢的通道維度。我們通過引入兩個額外的可學習提示 Pfine 和 Pcoarse,并將它們連接成 Pconcat 來將邊界框分類為細粒度或粗粒度類別:

在訓練過程中,我們使用 SA-1B 作為細粒度數據集,其他檢測數據集(如 COCO 和 O365)作為粗粒度輸入。這種雙粒度提示設計有效地解決了不同數據集之間的標注歧義問題,使提議模型能夠準確地捕捉和描述不同細節級別的物體。

3.2 多模態大語言模型架構

雙視覺編碼器:如圖 3 所示,我們使用 CLIP 中的 ViT 進行低分辨率圖像編碼,使用 LAION ?中的 ConvNeXt 進行高分辨率圖像編碼。

為了減少輸入到 LLM 的視覺標記數量,我們首先調整兩個視覺編碼器的輸入分辨率,確保它們在最后一個尺度上生成相同數量的標記。然后,我們將這兩個標記直接沿著通道維度連接起來,產生與低分辨率標記數量相同的標記。

目標編碼器:我們將通用提議網絡輸出的每個邊界框編碼為目標標記,并將它們輸入到 LLM 中。

假設從 UPN 輸入 K 個邊界框 {Bi}i=1K,令 FH 表示高分辨率編碼器產生的多尺度視覺特征,對于每個邊界框 Bi,我們使用多尺度 RoI Align ?提取其內容特征 Ci:

由于 RoI 特征不包含位置信息,而位置信息對于指代任務至關重要,我們通過正弦-余弦位置嵌入層對每個邊界框坐標進行編碼,并將其添加到 RoI 特征中:

LLM:使用兩個單獨的 MLP 投影器將視覺和目標token映射到文本空間。我們還在每個目標標記中添加一個索引標記,以告知 LLM 每個目標標記的索引,具體將在第 3.3 節中描述。

視覺token隨后與文本token連接起來,并輸入到 LLM 中進行下一個token預測任務。我們默認使用 Qwen2.5-7B 作為我們的 LLM。

3.3 任務定義

將利用 LLM 進行檢測的任務定義為對輸入邊界框的索引選擇過程。為此,我們首先通過引入專用token來擴展 LLM 的詞匯表,包括目標索引標記 <obj0>、<obj1>、...、<objN>(其中 N 表示輸入邊界框的最大數量,在本工作中設置為 100),基礎token<g>、結束token</g>、目標開始token<o> 和目標結束token</o>。

LLM 輸入格式:LLM 的輸入標記序列結構如下:

其中,<image> 表示視覺編碼器的視覺token,<roi> 表示與每個相應邊界框相關聯的目標特征。每個 <roi> token都以其相應的目標索引標記作為前綴。

解耦的任務定義:LLM 產生的檢測結果使用以下名詞短語和邊界框索引的組合來構建:

其中,<objm> 和 <objn> 指代特定的目標索引 token, token與名詞短語相關聯的檢測到的物體序列的起始(m)和結束(n)。這種結構化的格式使得名詞短語與其對應的邊界框索引之間能夠實現精確的映射。

憑借這種輸入輸出模式,ChatRex 能夠處理各種任務,例如檢測、基礎定位、區域理解以及基礎對話,除了生成純文本響應之外,如圖 3 所示。

4. 數據和訓練

本文目標是為了構建一個可以有效用于感知和理解任務的數據集,最終構建了一個包含兩百萬張標注圖像的 RexVerse-2M 數據集,其多粒度標注是通過一個完全自動化的數據引擎生成的。然后,我們采用 LLaVA 中的標準兩階段訓練方法,使模型在保留感知能力的同時逐步獲得多模態理解和對話技能。

4.1 RexVerse-2M 數據引擎

我們的目標是。為了實現這一目標,我們的數據管道專注于生成包含圖像描述、區域描述和邊界框的標注三元組。如圖 4 所示,數據引擎圍繞三個核心模塊構建:圖像描述、目標定位和區域描述

圖像收集:我們從 COYO700M 數據集中收集圖像,通過一系列過濾過程,包括移除分辨率小和帶有 NSFW 標簽的圖像。我們還訓練了一個圖像分類器,以過濾掉具有純白色背景的低內容網絡圖像。最后,我們選擇了兩百萬張圖像作為數據集圖像。

圖像描述:我們使用 InternVL2-8B 為每張圖像生成圖像描述。這些圖像描述將通過類別名稱或描述性短語引用圖像中的主要物體。

短語定位:然后,我們利用 SpaCy 從生成的圖像描述中提取名詞短語。根據描述,SpaCy 可能會識別出類別名稱,如“士兵”,或者描述性短語(每個區域至少 3 個單詞),如“軍裝風格的制服”。我們還將過濾掉一些可能不是物體的抽象名詞,如“圖像”“背景”等。隨后,我們使用 Grounding DINO 1.5 對過濾后的名詞短語進行定位。這一過程最終產生與它們的類別名稱或簡短短語描述相關聯的邊界框

短語條件區域描述:類別名稱或簡短短語通常提供的信息有限,們實現了一種短語條件的圖像描述策略,利用 InternVL2-8B 模型 生成與每個區域相關的預定義短語相條件化的圖像描述。通過這些短語引導模型,我們確保生成的描述更加準確且與上下文相關,提高caption質量

區域描述過濾與重寫:最后,使用 LLaMA3-8B 來驗證生成的描述是否準確地與它們的原始類別名稱或簡短短語對齊,過濾掉任何剩余的幻覺輸出。驗證后,我們進一步提示模型將這些詳細的描述精煉為更簡潔的指代表達式,從而增強指代任務的訓練效果。

Rexverse-2M 數據集

  • 210 萬張帶有描述的圖像;

  • 1020 萬個標注了類別標簽的區域;

  • 250 萬個標注了簡短短語的區域;

  • 250 萬個帶有詳細描述的區域;

  • 240 萬個帶有指代表達式的區域。

此外,我們還使用這個數據引擎為 ALLaVA-4V-Instruct 數據集中的 776K 條基礎對話數據進行了標注,用于指令調優。具體來說,我們將對話響應視為圖像描述,然后通過該引擎進行處理。

4.2 訓練策略

4.2.1 UPN 訓練

我們使用兩類帶有邊界框的數據集來訓練我們的通用提議網絡(UPN):

  1. 粗粒度數據集,包括 O365 、OpenImages、Bamboo、COCO、LVIS 、HierText 、CrowdHuman、SROIE 和 EgoObjects ;
  2. 細粒度數據集 SA-1B 。

所有數據集的類別被定義為粗粒度或細粒度,將任務簡化為一個二分類問題。遵循 T-Rex2 的方法,我們使用匈牙利匹配來匹配預測和真實標簽。我們采用 L1 損失和 GIOU 損失來進行邊界框預測,并使用 sigmoid 焦點損失進行分類。

4.2.2 ChatRex 訓練任務

我們采用三個主要任務來訓練 ChatRex,包括:

  • 基礎定位:模型根據給定的類別名稱、短語或指代表達式輸出對應物體的索引。

  • 區域理解:給定區域索引,模型生成不同詳細程度的描述,包括類別名稱、簡短短語、詳細描述或指代表達式。

  • 基礎圖像對話:模型需要輸出在其生成的對話輸出中提到的物體的索引。我們將當前圖像的真實邊界框與 UPN 提出的邊界框混合,并最多保留 100 個邊界框作為輸入。

我們采用三階段訓練過程,每個階段的數據如表 1 所示。

  • 第一階段:對齊訓練。在第一階段,目標是將視覺特征和目標特征與文本特征空間對齊。為此,我們訓練圖像投影 MLP、目標投影 MLP,以及 LLM 的輸入和輸出嵌入,因為我們已經為其詞匯表添加了特殊標記。

  • 第二階段:感知訓練。在這一階段,我們通過在 Rexverse-2M 和其他基礎數據上訓練 ChatRex 來提升其感知能力。在這個階段,所有參數都是可訓練的

  • 第三階段:聯合訓練。在這一階段,我們將感知和理解任務整合到一個統一的訓練過程中,確保 ChatRex 獲得這兩種能力。這種聯合優化使模型具備全面的多模態能力,并實現感知與理解之間的相互增強。

五、Experiments

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77675.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自動駕駛技術-相機_IMU時空標定

自動駕駛技術-相機_IMU時空標定 時間延遲 時間延遲 參考鏈接1、2 相機主要分為全局和卷簾快門相機&#xff0c;從觸發到成像的過程包括&#xff1a;復位時間、AE()曝光時間、讀出時間 全局快門如下圖所示 卷簾快門如下圖所示 相機錄制視頻時&#xff0c;為了保持固定頻率&am…

Vue3 + Vite + TS,使用 Web Worker,web worker進階 hooks

worker 具體通訊方式 1.由 web page 發送消息- worker.postMessage(發送數據) 2.web worker 接收消息并執行相關邏輯- onmessage (e) > { 接收數據并處理邏輯postMessage(傳遞處理后的數據)} 3.由 web page 監聽 worker 消息&#xff0c;包括&#xff1a;- 處理數據的監聽…

AIDD-人工智能藥物設計-AI 精準預測蛋白質變構位點

Allo-PED: AI 精準預測蛋白質變構位點 目錄 Allo-PED 框架融合蛋白質語言模型與結構特征,顯著提高了變構位點預測的準確性和泛化能力。EcoFoldDB 利用蛋白質結構信息,為宏基因組提供了精確且可擴展的生態功能注釋新方法,顯著提升了對未知微生物功能的認知。上下文分子適配(…

1558 找素數

1558 找素數 ??難度&#xff1a;中等 &#x1f31f;考點&#xff1a;質數 &#x1f4d6; &#x1f4da; import java.util.Scanner; import java.util.Arrays;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int a sc.…

Nacos 提供了哪些服務的保護機制?

當面試官問這個問題時&#xff0c;大家一定要保持頭腦清醒&#xff0c;不要被帶跑偏了&#xff0c;Nacos 本身的核心定位是服務發現和配置管理中心&#xff0c;它并不直接提供像服務熔斷、服務限流、服務降級、請求重試 這類完整的、開箱即用的客戶端/網關級服務保護&#xff0…

【家政平臺開發(38)】解鎖家政平臺國際化密碼:多語言支持開發實戰

> 本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質…

DirectX12 - 基本知識 - 圖形驅動的本質

這里是SunshineBooming&#xff0c;GPU公司一枚小小的Driver工程師&#xff0c;主要工作是寫DirectX12 Driver&#xff0c;我會持續更新這個DX12 Spec系列&#xff0c;可能比較冷門&#xff0c;但是都是干貨和工作中的心得體會&#xff0c;有任何GPU相關的問題都可以在評論區互…

selenium元素獲取

from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Chrome()driver.maximize_window()#最大化窗口 #隱式等待 driver.implicitly_wait(10)#打開網頁 driver.get("https://www.zhipin.com/beijing/?kacity-sites-101010100&q…

生物化學筆記:醫學免疫學原理15 超敏反應過敏反應(I型[蚊蟲叮咬]+II型[新生兒溶血癥、突眼型甲亢]+III型+IV型)

超敏反應 每個人都可能發生的過敏問題&#xff1a;被蚊子咬后起包 I型超敏反應 II型超敏反應 新生兒溶血癥分為Rh血型不合和ABO血型不合兩種情況。Rh血型不合通常從第二胎開始更容易發病&#xff0c;因為母體初次接觸Rh陽性胎兒的紅細胞后會產生抗D抗體&#xff0c;而這個致敏…

【android bluetooth 框架分析 02】【Module詳解 2】【gd_shim_module 模塊介紹】

1. 背景 上一章節 我們介紹了 module_t 的 大體框架 &#xff0c;本節內容我們就選擇 我們的 gd_shim_module 模塊為例子&#xff0c;具體剖析一下&#xff0c;它里面的邏輯。 static const char GD_SHIM_MODULE[] "gd_shim_module";// system/main/shim/shim.cc …

【包管理器】主流包管理器_對比_應用場景

不定期更新&#xff0c;建議關注收藏點贊。 鏈接&#xff1a; npm專題 目錄 主流包管理器簡介對比 主流包管理器簡介 主流的包管理器其實有不少&#xff0c;不同語言和平臺都有各自的一套系統。 前端&#xff08;JavaScript/TypeScript&#xff09; 名稱簡介開發者特點npmNo…

參照Spring Boot后端框架實現序列化工具類

本文參照Jackson實現序列化工具類&#xff0c;旨在于簡化開發 JacksonUtil.class public class JacksonUtil {private JacksonUtil() {}/*** 單例*/private final static ObjectMapper OBJECT_MAPPER;static {OBJECT_MAPPER new ObjectMapper();}private static ObjectMappe…

Rust入門之迭代器(Iterators)

Rust入門之迭代器&#xff08;Iterators&#xff09; 本文已同步本人博客網站 本文相關源碼已上傳Github 前言 迭代器&#xff08;Iterators&#xff09;是 Rust 中最核心的工具之一&#xff0c;它不僅是遍歷集合的抽象&#xff0c;更是 Rust 零成本抽象&#xff08;Zero-Co…

若依框架二次開發——RuoYi-AI 本地部署流程

文章目錄 項目環境安裝后端1. 下載項目2. 使用 IDEA 導入項目3. 配置 Maven4. 配置 Maven settings.xml5. 初始化數據庫6. 啟動 Redis7. 修改數據庫配置8. 啟動后端服務安裝管理端1. 下載管理端項目2. 安裝依賴3. 啟動管理端4. 修改管理端配置安裝用戶端1. 下載用戶端項目2. 安…

精品推薦-最新大模型MCP核心架構及最佳實踐資料合集(18份).zip

精品推薦-最新大模型MCP核心架構及最佳實踐資料合集&#xff0c;共18份。 1、2025年程序員必學技能&#xff1a;大模型MCP核心技術.pdf 2、MCP 架構設計剖析&#xff1a;從 Service Mesh 演進到 Agentic Mesh.pdf 3、MCP 架構設計深度剖析&#xff1a;使用 Spring AI MCP 四步…

DataWorks智能體Agent發布!基于MCP實現數據開發與治理自動化運行

在傳統的數據開發工作中&#xff0c;企業用戶或者開發者常常需要進行繁瑣的配置、復雜的代碼撰寫、反復的性能調優和大量重復性的操作&#xff0c;才能實現數據開發、數據集成和數據治理等工作&#xff0c;效率十分低下。 近日&#xff0c;阿里云大數據開發治理平臺DataWorks基…

IDEA 中右側沒有顯示Maven

IDEA 中右側沒有顯示Maven 1. 檢查 Maven 項目是否正確加載 現象 ? 項目是 Maven 項目&#xff0c;但右側沒有 Maven 工具窗口。 ? 項目根目錄下有 pom.xml&#xff0c;但 IDEA 沒有識別為 Maven 項目。 解決方法 手動重新加載 Maven 項目&#xff1a; ? 在 IDEA 中&…

羅技K860鍵盤

羅技藍牙鍵盤的頂部功能鍵F1-F12的原本功能 單擊羅技鍵盤的功能鍵時&#xff0c;默認響應的是鍵盤上面顯示的快進、調節音量等功能。改變回F1~F12原本功能&#xff0c;同時按下 fn和esc組合鍵

什么是大型語言模型(LLM)?哪個大模型更好用?

什么是 LLM&#xff1f; ChatGPT 是一種大型語言模型 (LLM)&#xff0c;您可能對此并不陌生。它以非凡的能力而聞名&#xff0c;已證明能夠出色地完成各種任務&#xff0c;例如通過考試、生成產品內容、解決問題&#xff0c;甚至在最少的輸入提示下編寫程序。 他們的實力現已…

css畫右上角 角標三角形

.corner {position: absolute;top: -2rem;right: -2rem;width: 0;height: 0;border: 2rem solid red;border-bottom-color: transparent;border-top-color: transparent;border-left-color: transparent;transform: rotateZ(135deg); } 基本思路就是設置border&#xff0c;只設…