基于CLIP特征的多模态大模型中的视觉短板问题

news2024/11/15 23:04:41
【论文极速读】 基于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.coloradmin.cn/o/1901232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云服务器配置、搭建(针对Spring boot和MySQL项目)

这是一篇极其详细且痛苦的文章&#xff0c;还是在两位后端的大佬手把手教导下、以及我找遍全网所有资料、问了N遍AI、甚至直接申请阿里云工单一对一询问客服一整天、连续清空再上传反复30多次整个项目jar包......总结出来的终极要人命踩坑的问题总结 一、首先购买服务器 其实不…

Apache Seata分布式事务及其三种模式详解

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata分布式事务及其三种模式详解 分布式事务 Seata 及其三种模式详解 | Meetup#3 回顾…

基于TCP的在线词典系统(分阶段实现)

1.功能说明 一共四个功能&#xff1a; 注册 登录 查询单词 查询历史记录 单词和解释保存在文件中&#xff0c;单词和解释只占一行, 一行最多300个字节&#xff0c;单词和解释之间至少有一个空格。 2.功能演示 3、分阶段完成各个功能 3.1 完成服务器和客户端的连接 servic…

【深度学习】图形模型基础(5):线性回归模型第四部分:预测与贝叶斯推断

1.引言 贝叶斯推断超越了传统估计方法&#xff0c;它包含三个关键步骤&#xff1a;结合数据和模型形成后验分布&#xff0c;通过模拟传播不确定性&#xff0c;以及利用先验分布整合额外信息。本文将通过实际案例阐释这些步骤&#xff0c;展示它们在预测和推断中的挑战和应用。…

编程上下文Context及其实现原理

编程上下文Context及其实现原理 author:shengfq date:2024-07-06 title:编程上下文Context及其实现原理 category:编程思想1.编程中的上下文Context是指什么? 在编程和软件工程领域&#xff0c;“上下文”&#xff08;Context&#xff09;是一个多义词&#xff0c;其含义可以…

产品经理-​合作的6类干系人(8)

在一个项目中&#xff0c;产品经理并不是一个人在战斗&#xff0c;而是在很多同事的配合下共同完成项目。那产品经理到底要和哪些角色配合&#xff0c;一起完成项目呢 中间的产品经理是一个项目的驱动者。而产品经理的前方是“Boss/Leader”&#xff0c;也就是创业团队中公司的…

地级市数字经济指数、互联网用户数、数字金融普惠指数

2000-2022年地级市数字经济指数&#xff08;含控制变量&#xff09; 目录 数字经济如何改善环境污染 一、引言 二、文献综述 三、实证模型 四、数据来源 五、程序代码 六、运行结果 数字经济如何改善环境污染 摘要&#xff1a; 本论文旨在探讨数字经济对环境污染的改善作…

三级_网络技术_04_中小型网络系统总体规划与设计

1.下列关于路由器技术特征的描述中&#xff0c;正确的是()。 吞吐量是指路由器的路由表容量 背板能力决定了路由器的吞吐量 语音、视频业务对延时抖动要求较低 突发处理能力是以最小帧间隔值来衡量的 2.下列关于路由器技术特征的描述中&#xff0c;正确的是()。 路由器的…

Matlab中collectPlaneWave函数的应用

查看文档如下&#xff1a; 可以看出最多5个参数&#xff0c;分别是阵列对象&#xff0c;信号幅度&#xff0c;入射角度&#xff0c;信号频率&#xff0c;光速。 在下面的代码中&#xff0c;我们先创建一个3阵元的阵列&#xff0c;位置为&#xff1a;&#xff08;-1,0,0&#x…

JavaWeb----JSPJSTL

目录 JSP显隐注释在JSP中写java程序JSP的指令标签JSP中的四大域对象简易版用户登录EL表达式 JSTL条件动作标签if标签 choose\when\otherwise标签迭代标签格式化动作标签 用户登录实例查看是否安装了mysql用户登录界面后台实现 JSP JSP全名是Java Server Pages&#xff0c;它是建…

【后端面试题】【中间件】【NoSQL】MongoDB查询优化3(拆分、嵌入文档,操作系统)

