前言
在多模态大模型(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通常由三部分组成:
- 视觉编码器,可以是CLIP、SigLIP、DINO等
- 视觉连接器(Projector),通常是简单的MLP结构
- 底座LLM,如LLama、Qwen等
对于MLLM而言,视觉特征如同眼睛,负责感知外界的视觉信息,底座LLM则如同是大脑,用于分析视觉信息并且进行理解和分析,视觉特征由视觉编码器提供,通常会考虑采用一个连接器将视觉特征映射到LLM『可以理解』的特征空间。在一些研究中 [2],已经证实了只有在结合不同的视觉编码器特征(如SigLIP和DINOv2)之后,才能让MLLM同时具备对高级视觉语义和底层视觉结构理解的能力,视觉编码器的选用至关重要,并且如何去组合不同的视觉特征也是值得去探索的问题。然而,当前的MLLM训练范式,通常是:
- 固定视觉特征和底座LLM,训练视觉连接器的参数
- 然后放开视觉连接器和底座LLM的参数,同时进行训练
这意味着在尝试挑选不同的视觉编码器和他们之间的组合的时候,难以避免需要进行大量的LLM训练以搜索到最优的视觉编码器以及组合(搜索空间为 k k k),有没有一种比较好的方法,可以有效地缩小这个搜索空间呢? 论文 [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的下游能力 Z Z Z之间呈现线性关系,也就是 Z ∝ f ( A , C ) Z \propto f(A, C) Z∝f(A,C),其中的 f ( ⋅ ) f(\cdot) f(⋅)为线性函数,这意味着只需要找到AC score最高的 k ′ k^{\prime} k′个视觉特征作为搜索空间即可,而 k ′ < < k k^{\prime} << k k′<<k。因此,我们的重点主要是看下作者是怎么计算A score和C score的。
语义对齐能力,需要衡量待评测的视觉特征与标准视觉语义特征之间的距离,标准视觉语义特征作者采用CLIP作为参考,即是公式(1)中的
E
^
i
u
\hat{E}_{i}^{u}
E^iu,其中的
i
i
i表示第
i
i
i张图片,
S
c
(
⋅
)
S_c(\cdot)
Sc(⋅)为余弦相似度,而公式中的
u
u
u和
v
v
v则是表示是图片每个patch的特征(视觉编码器采用的是ViT),也就是将待评测视觉特征和标准视觉语义特征之间进行细粒度的匹配,然后取最大值作为整体的匹配程度。整体流程可见Fig 2。
A Score
=
1
n
∑
i
=
0
n
max
u
,
v
S
c
(
E
^
i
(
u
)
,
E
i
(
v
)
)
(1)
\mathrm{\text{A Score}} = \dfrac{1}{n} \sum_{i=0}^{n} \max_{u,v} S_c(\hat{E}_{i}^{(u)}, E^{(v)}_i) \tag{1}
A Score=n1i=0∑nu,vmaxSc(E^i(u),Ei(v))(1)
对于视觉结构对齐而言,我们需要评估待评测视觉特征的局部视觉不变性,因此我们需要成对的图片对,如 SPair-71k数据集,这是一个图像的语义对应点匹配的数据集,如Fig 3所示,数据集提供了成对的图片对,会标识出语义成对的对应点。对于一个关键点真实标签为 { p 1 s , p 2 s , ⋯ , p m s } \{p_{1}^{s}, p_{2}^{s},\cdots, p_{m}^{s}\} {p1s,p2s,⋯,pms},那么对于采用待评测视觉特征的预测关键点为 { p 1 t , p 2 t , ⋯ , p m t } \{p_{1}^{t}, p_{2}^{t}, \cdots, p_{m}^{t}\} {p1t,p2t,⋯,pmt},可以计算其PKG(关键点正确占比),如公式(2)所示,其中的 τ \tau τ为阈值而 I ( ⋅ ) \mathbb{I}(\cdot) I(⋅)为指示函数。这个指标表征了待评测视觉特征能够正确预测出关键点的能力。
C Score = 1 m ∑ i = 0 m I ( ∣ ∣ p j t − p j s ∣ ∣ 2 < τ ) (2) \mathrm{\text{C Score}} = \dfrac{1}{m} \sum_{i=0}^{m} \mathbb{I}(||p_{j}^{t}-p_{j}^s||_{2} < \tau) \tag{2} C Score=m1i=0∑mI(∣∣pjt−pjs∣∣2<τ)(2)
作者采用了一个二阶线性组合对A Score和C Score进行组合,如公式(3)所示,其中的 β i j \beta_{ij} βij为待学习参数(此处按照作者原文,是6个待学习参数,而笔者认为此处应该是9个待学习参数,如公式(3)所示,不知为何作者添加了一个 2 − i 2-i 2−i的限制,导致缺少了3个自由度,在A和C打分不一致的情况下,这个二阶的AC打分矩阵是不对称的,不能取上半角矩阵。下文为了保持和论文一致性,将继续沿用作者的6个待学习参数的表述),将通过实际观察到的 k ′ k^{\prime} k′个视觉特征组合的AC Score与采用了这 k ′ k^{\prime} k′个视觉特征的MLLM的下游任务表现进行拟合学习得出。
AC Score = ∑ i = 0 2 ∑ j = 0 2 − i β i j A i C j (3) \mathrm{\text{AC Score}} = \sum_{i=0}^{2} \sum_{j=0}^{2-i} \beta_{ij} A^i C^j \tag{3} AC Score=i=0∑2j=0∑2−iβijAiCj(3)
那么此时的AC Score可以视为是视觉特征在MLLM中下游任务的表现 Z Z Z的代理指标,如果能拟合出一个AC Score和 Z Z Z的线性关系,只需要在这个直线上找出能使的AC Score最大化的视觉特征组合,然后进行少量几次实验即可找出使得MLLM效果最佳的视觉特征组合。整个管道如Fig 4所示。这个直线,不妨表示为 y = X s w + ϵ \mathbf{y} = \mathbf{X}_s \mathbf{w} + \epsilon y=Xsw+ϵ,其中 X s ∈ R k ′ × 6 \mathbf{X}_s \in \mathbb{R}^{k^{\prime} \times 6} Xs∈Rk′×6, w ∈ R 6 \mathbf{w} \in \mathbb{R}^{6} w∈R6,而 ϵ ∈ R k ′ \epsilon \in \mathbb{R}^{k^{\prime}} ϵ∈Rk′是拟合残差, y ∈ R k ′ \mathbf{y} \in \mathbb{R}^{k^{\prime}} y∈Rk′是采样的 k ′ k^{\prime} k′个视觉特征组合在MLLM下游任务中的表现。
以上讨论了如何量化衡量视觉特征的语义对齐能力和语义结构对齐能力,并且如何综合这两个能力二阶线性拟合得出一个最终的AC Score的方法。作者在实验中,对于13个不同的视觉特征组合,在4个视觉benchmark上都进行了LLM下游任务训练并且得到了下游任务的指标,其拟合效果用决定系数( R 2 R^2 R2,即是因变量的变量有多少能被自变量解释)表示,如Fig 5所示,采用了AC Score的拟合能力最好,而只采用A Score或者C Score的效果都会差些,作为对比实验,作者也采用了拟合13个随机打分的方法作为基线,从中能发现AC Score和MLLM的下游模型表现,确实存在强的线性关系。
大概介绍了整个文章的思路后,笔者想把整个过程串起来给大伙儿讲解一遍自己的理解。首先,对于 k k k种可供参考的候选视觉特征组合(如本文中,待候选的视觉特征组合有13种,如下所示)和 M M M个待测试的基准集合(benchmark),那么理论上,我们需要 k M kM kM次MLLM的微调才能挑选出在 M M M个基准集合里面各自最佳的视觉特征。一个合理的想法是,我们对于第 i i i个基准集合 D i \mathcal{D}_i Di,我们合理地挑选出一个数量为 k ′ k^{\prime} k′视觉特征组合的子集( k ′ < < k k^{\prime} << k k′<<k),然后只进行 k ′ k^{\prime} k′次微调,就能确定AC Score的代理直线,然后对剩余 k − k ′ k-k^{\prime} k−k′个未微调的组合,寻找性能预测的最大值即可。理论上,此时仅需要 k ′ M k^{\prime}M k′M次微调了。
视觉特征组合 | 分辨率 | 类型 | 基准集合 1 | 基准集合 2 | 基准集合 3 | 基准集合 4 | … |
---|---|---|---|---|---|---|---|
OpenAI CLIP ViT-L/14 | 224 | 单视觉编码器-前馈模型 | 80.7 | … | |||
OpenAI CLIP ViT-L/14 | 336 | 单视觉编码器-前馈模型 | … | ||||
OpenCLIP ViT-L/14 | 224 | 单视觉编码器-前馈模型 | 90.5 | ||||
SigLIP ViT-L/16 | 224 | 单视觉编码器-前馈模型 | 123.5 | ||||
DINOv2 ViT-L/14 | 224 | 单视觉编码器-前馈模型 | |||||
SD 1.5 | 768 | 单视觉编码器-diffusion模型 | 53.6 | ||||
SD 2.1 | 768 | 单视觉编码器-diffusion模型 | |||||
SD XL | 768 | 单视觉编码器-diffusion模型 | |||||
SD Image Variations | 768 | 单视觉编码器-diffusion模型 | |||||
SD 3 | 512 | 单视觉编码器-diffusion模型 | |||||
DiT | 512 | 单视觉编码器-diffusion模型 | 70.6 | ||||
CLIP + DINOv2 ViT-L/14 | 224 | 多视觉编码器组合 | 150.2 | ||||
CLIP + DINOv2 ViT-L/14 | 336 | 多视觉编码器组合 | |||||
… | … |
这样也引申出一个问题,如何得到尽可能具有更高AC Score的视觉特征候选组合呢,作者提供了两种思路,如Fig 6所示:
- 提高模型输入图片的分辨率,如Fig 6的224 -> 336,作者认为是相当于固定了视觉特征的视觉对齐能力(也就是A Score),提高了视觉结构对齐能力(也就是C Score),从而带来了AC Score的上升进而提高了LLM下游指标。
- 进行多种视觉特征的组合,如Fig 6的在DINOv2的基础上拼接上OpenAI CLIP,作者认为这相当于固定了模型的视觉结构对齐能力,提高了语义对齐能力,从而带来了AC Score的上升进而提高了LLM下游指标。
当然,改变输入图片的分辨率,并不是仅仅会影响到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为主的图表)的时候,其衡量视觉结构对齐的能力就变差了。
笔者的读后感:
总的来说,这篇论文解决的问题还是很具有价值的,即是如何高效地给MLLM在某个垂类任务下,挑选一个最为合适的视觉特征组合。本文采用的方法论是定义出MLLM中需要视觉侧提供的能力的类型,分别是视觉语义对齐能力A和视觉结构对齐能力C,并且思考如何使得AC Score可以正相关于下游任务的能力,从而实现采用低代价的代理指标AC Score,就能高效地进行下游能力预测。
本文有两个指的注意的地方,第一是采用CLIP作为标准视觉语义对齐能力的标杆,可能对于能力超过CLIP的视觉模型的能力衡量,有失偏颇,第二是采用SPair-71k进行视觉结构对齐能力的衡量,会遇到对非自然图片估计C Score有偏的问题。
需要注意的是,对于不同类型的下游任务,理论上公式(3)的 β i j \beta_{ij} βij值都需要重新学习的,笔者比较好奇的是,是否有更好地能跨不同任务的学习方式呢?是否有递进式的学习方式呢?
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, 《立体视觉中的对极几何——如何更好更快地寻找对应点》
本文提到的对应点,与传统视觉任务中提到的对应点是有所区别的。如博文 [5] 中提到的,在传统视觉任务中的对应点通常指的是对于同一个物体不同视角下的图片的同一个关键局部图片块的对应关系,而本文提到的对应点,则更像是同一个视觉实体的局部视觉语义的聚类关系,因此不必限制在同一个物体,而是限制在了同一个实体。 ↩︎