基于CLIP特征的多模態大模型中的視覺短板問題

【論文極速讀】 基于CLIP特征的多模態大模型中的視覺短板問題
FesianXu 20240706 at Tencent WeChat search team

前言

今天讀到篇CVPR 24’的論文 [1],討論了常見的多模態大模型(大多都基于CLIP語義特征,以下簡稱為MLLM)中的視覺短板問題,筆者感覺挺有意思的就簡單筆記下,希望對讀者有所幫助。如有謬誤請見諒并聯系指出,本文遵守CC 4.0 BY-SA版權協議,轉載請聯系作者并注明出處,謝謝

? \nabla ? 聯系方式:

  • e-mail: FesianXu@gmail.com

  • github: https://github.com/FesianXu

  • 知乎專欄: 計算機視覺/計算機圖形理論與應用

  • 微信公眾號:機器學習雜貨鋪3號店

請訪問github page以獲得最佳閱讀效果:
https://fesianxu.github.io/2024/07/06/20240706-visual-shortcome-mllm/


如今的大多數多模態大模型,其視覺輸入側采用的視覺編碼器,都是依照CLIP的訓練方式,采用大規模對比學習進行訓練的。在論文 [1] 中,作者發現CLIP特征具有某些視覺短板,從而導致基于此的MLLM也受到了影響。作者觀察到,在一些簡單直接(不需要復雜推理)的問題上,MLLM似乎并不能很好解決,如Fig 1所示,一些光從圖片中就能很容易判斷的問題,如頭的朝向、眼睛數量、車門的狀態等,強大的mllm反而不能很好地理解,經常會出現“睜眼說瞎話”的情況。這不禁讓人好奇,是因為視覺側沒有對圖片內容進行完備準確的描述(也就是“眼睛出問題了”)?還是作為底座的大語言模型沒有理解好視覺側提供的信息呢(也就是“大腦出問題了”)? 本文就嘗試在探索這個問題。

fig_1_mllm_cases

Fig 1. 一些簡單直接的視覺問題,mllm并不能很好的解決,這不禁讓人好奇是為什么?“大腦”還是“眼睛”的問題?

作者認為是CLIP視覺特征的問題,也就是MLLM的“眼睛”有“視覺問題”,導致其“睜眼說瞎話”。考慮到在Fig 1中是一些明顯直接的視覺問題,作者假設CLIP在視覺問題上可能存在固有的缺陷,這個缺陷通過擴大模型規模和數據尺度可能都無法彌補。 為了驗證這個觀點,作者想出了這樣一個招兒。

CLIP是弱監督模型,建模了圖片的語義信息,而描述圖片本身的視覺信息,則可以考慮視覺自監督模型(SSL),比如MAE、MoCo或者DINOv2等,如果一個圖片對 < I i , I j > <I_i, I_j> <Ii?,Ij?>,其CLIP打分 s C L I P ( I i , I j ) s_{CLIP}(I_i,I_j) sCLIP?(Ii?,Ij?)很小,但是其自監督模型打分 s S S L ( I i , I j ) s_{SSL}(I_i, I_j) sSSL?(Ii?,Ij?)卻很大,如Fig 2 step 1所示,這意味著這個圖片對在語義上接近,但是視覺上卻有比較大的差異。注意到,通過CLIP訓練出來的語義,通常是比較偏向于實體的,如Fig 2.所示,兩張圖中如果都是出現同一個實例(instance),CLIP特征就可能沒有區分度。因此作者在ImageNet和LAION-Aesthetics 數據集中,采集了很多被稱之為CLIP-blind(筆者譯為,CLIP視盲)的圖片對,其采集規則為:
s C L I P ( I i , I j ) > 0.95 & s D I N O v 2 ( I i , I j ) < 0.6 (1) s_{CLIP}(I_i, I_j) > 0.95 \ \& \ s_{DINOv2}(I_i, I_j) < 0.6 \tag{1} sCLIP?(Ii?,Ij?)>0.95?&?sDINOv2?(Ii?,Ij?)<0.6(1)
對于采集得到的CLIP視盲樣本,人工去確認其視覺差異的來源,并且給出一個選擇題,這個選擇題后續可以交給待評測的MLLM,從而評測不同MLLM的CLIP視盲程度。這里的選擇題,通常如Fig 2. step 2所示,就是讓MLLM去判斷這兩張圖片之間的細微視覺差別,如圖中動物頭的朝向等,都是可以直接從圖片中獲取的視覺信息,不需要模型進行復雜推理。待評測的MLLM只有在CLIP視盲樣本對中,對兩張圖片的結果都正確了,才能算為是對這個case的一個有效解。最終作者收集了150個CLIP視盲樣本對,并且提供了300個選擇題,作者將這個測試集稱之為MMVP(Multimodal Visual Patterns)基準。

