摘要
我们提出了 LLaVA-OneVision,这是一个开放式大规模多模态模型(Large Multimodal Models, LMMs)家族,基于我们在 LLaVA-NeXT 博客系列中关于数据、模型与视觉表示的深入见解而构建。实验结果表明,LLaVA-OneVision 是首个在三个重要计算机视觉场景中同时提升开放式 LMMs 性能边界的单一模型:单图像、多图像和视频场景。更重要的是,LLaVA-OneVision 的设计支持在不同模态/场景之间进行强有力的迁移学习,进而产生新的能力涌现。特别地,我们展示了该模型通过从图像任务迁移到视频任务,获得了强大的视频理解能力与跨场景泛化能力。
1 引言
构建具备通用能力的多模态助手(Large Multimodal Models, LMM)[67] 是人工智能领域的重要目标。LLaVA-OneVision 是一个开放模型,继续推动构建大型视觉语言助手(LLaVA)[83] 的研究,该类模型能够遵循多样化的指令,完成现实世界中的各种计算机视觉任务。作为一种成本高效的方法,通常通过将视觉编码器(vision encoder)与大语言模型(Large Language Model, LLM)连接,并使用一个简单的连接模块进行构建。
第一代 LLaVA 模型 [83] 展示了令人印象深刻的多模态聊天能力,首次在从未见过的图像和指令上表现出类似 GPT-4V 的行为。LLaVA-1.5 [81] 通过引入更多学术相关的指令数据,显著扩展并增强了能力,在多个基准测试中以数据高效的方式实现了 SOTA 性能。LLaVA-NeXT [82] 延续了这一特性,通过以下三项关键技术进一步突破性能边界:用于处理高分辨率图像的 AnyRes 技术、扩展高质量指令数据、以及使用当时最优的开源 LLM。
LLaVA-NeXT 提供了一个可扩展的原型框架,使得多项并行探索成为可能,这些探索在 LLaVA-NeXT 博客系列 [82, 169, 65, 64, 68] 中有详细记录:
👉 https://llava-vl.github.io/blog/
- Video 博客 [169] 展示了仅用图像训练的 LLaVA-NeXT 模型在视频任务上也表现出惊人的性能,得益于 AnyRes 的设计,该设计将任意视觉信号处理为图像序列,从而实现 zero-shot 模态迁移;
- Stronger 博客 [65] 展示了在保持成本高效策略下,通过简单放大 LLM 规模即可获得接近 GPT-4V 的性能;
- Ablation 博客 [64] 总结了除视觉指令数据以外的实证探索,包括架构选择(LLM 和视觉编码器的扩展)、视觉表示(图像分辨率与 token 数量)、以及训练策略(可训练模块与高质量数据);
- Interleave 博客 [68] 描述了如何扩展模型能力至新场景,包括多图像、多帧(视频)和多视角(3D)等,同时保持单图像场景下的性能。
这些探索均在固定算力预算下完成,旨在为项目推进提供实用见解,而非一味追求性能极限。在此过程中,我们也自 1 月至 6 月持续积累并整理了大量高质量数据集。通过整合上述见解,并使用新积累的大规模数据集以“yolo run”的方式执行实验,我们推出了 LLaVA-OneVision。我们利用现有计算资源实现了新模型,未对各组件进行过度风险规避,从而为未来在数据与模型规模上的进一步能力提升留出空间。详细的开发时间线见附录 A。特别地,本文的主要贡献包括:
- 大规模多模态模型:我们开发了 LLaVA-OneVision 系列开放式 LMMs,在三个重要视觉任务设置(单图像、多图像、视频)中均显著提升了开放式 LMMs 的性能边界;
- 任务迁移能力的涌现:我们的模型设计与数据表示方式支持跨场景任务迁移,验证了通过简单策略即可获得新兴能力,特别地,LLaVA-OneVision 展现了图像到视频迁移中强大的视频理解能力;
- 开放源代码:为了推动通用视觉助手的构建,我们将以下资源开源:生成的多模态指令数据、完整代码库、模型检查点与可交互的视觉聊天演示。
2 相关工作
目前的 SoTA 私有 LMM(如 GPT-4V [109]、GPT-4o [110]、Gemini [131] 和 Claude-3.5 [3])在多种视觉场景中表现出色,包括单图像、多图像和视频设置。在开源研究社区中,现有工作通常分别针对每种特定场景开发模型。具体而言,大多数研究聚焦于在单图像场景中推动性能极限 [26, 83, 173, 73, 164, 35],只有少数近期论文开始探索多图像场景 [70, 47]。虽然视频 LMM 在视频理解方面表现优异,但往往是以图像性能为代价 [72, 76]。目前很少有一个单一的开源模型在所有三种场景中都报告出色性能。LLaVA-OneVision 旨在填补这一空白,展示其在广泛任务中的 SoTA 性能,并通过跨场景任务迁移和组合展现出有趣的涌现能力。
据我们所知,LLaVA-NeXT-Interleave [68] 是第一个在这三种场景中都报告出良好性能的尝试,LLaVA-OneVision 继承了其训练配方和数据以提升性能。其他具有潜力在多场景中表现优异的开源 LMM 包括 VILA [77]、InternLMXComposer-2.5 [162]。不幸的是,它们的结果尚未被全面评估和报告;我们在实验中对其进行了比较。除了构建具备多场景能力的系统,LLaVA-OneVision 还受益于大规模高质量数据的训练,包括模型合成的知识和新的多样化 instruction tuning 数据集。前者中,我们继承了 [64] 中的所有知识学习数据。后者中,我们受到了 FLAN [136, 88, 145] 的启发。我们的数据收集过程与 Idefics2 [63] 和 Cambrian-1 [133] 同期进行,但我们聚焦于更小但更精心策划的数据集。一个类似的结论被观察到:大量的视觉 instruction tuning 数据可以显著提升性能。关于 LMM 设计选择的全面研究,请参考近期的若干研究 [51, 63, 64, 104, 133, 10]。
3 建模
3.1 网络架构
该模型架构继承了 LLaVA 系列的极简设计风格,其主要目标是:(i) 有效利用预训练 LLM 和视觉模型的能力,以及 (ii) 在数据和模型方面具备良好的可扩展性。网络架构如图 1 所示。
-
LLM:我们选择 Qwen-2 [148] 作为我们的 LLM f ϕ ( ⋅ ) f _ { \phi } ( \cdot ) \, fϕ(⋅),其参数为 Φ,因为它提供了多种模型规模,并在目前公开的 checkpoint 中展现出强大的语言能力。
-
Vision Encoder:我们选用 SigLIP [158] 作为视觉编码器 g ψ ( ⋅ ) g _ { \psi } ( \cdot ) gψ(⋅),将输入图像 X v \mathbf { X } _ { \mathrm { v } } Xv 编码为其视觉特征 Z v = g ( X v ) \mathbf { Z } _ { \mathrm { v } } = g ( \mathbf { X } _ { \mathrm { v } } ) Zv=g(Xv)。我们在实验中考虑了最后一个 Transformer 层之前和之后的 grid features。
-
Projector:我们使用一个 2 层的 MLP [81] p θ ( ⋅ ) p _ { \theta } ( \cdot ) pθ(⋅),其参数为 θ,将图像特征投影到词嵌入空间,生成一系列视觉 token,即 H v = p ( Z v ) \mathbf { H } _ { \mathrm { v } } = p ( \mathbf { Z } _ { \mathrm { v } } ) Hv=p(Zv)。
模型的选择基于我们在 [65, 64] 中的经验性观察:更强大的 LLM 通常能显著增强在真实环境中的多模态能力;而在开源视觉编码器中,SigLIP 带来了更高的 LMM 性能。对于长度为 L L L 的序列,我们通过如下公式计算目标答案 X a \mathbf { X } _ { \mathtt { a } } Xa 的概率:
p ( X a ∣ X v , X q ) = ∏ i = 1 L p ( x i ∣ X v , X q , < i , X a , < i ) , (1) p ( \mathbf { X _ { a } } | \mathbf { X _ { v } } , \mathbf { X _ { q } } ) = \prod _ { i = 1 } ^ { L } p ( x _ { i } | \mathbf { X _ { v } } , \mathbf { X _ { q , < i } } , \mathbf { X _ { a , < i } } ) , \tag{1} p(Xa∣Xv,Xq)=i=1∏Lp(xi∣Xv,Xq,<i,Xa,<i),(1)
其中 X q , < i { \mathbf { X } } _ { \mathbf { q } , < i } Xq,<i 和 X a , < i { \bf X } _ { \sf a , < i } Xa,<i 分别表示在当前预测 token x i , x _ { i } , xi, 之前的指令 token 和答案 token。对于公式 (1) 中的条件项,我们显式地添加了 X v \mathbf { X } _ { \mathrm { v } } Xv,以强调所有答案均以视觉信号为基础。如第 3.2 节所解释,视觉信号 x i , x _ { i } , xi, 的形式是通用的。输入到视觉编码器的视觉输入取决于具体场景:在单图像序列中为单张图像裁剪,在多图像序列中为单张图像,在视频序列中为单帧图像。
3.2 视觉表征
视觉信号的表示是视觉编码成功的关键。它与两个因素有关:原始像素空间中的分辨率以及特征空间中的 token 数量,从而形成视觉输入表示的配置 (resolution, #token)。这两个因素的扩展都会带来性能提升,尤其是在需要视觉细节的任务中尤为明显。为了在性能和成本之间取得平衡,我们观察到在这两个因素中,分辨率的扩展比 token 数量的扩展更为有效,因此推荐采用带有池化的 AnyRes 策略。图 2 展示了相应的比较。
对于 AnyRes,当配置为宽度 a、高度 b 时,它将图像划分为 a × b 个裁剪区域,每个裁剪区域的形状为 (a, b)。每个裁剪区域都具有适合视觉编码器的相同分辨率。假设每个裁剪区域产生 T 个 token,则视觉 token 的总数为
L
=
(
a
×
b
+
1
)
×
T
L = (a × b + 1) × T
L=(a×b+1)×T,其中基础图像在送入视觉编码器之前会被重新调整大小。我们设定一个阈值
τ
\tau
τ,并在需要时使用双线性插值来减少每个裁剪区域的 token 数量:
T
n
e
w
=
{
τ
(
a
×
b
+
1
)
i
f
L
>
τ
T
i
f
L
≤
τ
(
2
)
T _ { \mathrm { n e w } } = { \left\{ \begin{array} { l l } { { \frac { \tau } { ( a \times b + 1 ) } } } & { { \mathrm { i f ~ } } L > \tau } \\ { T } & { { \mathrm { i f ~ } } L \leq \tau } \end{array} \right. }\quad(2)
Tnew={(a×b+1)τTif L>τif L≤τ(2)
一组空间配置
(
a
,
b
)
(a, b)
(a,b) 被定义用于指定图像裁剪的方法,从而适配不同分辨率与长宽比的图像。在这些配置中,选择所需裁剪次数最少的那一个。我们在文献 [64] 中对视觉表示进行了详细消融实验。
所提出的 Higher AnyRes 策略可以作为一个灵活的视觉表示框架,可适配多图像和视频表示。具体的性能与成本最优配置可根据需求进行调整。我们在图 3 中展示了该配置,在附录 C.1 中提供了详细说明,并总结了如下高层级编码策略:
- Single-image. 我们为单图像表示考虑了一个较大的最大空间配置 ( a , b ) (a, b) (a,b),以在不调整图像尺寸的前提下保留原始图像分辨率。此外,我们特意为每张图像分配了大量视觉 token,形成一条较长的序列,以有效表示视觉信号。这一做法基于如下观察:相较于视频,图像在训练时拥有更多高质量、指令多样的样本。通过将图像表示为类似于视频的长序列,有助于实现从图像理解到视频理解的能力迁移 [169, 64]。
- Multi-image. 仅使用基础图像分辨率输入视觉编码器以获得特征图,无需对高分辨率图像进行多裁剪,从而节省计算资源 [68]。
- Video. 视频的每一帧都被调整为基础图像分辨率,并由视觉编码器处理以生成特征图。我们使用双线性插值减少每帧的 token 数量,从而能够处理更多帧数。实证结果表明,这种方法在性能与计算成本之间提供了更优的权衡 [169]。
这些表示配置在我们的实验中是基于固定计算预算所设计的能力迁移策略。在计算资源充足的情况下,可以在训练和推理阶段增加每张图像或每帧的 token 数量以进一步提升性能。
4 数据
在从 LLM 进行多模态训练的领域中,“质量胜于数量”这一公理尤为适用。这一原则之所以重要,是因为预训练的 LLM 和 Vision Transformer(ViT)中已蕴含了大量知识。虽然在 LMM 训练周期结束前,积累平衡、多样且高质量的指令数据至关重要,但一个经常被忽视的方面是:只要有机会,持续地让模型接触新的高质量数据,以实现进一步的知识获取。在本节中,我们将讨论高质量知识学习与视觉指令微调所采用的数据来源与策略。
4.1 高质量知识
网络规模的公开图文数据往往质量较低,使得多模态预训练中的数据扩展效率不高。因此,在计算预算有限的前提下,我们建议聚焦于高质量的知识学习。这种方法认识到预训练的 LLM 与 ViT 已拥有相当丰富的知识基础,目标是通过精心策划的数据进一步精炼与增强已有知识。通过优先关注数据质量,我们可以最大限度地提高计算效率。
我们考虑以下三类主要数据用于高质量知识学习:
- 重生成描述数据(Re-Captioned Detailed Description Data)。LLaVA-NeXT-34B [82] 是开源 LMM 中以强大的细致图像描述能力著称的模型。我们使用该模型为以下数据集中的图像生成新的图文描述:COCO118K、BLIP558K 与 CC3M。我们将它们合并为重生成描述数据集,总计 350 万条样本。这可以被视为一种简易的“自我提升 AI”尝试,即训练数据由模型的早期版本生成。
- 文档 / OCR 数据(Document / OCR Data)。我们使用了 UReader 数据集中的 Text Reading 子集,总计 10 万条样本,该数据可通过 PDF 渲染轻松获得。我们将该文本阅读数据与 SynDOG EN/CN 数据合并,构建了一个总计 110 万条样本的文档 / OCR 数据集。
- 中文与多语言数据(Chinese and Language Data)。我们使用了原始 ShareGPT4V [20] 图像,并调用 Azure API 提供的 GPT-4V,为其生成了 9.2 万条中文详细图文描述数据,以提升模型的中文能力。由于我们使用了大量细致描述数据,也希望同时平衡模型的语言理解能力。我们从 Evo-Instruct 数据集中收集了 14.3 万条样本。
有趣的是,我们几乎所有(占比 99.8%)的高质量知识数据都是合成的。这是由于在现实中收集大规模、高质量数据的成本高昂且存在版权限制。相比之下,合成数据更易扩展。我们相信,随着 AI 模型能力的不断增强,从大规模合成数据中学习将成为一种趋势。
4.2 视觉指令调优数据
视觉指令微调(Visual instruction tuning)[83] 指的是一个LMM理解并执行视觉指令的能力。这些指令可以采用语言的形式,并结合图像或视频等视觉媒体,LMM会处理这些内容,并据此执行任务或生成响应。这一过程涉及将视觉理解与自然语言处理整合起来,以解释指令并执行所需响应。
数据收集与整理。 正如先前工作所展示的那样 [81, 133, 63],视觉指令微调数据对于LMM能力至关重要。因此,维护一个高质量的数据集集合对于社区来说至关重要且有益。我们开始从各种原始来源收集大量的指令微调数据集,这些数据集在类别间具有不平衡的数据比例。此外,我们还使用了来自Cauldron [63] 和 Cambrian [133] 数据集集合的一些新子集。我们根据三层次结构对数据进行分类:vision、instruction 和 response。
温馨提示:
阅读全文请访问"AI深语解构" LLaVA-OneVision:简单的视觉任务迁移