Alignment与Correspondence,用于量化衡量MLLM中视觉特征的视觉语义对齐与视觉结构程度的方法

在多模态大模型(Multimodal Large Language Model, MLLM)中,视觉特征就像是人的眼睛,而底座的LLM则像是人的大脑,合适的视觉特征的选择通常都是一个MLLM成功的重要一步...

FesianXu 20241006 at Wechat Search Team

前言

在多模态大模型(Multimodal Large Language Model, MLLM)中,视觉特征就像是人的眼睛,而底座的LLM则像是人的大脑,合适的视觉特征的选择通常都是一个MLLM成功的重要一步。本文介绍一种可以用于高效选择合适的视觉特征的方法,如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢

  • 关键字:高效的MLLM视觉特征选择、定量衡量视觉语义对齐、定量衡量视觉结构特征

联系方式:

  • e-mail: FesianXu@gmail.com
  • github: https://github.com/FesianXu
  • 知乎专栏: 计算机视觉/计算机图形理论与应用
  • 微信公众号:机器学习杂货铺3号店


多模态大模型MLLM通常由三部分组成:

  1. 视觉编码器,可以是CLIP、SigLIP、DINO等
  2. 视觉连接器(Projector),通常是简单的MLP结构
  3. 底座LLM,如LLama、Qwen等

对于MLLM而言,视觉特征如同眼睛,负责感知外界的视觉信息,底座LLM则如同是大脑,用于分析视觉信息并且进行理解和分析,视觉特征由视觉编码器提供,通常会考虑采用一个连接器将视觉特征映射到LLM『可以理解』的特征空间。在一些研究中 [2],已经证实了只有在结合不同的视觉编码器特征(如SigLIP和DINOv2)之后,才能让MLLM同时具备对高级视觉语义和底层视觉结构理解的能力,视觉编码器的选用至关重要,并且如何去组合不同的视觉特征也是值得去探索的问题。然而,当前的MLLM训练范式,通常是:

  1. 固定视觉特征和底座LLM,训练视觉连接器的参数
  2. 然后放开视觉连接器和底座LLM的参数,同时进行训练

这意味着在尝试挑选不同的视觉编码器和他们之间的组合的时候,难以避免需要进行大量的LLM训练以搜索到最优的视觉编码器以及组合(搜索空间为),有没有一种比较好的方法,可以有效地缩小这个搜索空间呢? 论文 [1] 就是在尝试解决这个问题!在深入讨论本文主题之前,笔者建议读者可以回顾下博文 《基于CLIP特征的多模态大模型中的视觉短板问题》[3],总的来说,视觉特征可以分为两种维度:

  • 视觉语义对齐:视觉特征与文本语义的对齐能力,这个比较容易理解,语义对齐指的就是跨文本和图像模态,对于同一个概念(比如苹果、梨子)的共同描述方法,如图Fig 1所示。具体的定义可见 《视频与图片检索中的多模态语义匹配模型:原理、启示、应用与展望》[4] 中的介绍。视觉语义对齐能力,是衡量跨模态的语义度量。这种模型一般采用对比学习或者弱监督学习得到,比如CLIP、SigLIP。
  • 视觉结构对齐:用于衡量建模视觉基础结构的能力,这样定义比较抽象,在本文中,作者指的是对于同一个局部的视觉特征,具有语义不变性的表达,如图Fig 1所示,对于同一个实体(如雏菊)的不同局部信息,提取出来的视觉特征应该具有跨图像的不变性,这个也称之为图像的对应性(Correspondence)1。视觉结构对齐能力,是衡量同模态的语义度量。这种模型一般采用自监督的方法学习得到,比如DINO等。

一个好的视觉特征,应该是同时具备这两种能力的,因此我们需要定量去衡量一个视觉特征的这两个维度上的能力,并且将这两个维度的能力值映射到MLLM的下游任务能力上,那么这两个维度的能力值,就可以作为一个proxy(代理)去衡量MLLM的下游任务能力了。作者将视觉语义对齐的打分称之为Alignment Score(A score), 将视觉基础结构称之为Correspondence Score(C score),他们的组合则称之为AC score,作者发现AC score和MLLM的下游能力之间呈现线性关系,也就是,其中的为线性函数,这意味着只需要找到AC score最高的个视觉特征作为搜索空间即可,而。因此,我们的重点主要是看下作者是怎么计算A score和C score的。

Fig 1. 一个图片的视觉属性,可以分为语义对齐和视觉对齐,语义对齐指的是视觉信息与文本语义的跨模态对齐,视觉对齐指的是视觉结构自身模态内的对齐。通过描述A和C的能力,并且进行一定的组合建模,可以作为代理,和MLLM下游任务的表现进行关联。

