GIT: 一個用于視覺與語言的生成式圖像到文本轉換 Transformer

摘要

在本文中,我們設計并訓練了一個生成式圖像到文本轉換 Transformer——GIT,以統一視覺-語言任務,如圖像/視頻字幕生成和問答。雖然生成式模型在預訓練和微調之間提供了一致的網絡架構,但現有工作通常包含復雜的結構(單/多模態編碼器/解碼器),并依賴于外部模塊,如目標檢測器/標注器和光學字符識別(OCR)。在 GIT 中,我們簡化了架構,僅使用一個圖像編碼器和一個文本解碼器,并采用單一的語言建模任務。此外,我們擴大了預訓練數據規模并提升了模型的大小,以增強模型性能。無需額外的復雜設計,我們的 GIT 在多個具有挑戰性的基準測試中取得了大幅領先的新 SOTA(State of the Art)。例如,我們的模型在 TextCaps 任務上首次超越了人類表現(CIDEr 分數 138.2 vs. 125.5)。此外,我們提出了一種新的基于生成的圖像分類和場景文本識別方案,并在標準基準測試上取得了可觀的表現。

1. 簡介

在這里插入圖片描述
在這里插入圖片描述

近年來,在視覺-語言(VL)預訓練方面取得了巨大的進展,特別是在基于大規模圖文對數據的研究,例如 CLIP(Radford et al., 2021)、Florence(Yuan et al., 2021)和 SimVLM(Wang et al., 2021b)。所學習的表示極大地提升了各種下游任務的性能,如圖像字幕生成(Lin et al., 2014)、視覺問答(VQA)(Goyal et al., 2017)以及圖文檢索。

在預訓練過程中,掩碼語言建模(MLM)和圖文匹配(ITM)任務被廣泛使用(Wang et al., 2020; Fang et al., 2021c; Li et al., 2020b; Zhang et al., 2021a; Chen et al., 2020b; Dou et al., 2021; Wang et al., 2021a; Kim et al., 2021)。然而,這些損失函數與下游任務不同,因此需要進行特定任務的適配。例如,在圖像字幕生成任務中移除了 ITM(Wang et al., 2021a; Li et al., 2020b),而在 VQA 任務中額外添加了一個隨機初始化的多層感知機(MLP)(Wang et al., 2021b; Li et al., 2020b)。為了減少這種不匹配,最近的方法(Cho et al., 2021; Wang et al., 2021b; Yang et al., 2021b; Wang et al., 2022b)嘗試設計統一的生成式模型進行預訓練,因為大多數 VL 任務都可以歸結為文本生成問題。這些方法通常采用多模態編碼器和文本解碼器,并精心設計文本輸入和文本目標。為了進一步推動這一方向的發展,我們提出了一種簡單的生成式圖像到文本 Transformer,稱為 GIT,它僅由一個圖像編碼器和一個文本解碼器組成。預訓練任務僅僅是將輸入圖像映射到整個關聯文本描述,使用語言建模目標進行訓練。盡管架構簡單,GIT 在多個具有挑戰性的基準測試上以較大幅度取得了新的 SOTA,如表 1 所示。

圖像編碼器是一個 Swin 風格的視覺 Transformer(Dosovitskiy et al., 2021; Yuan et al., 2021),基于對比學習任務(Jia et al., 2021; Radford et al., 2021; Yuan et al., 2021)在大規模圖文對數據上進行預訓練。這消除了對目標檢測器的依賴,而目標檢測器在許多現有方法中被廣泛使用(Anderson et al., 2018; Li et al., 2020b; Wang et al., 2020; Zhang et al., 2021a; Chen et al., 2020b; Fang et al., 2021c)。為了將其擴展到視頻領域,我們簡單地提取多個采樣幀的特征,并將它們拼接成視頻表示。文本解碼器是一個 Transformer 網絡,用于預測關聯文本。整個網絡使用語言建模任務進行訓練。對于 VQA 任務,輸入問題被視為文本前綴,并以自回歸方式生成答案。此外,我們提出了一種新的基于生成的 ImageNet 分類方案,其中預測標簽直接來自我們的生成式模型,而無需預定義詞匯表。

