LLaVA-OneVision是一个大型多模态模型(LMM)系列,通过整合对LLaVA-NeXT博客系列中的数据、模型和视觉表示的见解而开发。该模型旨在提高在三个重要计算机视觉场景中的性能边界,并允许跨不同模式/场景进行强大的迁移学习。
该模型通过整合LLaVA-NeXT博客系列中的数据、模型和视觉表示见解进行开发,显示出强大的性能表现。
这种训练策略有助于提高模型的性能和适应能力。
摘要
我们推出了 LLaVA-OneVision,这是一个开放式大型多模态模型 (LMM) 系列,通过整合我们对 LLaVA-NeXT 博客系列中的数据、模型和视觉表示的见解而开发。
我们的实验结果表明,LLaVA-OneVision 是第一个能够在三个重要的计算机视觉场景(单图像、多图像和视频场景)中同时突破开放式 LMM 性能极限的单一模型。
重要的是,LLaVA-OneVision 的设计允许跨不同模式/场景进行强大的迁移学习,从而产生新的能力。
特别是,通过从图像到视频的任务转移,展示了强大的视频理解和跨场景能力。
†
https://llava-vl.github.io/blog/llava-onevision
1
简介
利用大型多模态模型 (LMM) 构建通用助手是人工智能的核心愿望
[67]
。
LLaVA-OneVision 是一个开放模型,持续推进构建大型视觉和语言助手 (LLaVA)
[83]
的研究,该助手可以遵循不同的指令来完成各种计算机视觉任务在野外。
作为一种经济高效的方法,它通常是通过使用简单的连接模块将视觉编码器与大型语言模型(大语言模型)连接起来而开发的。
第一个 LLaVA 模型
[83]
展示了令人印象深刻的多模式聊天能力,有时首次在以前未见过的图像和指令上表现出类似于 GPT-4V 的行为。
LLaVA-1.5
[81]
通过纳入更多与学术相关的指令数据,显着扩展和改进了功能,通过数据高效的配方在数十个基准上实现了 SoTA 性能。
LLaVA-NeXT
[82]
继承了这一特性,通过三个关键技术进一步突破性能界限:用于处理高分辨率图像的 AnyRes、扩展高质量指令数据以及利用可用的最佳开放大语言模型当时。
LLaVA-NeXT 提供了一个可扩展且可伸缩的原型,它促进了 LLaVA-NeXT 博客系列中报道的几个并行探索
[82, 169, 65, 64, 68]
:
https://llava-vl.github.io/blog/
•
该
视频
博客
[169]
表明,仅图像训练的 LLaVA-NeXT 模型在视频任务中表现出令人惊讶的强大,具有零样本模态转移能力,这是由于 AnyRes 的设计可以将任何视觉信号作为图像序列来消化。
•
Stronger
博客
[65]
展示了大语言模型扩展这种经济高效策略的成功。
通过简单地扩展大语言模型,它在选定的基准上实现了与 GPT-4V 相当的性能。
•
Ablation
博客
[64]
总结了我们除了视觉指令数据本身之外的实证探索,包括架构的选择(大语言模型和视觉编码器的缩放)、视觉表示(分辨率和#tokens),以及追求数据扩展成功的训练策略(可训练模块和高质量数据)。
•
Interleave
博客
[68]
描述了在多图像、多帧(视频)和多视图(3D)等新场景中扩展和改进能力的策略,同时保持单图像性能。
这些探索是在固定的计算预算内进行的,旨在在我们浏览项目的过程中提供有用的见解,而不是突破性能限制。
在此过程中,我们还积累和整理了一月至六月的大量高质量数据集。
通过整合这些见解并在新积累的更大数据集上使用“yolo run”执行实验,我们推出了 LLaVA-OneVision。
我们利用可用的计算来实现新模型,而没有广泛降低各个组件的风险。
这为通过额外数据和模型扩展进一步提高能力留下了空间,遵循我们的方案,请参阅第
A
节中的详细开发时间线。
特别是,我们的论文做出了以下贡献:
•
大型多模态模型
。
我们开发了 LLaVA-OneVision,这是一系列开放式大型多模态模型 (LMM),它提高了开放式 LMM 在三个重要视觉设置(包括单图像、多图像和视频场景)中的性能边界。
•
任务转移带来的新能力
。
我们在建模和数据表示方面的设计允许跨不同场景进行任务转移,这提出了一种产生新的新兴功能的简单方法。
特别是,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 旨在通过在广泛的任务中展示最先进的性能,并通过跨场景任务转移和组合展示有趣的新兴功能来填补这一空白。
据我们所知,LLaVA-NeXT-Interleave
[68]
是在所有三种场景中报告良好性能的首次尝试,LLaVA-OneVision 继承了其训练配方和数据以提高性能。
其他具有潜在优势的多功能开放式 LLM 包括 VILA
[77]
和 InternLM-XComposer-2.5
[162]
。
不幸的是,他们的结果没有得到充分的评估和报告;我们在实验中与他们进行比较。
除了构建具有多功能功能的系统外,LLaVA-OneVision 训练还受益于大规模高质量数据,包括模型合成知识和新收集的多样化指令调优数据。
对于前者,我们继承了
[64]
中的所有知识学习数据。
对于后者,我们受到 FLAN
[136, 88, 145]
的启发。
数据收集过程与 Idefics2
[63]
和 Cambrian-1
[133]
并行,但我们专注于更小但更精心策划的数据集集合。
观察到类似的结论:大量的视觉指令调优数据可以显着提高性能。
为了对 LMM 的设计选择进行全面的研究,我们参考了最近的几项研究
[51,63,64,104,133,10]
。
3
建模
3.1
网络架构
模型架构继承了LLaVA系列的极简设计,其主要目标是
(
i
)
有效利用大语言模型和视觉模型的预训练能力,以及
(
i
i
)
方便数据和模型方面都有很强的扩展行为。
网络架构如图
1
所示。
•
大语言模型
。
我们选择 Qwen-2
[148]
作为我们的 LLM
f
ϕ
(
⋅
)
,由
ϕ
参数化,因为它提供了各种模型大小,并且在目前可用的公共检查点中展现出强大的语言能力。
•
视觉编码器
。
我们考虑 SigLIP
[158]
作为视觉编码器
g
𝝍
(
⋅
)
,由
𝝍
参数化,将输入图像
𝐗
v
编码为其视觉特征
𝐙
v
=
g
(
𝐗
v
)
。
我们的实验中考虑了最后一个 Transformer 层之前和之后的网格特征。
•
投影层
。
我们考虑由
𝜽
参数化的 2 层 MLP
[81]
p
𝜽
(
⋅
)
,将图像特征投影到词嵌入空间中,产生一系列视觉标记
𝐇
v
=
p
(
𝐙
v
)
。
模型选择基于我们在
[65, 64]
中的经验见解,即更强的大语言模型通常会在野外增强更强的多模态能力,而SigLIP在开放视觉编码器中产生更高的LMM性能。
对于长度为
L
的序列,我们通过以下方式计算目标答案
𝐗
a
的概率:
其中
𝐗
q
,
<
i
和
𝐗
a
,
<
i
分别是当前预测词符
𝒙
i
之前所有回合中的指令和答案标记。
对于 (
1
) 中的条件,我们明确地添加
𝐗
v
来强调视觉信号对所有答案都是有依据的事实。
正如第
3.2
节中所解释的,视觉信号
𝐗
v
的形式是通用的。
馈送到视觉编码器中的视觉输入取决于相应的场景:分别是单图像序列中的单个图像裁剪、多图像序列中的单个图像和视频序列中的单个帧。
图1
:
LLaVA-OneVision 网络架构。
左:当前模型实例化;右图:
[83]
中 LLaVA 架构的一般形式,但经过扩展以支持更多视觉信号。
3.2
视觉表示
视觉信号的表示是视觉编码成功的关键。
它涉及两个因素,
原始像素空间中的分辨率
和
特征空间中的标记数量
,从而导致视觉输入表示配置(分辨率,#词符)。
这两个因素的扩展可以提高性能,尤其是在需要视觉细节的任务上。
为了在性能和成本之间取得平衡,我们发现分辨率的缩放比词符数的缩放更有效,并推荐使用池化的 AnyRes 策略。
比较结果如图
2
所示。
图2
:
视觉表现。
上图:新的 Higher AnyRes 方案采用双线性插值来处理更高分辨率的图像;底部:
[82]
中的原始 AnyRes。
图3
:
在 LLaVA-OneVision 中为每个场景分配 Token 的视觉表示策略。
不同场景下视觉 Token 的最大数量被设计成相似的,确保平衡的视觉表示以适应跨场景的能力转移。
请注意,729 是 SigLIP 的 #tokens,用于对分辨率 384
×
384 的视觉输入进行编码。
对于配置为宽度
a
、高度
b
的 AnyRes,它将图像划分为
a
×
b
个裁剪,每个裁剪的形状为
(
a
,
b
)
。
每种作物具有适合视觉编码器的相同分辨率。
假设每个裁剪有
T
个标记,则视觉标记的总数为
L
=
(
a
×
b
+
1
)
×
T
,其中基础图像在输入视觉编码器之前会调整大小。
我们考虑一个阈值
τ
,并减少每次裁剪的#词符,如果需要的话使用双线性插值:
定义了一组空间配置
(
a
,
b
)
来指定裁剪图像的各种方法,从而适应不同分辨率和长宽比的图像。
其中,选择需要最少作物数量的配置。
请参阅
[64]
中我们对视觉表示的详细删减。
所提出的Higher AnyRes策略可以作为灵活的视觉表示框架,适用于多图像和视频表示。
可以相应地调整性能和成本的最佳配置。
我们在图
3
中说明了配置,在第
C.1
节中描述了详细内容,并提供了以下高级编码策略:
•
单图像
。
我们考虑对单图像表示使用较大的最大空间配置
(
a
,
b
)
,以保持原始图像分辨率而不调整大小。
此外,我们有目的地为每个图像分配大量视觉标记,从而产生一个长序列来有效地表示视觉信号。
这是基于这样的观察:与视频相比,存在大量具有不同图像指令的高质量训练样本。
通过用模仿视频表示的长序列表示图像,我们促进了从图像到视频理解的更平滑的能力转移
[169, 64]
。
•
多图像
。
仅考虑基础图像分辨率并将其输入视觉编码器以获得特征图,无需对高分辨率图像进行多次裁剪,从而节省计算资源
[68]
。
•
视频
。
视频的每一帧都被调整为基本图像分辨率,并由视觉编码器处理以生成特征图。
采用双线性插值来减少 Token 的数量,从而允许通过减少每帧的 Token 来考虑更大数量的帧。
经验证据表明,这在性能和计算成本之间提供了更好的权衡
[169]
。
这些表示配置是为在我们的实验中具有固定计算预算的能力传输而设计的。
随着计算资源的增加,在训练和推理阶段,每个图像或帧的标记数量都可以增加,以提高性能。
4
数据
在大语言模型的多模态训练领域,“质量胜于数量”这一原则尤其正确。
由于预训练的大语言模型和视觉变换器 (ViT) 中存储了广泛的知识,这一原则至关重要。
虽然在LMM的训练生命周期结束时积累平衡、多样和高质量的指令数据是必不可少的,但一个经常被忽视的方面是,无论何时,只要有新的、高质量的数据可用,模型都要不断地暴露于这些数据中,以便进一步获取知识。
在本节中,我们讨论高质量知识学习和视觉指令调整的数据源和策略。
4.1
高质量知识
网络规模的公共图文数据通常质量较低,导致多模态预训练的数据扩展效率较低。
相反,在计算预算有限的情况下,我们建议专注于高质量的知识学习。
这种方法承认预训练的大语言模型和 ViT 已经拥有丰富的知识库,目标是通过精心策划的数据来完善和增强这些知识。
通过优先考虑数据质量,我们可以最大限度地提高计算效率。
我们考虑来自三个主要类别的数据来进行高质量的知识学习:
•
重新说明详细描述数据
。
LLaVA-NeXT-34B
[82]
在开源 LMM 中以其强大的详细字幕能力而闻名。
我们使用该模型为来自以下数据集的图像生成新的标题:COCO118K、BLIP558K 和 CC3M。
我们将它们组合起来形成了 Re-Captioned 详细描述数据,总共 350 万个样本。
这可以被视为自我改进人工智能的简单尝试,其中训练数据是由模型本身的早期版本生成的。
•
文档/OCR 数据
。
我们利用了 UReader 数据集中的文本阅读子集,总计 100K,可以通过 PDF 渲染轻松访问。
我们使用此文本读取数据以及 SynDOG EN/CN 来形成文档/OCR 数据,总共 110 万个样本。
•
中文和语言数据
。
我们使用原始的ShareGPT4V
[20]
图像,并利用Azure API提供的GPT-4V生成92K详细的中文字幕数据,旨在提高模型的中文能力。
由于我们使用了大量详细的字幕数据,我们还旨在平衡模型的语言理解能力。
我们从 Evo-Instruct 数据集
[16]
收集了 143K 样本。
有趣的是,几乎所有(占99.8%)的高质量知识数据都是合成的。
这是由于在野外收集大规模、高质量的数据需要高昂的成本和版权限制。
相比之下,合成数据可以轻松扩展。
我们相信,随着人工智能模型不断变得更加强大,从大规模合成数据中学习正在成为一种趋势。
4.2
视觉指令微调数据
视觉指令调整
[83]
是指LMM理解视觉指令并根据视觉指令采取行动的能力。
这些指令可以采用语言的形式,与图像和视频等视觉媒体相结合,LMM 处理并遵循这些指令来执行任务或提供响应。
这涉及将视觉理解与自然语言处理相结合,以解释指令并执行所需的响应。
数据收集和管理。
正如之前的作品
[81,133,63]
所证明的那样,视觉指令调整数据对于 LMM 能力至关重要。
因此,维护高质量的数据集收集至关重要并且对社区有益。
我们开始从各种原始来源收集大量指令调优数据集,但类别之间的数据比例不平衡。
此外,我们还利用了 Cauldron
[63]
和 Cambrian
[133]
数据集集合中的一些新子集。
我们根据三级层次结构对数据进行分类:视觉、指令和响应。