拆分大文档 很常见的一种优化手段&#xff0c;在一些特定的业务场景中&#xff0c;会有一些很大的文档&#xff0c;这些文档有很多字段&#xff0c;而且有一些特定的字段还特别的大。可以考虑拆分这些文档 大文档对MongoDB的性能影响还是很大的&#xff0c;就我个人经验而言&…

常见算法和Lambda

常见算法和Lambda 文章目录 常见算法和Lambda常见算法查找算法基本查找&#xff08;顺序查找&#xff09;二分查找/折半查找插值查找斐波那契查找分块查找扩展的分块查找&#xff08;无规律的数据&#xff09; 常见排序算法冒泡排序选择排序插入排序快速排序递归快速排序 Array…

在Apache HTTP服务器上配置 TLS加密

安装mod_ssl软件包 [rootlocalhost conf.d]# dnf install mod_ssl -y此时查看监听端口多了一个443端口 自己构造证书 [rootlocalhost conf.d]# cd /etc/pki/tls/certs/ [rootlocalhost certs]# openssl genrsa > jiami.key [rootlocalhost certs]# openssl req -utf8 -n…

Pycharm远程连接GPU(内容:下载安装Pycharm、GPU租借、配置SSH、将代码同步到镜像、命令行操控远程镜像、配置远程GPU解释器)

目录 windows下载安装pycharmGPU租借网站AutoDlfeaturize好易智算 GPU租借GPU选择选择镜像充值 然后创建镜像创建成功 复制SSH登录信息 远程进入镜像 在Pycharm中进行ssh连接新建SFTP配置SSH复制ssh根据复制的信息填写ssh配置测试连接 将代码同步到远程镜像上设置mappings将本地…

React 省市查询组件完整代码

目录 一、地区文件 二、Antd配合使用 三、实现效果 一、地区文件 下载地址&#xff1a;全国省市区数据_JSON格式_SQL格式 export const chinaArea {0: {1: 北京,2: 天津,3: 河北省,4: 山西省,5: 内蒙古自治区,6: 辽宁省,7: 吉林省,8: 黑龙江省,9: 上海,10: 江苏省,11: 浙…

计算机出现找不到msvcp140.dll无法继续执行代码怎么办?推荐7个有效解决方法

在日常使用电脑过程中会经常遇到各式各样的问题&#xff0c;比如msvcp140.dll丢失或找不到msvcp140.dll文件是最常见的问题之一&#xff0c;那么遇到这个问题要怎么解决呢&#xff1f;msvcp140.dll到底是什么&#xff1f;为什么会出现msvcp140.dll丢失问题&#xff1f;今天给大…

原生事件监听及组件内置事件处理

监听事件 我们可以使用 v-on 指令 (简写为 ) 来监听 DOM 事件&#xff0c;并在事件触发时执行对应的 JavaScript。用法&#xff1a;v-on:click“handler” 或 click“handler”。 事件处理器 (handler) 的值可以是&#xff1a; 内联事件处理器&#xff1a;事件被触发时执行的…

《QT从基础到进阶·四十三》QPlugin插件多线程问题和只有插件dll没有头文件和lib文件时调用插件中的方法

1、插件和多线程问题&#xff1a; 创建插件对象不能放到多线程执行&#xff0c;不然报错&#xff1a;ASSERT failure in QWidget: "Widgets must be created in the GUlthread. //不能放在多线程执行 QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName))…

单选多选提交问卷,代码示例

&#xff45;&#xff4c;&#xff45;&#xff4d;&#xff45;&#xff4e;&#xff54;中 需要对接口返回的数据进行分析。多选问题使用checkbox&#xff0c;单选题使用radio。 多选时可以绑定&#xff4d;&#xff49;&#xff4e;&#xff0f;&#xff4d;&#xff41;&am…

Transformer前置知识:Seq2Seq模型

Seq2Seq model Seq2Seq&#xff08;Sequence to Sequence&#xff09;模型是一类用于将一个序列转换为另一个序列的深度学习模型&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;如机器翻译、文本摘要、对话生成等。Seq2Seq模型由编码器&#…