【大模型理論篇】CogVLM:多模態預訓練語言模型

1. 模型背景

????????前兩天我們在《Skywork R1V: Pioneering Multimodal Reasoning with Chain-of-Thought》中介紹了將ViT與推理模型結合構造多模態推理模型的案例,其中提到了VLM的應用。追溯起來就是兩篇前期工作:Vision LLM以及CogVLM。

? ? ? ? 今天準備回顧一下CogVLM。視覺語言模型具有很強的通用性。許多視覺和跨模態任務可以被表述為下一個token預測。

????????先來看張圖,CogVLM直接拉滿。CogVLM通過在注意力和FFN層中引入可訓練的視覺專家模塊,在預訓練的語言模型和圖像編碼器之間建立了橋梁。這種方法使得視覺語言特征能夠深度融合,并且不會犧牲任何自然語言處理任務的性能。CogVLM-17B在17個經典跨模態基準測試中取得了最先進的表現,包括NoCaps、Flicker30k等圖像標注數據集,OKVQA、TextVQA、OCRVQA、ScienceQA等VQA數據集,MM-Vet、MMBench、SEED-Bench、LLaVABench、POPE、MMMU、MathVista等LVLM基準測試,以及RefCOCO、RefCOCO+、RefCOCOg、Visual7W等視覺定位數據集。

2. 模型結構

????????CogVLM的模型,用于實現圖像文本的聯合理解與生成。該模型包括四個基本組件:視覺Transformer編碼器、多層感知機適配器、預訓練的大語言模型以及視覺專家模塊。其中,視覺專家模塊能夠將不同注意力頭的語義信息映射到不同的特征空間中,從而實現深度視覺語言特征對齊。該模型采用了統一指令監督微調(SFT)的方式對數據進行訓練。

????????ViT 編碼器。在 CogVLM-17B 中使用了預訓練的 EVA2-CLIP-E。由于其專門用于對比學習聚合 [CLS] 特征,因此移除了 ViT 編碼器的最后一層。

????????MLP適配器。為了將ViT的輸出映射到與單詞嵌入的文本特征相同的空間中,使用了MLP適配器,一個兩層MLP(SwiGLU)。在語言模型中所有圖像特征共享相同的詞元位置ID。

????????預訓練的大語言模型。CogVLM 的模型設計與GPT風格預訓練大模型兼容。具體來說,CogVLM-17B 采用 Vicuna1.5-7B 進行進一步訓練。對所有注意力操作(包括圖像特征之間的注意力)應用因果遮蓋。

????????視覺專家模塊。在每一層中添加一個視覺專家模塊,以實現深度視覺語言特征對齊。具體來說,每個層中的視覺專家模塊由一個 QKV 矩陣和每個層中的 MLP 組成。QKV 矩陣和 MLP 的形狀與預訓練的語言模型相同,并從其中進行初始化。語言模型中的每個注意力頭都會捕獲語義信息的不同方面,而可訓練的視覺專家可以將圖像特征轉換為與不同頭部對齊,從而實現深度融合。

????????位置嵌入。在 RoPE 中,允許所有視覺token共享一個單個的位置 ID,因為當它們被輸入到 ViT 時,它們已經包含了位置信息。這種方法緩解了 LLM 中token之間的遠程注意力衰減的影響。由于一張圖片可以占據數百到數千個token,并且典型的輸入序列結構為 "?query",使用傳統的位置編碼會導致過長的編碼序列。此外,它還會導致查詢更多地關注更接近它的圖像序列,即圖像的下部分。

3. 論文實驗

3.1 預訓練

3.1.1 數據

????????用于預訓練的圖像文本對都是公開可用的,包括LAION-2B和COYO-700M。在刪除了損壞的URL、NSFW 圖像、帶有嘈雜標題的圖像、具有政治偏見的圖像以及具有 >6 或 <1/6 的寬高比的圖像后,大約有 15 億張圖像可用于預訓練。

? ? ? ? 此外,還制作了一個包含 4000 萬張圖像的visual grounding數據集。圖像標題中的每個名詞都與邊界框相關聯,以指示圖像中的位置。構建過程,通過spaCy提取名詞,并使用GLIPv2預測邊界框。圖像文本對是從LAION-115M中采樣而來的,是濾過的LAION-400M的一個子集。篩選并保留了4000萬張圖像的一部分,以確保超過75%的圖像至少包含兩個邊界框。