fig_2_mmvp_dataset

Fig 2. 采集MMVP數據集,用于驗證CLIP是否在基礎視覺問題上存在缺陷。

作者首先去評估了MMVP基準的可靠性,考慮先拿市面上可用的MLLM(都是采用的CLIP視覺編碼)在這個基準上進行測試。同時,作者請評估者對這300個選擇題進行了標注,發現人工的準確率是95.7%,這是一個很高的基線,也說明了MMVP中的視覺問題的確是一些基礎的視覺問題。然而,作者發現大部分模型的結果甚至還不如隨機猜測(25%),即便是表現最好的Gemini(40.7%),也和人工表現差了一大坨。

在這里插入圖片描述

Fig 3. 拿市面上可用的MLLM在MMVP基準上進行測試,發現大部分MLLM的準度甚至不如隨機猜測的結果。

看起來,MLLM確實在這些簡單的視覺問題上無能為力,究竟這些視覺問題有什么樣本的固有模式能困倒“萬能”的大模型呢?作者將MMVP樣本交給GPT-4v進行判斷其帶有的視覺模式,發現了如Fig 4.所示的9種視覺模式。上面的試驗說明了MLLM在這些視覺模式上存在固有缺陷,但是這個問題是否是從CLIP帶來的呢?這個問題仍未得到解答。

fig_4_visual_pattern

Fig 4. 采用GPT4v,對mmvp基準數據中的視覺模式進行挖掘。

作者采用不同規模的類CLIP模型,將MMVP基準(每個樣本都進行了視覺模式的歸屬)的圖片對和其文本進行匹配,如Fig 5所示,只有完全能匹配上的CLIP視盲對樣本才認為是有效的一次驗證。從結果上看,不難發現在大多數的視覺模式下,增大CLIP的模型規模和圖片分辨率都沒有幫助,并且ImageNet-1k ZeroShot上的指標和MMVP指標并沒有太大相關性。這意味著

  • 當前CLIP在這些視覺問題上準確率很低,MMVP平均值最高的都不超過40%。
  • 即便增加CLIP的模型規模,數據規模,圖片分辨率等,都無法有本質上的提升。

這意味著,CLIP特征在這些視覺問題上是存在固有缺陷的。

fig_5_vit_scaling_for_vp

Fig 5. 采用不同的類CLIP模型對MMVP中的CLIP視盲對樣本進行文本-圖片的匹配,統計在不同視覺模式問題上的準度。

當然了,CLIP存在固有缺陷,并不代表著其結合LLM后就表現一定糟糕(因為LLM可能會彌補CLIP的缺陷),是否能找到這兩者的相關性呢?如Fig 6.所示,CLIP在不同視覺模式下的表現曲線,和MLLM的性能曲線變化是相當一致的。據作者統計,LLava和InstructBLIP和CLIP特征的性能表現之間的相關系數超過了0.7,這意味著存在著很大的相關性。當然,在文本問題上,GPT4和Gemini的表現存在異常的高,筆者不負責任地猜測是因為商業LLM,系統繼承了某些OCR能力。