语义对齐能力,需要衡量待评测的视觉特征与标准视觉语义特征之间的距离,标准视觉语义特征作者采用CLIP作为参考,即是公式(1)中的,其中的表示第张图片,为余弦相似度,而公式中的则是表示是图片每个patch的特征(视觉编码器采用的是ViT),也就是将待评测视觉特征和标准视觉语义特征之间进行细粒度的匹配,然后取最大值作为整体的匹配程度。整体流程可见Fig 2。

Fig 2. 在评估待测视觉特征的Alignment Score的时候,将待评测视觉特征和标准视觉语义特征进行细粒度的匹配,然后取最大值作为整体的匹配结果,将其视为该图片的Alignment Score,最后对多张图片的A Score进行平均则得到最终的待评测视觉特征的A Score。

对于视觉结构对齐而言,我们需要评估待评测视觉特征的局部视觉不变性,因此我们需要成对的图片对,如 SPair-71k数据集,这是一个图像的语义对应点匹配的数据集,如Fig 3所示,数据集提供了成对的图片对,会标识出语义成对的对应点。对于一个关键点真实标签为,那么对于采用待评测视觉特征的预测关键点为,可以计算其PKG(关键点正确占比),如公式(2)所示,其中的为阈值而为指示函数。这个指标表征了待评测视觉特征能够正确预测出关键点的能力。

作者采用了一个二阶线性组合对A Score和C Score进行组合,如公式(3)所示,其中的为待学习参数(此处按照作者原文,是6个待学习参数,而笔者认为此处应该是9个待学习参数,如公式(3)所示,不知为何作者添加了一个的限制,导致缺少了3个自由度,在A和C打分不一致的情况下,这个二阶的AC打分矩阵是不对称的,不能取上半角矩阵。下文为了保持和论文一致性,将继续沿用作者的6个待学习参数的表述),将通过实际观察到的个视觉特征组合的AC Score与采用了这个视觉特征的MLLM的下游任务表现进行拟合学习得出。

Fig 3. 如果视觉特征具有良好的局部视觉不变性,那么其特征对于视觉语义一致的局部区域,应该能够形成匹配。

那么此时的AC Score可以视为是视觉特征在MLLM中下游任务的表现的代理指标,如果能拟合出一个AC Score和的线性关系,只需要在这个直线上找出能使的AC Score最大化的视觉特征组合,然后进行少量几次实验即可找出使得MLLM效果最佳的视觉特征组合。整个管道如Fig 4所示。这个直线,不妨表示为,其中,而是拟合残差,是采样的个视觉特征组合在MLLM下游任务中的表现。

Fig 4. 采用AC Score对视觉特征进行LLM下游任务能力预测的过程。

以上讨论了如何量化衡量视觉特征的语义对齐能力和语义结构对齐能力,并且如何综合这两个能力二阶线性拟合得出一个最终的AC Score的方法。作者在实验中,对于13个不同的视觉特征组合,在4个视觉benchmark上都进行了LLM下游任务训练并且得到了下游任务的指标,其拟合效果用决定系数(,即是因变量的变量有多少能被自变量解释)表示,如Fig 5所示,采用了AC Score的拟合能力最好,而只采用A Score或者C Score的效果都会差些,作为对比实验,作者也采用了拟合13个随机打分的方法作为基线,从中能发现AC Score和MLLM的下游模型表现,确实存在强的线性关系。

Fig 5. 对于不同的Score进行拟合,线性回归中的R^2指标的区别。

大概介绍了整个文章的思路后,笔者想把整个过程串起来给大伙儿讲解一遍自己的理解。首先,对于种可供参考的候选视觉特征组合(如本文中,待候选的视觉特征组合有13种,如下所示)和个待测试的基准集合(benchmark),那么理论上,我们需要次MLLM的微调才能挑选出在个基准集合里面各自最佳的视觉特征。一个合理的想法是,我们对于第个基准集合,我们合理地挑选出一个数量为视觉特征组合的子集(),然后只进行次微调,就能确定AC Score的代理直线,然后对剩余个未微调的组合,寻找性能预测的最大值即可。理论上,此时仅需要次微调了。