該方法簡單,但當我們擴展預訓練數據和模型規模后,性能卻令人驚訝地強大。圖 1 展示了 GIT 在 TextCaps 上微調后生成的字幕。示例表明,該模型在識別和描述場景文本、表格、圖表、食物、紙幣、標志、地標、字符、名人、產品等方面表現出色,表明我們的 GIT 模型已編碼了豐富的關于視覺世界的多模態知識。

我們的主要貢獻如下:

  • 我們提出了 GIT,僅由一個圖像編碼器和一個文本解碼器組成,并基于語言建模任務在 8 億個圖文對數據上進行預訓練。
  • 我們在多個任務上(圖像/視頻字幕生成和問答,見表 1)實現了新的 SOTA,而無需依賴目標檢測器、目標標簽和 OCR。在 TextCaps 任務上,我們首次超越了人類表現。這表明,即使是簡單的網絡架構,在規模擴展后也能取得強大性能。
  • 我們證明了,GIT 在圖文對數據上進行預訓練后,即使在沒有專門針對視頻任務設計編碼器的情況下,也能夠在視頻任務上實現新的 SOTA。
  • 我們提出了一種新的基于生成的圖像分類方案。在 ImageNet-1K 上,我們的 GIT 取得了 88.79% 的 top-1 準確率。

2. 相關工作

在 VL 預訓練方面,多任務預訓練被廣泛用于增強網絡的多種能力。例如,MLM 和 ITM 被廣泛采用作為預訓練任務(Li et al., 2020b; Kim et al., 2021; Zhang et al., 2021a; Wang et al., 2020; Xue et al., 2021b; Lu et al., 2019; Tan & Bansal, 2019)。最近,圖文對比損失也被引入(Yu et al., 2022; Li et al., 2021a; Wang et al., 2021a)。由于大多數 VL 任務可以被表述為文本生成任務(Cho et al., 2021),一個單一的生成式模型可以被預訓練以支持各種下游任務。這類方法通常通過精心設計的輸入輸出文本進行預訓練。例如,在 Cho et al.(2021)中,文本被適當屏蔽作為網絡輸入,目標是恢復屏蔽的文本片段。而 SimVLM(Wang et al., 2021b)則隨機拆分一個文本句子作為輸入和目標輸出。在這些方法中,多模態 Transformer 編碼器用于在解碼輸出之前融合文本輸入。

在圖像表示方面,大多數現有方法使用 Faster RCNN 來提取區域特征(Anderson et al., 2018; Li et al., 2020b; Wang et al., 2020; Zhang et al., 2021a; Chen et al., 2020b; Fang et al., 2021c)。近年來,密集表示(dense representation)方法受到了越來越多的關注(Huang et al., 2020; Wang et al., 2021b;a; Kim et al., 2021; Fang et al., 2021b; Dou et al., 2021; Li et al., 2021a),它無需邊界框標注,同時可以端到端地訓練整個網絡。除了來自特征圖的表示之外,目標標簽(Li et al., 2020b; Wang et al., 2020; Zhang et al., 2021a; Cornia et al., 2021; Fang et al., 2021b)也被用來幫助 Transformer 理解上下文,特別是新穎的目標。對于與場景文本相關的任務,OCR 通常用于生成場景文本作為額外的網絡輸入,例如 Hu et al.(2020)和 Yang et al.(2021c)。在文本預測方面,Transformer 網絡通常被使用,它可以通過交叉注意力模塊融合圖像 token,例如 Cho et al.(2021)、Alayrac et al.(2022)、Yang et al.(2021b)、Yu et al.(2022),或者僅使用自注意力模塊,將圖像 token 與文本 token 連接,例如 Li et al.(2020b)、Chen et al.(2020b)、Zhang et al.(2021a)、Wang et al.(2020)、Fang et al.(2021b)。

