这类问题聚焦在分析CLIP视觉表征在视觉上的识别缺陷,进而推导到MLLM的VQA缺陷。
MMVP
CLIP的视觉缺陷
MMVP应该是第一个从视觉表征角度探索MLLMs缺陷的文章(若还有前置工作,欢迎在评论提出),直接的想法是:找出CLIP无法正确理解的图片,并测试其在MLLM上的生成情况,如果具有正相关关系,那么说明visual encoder提取出的表征,将会影响MLLM的生成。因此我们需要找出CLIP并不能正确区分的图片,本文称之为CLIP-blind,而本文提出的CLIP-blind的挑选方法是基于 “两张看起来不同的图片被错误地认为高度相似,则至少有一张图片是被CLIP错误理解了” 想法,这个想法需要确认三个点:
- 如何衡量看起来不同:借助DINOv2这个额外的视觉专家去抽取图像表征,如果计算出两张图片相似度低,说明两张图片看起来不相似。(第一反应或许会是人眼看,但这样太耗时耗力了,而且人对相似度的评估应该是离散的,譬如相似、不相似、不太相似,很难说给出一个精确的数值用来比较。)
- 如何衡量CLIP认为高度相似:CLIP对两张图片提取出特质计算相似度,如果相似度高,那说明CLIP认为两张图片相似程度高。
- 至少有一张图片是哪张图片识别不正确:因为暂时还不具有可解释性,这点处理起来是比较苦难的,作者选择了将两张图片同时作为问题的图片输入,也就说是一个question,有两张图片输入,要求对两张图片都进行该问题的回复,只有当两张图片都回答正确了,才会认为MLLM能够正确回答该问题。
因此,下一步需要为这些图片对人为构造<图像1,图像2,问题,答案>对,从而得到MLLM对应的输入与标签,这里采用的形式是选择题。问题来自于人工识别一对图像的差异,然后询问两张图对应差异,答案就是差异部分各自的属性值。例如论文给出图所示,两张图片的差别在于狗躺在什么位置,因此问题为:狗躺在什么位置,a选项为图1反应的信息—地毯,b选项为图2反应的信息—地板,MLLM需要为图1和图2同时选出正确的选项,才能算回复正确,所有的CLIP-blind pair构造出的如上数据集组成MMVP benchmark。
MMVP构造流程
另外,作者也将这些设计的问题和选项丢给了GPT-4,让它总结出这些问题主要是在考察对图像什么模式的视觉信息的理解,从而归纳出CLIP目前视觉方面的缺陷,共包括9类:
- Orientation and Direction
- Presence of Specific Features
- State and Condition
- Quantity and Count
- Positional and Relational Context
- Color and Appearance
- Structural and Physical Characteristics
- Text
- Viewpoint and Perspective。
其中1、4、5、8、9应该是CLIP老生常谈的视觉问题。
2:Presence of Specific Features:图像中某些元素或特征的存在或不存在的问题。这点在之前的幻觉benchmark中比较多地被探索了,感觉是否能主要归因于视觉问题有待商榷。
3:State and Condition:涉及到物体的状态或状态的问题,例如旗帜是否吹在风中或者地面是否潮湿;7:Structural and Physical Characteristics这一类涉及模型对图像中物体的物理属性和结构特征进行识别和分析的能力。这种都涉及对物理世界的理解,通过CLIP这种粗粒度的对比学习,直觉上确实具有一定难度。
MMVP视觉模式总结
至此就可以检测MLLM在这些MMVP上的性能,观察CLIP和MLLM在这些图片上的性能相关性,如果正相关,说明CLIP理解的越不好的图片MLLM做VQA回答的越不好,从而验证视觉表征与MLLM的性能关系。
CLIP和MLLM在对应9类任务上的性能表现
由上图可以看出来,大致上,CLIP性能更差的任务,MLLM在该任务上表现出的任务性能也会相较于在其他任务更差,除了几个任务MLLM呈现出了一些性能提升:
- Presence of Specific Features。这点验证了我们上述对于第二类问题的简单理解,也呼应了之前幻觉问题的研究,比如说MLLM具有回复某个选项的倾向、先验知识、预数据泄露等问题,这些LLM层面的缺陷会影响该类问题的回复。
- Texts:闭源的GPT-4和Gemini在该任务上显示出了极强的性能而其他开源如LLaVA-1.5、instruct-BLIP基本无法识别,甚至不如随机猜测。
但GPT-4与CLIP在MMVP性能上的相关性并不高。
CLIP性能表现和MLLM的相关性系数
解决缺陷的办法
既然CLIP具有如上的视觉缺陷,本文提出添加在这些任务上表现地更好的视觉专家,来辅助MLLM理解。本文主要是引入了DINO,然后探究了两个特征融合方法
- 线性组合:CLIP和DINO提取出来的特征按照alpha和1-alpha的系数进行线性组合,通过一个projector对齐后,输入到LLM。随着融合系数的降低,指令微调能力会不断下降,MMVP性能会先升后降。
- 交替输入:CLIP和DINO提取出来的视觉token通过各自的projector对齐后,交替排列输入到LLM中。指令微调和MMVP上的性能都能获得一个提升,也很合理,LLM至少可以只关注CLIP的特征。
CLIP与DINOv2特征融合方式
线行组合性能,指令遵行能力大幅下降
交替输入性能,可以维持指令遵循能力
综上看出,DINO更有益于图像理解,CLIP更有益于指令跟随。而引入DINO作为视觉专家看起来合理又不合理
- 如果是出于验证添加额外的视觉信息是否能辅助MLLM识别,加入DINO是合理的,因为blind pair就是依据DINO是否能很好地区分这两张图片作为一部分评价指标选出来的,它大概率是对图像理解的很好,不会引入视觉表征问题,加入如果能涨点说明额外的视觉信息是有益的。
- 另一方面,如果只是通过MMVP的性能验证融合的效果,由于MMVP的数据是保证了DINO能识别的好的,在这个benchmark上的提点似乎不那么有说服力。实验中也显示了只有DINO特征在MMVP上表现比CLIP好。
通读下来,感觉整篇文章写作和探索问题的逻辑都是很好的,就是需要更多的一些实验例如更换其他的视觉专家、LLM scaling后在MMVP的benchmark上性能、组合方式更多的探索(譬如为什么不能直接拼接而是要交替输入、特征维度拼接性能等)。
同团队在6月发表了一篇文章“Cambrian-1: A Fully Open, Vision-Centric Exploration of Multimodal LLMs”,进一步探究了这个问题,并将该问题归结为视觉为中心的多模态大模型探索, 对实验进行了更加充分设置与探究。
Cambrian-1
Cambrian-1这篇文章正如它在abstract最后说的,可以是一本指令微调MLLM的codebook,主要探究了结构(vision encoder、projector)和训练(训练数据、训练策略、评估指标)方面。
Benchmark
对于benchmark部分,主要是做了三个方面的分析
- 现有benchmark的表现分析
- 不同benchmark的分类
- vision-centric benchmark的优化,针对的是之前的相关benchmark数据量比较少,涉及的数据任务不够多。
下图中左图为第一方面的分析,对于第二和第三个图例没有做解释,第四个、第五个代表有无视觉输入,对性能造成的影响,可以发现现有很多benchmark如SQA、MMMU、AI2D等都无需视觉输入就可以正确回答,无法充分反映现有视觉表征的质量;而那些MMVP、MME-perception这类为视觉能力所设计的benchmark在有无视觉输入情况下,表现差异大,说明可以检测模型利用视觉的能力。
依据这些表现作为feature,进行主成分分析,可以得到右图,右图中圆的大小代表数据量的大小,不同颜色代表不同的聚类,其中绿色代表考察模型“General”的能力,黄色代表考察模型“Knowledge”丰富程度,红色代表考察模型 “Chart & OCR”,蓝色代表考察“Vision-Centric”的能力,之后性能的评估,也将会取每个聚类中所有benchmark的平均分数
左:有无视觉输入在现有MLLM benchmark上的影响;右:使用PCA对各个benchmark上表现进行了分析
虽然目前“Vision-Centric”的benchmark能够一定程度上揭示模型利用视觉的能力,但是存在图像数据量少,涉及视觉任务少的问题,因此提出从公开的检测、分割数据集中,认为挑选出高质量的图片,设计了如下四个任务来进一步测试MLLM的视觉能力。
CV-Benchmark涉及的四类任务(2D & 3D)
Vision encoder
我们再看看vision encoder部分,Cambrian-1主要是研究不同vision encoder选择以及它们的组合对MLLM的影响。
随着LLaVA的出现,instruction-tuned MLLM范式似乎就默认变成了CLIP vision encoder + LLM的范式,鲜少有人去探究用CLIP vision encoder的原因和其他训练范式下的图像编码器的效果,例如自监督学习的DINO。这主要是因为更换vision encoder然后微调一个MLLM需要很复杂的训练设计,例如数据集的选择、训练流程的设计、超参数的调整,也没有一个目前公认的评价方法来衡量MLLM的好坏,这些让探究vision encoder效果这件事变得困难起来,而Cambrian-1就是去弥补这个缺憾,为vision encoder在MLLM中的作用提供一些见解。
对于视觉编码器部分,主要是做了三个方面的分析
- vision encoder的选择,对MLLM性能影响。
- CLIP和DINOv2在预训练阶段scaling的效果。
- 不同vision encoder组合的影响。组合的方式是通过固定每个编码器输出为576个token,然后在特征维度上拼接所有vision encoder的输出,然后用一个更大的MLP层去做对齐变换(feature dim * N,其中N为编码器个数)
可以看到语言监督的CLIP-like作为视觉编码器相对来说是一个更好的选择,比其他训练范式如自监督学习来的好些。这结论和MMVP的实验体现的恰恰相反,毕竟在MMVP上用DINO的效果是比用CLIP来的更好。这侧面印证了我在最后评论MMVP选择直接引入DINO中“不好的点”,data具有bias且视觉模型选择不够全面的问题
不同vision encoder下,MLLM在各个方面的性能
通过对训练数据进行scale,观察CLIP和DINO的效果变化,发现越多的数据量对于unfrozon的CLIP来说可以提高在一些多模态benchmark上的性能,但会破坏在vision-centric上的能力。(似乎是和之前一些研究呼应上的,埋个坑)
第一阶段训练,不同数据量下不同vision encoder的表现
相比于加入DINOv2,加入ConvNext在Average和Vision-centric上的性能都会更好。
不同视觉编码器组合带来的效果
Projector
对于projector设计部分,其主要考虑的是不同vision encoder其输出的feature map分辨率不同,如何统一且推理高效地输入到LLM中。
因为要求高效,MMVP提出的交替输入就不太可行了,尤其是当拼接越来越多的vision encoder的时候。为了能够处理所有vision encoder输入特征图分辨率,这里采用的是learnable query的方式,设置了G组learnable queries,一组共576个query,每个query都会从所有vision encoder输出的features中聚合信息,该query进行交互的时候具有两个特点:
-
具有空间先验。一组的576个query代表着24x24的grid,即下图的灰色网格状输入,它将会从所有encoder输出的特征图中,对应的子区域聚合信息,而不是和整张feature map进行交互,交互的方式是通过cross attention,并且不同vision encoder采用的是不共享的权重。具体来说,交互的区域为
-
高效的vision feature和LLM的交互。仅仅在输入端进行视觉特征的提取聚合,会使得每个query需要聚合相当丰富复杂的信息,为了缓解query的聚合和学习压力,提出在LLM层中间也插入SVA模块,中途聚合图像信息。
Spatial Vision Aggregator (SVA)示意图
做了详尽的消融
- 与不具有空间先验的resampler相比,SVA-no-multi-agg的query设计可以实现更好的性能。
- 增加query的组数和提高输入端的SVA数量,都可以提升性能。
不同projector设计的性能
SVA示意图中超参数的消融
Training Strategy
训练策略方面主要是做了三个方面的分析
- 第一阶段训练数据量的影响
- 一阶段训练和两阶段训练范式比较
- 是否冻结vision encoder对于性能的影响。
增加第一阶段阶段的数据量,对于语言监督的vision encoder可以有益于提高各个的benchmark上的性能。但是上述结论在SSL和其他训练范式的vision encoder上并不成立,例如在一些benchmark上有时候0.5M会好于1.2M。相比于完全放弃第一阶段训练(0M frozen),有一个第一阶段进行预训练往往会提高性能。而且在第一阶段训练中unfrozen 视觉编码器,在合理的设定下,对性能会有一定增益
不同训练策略对模型性能的影响(是否有第一阶段、是否冻结视觉编码器、数据量的大小)
Data
数据方面,主要是对数据源和数据挖掘进行了精细化调整。因为对数据部分了解的比较少,不做过多分析
- 将训练数据分为General conversation、OCR、 Counting、 Code、Math、Science、Language-only data这7个类。其中Language-only的数据用于防止MLLM微调过程中的灾难性遗忘,保留输出长回复的能力。同时,Science的数据量在其中占比太少,提出利用internet自动搜集science为topic的数据对,提高了训练数据的多样性,构成了一个10M的视觉指令微调数据集。
- 基于10M的视觉指令微调数据,进行了合理的数据筛选和数据混合比例。数据筛选主要是确定每个数据源选取的数据量(最后选定250-350k),构成一个7M的视觉指令微调数据集。
数据分布
总结
主要是谈论MLLM的视觉部分
Q1:加入额外的视觉特征到底有没有用。
A1:有用,MMVP深入研究了视觉表征的问题,但是直接加入DINOv2并不是那么合理,通过Cambrian-1里来看,需要补充什么信息、怎么补充或许还有研究空间。
Q2:LLM scaling在这类视觉为中心的任务上的作用。
A2:通过不断的scaling LLM,其实在vision-centric上的能力也有大幅度增加,并且不同模型在vision-centric上的差距也会不断变小,视觉表征到底是怎么影响MLLMs性能的,在这两篇文章中似乎并没有什么分析,或许可以思考思考。
PybTo-1723688619857)
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践 - L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词 - L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用 - L2.4 总结与展望
- L2.1 API接口
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介绍
- L3.1 Agent模型框架
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