fig_6_vit_emb_llm_perf

Fig 6. CLIP特征的表現和集成了CLIP的MLLM的表現,在各個視覺模式問題下具有相似的性能趨勢,間接地說明了CLIP特征就是導致MLLM在這些視覺模式下出現缺陷的主要原因。

那么怎么解決這個問題呢? 一種合理的想法是,既然CLIP特征存在缺陷,那么我們就在MLLM中引入另外的視覺特征唄,考慮到這些CLIP視盲樣本是采用DINOv2特征采集的,那么我們將引入DINOv2特征就好咯,這個想法稱之為特征混合(Mixture of Feature,MoF)。也就是說,MLLM的視覺側特征,應該同時具有語義能力視覺自身的能力。作者基于這個想法,進行了兩種模型設計,如Fig 7所示,分別是加性的特征混合、交織的特征混合。

作者發現加性的特征混合方法,的確能大幅度提升MMVP指標(5.5 -> 18.7, +13.2),但是其指令跟隨能力也會極度地下降(81.8 -> 75.8, -6.0),要犧牲指令跟隨能力還是不舍得的。作者又繼續嘗試了基于拼接的方法,不過作者不是將兩個特征直接相拼,而是將其中的視覺特征交織地拼接。筆者猜測,是因為CLIP編碼器和DINO編碼器都是采用的Visual Transformer模型,因此對圖片進行了分塊,將語義特征和視覺特征相鄰拼接在一起,其存在“彼此之間的能力增強”,不過這是筆者腦補的哈哈哈嗝。不管怎么說,這樣搞了后,在不犧牲指令跟隨能力的情況下(81.8->82.8, +1.0),還能得到MMVP能力的提升哦(5.5 -> 16.7, +10.7)。

fig_7_mof

Fig 7. 兩種不同的MoF模型,加性和交織。

筆者看完后呢,還是比較認同這篇論文的結論的。不同的是,筆者之前雖然不是大模型的應用場景,而主要是站在視頻搜索業務落地多模態能力過程中的經驗去看待這個工作。如博文 [4] 所說的,筆者在規劃多模態基礎算子能力的時候,就認為CLIP語義特征雖然很強大,但是描述的問題大多是基于語義的,在一些需要考慮視頻本身視覺結構問題上(如質量、后驗應用),應該基于自監督的方法進行建模。這篇文章算是提供了一個很不錯的參考,嘿嘿嘿。

Reference

[1]. Tong, Shengbang, Zhuang Liu, Yuexiang Zhai, Yi Ma, Yann LeCun, and Saining Xie. “Eyes wide shut? exploring the visual shortcomings of multimodal llms.” In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp. 9568-9578. 2024.

[2]. Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, et al. Learning transferable visual models from natural language supervision. In ICML, 2021. aka CLIP

[3]. Maxime Oquab, Timothee Darcet, Theo Moutakanni, Huy Vo, Marc Szafraniec, Vasil Khalidov, Pierre Fernandez, Daniel Haziza, Francisco Massa, Alaaeldin El-Nouby, et al. DINOv2: Learning robust visual features without supervision. arXiv preprint arXiv:2304.07193, 2023 aka DINO v2

[4]. https://fesianxu.github.io/2024/06/30/video-retrieval-multimodal-20240630/, 《萬字淺析視頻搜索系統中的多模態能力建設》

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

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

相關文章

若依 / ruoyi-ui:執行yarn dev 報錯 esnext.set.difference.v2.js in ./src/utils/index.js

一、報錯信息 These dependencies were not found: * core-js/modules/esnext.set.difference.v2.js in ./src/utils/index.js * core-js/modules/esnext.set.intersection.v2.js in ./src/utils/index.js * core-js/modules/esnext.set.is-disjoint-from.v2.js in ./src/utils…

Python處理表格數據常用的 N+個操作

