KOSMOS-2: 將多模態大型語言模型與世界對接

溫馨提示:
本篇文章已同步至"AI專題精講" KOSMOS-2: 將多模態大型語言模型與世界對接

摘要

我們介紹了 KOSMOS-2,一種多模態大型語言模型(MLLM),賦予了模型感知物體描述(例如,邊界框)并將文本與視覺世界對接的新能力。具體而言,我們將引用表達式表示為 Markdown 中的鏈接形式,即 “文本片段”,其中物體描述是位置標記的序列。通過與多模態語料庫的結合,我們構建了大規模的圖像-文本對(稱為 GRIT)數據,用于訓練模型。除了現有的 MLLM 能力(例如,感知一般模態、遵循指令和執行上下文學習)外,KOSMOS-2 將對接能力集成到下游應用中。我們在廣泛的任務上評估了 KOSMOS-2,包括:(i)多模態對接,例如引用表達式理解和短語對接;(ii)多模態引用,例如引用表達式生成;(iii)感知-語言任務;以及(iv)語言理解與生成。本研究為人體化 AI 的發展奠定了基礎,并揭示了語言、多模態感知、行動和世界建模之間的大融合,這是邁向人工通用智能的關鍵步驟。代碼和預訓練模型可在 https://aka.ms/kosmos-2 獲取。
在這里插入圖片描述
在這里插入圖片描述

1 引言

多模態大型語言模型(MLLMs)[HSD+22, ADL+22, HDW+23, DXS+23, Ope23] 在廣泛的任務中成功地作為通用接口發揮了作用,包括語言、視覺和視覺-語言任務。MLLMs 可以感知一般模態,包括文本、圖像和音頻,并在zero-shot 和few-shot 設置下生成自由形式的文本響應。

在本工作中,我們解鎖了多模態大型語言模型的對接能力。對接能力為視覺-語言任務提供了更便捷和高效的人機交互。它使用戶能夠直接指向圖像中的物體或區域,而不是輸入詳細的文本描述來引用該物體,模型可以理解該圖像區域及其空間位置。對接能力還使得模型能夠以視覺答案(即邊界框)作出響應,這支持更多的視覺-語言任務,如引用表達式理解。與僅使用文本的響應相比,視覺答案更準確,解決了共指歧義問題。此外,對接能力能夠將生成的自由形式文本響應中的名詞短語和引用表達式與圖像區域相鏈接,從而提供更準確、更有信息性和更全面的答案。

我們介紹了 KOSMOS-2,這是一個具有對接能力的多模態大型語言模型,建立在 KOSMOS-1 基礎上。KOSMOS-2 是一個基于 Transformer 的因果語言模型,使用下一個單詞預測任務進行訓練。為了啟用對接能力,我們構建了一個大規模的圖像-文本對數據集,并將其與 KOSMOS-1 中的多模態語料庫結合,用于訓練模型。這個對接的圖像-文本對是基于 LAION-2B [SBV+22] 和 COYO-700M [BPK+22] 的圖像-文本對子集構建的。我們構建了一個管道,提取并將文本片段(即名詞短語和引用表達式)與其對應的圖像區域的空間位置(例如,邊界框)相鏈接。我們將邊界框的空間坐標轉換為一系列位置標記,然后將其附加到相應的文本片段后面。數據格式充當“超鏈接”,將圖像的物體或區域與標題連接起來。

實驗結果表明,KOSMOS-2 不僅在 KOSMOS-1 中評估的語言和視覺-語言任務上取得了競爭力的表現,而且在對接任務(短語對接和引用表達式理解)以及引用任務(引用表達式生成)上也取得了顯著的成績。如圖 2 所示,集成對接能力使得 KOSMOS-2 可以用于更多的下游任務,如對接圖像字幕和對接視覺問答。

2 構建大規模對接圖像-文本對(GRIT)