在 VL 任務的擴展方向上,LEMON(Hu et al., 2021a)研究了基于檢測器的字幕生成模型在 MLM 任務下的行為。CoCa(Yu et al., 2022)研究了不同的模型規模,但使用相同的預訓練數據。在本論文中,我們在 9 個不同的基準(3 個在主論文,6 個在補充材料,包括圖像/視頻字幕生成和問答任務)上進行了全面研究,涵蓋 3 種不同的模型規模和 3 種不同的預訓練數據規模(每個基準 9 個數據點)。

3 生成式圖像到文本轉換器

在大規模圖文數據的基礎上,我們的目標是預訓練一個簡潔而高效的視覺語言(VL)模型,以提升圖像/視頻描述生成和問答任務的性能。由于輸入是圖像而輸出是文本,最簡化的模型結構僅需包含一個圖像編碼器和一個文本解碼器——這也正是我們提出的 GIT(Generative Image-to-text Transformer)所采用的核心組件,如圖2所示。

在這里插入圖片描述

3.1 網絡架構

圖像編碼器基于對比預訓練模型(Yuan等,2021)。輸入為原始圖像,輸出為緊湊的二維特征圖,該特征圖被展平為特征序列。通過額外的線性層和層歸一化層,圖像特征被投影至D維空間,作為文本解碼器的輸入。我們采用對比任務預訓練的圖像編碼器,因為近期研究表明此類編碼器具有更優性能(如Yuan等,2021;Dou等,2021;Alayrac等,2022)。在第4.6節和補充材料中,我們也觀察到更強的圖像編碼器能顯著提升視覺語言任務性能,這與基于目標檢測方法的研究結論一致(如Wang等,2020;Zhang等,2021a)。并行研究CoCa(Yu等,2022)將對比任務和生成任務統一為單一預訓練階段,而我們的方法等效于將兩者分步進行:(i) 使用對比任務預訓練圖像編碼器;(ii) 使用生成任務聯合預訓練圖像編碼器與文本解碼器。

文本解碼器是用于預測文本描述的Transformer模塊,由多個Transformer塊組成,每個塊包含自注意力層和前饋層。文本經分詞并嵌入為D維向量后,與位置編碼相加并通過層歸一化處理。圖像特征與文本嵌入向量拼接后作為Transformer模塊的輸入。文本以[BOS]標記起始,并以自回歸方式解碼直至[EOS]標記或達到最大步長。如圖3所示的序列到序列注意力掩碼確保文本標記僅依賴先前標記及所有圖像標記,同時圖像標記可相互關注——這與單向注意力掩碼不同(后者不允許所有圖像標記相互依賴)。

我們未對圖像編碼器進行精細初始化,而是隨機初始化文本解碼器。這一設計選擇受Wang等(2020)實驗研究的啟發:隨機初始化與BERT初始化相比性能相當,可能因為BERT初始化無法理解對視覺語言任務至關重要的圖像信號。擺脫初始化依賴后,我們能更自由探索不同架構設計。并行研究Flamingo(Alayrac等,2022)采用類似的"圖像編碼器+文本解碼器"架構,但其解碼器經預訓練后凍結以保留大語言模型的泛化能力;而在GIT中,所有參數均參與更新以更好適配視覺語言任務。另一種替代架構是基于交叉注意力的解碼器(通過交叉注意力融合圖像信號而非與自注意力拼接)。補充材料(附錄G.2)的實驗表明:在大規模預訓練下,基于自注意力的解碼器整體性能更優;而在小規模訓練時,基于交叉注意力的方法更佳。合理解釋是:充足訓練時解碼器參數能同時處理圖像與文本,且自注意力機制可使圖像標記在文本生成過程中更好更新;而交叉注意力會限制圖像標記間的相互關注。

在這里插入圖片描述

3.2 預訓練