3.1.2 訓練

????????預訓練的第一階段是圖像標題損失,即文本部分的下一個token預測。在上面介紹的 15 億對圖像-文本對上用批量大小為 8,192 的方式訓練了 120,000 次 CogVLM-17B 模型。預訓練的第二階段是圖像標題生成和指代表達式理解(REF)的混合。REF 是一項任務,根據對象的文本描述來預測圖像中的邊界框,以視覺問答的形式進行訓練,例如問題:物體在哪里?回答:[[x0, y0, x1, y1]]。x 和 y 坐標范圍從 000 到 999,表示圖像中的歸一化位置。僅考慮“答案”部分中下一個token預測的損失。在上述介紹的文本-圖像對和視覺定位數據集上使用 1,024 的批量大小預訓練了第二階段模型 60,000 次迭代。在最后的 30,000 次迭代中,將輸入分辨率從 224x224 改為 490x490。總可訓練參數數量為 6.5B。這里之所以升維,是可以喂入更高精度更多細節的內容,提升模型的理解能力。

3.1.3 對齊

????????在指導對齊階段,訓練了兩個通用模型:CogVLM-Chat 和 CogVLM-Grounding。CogVLM-Chat 接受自然語言輸入和輸出,而 CogVLM-Grounding 則接受帶框的輸入和輸出。

????????CogVLM-Chat。在研究中整合了來自各種開源視覺問答數據集的數據,包括 VQAv2 ,OKVQA,TextVQA,OCRvQA,ScienceQA,以及以多輪對話格式編排的數據集,如LLaVA-Instruct,LRV-Instruction,LLaVAR。然后在這些多樣化的數據集上進行了統一指令監督微調(SFT)。SFT 數據的質量和完整性至關重要;最初通過僅使用語言GPT-4管道生成的LLaVA-Instruct數據集中存在某些不準確之處。需要通過手動檢查和注釋仔細糾正這些錯誤,以確保數據質量。視覺問答數據集通常以簡潔的形式呈現,通常是單個單詞的答案。為了適應這種多樣性,在搜索階段,需要使用格式為:(1)用于簡潔的回答(問題:簡短答案:);(2)用于擴展討論的提示(問題:答案:)。在訓練過程中,模型經過?6000 次迭代,學習率為 1e-5,批量大小為 1024。為了增強并確保訓練的穩定性,激活了視覺編碼器的參數,并將其學習率調整為剩余訓練參數的十分之一。

? ? ? ? CogVLM-Grounding。為了賦予模型一致、交互式的視覺語義定位能力,收集了一個高質量的數據集,該數據集包含四種類型的定位數據:(1) 基于圖像的標注(GC)——在圖像中每個名詞短語后跟相應的指代邊界框;(2) 表達式生成(REG) ——針對每張圖片,其上的每個邊界框都被標記上準確描述文本表達式;(3) 基于視頻的注釋(VG)——每個視頻幀都有與其對應的準確描述文本表達式;(4) 視覺問答(QA)——每個問題都帶有正確答案所在視頻幀的準確描述文本表達式。

3.2??多模態基準測試

? ? ? ? 圖像字幕生成。這些任務的主要目的是為給定圖像生成文本摘要,總結主要的內容。使用數據集包括 NoCaps,COCO ,Flickr30k ,以及TextCaps進行評估。

????????視覺問答。視覺問答任務要求模型根據給定的圖像回答可能側重于不同視覺內容的問題。評估涵蓋多種數據集,包括 VQAv2、OKVQA、TextVQA、OCRvQA和 ScienceQ。LVLM基準主要用于評估大型多模態模型的高級功能,如對象識別和定位、OCR、視覺描述和視覺知識推理。

????????視覺定位。通用模型在所有任務上都取得了不錯的性能。

3.3?裁剪研究

????????在 6,000 個迭代周期和批量大小為 8,192 的情況下進行消融研究。為了評估 CogVLM 模型的有效性,在多個結構變體和調優策略上進行,包括:

1)只調整 MLP Adapter 層;

2)調整所有 LLM 參數以及不添加視覺專家的 Adapter;

3)每四個 LLM 層僅添加一個視覺專家;

4)在所有層中僅向 FFN 添加視覺專家。????????

4. 參考材料

【1】CogVLM: Visual Expert for Pretrained Language Models

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

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

相關文章

Vue 項目編譯錯誤:These dependencies were not found,To install them, you can run...

問題與處理策略 問題描述 運行一個 Vue 項目時&#xff0c;報如下錯誤 ERROR Failed to compile with 47 errors …

python 模擬登錄

在Python中模擬登錄通常涉及到發送HTTP請求到服務器&#xff0c;并處理響應。這可以通過多種方式實現&#xff0c;最常見的方法之一是使用requests庫。下面是一個簡單的示例&#xff0c;展示了如何使用requests庫來模擬登錄一個網站&#xff08;以一個假想的登錄表單為例&#…

優化 Docker 鏡像 技巧

優化 Docker 鏡像可以提高構建速度、減少鏡像大小、提高安全性和效率。以下是一些優化 Docker 鏡像的方法&#xff1a; 使用適當的基礎鏡像 選擇合適的基礎鏡像可以減小鏡像大小&#xff0c;并確保基礎鏡像的安全性和更新性。Alpine、Ubuntu Minimal 等輕量級基礎鏡像是常用選…

2021年藍橋杯第十二屆CC++大學B組真題及代碼

目錄 1A&#xff1a;空間&#xff08;填空5分_單位轉換&#xff09; 2B&#xff1a;卡片&#xff08;填空5分_模擬&#xff09; 3C&#xff1a;直線&#xff08;填空10分_數學排序&#xff09; 4D&#xff1a;貨物擺放&#xff08;填空10分_質因數&#xff09; 5E&#xf…

Python入門基礎