我們介紹了 GRIT2,這是一個大規模的對接圖像-文本對數據集,基于 COYO-700M [BPK+22] 和 LAION-2B [SBV+22] 的圖像-文本對子集構建。我們構建了一個管道,將文本片段(即名詞短語和引用表達式)與其對應的圖像區域鏈接。該管道主要由兩個步驟組成:生成名詞短語-邊界框對和生成引用表達式-邊界框對。我們在下面詳細描述這些步驟:

步驟 1:生成名詞短語-邊界框對

給定一個圖像-文本對,我們首先從標題中提取名詞短語,并使用預訓練的檢測器將它們與圖像區域關聯。如圖 3 所示,我們使用 spaCy [HMVLB20] 來解析標題(“a dog in a field of flowers”),并提取所有名詞短語(“a dog”,“a field”和“flowers”)。我們排除一些難以在圖像中識別的抽象名詞短語,如“time”,“love”和“freedom”,以減少潛在的噪聲。隨后,我們將圖像和從標題中提取的名詞短語輸入到預訓練的對接模型(例如 GLIP [LZZ+22])中,以獲得相應的邊界框。應用非極大抑制算法,以去除與其他邊界框有較高重疊的邊界框,即使它們并不是針對同一名詞短語。我們保留預測置信度高于 0.65 的名詞短語-邊界框對。如果沒有保留任何邊界框,我們將丟棄相應的圖像-標題對。
在這里插入圖片描述

步驟 2:生成引用表達式-邊界框對

為了賦予模型對復雜語言描述的對接能力,我們將名詞短語擴展為引用表達式。具體來說,我們使用 spaCy 獲取句子的依賴關系。然后,我們通過遞歸遍歷名詞短語在依賴樹中的子節點,并將子節點的標記與名詞短語連接,來擴展名詞短語為引用表達式。我們不會將名詞短語擴展為并列成分。如果名詞短語沒有子節點,我們會將其保留供下一個過程使用。圖 3 中顯示的例子中,名詞短語 “a dog” 可以擴展為 “a dog in a field of flowers”,而名詞短語 “a field” 可以擴展為 “a field of flowers”。

此外,我們只保留不被其他表達包含的引用表達式或名詞短語。如圖 3 所示,我們保留引用表達式 “a dog in a field of flowers”,并刪除 “a field of flowers”(因為它是 “a dog in a field of flowers” 的蘊含),以及 “flowers”。我們將名詞短語 (“a dog”) 的邊界框分配給相應生成的引用表達式 (“a dog in a field of flowers”)。

最終,我們獲得了大約 9100 萬張圖像、1.15 億個文本片段和 1.37 億個關聯的邊界框。我們將 GRIT 與現有公開可用的視覺對接數據集進行了比較,結果見表 1。GRIT 的數據樣本顯示在附錄中。

3 KOSMOS-2: 一個具有關聯的多模態大語言模型

KOSMOS-2 是一個具有關聯能力的多模態大語言模型,相較于 KOSMOS-1,它集成了關聯和引用能力。該模型可以接受用戶通過邊界框選擇的圖像區域作為輸入,提供視覺答案(即邊界框),并將文本輸出與視覺世界進行對接。KOSMOS-2 采用與 KOSMOS-1 相同的模型架構和訓練目標。我們將關聯的圖像-文本對加入訓練數據,以賦予模型關聯和引用能力。對于一個文本片段(例如名詞短語和引用表達式)及其對應的邊界框,我們將邊界框的連續坐標離散化為一系列位置標記,并與文本標記以統一的方式進行編碼。然后,我們通過一種“超鏈接”數據格式將位置標記和其對應的文本片段連接起來。模型被訓練來建立圖像區域和它們對應的位置信號之間的映射,并將圖像區域與其關聯的文本片段連接起來。

3.1 關聯輸入表示