對于每個圖像-文本對,設I表示圖像, y i ( i ∈ 1 , . . . , N ) y_i(i ∈ {1, ..., N}) yi?i1,...,N表示文本標記, y 0 y_0 y0?為[BOS]標記, y N + 1 y_{N+1} yN+1?為[EOS]標記。我們采用語言建模(LM)損失進行模型訓練,即:

l = 1 N + 1 ∑ i = 1 N + 1 C E ( y i , p ( y i ∣ I , { y j , j = 0 , ? , i ? 1 } } ) , (1) l = { \frac { 1 } { N + 1 } } \sum _ { i = 1 } ^ { N + 1 } \mathrm { C E } ( y _ { i } , p ( y _ { i } | I , \{ y _ { j } , j = 0 , \cdots , i - 1 \} \} ) , \tag{1} l=N+11?i=1N+1?CE(yi?,p(yi?I,{yj?,j=0,?,i?1}}),(1)

其中CE表示采用標簽平滑系數為0.1的交叉熵損失函數。

另一種選擇是掩碼語言建模(MLM),該方法通常每次迭代預測15%的輸入標記。若要預測全部標記,至少需要運行1/0.15≈6.7個訓練周期。而語言建模(LM)每次迭代可預測所有標記,對于大規模預訓練數據效率更高。Hu等(2021a)的消融實驗也表明,LM在有限周期內能獲得更優性能。由于計算資源限制,我們的大規模訓練僅進行2個周期,因此選擇LM。此外,近期大規模語言模型(如Brown等,2020;Chowdhery等,2022)也多基于LM架構。若去除圖像輸入,該模型可退化為僅含解碼器的語言模型(架構類似GPT-3),這種設計未來可通過純文本數據擴展解碼器能力,我們將此留作后續工作。

3.3 微調

圖像描述生成:由于訓練數據格式與預訓練階段相同,我們采用相同的LM任務進行微調。

視覺問答(VQA):微調時將問題與真實答案拼接為特殊描述文本,但僅對答案及[EOS]標記計算LM損失。推理時,問題作為描述前綴,生成部分作為預測結果。相比現有VQAv2方法(Wang等,2021a;b;Zhang等,2021a;Li等,2022b),我們的生成式模型無需預定義候選答案(即使在推理階段),這要求模型至少預測兩個正確標記(答案標記與[EOS]標記)。現有方法則將問題轉化為分類任務,僅需單次預測。盡管生成式方法在VQAv2上性能略遜于判別式方法,我們仍選擇其自由形式答案的優勢。對于場景文本相關VQA任務,現有方法(Yang等,2021c;Hu等,2020)通常依賴OCR引擎和動態指針網絡,而我們的模型通過大規模預訓練自主學會讀取場景文本,在此類任務上達到新SOTA。

視頻任務:盡管模型未專門針對視頻設計,但通過簡單架構調整(從視頻片段采樣多幀,經圖像編碼器獨立編碼后添加可學習時序嵌入,最后拼接特征)即可實現競爭力甚至SOTA性能。

圖像分類:將類別名稱視為圖像描述,以自回歸方式微調GIT進行預測。不同于現有基于預定義詞表與線性分類層的方法,這種生成式方案便于新增數據和類別時無需引入新參數即可持續訓練。

溫馨提示:
閱讀全文請訪問"AI深語解構" GIT: 一個用于視覺與語言的生成式圖像到文本轉換 Transformer

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

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

相關文章

20250706-9-Docker快速入門(下)-Docker在線答疑_筆記

一、Kubernetes核心概念與集群搭建 1. 在線答疑  1)答疑Docker需要掌握到什么程度 學習目標:達到入門水平即可,重點掌握第一章Docker入門視頻內容學習建議:預習時間約3-4小時,建議吸收視頻內容的80%學…

Node.js-http模塊

HTTP 協議 概念 HTTP(hypertext transport protocol)協議;中文叫超文本傳輸協議,是一種基于TCP/IP的應用層通信協議這個協議詳細規定了 瀏覽器 和萬維網 服務器 之間互相通信的規則。協議中主要規定了兩個方面的內容 客戶端:用來…