Python作為一種強大且易用的編程語言&#xff0c;其在數據處理方面表現尤為出色。特別是當我們面對大量的表格數據時&#xff0c;Python的各類庫和工具可以極大地提高我們的工作效率。以下&#xff0c;我將詳細介紹Python處理表格數據常用的操作。 首先&#xff0c;我們需要安…

2024.7.5總結

今晚的總結是在圖書館前的梯子上寫的&#xff0c;我多次輾轉&#xff0c;可能是我最后一次看看這個學校了&#xff0c;明天就要踏上回家的旅途了。還有半個月入職&#xff0c;干脆回家看看&#xff0c;畢竟&#xff0c;工作以后機會不多了。 下午的時候&#xff0c;用順豐寄了…

復現YOLO_ORB_SLAM3_with_pointcloud_map項目記錄

文章目錄 1.環境問題2.遇到的問題2.1編譯問題1 monotonic_clock2.2 associate.py2.3 associate.py問題 3.運行問題 1.環境問題 首先環境大家就按照github上的指定環境安裝即可 環境怎么安裝網上大把的資源&#xff0c;自己去找。 2.遇到的問題 2.1編譯問題1 monotonic_cloc…

ASP.NET Core----基礎學習01----HelloWorld---創建Blank空項目

文章目錄 1. 創建新項目--方式一&#xff1a; blank2. 程序各文件介紹&#xff08;Project name &#xff1a;ASP.Net_Blank&#xff09;&#xff08;1&#xff09;launchSettings.json 啟動方式的配置文件&#xff08;2&#xff09;appsettings.json 基礎配置file參數的讀取&a…

ChatGPT:SpringBoot解決跨域問題方法-手動設置請求頭

ChatGPT&#xff1a;SpringBoot解決跨域問題方法-手動設置請求頭 這里的設置響應頭是為了發送請求方還是接收請求方 設置響應頭是為了發送請求方。具體來說&#xff0c;添加 Access-Control-Allow-Origin 頭部是為了告訴瀏覽器&#xff0c;哪些域名可以訪問資源。當設置為 * 時…

Java求自然常數e的近似值(課堂實例1)

??引言&#x1f383;&#x1f383; ?點關注編程夢想家&#xff08;大學生版&#xff09;-CSDN博客不迷路~~~~~~? 自然常數 &#x1d452;e 是數學中一個非常重要的常數&#xff0c;約等于 2.71828&#xff0c;它在自然對數、復合利息計算等領域有著廣泛的應用。本文將介紹如…

自動批量將阿里云盤文件發布成WordPress文章腳本源碼(以RiPro主題為例含付費信息下載地址SEO等自動設置)源碼

背景 很多資源下載站&#xff0c;付費資源下載站&#xff0c;付費內容查看等都可以用WordPress站點發布內容&#xff0c;這些站點一般會基于一個主題&#xff0c;付費信息作為文章附屬的信息發布&#xff0c;底層存儲在WP表里&#xff0c;比如日主題&#xff0c;子比主題等。 …

掌握IPython的`%%debug`:深入交互式調試的藝術

IPython是一個功能豐富的交互式Python解釋器&#xff0c;它為Python開發者提供了許多便捷的功能&#xff0c;其中之一就是%%debug魔法命令。%%debug是IPython提供的一種快速進入調試模式的方法&#xff0c;它允許用戶在代碼執行出錯時立即開始調試&#xff0c;而無需單獨啟動調…

Apache Seata tcc 模塊源碼分析

本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 一 .導讀 spring 模塊分析中講到&#xff0c;Seata 的 spring 模塊會對涉及到分布式業務的 b…

《夢醒蝶飛:釋放Excel函數與公式的力量》9.2 FV函數

9.2 FV函數 FV函數是Excel中用于計算投資或貸款在若干期后的未來值的函數。它是一個非常實用的財務函數&#xff0c;能夠幫助我們快速計算投資的最終價值或貸款的期末余額。 9.2.1 函數簡介 FV函數用于計算基于定期固定支付和固定利率的投資或貸款的未來值。未來值是指在一定…