給定一個文本片段及其在關聯圖像-文本對中的邊界框,我們首先將邊界框的連續坐標轉化為一系列離散的位置信號 [CSL+21]。對于一個寬度為 W 和高度為 H 的圖像,我們將寬度和高度分別均勻劃分為 P 個部分。得到 P×PP × PP×P 個網格,每個網格由(W/P)×(H/P)( W / P ) \times ( H / P )(W/P)×(H/P) 個像素組成。對于每個網格,我們使用一個位置標記來表示該網格內的坐標。我們使用每個網格中心像素的坐標來確定圖像上的邊界框。總共引入 P×PP × PP×P 個位置標記,并將這些標記加入詞匯表中,以便與文本進行統一建模。

邊界框可以通過其左上角點(x1,y1).( x _ { 1 } , \; y _ { 1 } ) \, .(x1?,y1?). 和右下角點 (x2,y2).( x _ { 2 } , \ y _ { 2 } ) .(x2?,?y2?). 來表示。我們將左上角和右下角的坐標分別離散化為位置標記。我們將左上角位置標記 、右下角位置標記 以及特殊邊界標記 和 拼接起來,表示一個單獨的邊界框:“”。如果文本片段與多個邊界框關聯,我們使用特殊標記 將這些邊界框的位置標記連接起來:“…”。

然后,我們將文本片段及其關聯的位置標記以類似“超鏈接”的數據格式排列,像是 Markdown 格式。對于與單個邊界框關聯的文本片段,結果序列為:“ text span ”,其中 和 是指示文本片段開始和結束的特殊標記。該數據格式告訴模型,位于邊界框內的圖像區域與文本片段相關聯。

對于圖 1 中展示的示例,輸入表示為:
在這里插入圖片描述

其中,<s></s> 分別表示序列的開始和結束,<image></image> 表示圖像嵌入的開始和結束。<grounding> 是一個特殊的標記,用于指示模型將文本輸出與視覺世界進行關聯。我們通過查找表將輸入的文本標記和位置標記映射為嵌入向量。

與 KOSMOS-1 一樣,我們使用一個視覺編碼器(vision encoder)和一個重采樣模塊(resampler module)來獲取輸入圖像的圖像嵌入。

對于語言單模態數據、跨模態配對數據(即圖像-文本對)以及交錯多模態數據,我們使用與 KOSMOS-1 相同的輸入表示方式。

3.2 基于錨定的多模態大語言模型

在 KOSMOS-1 的基礎上,KOSMOS-2 通過引入錨定(grounding)和指代(referring)能力,增強了多模態大語言模型。KOSMOS-2 同樣采用基于 Transformer 的因果語言模型(causal language model)作為主干結構,并通過下一 token 預測任務進行訓練。

除了在 KOSMOS-1 中使用的多模態語料(包括文本語料、圖像-字幕對以及圖文交錯數據),我們在訓練中加入了錨定的圖文對。訓練損失只考慮離散 token,例如文本 token 和位置 token。模型可以通過位置 token 和整張圖像來學習定位和理解圖像區域,將文本片段與圖像區域關聯起來,并使用位置 token 輸出圖像區域的邊界框(bounding boxes)。

KOSMOS-2 展示了新的錨定與指代能力。指代能力使我們能夠通過邊界框指出圖像中的特定區域。KOSMOS-2 可以通過邊界框的坐標理解用戶所指的圖像區域。指代能力提供了一種新的交互方式。不同于以往只能輸出文本的多模態大語言模型(MLLMs)[ADL+22, HSD+22, HDW+23],KOSMOS-2 不僅可以提供視覺答案(即邊界框),還能將文本輸出錨定到圖像上。錨定能力使模型能夠提供更加準確、信息豐富且全面的響應。除了在 KOSMOS-1 中評估的視覺、語言和圖文任務之外,該模型還可用于更多下游任務,例如錨定圖像字幕生成、錨定視覺問答(VQA)、指代表達理解與生成等任務。

3.3 模型訓練