Java JDBC的初步了解

文章目錄 基本流程注冊驅動的兩種方法DriverManagerDriverManager 的核心作用核心原理自動注冊驅動的機制關鍵方法 示例代碼: 連接Mysql數據庫StatementPreparedStatement JDBC全稱Java DataBase Connectivity。 定義: JDBC 是 Java 語言中用于連接和執行 SQL 操作的標準接口。…

[netty5: ChunkedInput ChunkedWriteHandler]-源碼分析

ChunkedInput ChunkedInput<B> 是 Netty 中用于按塊讀取不定長數據流的接口&#xff0c;常配合 ChunkedWriteHandler 實現流式寫入&#xff0c;支持如文件、流、HTTP 和 WebSocket 等多種數據源。 實現類簡要說明ChunkedFile用于將常規文件按塊傳輸&#xff08;使用傳統…

QT 第十二講 --- 控件篇 LineEdit,TextEdit與ComboBox

前言&#xff1a;歡迎進入 QT 控件世界的第十二講&#xff01;在上一講《QT 第十一講 --- 控件篇 LCDnumber&#xff0c;ProgressBar與CalenderWidget》中&#xff0c;我們探索了用于信息展示和狀態反饋的控件&#xff1a;精準的數字顯示器 LCD Number、直觀的進度指示器 Progr…

VSCode遇到的一些小毛病(自動保存、運行后光標不再處于編輯區)

1. 右鍵點擊Run Code沒有觸發自動保存 1. 打開 VS Code 設置&#xff08;Ctrl ,&#xff09; 2. 搜索&#xff1a;code runner save 3. 勾選你需要的 2. 運行后光標仍然處于編輯區&#xff08;容易誤輸入&#xff09; 1. 打開 VS Code 設置&#xff08;Ctrl ,&#xff09; 2.…

Maixcam的使用2

1.單文件和項目&#xff08;多個 py 文件項目/模塊化&#xff09;# 在編寫代碼時&#xff0c;一般兩種模式&#xff0c;執行單個文件&#xff0c;或者執行一個完成項目&#xff08;包含多個 py 文件或者其它資源文件&#xff09;。 單文件模式&#xff1a;MaixVision 創建或者…

征信系統架構思想:打造商業信任基石_東方仙盟—仙盟創夢IDE

一、建設必要性在復雜的商業環境中&#xff0c;企業面臨多元交易對象與業務場景&#xff0c;準確評估合作方信用狀況及潛在價值的難度顯著增加。傳統經驗判斷和簡單背景調查存在局限性&#xff0c;難以滿足現代商業決策需求&#xff0c;因此構建科學的征信體系具有現實必要性。…

網安-XSS-pikachu

介紹 XSS&#xff0c;即跨站腳本攻擊&#xff0c;是指攻擊者利用Web服務器中的代碼漏洞&#xff0c;在頁面中嵌入客戶端腳本&#xff08;通常是一段由JavaScript編寫的惡意代碼&#xff09;&#xff0c;當信任此Web服務器的用戶訪問 Web站點中含有惡意腳本代碼的頁面&#xff…

算法入門——字典樹(C++實現詳解)

字典樹&#xff08;Trie&#xff09;是處理字符串匹配的高效數據結構&#xff0c;廣泛應用于搜索提示、拼寫檢查等場景。本文將帶你從零掌握字典樹的原理與實現&#xff01; 一、什么是字典樹&#xff1f; 字典樹&#xff08;Trie&#xff09;是一種樹形數據結構&#xff0c;…

SpringBoot整合SpringCache緩存

SpringBoot整合SpringCache使用緩存 文章目錄SpringBoot整合SpringCache使用緩存1.介紹2.SpringBoot整合1.導入xml依賴2.配置yml3.使用EnableCaching啟用SpringCache4.Cacheable5.CachePut6.CacheEvict7. Caching8.CacheConfig3.其他屬性配置1.keyGenerator 屬性2. cacheManage…