视觉特征组合分辨率类型基准集合 1基准集合 2基准集合 3基准集合 4...
OpenAI CLIP ViT-L/14224单视觉编码器-前馈模型80.7...
OpenAI CLIP ViT-L/14336单视觉编码器-前馈模型...
OpenCLIP ViT-L/14224单视觉编码器-前馈模型90.5
SigLIP ViT-L/16224单视觉编码器-前馈模型123.5
DINOv2 ViT-L/14224单视觉编码器-前馈模型
SD 1.5768单视觉编码器-diffusion模型53.6
SD 2.1768单视觉编码器-diffusion模型
SD XL768单视觉编码器-diffusion模型
SD Image Variations768单视觉编码器-diffusion模型
SD 3512单视觉编码器-diffusion模型
DiT512单视觉编码器-diffusion模型70.6
CLIP + DINOv2 ViT-L/14224多视觉编码器组合150.2
CLIP + DINOv2 ViT-L/14336多视觉编码器组合
......

这样也引申出一个问题,如何得到尽可能具有更高AC Score的视觉特征候选组合呢,作者提供了两种思路,如Fig 6所示:

  1. 提高模型输入图片的分辨率,如Fig 6的224 -> 336,作者认为是相当于固定了视觉特征的视觉对齐能力(也就是A Score),提高了视觉结构对齐能力(也就是C Score),从而带来了AC Score的上升进而提高了LLM下游指标。
  2. 进行多种视觉特征的组合,如Fig 6的在DINOv2的基础上拼接上OpenAI CLIP,作者认为这相当于固定了模型的视觉结构对齐能力,提高了语义对齐能力,从而带来了AC Score的上升进而提高了LLM下游指标。

Fig 6. 通过提高分辨率(224 -> 336)和进行特征组合的方法,对于MLLM在下游任务中的性能影响。

当然,改变输入图片的分辨率,并不是仅仅会影响到C Score,比如CLIP@224和CLIP@336的A Score就不会是1,而这本应是1的,因此作者建议最好保持目标视觉编码器和标准视觉语义CLIP的输入分辨率的一致。这个比较困难,因为通常时候标准视觉语义CLIP的分辨率尺寸是固定的(比如224和336),因此作者同时采用CLIP@224和CLIP@336作为标准视觉语义CLIP,并且通过求平均的方式减少因分辨率不同带来的C Score耦合影响。

作者同时注意到,相比于基于视觉的基准数据集,AC Score与基于OCR的基准数据集的下游指标关联更为弱,这个原因可能来自于当前的C Score是采用基于自然图片的语义匹配数据集SPair-71k计算的,如下所示,在衡量非自然图片(如OCR为主的图表)的时候,其衡量视觉结构对齐的能力就变差了。

Fig 7. 采用基于自然图片的语义匹配数据集进行计算的C Score,对于非自然图片(如OCR图表)的语义结构对齐能力描述具有缺陷。

笔者的读后感

总的来说,这篇论文解决的问题还是很具有价值的,即是如何高效地给MLLM在某个垂类任务下,挑选一个最为合适的视觉特征组合。本文采用的方法论是定义出MLLM中需要视觉侧提供的能力的类型,分别是视觉语义对齐能力A和视觉结构对齐能力C,并且思考如何使得AC Score可以正相关于下游任务的能力,从而实现采用低代价的代理指标AC Score,就能高效地进行下游能力预测。

本文有两个指的注意的地方,第一是采用CLIP作为标准视觉语义对齐能力的标杆,可能对于能力超过CLIP的视觉模型的能力衡量,有失偏颇,第二是采用SPair-71k进行视觉结构对齐能力的衡量,会遇到对非自然图片估计C Score有偏的问题。

需要注意的是,对于不同类型的下游任务,理论上公式(3)的值都需要重新学习的,笔者比较好奇的是,是否有更好地能跨不同任务的学习方式呢?是否有递进式的学习方式呢?

Reference

[1]. Yang, Shijia, Bohan Zhai, Quanzeng You, Jianbo Yuan, Hongxia Yang, and Chenfeng Xu. "Law of Vision Representation in MLLMs." arXiv preprint arXiv:2408.16357 (2024).

[2]. 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.

[3]. https://blog.csdn.net/LoseInVain/article/details/140233330, 《基于CLIP特征的多模态大模型中的视觉短板问题》

[4]. https://fesianxu.github.io/2023/03/04/story-of-multimodal-models-20230304/, 《视频与图片检索中的多模态语义匹配模型:原理、启示、应用与展望》

[5], https://blog.csdn.net/LoseInVain/article/details/102665911, 《立体视觉中的对极几何——如何更好更快地寻找对应点》


  1. 本文提到的对应点,与传统视觉任务中提到的对应点是有所区别的。如博文 [5] 中提到的,在传统视觉任务中的对应点通常指的是对于同一个物体不同视角下的图片的同一个关键局部图片块的对应关系,而本文提到的对应点,则更像是同一个视觉实体的局部视觉语义的聚类关系,因此不必限制在同一个物体,而是限制在了同一个实体。↩︎