訓練設置
我們在新增的錨定圖文對、單模態文本語料、圖像-字幕對以及圖文交錯數據上訓練模型。訓練過程中的 batch size 為 419K 個 token,其中包括 185K 個來自文本語料的 token,215K 個來自原始及錨定圖像-字幕對的 token,以及 19K 個來自圖文交錯數據的 token。我們將 KOSMOS-2 訓練 60K 步,相當于約 250 億個 token。優化器采用 AdamW,β = (0.9, 0.98),權重衰減(weight decay)設置為 0.01,dropout 率為 0.1。學習率在前 375 個 warm-up 步驟中線性上升至 2e-4,之后再線性衰減至 0。模型訓練使用了 256 張 V100 GPU,整個訓練過程約耗時一天。為了讓模型能夠識別何時將文本輸出錨定到視覺世界中,我們在訓練時會在錨定的字幕前加上 <grounding> token。

延續 KOSMOS-1 的設計,視覺編碼器由 24 層構成,hidden size 為 1024,前饋網絡(FFN)的中間層大小為 4096。多模態大語言模型部分采用 24 層 MAGNETO Transformer [WMH+22, MWH+22],其 hidden size 為 2048,注意力頭數為 32,前饋網絡中間層大小為 8192。可訓練參數總量約為 16 億。圖像分辨率設為 224×224,patch 大小為 14×14。我們將圖像的寬度與高度各劃分為 32 個 bin,每個 bin 包含 7×7 像素,總共添加了 32×32 個位置 token 到詞表中。KOSMOS-2 的初始化使用了 KOSMOS-1 的權重,新增的位置 token 的詞嵌入隨機初始化。在訓練和指令微調過程中,我們更新所有參數。

指令微調(Instruction Tuning)
在模型訓練完成后,我們對 KOSMOS-2 進行指令微調,使其更好地對齊人類指令。我們將視覺-語言指令數據集(如 LLaVA-Instruct [LLWL23])與語言指令數據集(如 Unnatural Instructions [HSLS22] 和 FLANv2 [LHV+23])結合起來,對模型進行微調。此外,我們還通過 GRIT 中的邊界框與表達對(例如名詞短語和指代表達)構造錨定的指令數據。對于表達-邊界框對,我們使用“<p> expression </p>”作為輸入指令,提示模型生成邊界框對應的位置 token。我們還使用如“<p> It </p><box><loc1><loc2></box> is”的提示方式,要求模型根據邊界框生成相應的表達。更多模板示例見附錄中的表 B。

4 評估

我們首先在多模態grounding任務和多模態referring任務上評估KOSMOS-2,以驗證其新增能力,然后在KOSMOS-1中評估過的語言任務和感知-語言任務上測試該模型。

  • 多模態grounding
    – 短語grounding
    – 指代表達理解
  • 多模態referring
    – 指代表達生成
  • 感知-語言任務
    – 圖像描述
    – 視覺問答
  • 語言任務
    – 語言理解
    – 語言生成
    在這里插入圖片描述
    溫馨提示:
    閱讀全文請訪問"AI深語解構" KOSMOS-2: 將多模態大型語言模型與世界對接

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

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

相關文章

協作機器人操作與編程-PE系統示教編程和腳本講解(直播回放)

協作機器人操作與編程-PE系統示教編程和腳本講解本次講解主要圍繞協作機器人PE系統的操作與編程展開&#xff0c;內容涵蓋軟件安裝、虛擬機配置、手動操作、在線編程、變量設置、網絡通信及標定方法等方面。以下是主要內容要點提煉&#xff1a; 軟件安裝與虛擬機配置 需從官網下…

【前后端】Node.js 模塊大全

用到的全部總結在這里&#xff0c;不定期更新 鏈接 node一本通 包括&#xff1a; express path fs/ process/ os/ http/ mysql/mongoose/ express-jwt/jsonwebtoken/ dotenv/ multer/ swagger/ cors/ nodemon (docker篇有)常用模塊 內置 fs 文件系統操作&#xff08;讀寫、重命…