WPF學習筆記(20)Button與控件模板

Button與控件模板一、 Button默認控件模板詳解二、自定義按鈕模板一、 Button默認控件模板詳解 WPF 中的大多數控件都有默認的控件模板。 這些模板定義了控件的默認外觀和行為&#xff0c;包括控件的布局、背景、前景、邊框、內容等。 官方文檔&#xff1a;https://learn.mic…

藍天居士自傳(1)

藍天居士何許人&#xff1f; 藍天居士是我的筆名&#xff0c;也可以說是號。就好像李白號青蓮居士、歐陽修號六一居士一樣。筆者本名彭昊 —— 一個有不少重名重姓者的名字。 筆者小的時候上語文課&#xff0c;無論是小學、初中抑或是高中&#xff0c;都會有魯迅&#xff08;…

短劇系統開發定制全流程解析:從需求分析到上線的專業指南

一、短劇行業數字化趨勢與系統開發必要性在短視頻內容爆發式增長的時代背景下&#xff0c;短劇作為一種新興的內容形式正在迅速崛起。數據顯示&#xff0c;2023年中國短劇市場規模已突破300億元&#xff0c;用戶規模達到4.5億&#xff0c;年增長率超過200%。這一迅猛發展的市場…

getBoundingClientRect() 詳解:精準獲取元素位置和尺寸

getBoundingClientRect() 是 JavaScript 中一個強大的 DOM API&#xff0c;用于獲取元素在視口中的精確位置和尺寸信息。它返回一個 DOMRect 對象&#xff0c;包含元素的坐標、寬度和高度等關鍵幾何信息。 基本用法 const element document.getElementById(myElement); cons…

EXCEL 基礎技巧

來源&#xff1a;WPS 官網 初步了解WPS表格-WPS學堂https://www.wps.cn/learning/course/detail/id/635.html 1、格式刷 1.1使用格式刷隔行填充顏色。 首先設置部分表格顏色&#xff0c;選中此區域&#xff0c;雙擊點擊格式刷&#xff0c;然后選中其他表格區域。 這樣就可以…

【RK3568 編譯rtl8723DU驅動】

RK3568 編譯rtl8723DU驅動 編譯源碼1.解壓rtl8723du2.修改Makefile 驗證1.加載模塊2.開啟wifi 在驅動開發中&#xff0c;驅動的編譯與集成是實現設備功能的關鍵環節。本文聚焦于基于 RK3568 處理器平臺編譯 RTL8723DU WiFi/BT 二合一模塊驅動的完整流程&#xff0c;涵蓋源碼編譯…

基于Simulink的二關節機器人獨立PD控制仿真

文章目錄 理論模型仿真窗口控制函數目標函數仿真 本文是劉金琨. 機器人控制系統的設計與MATLAB仿真的學習筆記。 理論模型 對于二關節機器人系統&#xff0c;其動力學模型為 D ( q ) q C ( q , q ˙ ) q ˙ r D(q)\ddot qC(q,\dot q)\dot q r D(q)q?C(q,q˙?)q˙?r 式…

【技術架構解析】國產化雙復旦微FPGA+飛騰D2000核心板架構

本文就一款基于飛騰D2000核心板與兩片高性能FPGA的國產化開發主板進行技術解析&#xff0c;包括系統架構、主要硬件模塊、關鍵接口及軟件環境&#xff0c;重點闡述各子系統間的數據路徑與協同工作方式&#xff0c;旨在為行業內同類產品設計與應用提供參考。 隨著國產化要求的加…

Python 數據分析:計算,分組統計1,df.groupby()。聽故事學知識點怎么這么容易?

目錄1 示例代碼2 歡迎糾錯3 論文寫作/Python 學習智能體1 示例代碼 直接上代碼。 def grpby1():xls "book.xls"df pd.DataFrame(pd.read_excel(xls, engine"xlrd"))print(df)"""序號 分類 銷量0 1 文學 51 2 計算機…