摘要
扩展多模态大语言模型 (MLLMs) 的长上下文能力对于视频理解、高分辨率图像理解和多模态代理至关重要。 这涉及一系列系统优化,包括模型架构、数据构建和训练策略,特别是在解决诸如
随着图像数量增加,性能会下降
和
高计算成本
. 在本文中,我们调整了模型架构,使其成为 Mamba 和 Transformer 模块的混合体,使用多个图像之间的时域和空域依赖关系来构建数据,并采用渐进式训练策略。 发布的模型
LongLLaVA
(
长
上下文
L
arge
L
anguage
a
nd
V
ision
A
ssistant) 是第一个混合 MLLM,在效率和有效性之间取得了更好的平衡。 LongLLaVA 不仅在各种基准测试中取得了竞争性结果,而且保持了高吞吐量和低内存消耗。 尤其是在单个 A100 80GB GPU 上可以处理近千张图像,为广泛的任务展示了可观的应用前景。
图 1:
比较了单个 80GB GPU (
Int8
量化) 上 MLLMs 处理的最大图像数量,并将其绘制在发布日期上。 我们的模型 LongLLaVA 处于领先地位,它能够处理多达 933 张图像,证明了其优越的处理能力。 Res 指的是分辨率。 虽然这些基线模型能够将这些图像作为输入进行处理,但它们的性能通常会显着下降
(Song 等人,2024)
,随着图像数量的增加。
1
引言
多模态大语言模型(MLLMs)的快速发展
(Liu et al., 2024b, 2023a; Dong et al., 2024a; Chen et al., 2024a)
已证明其在各种应用中的非凡能力
(Chu et al., 2024; Yang et al., 2023; Wu et al., 2023b; Chen et al., 2024b)
. 然而,多图像场景仍然是一个重要且尚未探索的方面。 特别是,将 MLLMs 的上下文扩展到理解更长的视频
(Zhang et al., 2023; Cheng et al., 2024b)
、更高分辨率的图像
(Xu et al., 2024c; Wu & Xie, 2023b)
以及根据更多历史消息做出决策
(Wang et al., 2024; Liu et al., 2024c)
对于提升用户体验
(Li et al., 2024b)
和进一步扩展 MLLMs 的应用范围
(Apple, 2024)
至关重要。
然而,扩展 MLLMs 的上下文长度以提高其可用性会带来挑战,这些挑战与处理更多图像时性能下降和计算成本高昂有关。 为了在更长的上下文中保持性能,一些研究
(Zhang et al., 2024a; Zhao et al., 2024c)
专注于整理包含多个图像的长上下文训练数据以提高性能。 此外,其他研究工作探索了创新的训练策略
(Liu et al., 2024a; Zhang et al., 2024b; Li et al., 2024a; Zhang et al., 2024d)
以减轻性能下降。 关于高计算成本的问题,
Xue et al. (2024)
在通过降低通信成本来提高多节点效率方面取得了进展。 但是,在管理更长上下文时,加速计算本身的解决方案仍然存在差距。
为了解决上述挑战,我们提出了一种名为
LongLLaVA
的系统解决方案
,尤其是使用混合架构进行加速。 该解决方案从三个维度全面优化:
多模态架构
、
数据构建
和
训练策略
。
•
对于
多模态架构
,我们采用了一种将 Transformer 与 Mamba 相结合的混合架构,并提出了一种有效的图像表示方法,该方法应用二维池化压缩图像符元,显著降低了计算成本,同时保持了性能。
•
对于
数据构建
,我们为不同的任务设计了独特的格式,使模型能够区分图像之间的时间和空间依赖关系。
•
就
训练策略
,我们采用三阶段方法进行多模态适应——单图像对齐、单图像指令调优和多图像指令调优——逐步增强模型处理多模态长上下文的能力。
实验结果表明,LongLLaVA 在理解多模态长上下文方面表现出色,效率很高。 在 VNBench
(Zhao 等人,2024e)
中,它在检索、计数和排序任务方面处于领先地位,并且在单张 80GB GPU 上使用 1,000 张图像进行 Needle-In-A-Haystack 评估
(Zhang 等人,2024b)
时,其准确率接近 100%。
我们总结的贡献如下:
2
将 MLLM 中的图像数量扩展
2.1
图像数量的诅咒
随着图像数量的增加,模型的输入长度迅速增加,从而导致模型性能下降和推理成本高等问题。 随着 MLLM 技术的演进,许多现有的开源 MLLM 在单图像任务中已展现出与闭源模型相当的能力
(Bai 等人,2023;Li 等人,2024a;Zhang 等人,2024a;OpenAI,2024;Google,2024)
。 但是,当任务扩展到多个图像时,这些模型的能力会显著下降。 无论是时间相关还是语义相关的多图像任务,这些模型都遇到了相当大的困难,远远落后于闭源模型的性能
(Song 等人,2024)
。 这种能力下降严重限制了开源 MLLM 的应用场景,开源社区迫切需要一个系统性的解决方案来解决这个问题。
过长的输入
除了
性能下降
,另一个挑战是管理
过长的输入
在处理大量图像时。 MLLM 的视觉编码器组件通常将每个图像转换为大量符元。 例如,CLIP 编码器
1
(Radford 等人,2021)
为分辨率为 336 像素的图像生成 576 个图像符元。 以 1 FPS 的速度表示三分钟的视频将需要
3
×
60
×
576
=
103
,
680
个符元。 这导致计算需求和内存使用量迅速增加,显著降低用户体验并提高服务成本。 虽然一些工作提出了以 2D 或 3D 格式压缩图像符元
(Chen 等人,2023a;Zhang 等人,2024b;Xu 等人,2024b)
,但这通常是以牺牲性能为代价的。 单靠压缩方法来容纳多个图像而不大幅降低性能是不够的。
高计算和内存复杂度
过长的输入长度会导致
高计算和内存复杂度
. 现有 MLLM 的 LLM 部分主要依赖于 Transformer 架构,其计算复杂度随着序列长度的增加呈二次方增长。 随着图像数量(或序列长度)的增加,由于需要存储 KV-Cache,内存使用量变得异常高。 如图
1
所示,当前模型在单个 80GB GPU 上理论上可以使用
整型8
量化。 目前的努力通过诸如环形注意力
(Liu et al., 2024a; Zhang et al., 2024b)
或序列并行
(Xue et al., 2024)
等技术来缓解这种情况,但这些解决方案引入了更大的时间开销,或者通过切换到 Mamba 架构
(Gu & Dao, 2024; Zhao et al., 2024a)
来应对这些挑战。 然而,在多图像场景中进行上下文学习 (ICL) 的能力是必不可少的,这对 Mamba 模型提出了挑战
(Lieber et al., 2024)
。 因此,需要一种平衡的方法,该方法考虑了多模态上下文中的模型架构,既能解决图像符元数量多,又能降低计算复杂度。
2.2
混合架构的动机
Architecture
Compute Complexity
ICL
Representative models
Transformer
Quadratic
✓
Gemma
(Team et al., 2024a)
, LLaMA
(Touvron et al., 2023a)
Mamba
Linear
✗
Mamba
(Gu & Dao, 2024)
, Mamba-2
(Dao & Gu, 2024)
Hybrid
Quasi-Linear
✓
Jamba
(Lieber et al., 2024)
, Zamba
(Glorioso et al., 2024)
表 1:
架构的比较分析:勾号 (✓) 表示架构支持上下文学习 (ICL) 功能,叉号 (✗) 表示缺少此功能。 有关更详细的实验分析,请参见第
5.1
节。
效能-效率平衡
为了在多模态长上下文场景中平衡有效性和效率,我们建议使用 Mamba-Transformer 混合架构。 如表
1
所示,Mamba-Transformer 混合架构
(Lieber et al., 2024; Poli et al., 2023; De et al., 2024; Glorioso et al., 2024)
由于其在 ICL 任务和其他基准测试中的出色表现而与众不同,其性能与 Mixtral-8x7B
(Jiang et al., 2024a)
相当。 在效率方面,Mamba-Transformer 混合架构由于 Mamba 的线性计算复杂度而效率更高。 例如,流行的混合架构 Jamba 的吞吐量通常是 Mixtral 的三倍,Mixtral 已经利用滑动窗口技术来降低推理复杂度。 Jamba 只需要
4GB
的 KV-Cache 内存用于处理 256K 个符号序列,在
13B
个激活参数下使用
bf16
精度,远低于同类模型。 此外,在使用单个 A100 80GB GPU 的情况下,
整型8
精度下,Jamba 的上下文长度可处理高达 140K 个符号,大大超过了 LLaMA2-7B 的 80K
(Touvron 等人,2023b)
和 Mixtral 8
×
7B 的 60K。
2.3
扩大图像数量的益处
采用更多图像显著拓宽了当前 MLLM 的应用场景。 我们将从两个维度来探讨这一点:
时间扩展
和
空间扩展
。
时间扩展。
理解图像之间的时间依赖关系对于各种应用至关重要。 在多模态助理中,它增强了实时回忆能力,这对于老年人来说尤其有利
(Li 等人,2024b;Loveys 等人,2022)
。 对于移动代理,它能够提供更个性化的服务并改进任务规划
(Deng 等人,2024;Li 等人,2024d;Wu 等人,2023a)
。 在医疗保健领域,它有助于检测 3D 医疗视频中的异常,从而减少诊断错误
(Bai 等人,2024a)
。
空间扩展。
在处理高分辨率图像
(Xu 等人,2024c;Dong 等人,2024b)
或需要对图像进行详细理解时
(Wu & Xie,2023b)
,图像通常被分解成子图像。 此过程强调了掌握这些子图像之间空间依赖关系的重要性。 在遥感领域,图像数量的增加提高了覆盖范围和粒度
(Guo 等人,2024;Liu 等人,2022)
。 在病理学中,它最大程度地减少了信息丢失,并提高了诊断准确性
(Sun 等人,2024;Xu 等人,2024a)
。 在分子学习领域,它有助于处理复杂的反应和分析更大的分子图
(Zhang 等人,2024c;Le 等人,2024)
。
3
LongLLaVA:将 LLaVA 扩展到更长的上下文
为了解决上述挑战并增强模型对长上下文、多图像场景的适应性,我们从三个角度进行了改进:
多模态模型架构
(第
3.1
节),
数据处理协议
(第
3.2
节),以及
训练策略
(第
3.3
节)。
3.1
多模态架构
我们的多模态架构围绕三个核心组件构建,这些组件受到 LLaVA
(Li 等人,2024a)
的启发:视觉编码器、投影器和 LLM。
图 2:
LongLLaVA 架构
视觉信息处理.
我们采用 CLIP
2
将视觉编码器用作视觉信息的编码器,并将两层 MLP 作为投影器,将视觉特征映射到适合 LLM 的文本嵌入空间。 在投影之前,应用双线性池化,通过将
2
×
2
个补丁单元聚合为单个符元,将图像的符元表示从 576 减少到 144。 这种方法有效地节省了训练和推理时间,同时保持了补丁之间重要的空间关系。 附录
4.5
中提供了有关此策略有效性的更多详细信息。
混合 LLM 架构。
我们的模型采用混合 LLM 架构,以 7:1 的比例集成 Transformer 和 Mamba 层,如图
2
所示。 它还在每隔一层都采用专家混合 (MoE) 方法,利用 16 个专家并为每个符元选择前 2 名专家。 RMSNorm
(Zhang & Sennrich, 2019)
用于层之间以增强规范化,尽管省略了位置嵌入。 该模型包含分组查询注意力 (GQA)
(Ainslie 等人,2023)
和 SwiGLU 激活函数
(Shazeer, 2020)
,类似于其他大型语言模型。 模型的总参数计数为
53B
,推理期间的激活参数总数为
13B
。
3.2
数据处理协议
为了确保模型能够有效地区分多图像场景中图像之间的时态和空间依赖性,并在各种任务中表现出色,我们仔细区分了不同场景中的特殊字符。 如图
3
所示,这些特殊字符全面地解决了不同语境中图像之间的各种关系,从而增强了模型对各种任务的适应性。
常规的单张和多张图片
: 对于常规的单张和多张图片输入,我们使用
和
用于封装图像符元,帮助模型区分图像符元和文本符元。
视频
: 对于视频输入,为了使模型能够理解帧之间的时间关系,我们首先使用
和
来封装图像符元。 此外,我们在不同帧之间添加特殊符号
来表示它们之间的时间依赖关系。
高分辨率图像
: 对于需要将图像划分为多个子图像的复杂单图像理解,我们使用
\n
来将主图像与其子图像分开。 对于子图像的排列,我们从左上角到右下角遍历,添加
\n
在分隔行之间以保留子图像的相对空间位置。
3.3
训练策略
在我们的训练策略中,我们实现了单模态和多模态的适应,将预训练的语言模型转换为多模态的长上下文模型。
图 4:
数据集分类。
Replay
指的是从先前阶段采样的数据,以保持单图像和对话理解能力。
SubImage
表示一个构建的数据集,用于理解被划分为子图像的复杂单图像。 Ins-T. 和 Align. 分别代表指令调优和对齐。
纯文本指令调优。
我们最初增强了预训练语言模型在纯文本上下文中遵循不同长度指令的能力。 这是通过使用来自 Evol-instruct-GPT4
(Xu 等人,2023)
、WildChat
(Zhao 等人,2024d)
和 LongAlign
(Bai 等人,2024b)
的总计 278k 个纯文本条目组成的综合数据集实现的。
对于多模态适应,遵循
单图像对齐
和
单图像指令调优
LLaVA
(Li 等人,2024a)
中的阶段,我们引入了一个
多图像指令调优
阶段来逐步增强模型的长期上下文能力。 我们采用逐步训练,不仅是为了更好地控制变量,也是为了提高模型的可重用性
(Fu 等人,2024b)
。 数据集的具体使用情况详见图
4
。
第一阶段:单图对齐。
此阶段的目标是将视觉模态特征与文本模态进行对齐。 我们使用 ALLaVA-Caption
(Chen et al., 2024a)
和 ShareGPT4V
(Chen et al., 2023b)
等数据集,其中包含大约 600,000 对高质量的图像-字幕配对。 在此阶段,仅训练投影器,而视觉编码器和 LLM 的参数保持冻结。
第二阶段:单图指令调优。
此阶段旨在赋予模型多模态指令遵循能力。 我们使用 LLaVA-1.5
(Liu et al., 2023b)
和 Mantis-Single
(Jiang et al., 2024b)
等数据集,总计约 932,000 对高质量的问答配对。 在此阶段,仅视觉编码器保持冻结,而投影器和 LLM 部分则进行训练。 此过程最终导致开发了
LongLLaVA(单图)
。
第三阶段:多图指令调优。
在此阶段,训练模型在多模态长上下文场景中遵循指令。 我们分别从 Mantis
(Jiang et al., 2024b)
、VideoChat2
(Li et al., 2024c)
和 ShareGPT4Video
(Chen et al., 2024c)
中采样了 200,000 个、200,000 个和 50,000 个数据项。 为了保留模型的单图理解和纯文本对话能力,我们还从单图指令调优阶段和纯文本指令调优阶段添加了 200,000 个和 50,000 个数据项,作为
重播
组件。 此外,为了增强模型对复杂单图(分割成多个子图)的解释能力,我们从单图指令调优阶段提取了 50,000 个数据项,进行填充和分割,并将原始图像划分为大小为
336
×
336
的子图,作为
子图像
组件。这最终导致了
LongLLaVA
的开发。对于多模态自适应,fo
4
实验
4.1
训练细节。
为了训练,我们利用随机采样将数据项连接成 40,960 个符元长度,并以
符元。 此方法有助于管理庞大的数据集并确保不同数据段的覆盖范围多样化。 训练在三个计算节点上执行,每个节点配备八个 A800 GPU,利用 DeepSpeed Zero-3 作为分布式策略来增强可扩展性和效率。 我们采用余弦学习率调度器,预热速率为
0.03
分隔,将训练周期设置为
1
,并将学习率设置为
1e-5
. 此配置旨在有效地平衡学习速度和模型收敛。 .
4.2
评估设置
我们使用多图像评估来评估模型的多模态长文本理解能力,并进行单图像评估以探索基本功能。 有关单图像评估的详细信息,请参阅附录
B
。 LongLLaVA(单图像)和 LongLLaVA 都使用
整型8
量化,温度设置为零,以确保性能评估的一致性。 量化
整型8
的使用有助于减小模型大小和计算量,同时保持性能精度。
基准测试。
我们的评估使用了三个多图像基准:MileBench
(Song 等人,2024)
用于评估多模态长上下文场景性能,以及 Video-MME
(Fu 等人,2024a)
和 MVBench
(Li 等人,2024c)
用于视频分析能力。 这些基准的详细描述见附录
A
。
基线。
我们将我们的模型与四个商业模型进行比较:GPT-4V
3
(OpenAI,2024)
,GPT-4o
4
,Gemini-1.5-Pro
5
(Google,2024)
,以及 Claude3-Opus
6
, 以及五个开源模型:Phi-3-Vision
7
、OmChat
(Zhao 等人,2024b)
、LongVILA
(Xue 等人,2024)
、Video-LLaMA-2
(Cheng 等人,2024a)
和 VideoChat2
(Li 等人,2024c)
。
4.3
主要结果
Model
PFLOPs
MileBench
VideoMME w/o subs
MVBench
Temporal
Semantic
IR
Avg.
Short
Medium
Long
Avg.
Proprietary Models
GPT-4V
-
45.6
58.9
86.7
63.7
70.5
55.8
53.5
59.9
43.5
GPT-4o
-
56.2
63.5
88.8
69.5
72.5
63.1
58.6
64.7
-
Gemini-1.5-Pro
-
50.2
58.3
88.0
65.5
78.8
68.8
61.1
69.6
-
Claude3-Opus
-
37.4
48.1
25.0
36.8
70.5
57.4
51.2
59.7
-
Open-source MLLMs
Video-LLaMA2
3.71
-
-
-
-
55.9
45.4
42.1
47.8
34.1
VideoChat2
0.24
25.5
25.5
9.2
20.1
48.3
37.0
33.2
39.5
51.9
LongVILA
3.90
-
-
-
-
61.8
49.7
39.7
50.5
-
Phi-3-Vision
2.68
46.9
50.0
18.7
38.5
-
-
-
-
-
OmChat
3.90
51.4
52.0
34.2
45.9
-
-
-
-
50.2
LongLLaVA
*
0.22
52.7
52.1
67.5
57.4
60.9
49.7
44.1
51.6
54.6
表 2:
多图像评估结果。 * 表示模型使用
Int8
精度进行评估。 PFLOPs 代表推断 128 张图像所需的浮点运算次数。 专有和开源 MLLM 的最高得分以粗体显示。 Video-MME 在无字幕(w/o subs)的设置下进行评估。
如表
2
所示,LongLLaVA 在 MileBench 上的开源模型中表现出色,甚至超过了 Claude3-Opus,尤其是在检索任务中表现出色。 这突出了 LongLLaVA 在处理多图像任务方面的出色能力。 值得注意的是,LongLLaVA 在 Video-MME 和 MVBench 等视频基准测试中的表现进一步强调了其有效性。 它表现出非凡的结果,特别是在涉及中长视频的任务中,超过了传统的视频模型,如 Video-LLaMA2 和 VideoChat2。
值得注意的是,尽管取得了这些令人印象深刻的结果,但 LongLLaVA 的运行 FLOPs 比其他模型少一个数量级。 这种计算资源的效率不仅突出了 LongLLaVA 的先进性能,而且突出了其在资源管理方面的优化。 这些结果反映了研究界在缩小与商业模型的性能差距方面的努力取得了重大进展。
4.4
长上下文 MLLM 的诊断评估
Video MLLM
PFLOPs
Retrieval
Ordering
Counting
Average
E
I-1
I-2
E
I-1
I-2
E-1
E-2
I
Proprietary Models
Gemini-1.5
-
100.0
96.0
76.0
90.7
95.3
32.7
60.7
7.3
42.0
66.7
GPT-4o
-
100.0
98.0
87.3
88.4
86.6
45.2
36.8
0.0
36.1
64.4
GPT-4V
-
100.0
99.3
82.0
42.6
22.8
23.0
37.6
0.0
32.4
48.9
Open-source MLLMs
Video-LLama2
0.85
1.2
26.0
6.0
0.0
0.0
0.0
2.0
4.7
0.7
4.5
VideoChat2
0.08
43.4
40.0
14.6
0.0
0.0
1.3
4.4
8.0
12.4
12.4
LongLLaVA*
0.09
100
73.3
100.0
37.5
35.3
34.8
36.0
23.7
28.0
52.1
表 3:
使用 VNBench 分析长上下文 MLLM 的原子能力
(Zhao 等人,2024e)
。 * 表示模型使用
Int8
精度进行评估。 PFLOPs 指的是对 54 张图像进行推理所需的浮点运算次数,对应于从数据集视频中以 1 FPS 提取的平均帧数。
考虑到以往的评估无法充分捕捉 MLLMs 在长文本上的能力,我们采用了一个新的诊断评估集 VNBench
(Zhao et al., 2024e)
,以进一步分析模型在长文本中的原子能力。 VNBench 是一个基于合成视频生成的基准构建框架,涵盖了检索、排序和计数等任务。
结果如表
3
所示,表明 LongLLaVA 在跨上下文检索、排序和技术能力等任务中的表现与领先的闭源模型相当,甚至超过了 GPT-4V。 在开源模型中,LongLLaVA 也表现出其优越的性能。 这将 LongLLaVA 确立为该领域的主要竞争者,证明了其在管理和解释长文本方面的先进能力。
4.5
消融研究
Method
#Token
GQA
MMMU
SQA
I
SEED
i
m
g
v
1
Mile
a
v
g
∗
LLaVA-1.5-13B
576
63.3
34.4
71.6
68.2