python基礎類型轉換 str()與int()類型轉換 name 張三 age 20 print(type(name),type(age))print(我叫name 今年&#xff0c; str(age)歲 )a10 b198.8 cFalse print(type(a),type(b),type(c)) print(str(a),str(b),str(c))s1 128 f198.7 s276.77 ffTrue s3hello print(type(s…

HTTP/HTTPS 中 GET 請求和 POST 請求的區別與聯系

一、基礎概念 HTTP (HyperText Transfer Protocol, 超文本傳輸協議) 是一種用于瀏覽器與服務器之間進行數據交互的協議。HTTPS (加密的 HTTP) 則通過 SSL/TLS 協議實現通信加密與數據安全性。 二、GET 和 POST 概述 GET 請求: 用于從服務器獲取資源。 POST 請求: 用于將數據…

OPENCV數字識別(非手寫數字/采用模板匹配)

這篇文章的重點在于 模板匹配 的使用。模板匹配是計算機視覺中的一項基本技術&#xff0c;它通過比對輸入圖像與模板圖像的相似度&#xff0c;來進行目標識別。對于數字識別&#xff0c;特別是標準數字的識別&#xff0c;模板匹配非常有效。 請看效果&#xff1a; 文章結構 …

在 Kubernetes 中部署 Trivy 漏洞掃描服務

創建專用 Namespace # trivy-ns.yaml apiVersion: v1 kind: Namespace metadata: name: trivy-system配置持久化存儲&#xff08;緩存數據庫&#xff09; apiVersion: v1 kind: PersistentVolumeClaim metadata: name: trivy-db-cache namespace: trivy-system spec: acc…

Cursor安裝注冊+基礎配置+入門實操

一、安裝注冊 官網地址&#xff1a;https://www.cursor.com/ 下載按鈕會根據電腦系統來匹配&#xff0c;點擊對應「Download」按鈕進行下載。完成后&#xff0c;按步驟安裝即可。 安裝完成后&#xff0c;即可點擊圖標打開軟件。 基礎設置完成后&#xff0c;就需要選擇注冊賬號…

秒殺業務優化之從分布式鎖到基于消息隊列的異步秒殺

一、業務場景介紹 優惠券、門票等限時搶購常常出現在各類應用中&#xff0c;這樣的業務一般為了引流宣傳而降低利潤&#xff0c;所以一旦出現問題將造成較大損失&#xff0c;那么在業務中就要求我們對這類型商品嚴格限時、限量、每位用戶限一次、準確無誤的創建訂單&#xff0c…

MiniMax GenAI 可觀測性分析:基于阿里云 SelectDB 構建 PB 級別日志系統

“阿里云SelectDB作為MiniMax日志存儲服務的核心支撐&#xff0c;為在線和離線業務提供了高效、穩定的查詢與聚合分析能力。其支持實時物化視圖、租戶資源隔離、冷熱分離等企業級特性&#xff0c;不僅有效解決了日志場景下PB級別數據查詢的性能瓶頸&#xff0c;還通過智能化的資…

【YOLO V3】目標檢測 Darknet 訓練自定義模型

【YOLO V3】目標檢測 Darknet 訓練自定義模型 前言整體思路環境檢查與依賴配置克隆 YOLOv3 Darknet 并編譯Clone Darknet 項目文件修改 Makefile 文件修改模型保存頻率項目編譯 準備數據集配置訓練文件數據集&#xff1a;datasets &#xff08;自制&#xff09;權重文件 yolov3…

Kafka分區分配策略詳解

Kafka分區分配策略詳解 Kafka作為當前最流行的分布式消息隊列系統&#xff0c;其分區分配策略直接影響著系統的性能、可靠性和可擴展性。合理的分區分配不僅能夠提高數據處理的效率&#xff0c;還能確保系統負載的均衡。 Kafka提供了多種內置的分區分配策略&#xff0c;包括R…

C#中 String類API(函數)

字符串屬性 string str "打工人";Console.WriteLine(str);char s str[0];Console.WriteLine(s); 字符串內置API(函數) 1. Concat 拼接字符串 string s1 "打";string s2 "工";string s3 "人";string sthstring.Concat(s1, s2, s…

JavaScript性能優化實戰手冊:從V8引擎到React的毫秒級性能革命

目錄 一、性能優化的本質挑戰1.1 瀏覽器渲染管線的性能瓶頸2.1 內存管理優化2.2 執行效率優化2.3 網絡傳輸優化 三、React框架深度調優3.1 渲染性能優化3.2 性能監控體系 四、企業級優化案例4.1 電商平臺首頁優化4.2 數據可視化大屏優化 五、新一代性能優化技術5.1 WASM性能突破…

【PostgreSQL】pg各版本選用取舍邏輯與docker安裝postgres:15

企業常用 PostgreSQL 版本推薦 1. PostgreSQL 14&#xff08;最常見&#xff0c;穩定&#xff09; 目前許多企業仍在使用 PostgreSQL 14&#xff0c;因為它在性能、并發處理、JSON 支持等方面做了較多優化&#xff0c;同時又非常穩定。官方支持時間&#xff1a;2026 年 11 月…

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加導出數據功能

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 ?? 目錄 DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加導出數據功能??頁面效果??指令輸入?…

《Python實戰進階》第31集:特征工程:特征選擇與降維技術

第31集&#xff1a;特征工程&#xff1a;特征選擇與降維技術 摘要 特征工程是機器學習和數據科學中不可或缺的一環&#xff0c;其核心目標是通過選擇重要特征和降低維度來提升模型性能并減少計算復雜度。本集聚焦于特征選擇與降維技術&#xff0c;涵蓋過濾法、包裹法、嵌入法等…

避雷 :C語言中 scanf() 函數的錯誤?使用!!!

1. 返回值說明 scanf函數會返回成功匹配并賦值的輸入項個數&#xff0c;而不是返回輸入的數據。 可以通過檢查返回值數量來確認輸入是否成功。若返回值與預期不符&#xff0c;就表明輸入存在問題。 #include <stdio.h>int main() {int num;if (scanf("%d", …

Excel第41套全國人口普查

2. 導入網頁中的表格&#xff1a;數據-現有鏈接-考生文件夾&#xff1a;網頁-找到表格-點擊→變為√-導入刪除外部鏈接關系&#xff1a;數據-點擊鏈接-選中連接-刪除-確定&#xff08;套用表格格式-也會是刪除外部鏈接&#xff09;數值縮小10000倍&#xff08;除以10000即可&am…