cs224n作業3 代碼及運行結果

代碼里要求用pytorch1.0.0版本&#xff0c;其實不用也可以的。 【刪掉run.py里的assert(torch.version “1.0.0”)即可】 代碼里面也有提示讓你實現什么&#xff0c;弄懂代碼什么意思基本就可以了&#xff0c;看多了感覺大框架都大差不差。多看多練慢慢來&#xff0c;加油&am…

中英雙語介紹美國的州:阿肯色州(Arkansas)

中文版 阿肯色州簡介 阿肯色州&#xff08;Arkansas&#xff09;位于美國南部&#xff0c;以其多樣的自然景觀、豐富的文化遺產和不斷發展的經濟而聞名。以下是對阿肯色州的詳細介紹&#xff0c;包括其地理位置、人口、經濟、教育、文化和主要城市。 地理位置 阿肯色州東臨…

文件、文本閱讀與重定向、路徑與理解指令——linux指令學習(一)

前言&#xff1a;本節內容標題雖然為指令&#xff0c;但是并不只是講指令&#xff0c; 更多的是和指令相關的一些原理性的東西。 如果友友只想要查一查某個指令的用法&#xff0c; 很抱歉&#xff0c; 本節不是那種帶有字典性質的文章。但是如果友友是想要來學習的&#xff0c;…

PD虛擬機怎么聯網?PD虛擬機安裝Win11無法上網 pd虛擬機連不上網怎么解決 mac安裝windows虛擬機教程

PD虛擬機既可以聯網使用&#xff0c;也可以單機使用。如需將PD虛擬機聯網&#xff0c;可以共享Mac原生系統的網絡&#xff0c;其使用體驗與真實系統無異。本文會詳細講解PD虛擬機如何聯網&#xff0c;并會進一步解決PD虛擬機安裝Win10無法上網的問題。 如果有網絡相關問題的小伙…

游戲服務器搭建選VPS還是專用服務器?

游戲服務器搭建選VPS&#xff0c;VPS能夠提供控制、性能和穩定性。它不僅僅是讓游戲保持活力。它有助于減少延遲問題&#xff0c;增強您的游戲體驗。 想象一下&#xff1a;你正沉浸在一場游戲中。 勝利在望。突然&#xff0c;屏幕卡住——服務器延遲。 很崩潰&#xff0c;對…

C語言實現【程序設計與實踐】實驗三:自動售貨機

聲明&#xff1a;著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。 附上c版http://t.csdnimg.cn/BbDSL https://blog.csdn.net/As_sBomb/article/details/105485940 實驗三&#xff1a;自動售貨機 題目&#xff1a; 圖所示為簡易自動售貨…

1493. 刪掉一個元素以后全為 1 的最長子數組

1493. 刪掉一個元素以后全為 1 的最長子數組 題目鏈接&#xff1a;1493. 刪掉一個元素以后全為 1 的最長子數組 代碼如下&#xff1a; class Solution { public://滑動窗口int longestSubarray(vector<int>& nums){int res 0;int count 0;//記錄碰到0的個數int …

【MYSQL】事務隔離級別以及InnerDB底層實現

事務隔離級別 讀未提交&#xff08;Read Uncommitted&#xff09; 允許事務讀取其他事務未提交的數據&#xff0c;可能會導致臟讀。 讀已提交&#xff08;Read Committed&#xff09; 一個事務只能看見已經提交的事務所做的更改&#xff0c;可以避免臟讀&#xff0c;但可能…

win7系統快速安裝python

下載安裝包 建議選擇python3.8左右的&#xff0c;我下載的是3.7.8&#xff0c;最新版本的pythonwin7可能不支持 python網址 下拉尋找 安裝python 1.雙擊安裝包 更換完地址選擇安裝(install) 安裝完成后點擊close即可 測試是否安裝成功 1.winr快捷鍵打開黑窗口輸入cmd …