雙8無碳小車“cad【17張】三維圖+設計說名書

基于MATLAB的雙八無碳小車軌跡仿真及其結構設計 摘 要 本文設計的基于MATLAB的無碳小車來自于全國大學生工程訓練能力競賽&#xff0c;依據綠色環保&#xff0c;設計一種通過重力勢能轉換成動能來驅動小車行走的裝置。通過分析任務要求&#xff0c;本文完成了小車的三維結構設計…

視覺大模型離線部署全流程優化:從微調技術到工程實踐

視覺大模型離線部署全流程優化&#xff1a;從微調技術到工程實踐 一、視覺大模型離線部署概述 1.1 視覺大模型的應用場景與挑戰 視覺大模型在物體檢測、圖像生成、圖像描述等領域展現出強大能力&#xff0c;已成為人工智能領域的研究熱點和產業應用焦點(5)。隨著技術的發…

Vue中組件的生命周期

組件的生命周期生命周期、生命周期函數、生命周期鉤子vue2的生命周期創建&#xff08;創建前的生命周期函數 beforeCreate &#xff0c;創建完畢created&#xff09;掛載&#xff08;掛載前beforeMount&#xff0c;掛載完畢mounted&#xff09;//把組件放在頁面中更新&#xff…

securecrt連接服務器報錯 Key exchange failed 怎么辦

新買了一臺阿里云機&#xff0c;用securecrt去連接&#xff0c;如下報錯這個錯誤表明你的 SSH 客戶端與服務器之間無法就密鑰交換方法和主機密鑰算法達成一致&#xff0c;導致連接失敗。這通常是由于客戶端和服務器支持的加密算法集不匹配造成的。 解決方式 編輯服務器的/etc/s…

用協議分層模型實戰:從物理層到應用層的STM32協議棧開發

目錄 1. 揭開協議棧的神秘面紗:從STM32到分層思維 STM32的硬件優勢 本章實戰:點亮物理層的第一步 2. 數據鏈路層:讓STM32學會“打包”和“拆包” 以太網幀的那些事兒 實戰:解析以太網幀 3. 網絡層:讓STM32學會“找路” LwIP的快速上手 實戰:實現一個簡單的Ping …

微服務基礎環境搭建-centos7

文章目錄1、安裝docker1.1、安裝步驟1.2、docker常用命令2、安裝Nginx3、Docker安裝Mysql4、Docker安裝Redis5、安裝Nacos5.1、Nacos的作用5.2、單體服務安裝6、安裝RocketMQ服務6.1 MQ的作用6.2 RocketMQ的基礎服務架構6.2、安裝RocketMQ服務6.3、安裝dashboard面板服務6.4、R…

Netty知識點

一、Netty的零拷貝機制 零拷貝的基本理念&#xff1a;避免在用戶態和內核態之間拷貝數據&#xff0c;從而降低 CPU 占用和內存帶寬的消耗除了系統層面的零拷貝。 1、FileRegion 接口 FileRegion 是 Netty 提供的用于文件傳輸的接口&#xff0c;它通過調用操作系統的 sendfile 函…

Kafka的基本使用

目錄 認識Kafka 消息隊列 消息隊列的核心概念 核心價值與解決的問題 Kafka ZooKeeper Kafka的基本使用 環境安裝 啟動zookeeper 啟動Kafka 消息主題 創建主題 查詢主題 修改主題 發送數據 命令行操作 JavaAPI操作 消費數據 命令行操作 JavaAPI操作 認識Kafka…

Flink2.0學習筆記:Table API SQL

stevensu1/EC0720 表 API 和 SQL# 表 API 和 SQL——用于統一流和批處理 加工。表 API 是適用于 Java、Scala 和 Python 的語言集成查詢 API&#xff0c;它 允許組合來自關系運算符的查詢&#xff0c;例如 selection、filter 和 join in 一種非常直觀的方式。Flink 的 SQL 支…

