抽象的
多模态大语言模型的最新进展表明,高分辨率图像输入对于模型能力至关重要,尤其是对于细粒度任务。 然而,高分辨率图像导致输入到 LLM 的视觉标记数量呈二次方增加,从而导致巨大的计算成本。 当前的工作开发视觉 Token 压缩方法来实现效率提高,但通常以牺牲性能为代价。 我们认为消除视觉冗余可以同时提高效率和性能。 我们构建了一种从粗到细的视觉标记压缩方法,其中一个视觉引导采样器用于压缩信息密度低的冗余区域,一个文本引导采样器用于选择与用户指令强相关的视觉标记。 通过这两个模块,所提出的
FocusLLaVA
实现了效率和性能的提高。 我们在广泛的评估数据集上验证了我们的方法的有效性。
1
简介
近年来,多模态大语言模型(MLLM)的研究引起了研究者的广泛关注。 随着 LLaVA
[33, 34]
等各种 MLLM 的提出,该领域已经取得了重大进展。 最近 MLLM 的主要改进之一是支持高分辨率图像。 早期作品
[33, 25]
使用固定的小输入比例,无论原始图像大小如何。 这个过程不可避免地导致图像细节的丢失,使得模型无法处理需要细粒度图像理解的任务。 最近,支持高分辨率图像输入
[28, 3]
已经成为业界的共同兴趣。 然而,高分辨率图像会导致 LLM 中视觉标记数量呈二次方增加,从而导致推理时间增加和内存消耗增加。
为了解决这个问题,许多研究都集中在减少高分辨率图像中视觉标记的数量。 然而,这些方法大多数都采用启发式方法进行视觉标记压缩
[5,54,2,45]
。 他们利用手工制定的指标来过滤掉 Token ,这通常是以性能为代价的。 其他一些作品
[25,51,54]
设计查询转换器将图像信息压缩为固定数量的查询,这导致详细图像的信息丢失,有时甚至导致复杂的训练方案。 一般来说,当前的方法不能保证在减少视觉标记的同时保持模型性能。 他们专注于实现更快的速度和更少的性能损失之间的权衡。
在本文中,我们提出了
FocusLLaVA
,它消除了视觉冗余,同时提高了性能和效率。 它针对该目标采用从粗到细的方法:首先根据视觉信息压缩低信息密度特征(
视觉引导采样器
),然后根据文本指令选择与查询相关的标记(
文本引导采样器
)。
我们针对这两个模块做了一些技术设计。 首先,视觉引导采样器中的
区域级压缩
:它使用多个尺度对每个局部区域进行下采样,并自适应地选择其中一个尺度。 我们使用region而不是token作为基本单位来实现多尺度的方式,更加灵活。 其次,两个采样器的
解缠压缩
:视觉引导采样器放置在投影仪中,因为它只需要图像信息,并作为早期减少冗余 Token 的粗略步骤。 相比之下,文本引导采样器集成在 LLM 的中间层中,因为它需要更强的语言功能来精确定位与指令相关的区域。 第三,为这两个模块精心设计了一个简单的一步式
训练方法
。 对于前者,我们使用辅助平衡损失来鼓励视觉引导采样器探索各种尺度。 对于后者,我们设计了一种随机训练技术来使 LLM 适应 Token 的变化。 微调步骤是一级的,作为基线。
为了验证
FocusLLaVA
的有效性,我们在各种主流多模态评估基准上进行了实验。 结果表明,我们的方法不仅优化了推理速度,而且还提高了性能。
FocusLLaVA
的视觉标记率为 39%,在多种基准测试中均优于基线方法。 综上所述,我们工作的主要贡献可概括如下:
1.
我们提出了
FocusLLaVA
,这是一种新颖的从粗到细的视觉标记减少方法,它利用了视觉和文本信息的指导。
2.
我们精心设计了视觉引导采样器和文本引导采样器两个模块,以及完整的训练方法。
3.
我们在广泛的基准测试中展示了
FocusLLaVA
的效率和性能改进。 与 SOTA MLLM 相比,它显示出极具竞争力的结果。 为了更好地理解视觉和文本指导,进行了大量的实验。
图1
:
(a)
FocusLLaVA
整体结构。 两个核心模块是视觉引导采样器和文本引导采样器。 每个子图像的特征首先连接成一个整体,然后按区域划分,每个区域形成一个局部特征块。 然后由视觉引导采样器进行处理。 (b)
视觉引导采样器的结构。
它以特征块和全局图像的特征作为输入,并输出该区域的预测采样比例。 (c)
文本引导采样器的结构。
它聚合多头注意力分数以形成视觉标记的重要性图。
2
相关工作
MLLM
。 BLIP2
[25]
和 InstructBLIP
[14]
等早期模型设计了 Q-Former,将编码的视觉信息桥接到 LLM 的输入空间中。 这些方法通常需要复杂的训练过程来训练图像文本对齐模块。 以 Flamingo
[1]
为代表的方法提出使用交叉注意力将编码图像信息合并到 LLM 层中。 Fuyu8B
[4]
完全抛弃了视觉编码器,直接将图像块输入到LLM中。 另一方面,LLaVA
[33]
使用 MLP 层将编码图像信息直接桥接到 LLM 的输入空间,使模型架构和训练过程更加简单。 因此,后续的很多多模态大模型都在LLaVA
[35,34,7,29,18]
的基础上进行了改进。 例如,LLaVA 1.5
[34]
优化了数据质量,而 LLaVA-Next
[35]
引入了自适应图像分割技术来支持高分辨率图像。
高分辨率 MLLM。
最近,各种MLLM都采用高分辨率图像作为输入来捕获细粒度的图像信息。 在早期阶段,大多数 MLLM 使用固定大小 224 作为输入。 LLaVA-1.5
[34]
和 BLiVA
[19]
将图像大小增加到 336,以实现更好的性能。 Qwen-VL
[3]
将大小进一步扩展至448。 它首先使用 224 的固定图像比例进行训练,然后通过将分辨率增加到 448 进行微调。 Vary
[47]
和 Mini-Gemini
[27]
另外引入了专门针对高分辨率图像的视觉编码器。 SPHINX
[31]
、Monkey
[28]
和 LLaVA-UHD
[48]
将图像大小调整为固定分辨率,然后将其分割为几个补丁。 这些补丁在送入 LLM 之前会单独编码。 此外,LLaVA-NeXT
[30]
采用了一系列预定义的分辨率,首先将输入图像与最接近的分辨率进行匹配,然后将其分割为子图像。 Qwen2-VL
[46]
直接使用图像的原始分辨率,通过修改ViT
[15]
的结构将其编码为动态可变长度的视觉标记。 LLaVA-HR
[39]
、LLaVA-M3
[5]
和 Dragonfly
[10]
提倡使用多尺度信息增强MLLM能力。 他们将原始图像调整为多种分辨率,每种分辨率单独编码,然后将其输入 LLM 。 这种方法利用了不同尺度的优势,提供了输入数据的更全面的表示。
视觉标记压缩。
在MLLM领域,视觉标记压缩的工作大致可以分为三类。 第一种类型
[54, 51, 52]
采用类似 QFormer 的
[25, 14]
结构来压缩视觉标记。 然而,它们严重依赖图像和文本之间的对齐质量,因此需要复杂的对齐训练过程。 后续的工作,例如QwenVL
[3]
,采用单层交叉注意力来替代QFormer,从而降低训练复杂度。 然而,它仍然使用固定数量的查询来进行图像信息压缩,这会导致信息丢失,特别是在需要细粒度信息的任务中。 第二类
[43,10,53,6,37,24,45]
利用手动设计的技术来压缩图像信息。 例如,LLaVA-PruMerge
[43]
动态识别并保留最关键的视觉标记,然后通过聚类合并相似的视觉标记。 TextMonkey
[37]
根据标记相似性执行压缩。 HiRED
[2]
利用 ViT 的 CLS Token 的注意力图来丢弃不重要的 Token 。 这些方法依赖于手工设计的指标来衡量视觉标记的重要性,这并不能保证模型准确性方面的最佳性能。 相比之下,我们提出的方法采用基于学习的方法,允许模型为每个局部区域选择最合适的视觉尺度。 该选择与模型的全局优化目标直接相关。 第三类
[32, 13]
,直接将LLM的标记修剪方法应用于视觉标记的选择。 这些方法没有有效地利用固有信息。 此外,这些工作的主要焦点是提高计算效率,而不是强调性能。
3
方法
所提出的
FocusLLaVA
的设计有两个目标:(i)充分利用视觉和文本信息,有效减少视觉标记的数量,从而提高效率; (ii) 使模型能够学习以从粗到细的方式去除冗余视觉信息,以提高性能。
3.1
总体结构
所提出模型的整体结构如图
图
1
所示。 我们基于 LLaVA-Next
[30]
构建模型,具有两个核心模块,分别插入投影仪和 LLM 中的视觉引导采样器和文本引导采样器。 视觉引导采样器根据图像信息本身选择视觉标记,而后者结合文本信息提供更强的语义指导,过滤与用户指令相关的视觉标记。
对于给定的高分辨率图像
𝐈
∈
ℝ
H
×
W
×
3
,我们按照LLaVA-Next首先将图像分割成多个局部子图像。 分割后的子图像与原始图像一起被调整为统一大小,形成图像序列
[
𝐈
g
,
𝐈
0
,
𝐈
1
,
𝐈
2
,
…
,
𝐈
N
−
1
]
,其中
𝐈
g
是原始图像调整大小后的图像块,
N
是局部子图像的总数。 序列中的每个图像均由 ViT 独立编码。 然后结果通过投影仪,产生一组与 LLM 嵌入空间对齐的图像嵌入。 每个图像嵌入也称为视觉标记。 然后,我们连接并重塑所有子图像中的所有视觉标记以形成全局特征图,称为
𝐗
∈
ℝ
H
x
×
W
x
×
C
。 随后,视觉引导采样器对特征图进行视觉标记缩减,并将剩余标记输入到 LLM 中。 在 LLM 中,第二轮选择由文本引导采样器执行,从而产生一组与文本指令精确相关的视觉标记。
3.2
视觉引导采样器
对于全局特征图
𝐗
,首先按区域进行划分,形成一组局部特征块
𝐗
0
,
𝐗
1
,
…
,
𝐗
M
−
1
,其中
M
是局部特征块的数量。 我们将该区域的窗口大小表示为
w
。每个特征块
𝐗
i
∈
ℝ
w
×
w
×
C
作为视觉引导采样器的基本单元。 请注意,视觉尺度的选择是针对每个局部区域而不是整个特征图进行的。 这种设计允许对高分辨率图像的每个局部区域进行自适应比例选择。 视觉引导采样器分两步处理特征块。 首先,它将每个特征块下采样到多个不同的尺度。 然后,它根据局部信息和全局信息动态选择视觉尺度之一。
多尺度下采样。
对于每个特征块
𝐗
i
∈
ℝ
w
×
w
×
C
,我们使用一组最大池化操作将其下采样为几个不同的尺度。 在我们的工作中,我们使用窗口大小 4 来划分特征图,得到
𝐗
i
∈
ℝ
4
×
4
×
C
。 我们使用三个最大池操作,每个操作的大小为
4
×
4
、
2
×
2
和
1
×
1
来处理特征块,从而产生三种类型的 Token 集功能块:
DS
[
0
]
(
𝐗
i
)
∈
ℝ
1
×
1
×
C
、
DS
[
1
]
(
𝐗
i
)
∈
ℝ
2
×
2
×
C
和
DS
[
2
]
(
𝐗
i
)
∈
ℝ
4
×
4
×
C
,其中
DS
[
i
]
表示第
i
次下采样类型。 最大池化操作的设计可以更加灵活。 例如,我们可以使用比例为2或
1
2
的非对称池化来获得更多种类的token集合。 我们将在实验中讨论这个设计。
多尺度选择。
我们采用混合专家(MoE)的设计理念,将多个尺度的下采样视为专家。 目标是为每个局部特征块选择一名专家。 为了实现这一目标,我们通过对每个局部特征块和全局上下文之间的相关性进行建模来设计一个多尺度选择器。 具体来说,我们使用缩放后的原始图像作为
𝐈
g
,并将其编码特征作为
𝐗
g
。 我们压平
𝐗
g
来制作
𝐗
g
∈
ℝ
H
x
W
x
×
C
。 然后,每个基本特征块
X
i
被池化到
1
×
1
×
C
,用于计算与
𝐗
g
的内积为
𝐒𝐜𝐨𝐫𝐞
i
=
p
o
o
l
(
𝐗
i
)
T
𝐗
g
,其中
𝐒𝐜𝐨𝐫𝐞
i
∈
ℝ
1
×
H
x
W
x
。 随后,将全连接层应用于
𝐒𝐜𝐨𝐫𝐞
i
来预测每个特征块的尺度,产生用于视觉尺度选择的逻辑
𝐙
∈
ℝ
1
×
S
。 最后,我们应用softmax函数来计算每个视觉尺度的概率。 然后将与概率最高的视觉尺度对应的标记输入到LLM。
目标。
由于下采样路径中选择操作的不可微性质,选择器的参数无法被有效地训练。 为了解决这个问题,我们引入了一些技术。 给定一个局部基本特征块
𝐗
r
,我们使用
DS
[
i
]
来表示第
i
下采样路径。 最终选择并输入LLM的与
𝐗
r
对应的最终视觉标记是
其中
𝐙
是对应于
𝐗
r
的预测 logits。 在推理过程中,我们使用上述公式应用多尺度选择。 在训练过程中,我们将计算出的概率与标记相乘,以使整个过程可微分。 具体来说:
这样,sidetrack中计算的概率就被纳入到token中,让选择器的参数通过LLM的优化损失继续接收梯度反馈。 此外,我们观察到选择器往往很容易退化为一种微不足道的状态,在训练过程中不断选择一个特定的分支。 为了抵消网络优化的惰性,我们按照 switch-transformer
[16]
引入平衡损失来强制网络选择不同的分支。 余额损失的形式如下:
其中
α
是平衡损失的权重,
t
e
x
t
b
f
1
表示指标函数,
N
表示一批内基本特征块的总数。
3.3
文本引导采样器
在文本引导采样器中,我们利用LLM的文本理解能力作为视觉标记选择的基础。 为了实现这一目标,选择来自 LLM 中间层的文本嵌入作为视觉标记过滤的指导。 我们认为LLM中间层的文本嵌入已经与视觉信号交互,包含足够的语义信息并具有选择重要视觉标记的能力。 这一想法得到了进一步分析的支持。 如图
图
5
所示,我们可视化了多个层中每个视觉标记收到的注意力分数。 我们观察到,在 LLM 的浅层中,视觉标记的重要性模式不稳定并发生显着变化。 而且,重要性图很难聚焦于最相关的区域。 相比之下,在 LLM 的中层和深层,视觉标记的重要性模式往往变得一致和准确。 因此,我们认为文本引导采样器应该放置在LLM的中间层,而不是浅层或LLM之外。
对于 LLM 的第 i 层,我们首先计算文本提示的嵌入
𝐡
i
t
和视觉标记的嵌入
𝐡
i
v
之间的相似度矩阵
𝐀
i
∈
ℝ
h
×
N
×
T
,其中
h
表示多头注意力中头的数量,
N
表示视觉标记的数量,
T
表示文本提示的数量 Token :
为了确定每个视觉标记的重要性得分
𝐒
i
,我们首先采用reduce-max操作来识别所有注意力头的最高得分。 随后,我们对所有文本标记的重要性得分进行平均。 获得重要性得分
𝐒
i
后,我们选择重要性得分最高的前 k 个视觉标记进行保留。 从数学上来说,这个过程可以表示为:
其中
𝐀
i
表示所有注意力头和文本标记中第
i
个视觉标记的注意力分数,
T
是文本标记的总数,
N
是视觉标记的总数。 在选择重要视觉标记时,我们首先对
𝐒
i
进行降序排序,得到
{
s
0
,
s
1
,
…
,
s
N
−
1
}
。 然后,我们选择累积重要性超过给定阈值的视觉标记,
其中
γ
是重要性阈值。 最后,选择按重要性排名的顶部
k
视觉标记。
在 LLM 中,根据重要性过滤视觉标记通常会导致模型性能下降。 我们认为,在 LLM 中丢弃一些标记会导致训练和测试之间的不一致。 为了弥补性能下降,我们在训练过程中引入随机性以增强模型的适应性。 具体来说,在训练过程中,对于每个图像文本对,我们可以随机选择一个解码器层和一个重要性阈值
γ
,然后根据重要性公式选择视觉标记。 该模型经过这种随机性增强方法的训练后,在测试中表现出更强的鲁棒性。
表1
:
在流行基准上与现有 MLLM 进行比较。
VQA
T
:TextVQA
[44]
; SQA:ScienceQA
[38]
; LLaVA
W
:LLaVA-野外工作台; MME
P,C
:MME
[17]
中的感知和认知; MMB
C
表示 MMBench-CN
[36]1>。
Method
LLM
VQA
T
SQA
GQA
POPE
MM-Vet
LLaVA
W
MME
P
MME
C
MMB
MMB
C
Instruct-BLIP
[14]
Vicuna-7B
50.1
-
49.2
-
26.2
60.9
1084
229
36.0
23.7
Qwen-VL
[3]
Qwen-7B
63.8
-
59.3
-
-
-
1487.6
-
60.6
7.4
LLaVA-1.5
[34]
Vicuna-7B
58.2
-
62.0
85.9
30.5
65.4
1510
-
64.3
58.3
LLaVA-1.5
Llama3-8B
58.9
-
61.9
85.1
34.8
70.5
1544
328
72.9
67.7
mPlugOwl3
[49]
Qwen-8B
69.0
-
65.0
88.2
40.1
-
-
-
77.6
74.3
Otter-HD
[24]
Fuyu-8B
-
-
-
86.0
-
-
1223
331
58.30
-
LLaVA-NeXT
[35]
Vicuna-7B
64.9
70.1
64.2
86.5
-
-
1519
332
67.4
60.6
Mini-Gemini-HD
[27]
Vicuna-7B
68.4
-
-
-
41.3
-
1546
319
65.8
-
SliME
[54]
Llama3-8B
64.7
84.2
63.9
-
37.4
73.9
1578
337
75.0
71.8
LLaVA-Prumerge+
[43]
Vicuna-7B
57.1
68.3
-
84.0
-
1462
-
64.9
-
Trim
[45]
Vicuna-7B
-
69.1
61.4
85.3
28.0
58.7
1461
-
67.4
54.9
HiRED
[2]
Vicuna-13B
65.2
73.2
-
87.7
-
-
1570
-
-
-
LLaVA-NeXT (Ours)
Llama3-8B
69.4
77.3
65.7
86.9
40.6
64.7
1558
334
74.2
70.1
FocusLLaVA
(Ours)
Llama3-8B
70.0
79.0
66.0
87.7
41.3
65.6
1600
328
74.7
70.3
4
实验
4.1
实现细节
我们使用 CLIP
[42]
ViT-L/14 作为视觉编码器(默认分辨率 336 × 336),使用 LLama3-8B 作为 LLM,使用 2 层 MLP 作为连接器。 我们保留 LLaVA-Next
[30]
中使用的自适应图像切片技术,每个子图像的大小都调整为
336
×
336
。 对于视觉引导采样器,我们将局部特征块的窗口大小设置为4。 使用三个尺度
4
×
4
、
2
×
2
和
1
×
1
进行多尺度选择。 对于文本引导采样器,我们将其插入到 LLM 的第 8 层。
γ
默认设置为 0.85。 在训练过程中,它被随机插入到第 8 到 24 层之间。 继 LLaVA-Next 之后,我们使用类似的训练设置进行视觉指令微调。 使用余弦学习率调度器将学习率设置为 1e-5,批量大小为 128。 使用 AdamW 优化器进行一次训练。 使用 Deepspeed Zero2 作为训练框架。 我们在配备 8 个 Nvidia A100 GPU(每个具有 80GB VRAM)的服务器上进行了实验。
4.2
数据集和基准
训练数据集。
我们仅使用开源数据对所提出的模型进行预训练和微调。 对于预训练,我们遵循流行的 llava 系列使用 llava-pretrain-558k。 为了进行微调,我们已尽一切努力使我们的训练数据与 LLaVA-NeXT
[35]
保持一致。 但由于LLaVA-NeXT使用的数万条真实用户数据并未公开,我们按照Open-LLaVA-NeXT
[11]
使用200K ALLaVA-Instruct-VFLAN-4V
[8]
数据作为替代。 此外,由于 TextVQA
[44]
已包含在大多数现有 LMM 的训练数据中,因此我们保留它以便与其他 LMM 进行公平比较。 结果,微调数据包括1M样本,涵盖sharegpt4v-mix665k
[12]
、ALLaVA-Instruct-VFLAN-4V、DocVQA
[41]
、SynDog- EN
[23]
、ChartQA
[40]
、DVQA
[21]
、AI2D
[22]
和 GeoQA+
[9]
。 具体数据配置见补充。
基准。
我们使用 10 个流行的基准来评估我们的方法,包括(1)通用问答基准,例如 GQA
[20]
和 ScienceQA
[38]
; (2)基于光学字符的视觉问答基准,例如TextVQA
[44]
; (3) 针对特定能力的 MLLM 基准,例如 POPE
[26]
、MM-Vet
[50]
和 LLaVA-in-the-wild
[33]
; (4)综合MLLM基准,例如MME
[17]
(感知和认知)、MMBench
[36]
和MMBench-CN。
4.3
性能
我们选择了三种方法进行比较参考,其结果呈现在
Tab.
1
中,并按不同类别进行划分。 第一类由各种主流MLLM组成。 第二种类型包括采用高分辨率输入的 MLLM。 第三类侧重于致力于压缩视觉标记的作品,我们为此选择了它们的最佳结果。 最后一部分介绍了我们的基线和方法。 鉴于当前 MLLM 研究中使用的基础 LLM、训练数据集和训练配置各不相同,
Tab.
1
中的大多数结果都不是可以直接比较。 然而,这些结果可以作为说明我们实施的基线和方法的大致性能水平的参考。 在第三部分中,特别是对于我们自行实现的 LLaVA-Next 和
FocusLLaVA
,我们确保了基础大型模型、训练数据集和训练设置的严格对齐,使它们具有相当的可比性。 我们的研究结果表明,与主流和高分辨率 MLLM 相比,我们实施的基线极具竞争力。 此外,我们提出的
FocusLLaVA
展示了在此基准基础上的明显改进。
图2
:
不同层的文本指导的性能和速度。
4.4
分析
为了方便起见,这部分的实验使用了较小的训练集(200K)。 它是从默认训练集中随机采样的。
视觉和文字指导的消融。
我们通过实验探索视觉引导采样器和文本引导采样器的各自贡献。 结果显示在
选项卡
2
中。 研究结果表明,视觉引导采样器和文本引导采样器都有助于模型提高多个评估基准的性能。 结合起来,它们可以进一步提高这些基准测试的性能。 此外,效率进一步提高。 请注意,由于文本引导采样器删除的视觉标记仍然经过多层计算,因此剩余标记的数量是通过转换计算出来的。 假设有
m
个视觉标记,并且文本引导采样器删除了第
i
层中的
n
个标记,则通过
m
−
n
+
i
∗
n
/
32
,其中32是总层数。
表2
:
视觉和文字指导的消融。
“视觉标记”是指剩余视觉标记的百分比。 “速度”是指每秒采样器的数量。 速度在 TextVQA
[44]
上测试。
Setting
Vision
tokens
Speed
TextVQA
MME
ScienceQA
GQA
Baseline
100%
2.85
65.5
1562
76.4
61.7
Vision
49%
3.76
65.2
1590
77.8
62.3
Text
81%
3.19
65.4
1603
76.9
62.1
Both
39%
4.01
65.9
1597
78.1