基于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.mzph.cn/web/40839.shtml

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

相关文章

Python处理表格数据常用的 N+个操作

Python作为一种强大且易用的编程语言&#xff0c;其在数据处理方面表现尤为出色。特别是当我们面对大量的表格数据时&#xff0c;Python的各类库和工具可以极大地提高我们的工作效率。以下&#xff0c;我将详细介绍Python处理表格数据常用的操作。 首先&#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;哪些域名可以访问资源。当设置为 * 时…

自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)源码

背景 很多资源下载站&#xff0c;付费资源下载站&#xff0c;付费内容查看等都可以用WordPress站点发布内容&#xff0c;这些站点一般会基于一个主题&#xff0c;付费信息作为文章附属的信息发布&#xff0c;底层存储在WP表里&#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…

文件、文本阅读与重定向、路径与理解指令——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; 图所示为简易自动售货…

【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 …

idea创建的maven项目pom文件引入的坐标报红原因

如下所示 我们在引入某些依赖坐标的时候&#xff0c;即使点击了右上角的mavne刷新之后还是报红。 其实这是正常现象&#xff0c;实际上是我们的本地仓库当中没有这些依赖坐标&#xff0c;而idea就会通过报红来标记这些依赖来说明在我们的本地仓库是不存在的。 那有的同学就会…

【HICE】dns正向解析

1.编辑仓库 2.挂载 3.下载软件包 4.编辑named.conf 5.编辑named.haha 6.重启服务 7.验证本地域名是否解析

六、快速启动框架:SpringBoot3实战-个人版

六、快速启动框架&#xff1a;SpringBoot3实战 文章目录 六、快速启动框架&#xff1a;SpringBoot3实战一、SpringBoot3介绍1.1 SpringBoot3简介1.2 系统要求1.3 快速入门1.4 入门总结回顾复习 二、SpringBoot3配置文件2.1 统一配置管理概述2.2 属性配置文件使用2.3 YAML配置文…

ODOO17的邮件机制-系统自动推送修改密码的邮件

用户收到被要求重置密码的邮件&#xff1a; 我们来分析一下ODOO此邮件的工作机制&#xff1a; 1、邮件模板定义 2、渲染模板的函数&#xff1a; 3、调用此函数的机制&#xff1a; 当用户移除或增加了信任的设备&#xff08;如电脑、手机端等&#xff09;&#xff0c;系统会自…

CentOS 7.9 停止维护(2024-6-30)后可用在线yum源 —— 筑梦之路

众所周知&#xff0c;centos 7 在2024年6月30日&#xff0c;生命周期结束&#xff0c;官方不再进行支持维护&#xff0c;而很多环境一时之间无法完全更新替换操作系统&#xff0c;因此对于yum源还是需要的&#xff0c;特别是对于互联网环境来说&#xff0c;在线yum源使用方便很…

从0到1:培训老师预约小程序开发笔记二

背景调研 培训老师预约小程序&#xff1a; 教师和学生可以更便捷地安排课程&#xff0c;并提升教学质量和学习效果&#xff0c;使之成为管理和提升教学效果的强大工具。培训老师可以在小程序上设置自己的可预约时间&#xff0c;学员可以根据老师的日程安排选择合适的时间进行预…