【 SpringAI核心特性 | Prompt工程 】

1. Prompt 工程 基本概念&#xff1a;Prompt ?工程又叫提示?詞工程&#xff0c;簡單來說&#xff0c;就是輸入?給 AI 的指令。 比如下面?這段內容&#xff0c;就是提示詞&#xff1a; 請問桂林電子科技大學是一個怎么樣的學校&#xff1f;1.1 Prompt分類 在 AI ?對話中…

windows wsl2-06-docker hello world

hello-world 例子 就像其他任何一門語言一樣&#xff0c;我們來體驗 docker 的 hello world $ docker run hello-world但是報錯 :~$ docker run hello-world Unable to find image hello-world:latest locally docker: Error response from daemon: Get "https://registry…

Python知識點4-嵌套循環break和continue使用死循環

一、循環【重點掌握】 1.嵌套循環類似于嵌套if語句 語法&#xff1a; while 表達式1&#xff1a;while 表達式2&#xff1a;語句# 1. # 循環5次&#xff0c;打印0~4 m 0 while m < 5:print(m)m 1 # 循環3次&#xff0c;打印0~2 n 0 while n < 3:print(n)n 1print(&qu…

將HTML+JS+CSS數獨游戲包裝為安卓App

HTMLJSCSS制作一個數獨游戲-CSDN博客 中開發了一個數獨游戲&#xff0c;這個數獨游戲提供了一次性回退到指定步驟的輔助功能&#xff0c;在解決復雜數獨問題時十分有幫助&#xff0c;可作為玩數獨游戲的輔助工具&#xff0c;因此&#xff0c;考慮將它改裝成安卓App安裝在手機上…

編程語言Java入門——核心技術篇(一)封裝、繼承和多態

同專欄基礎知識篇寫在這里&#xff0c;有興趣的可以去看看&#xff1a; 編程語言Java入門——基礎知識篇&#xff08;一&#xff09;-CSDN博客 編程語言Java入門——基礎知識篇&#xff08;二&#xff09;-CSDN博客 編程語言Java入門——基礎知識篇&#xff08;三&#xff0…

【39】MFC入門到精通——C++ /MFC操作文件行(讀取,刪除,修改指定行)

文章目錄1 通過關鍵詞&#xff0c;讀取某一行 &#xff08;3種方法&#xff09;2 刪除 指定行3 修改 指定行1 通過關鍵詞&#xff0c;讀取某一行 &#xff08;3種方法&#xff09; 通過定位關鍵詞&#xff0c;讀取某一行信息,返回CString //通過定位關鍵詞&#xff0c;讀取某…

5 種可行的方法:如何將 Redmi 聯系人備份到 Mac

將 Redmi 聯系人備份到 Mac 是防止因手機損壞、丟失或更換設備而導致數據丟失的重要措施。雖然云服務提供了便利性&#xff0c;但擁有離線備份可以提供額外的安全性&#xff0c;而無需完全依賴互聯網。如果您想知道如何將 Redmi 聯系人備份到 Mac&#xff0c;本文將為您介紹 5 …

LeRobot 具身智能機械臂 SO-ARM100 從搭建到訓練全流程

今天給大家分享一下 LeRobot 具身智能機械臂 SO-ARM100 的完整使用流程&#xff0c;包括設備組裝、環境配置、遠程控制、數據錄制到模型訓練的全過程。適合剛入門具身智能的小伙伴參考學習。 一、前期準備與資源獲取 在開始之前&#xff0c;我們需要準備好相關的資源和工具&a…

LINUX720 SWAP擴容;新增邏輯卷;邏輯卷擴容;數據庫遷移;gdisk

SWAP空間擴展 方法一 增加硬盤或分區擴展 swap -s mkswap /dev/sdd6 blkid /dev/sdd6 swapon /dev/sdd6 swapon -s vim /etc/fstab /dev/sdd6 swap swap defaults 0 0 開機自動擴容 swap -s [rootweb ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sd…