Improved Baselines with Visual Instruction Tuning
目录
0. 摘要
大型多模态模型(Large multimodal models,LMM)最近在视觉指令微调方面显示出令人鼓舞的进展。本文中,我们首次系统性地研究了在 LLaVA 框架下受控环境中 LMM 的设计选择。我们发现,LLaVA 中的全连接视觉-语言连接器(fully-connected vision-language connector)出人意料地强大且数据高效。通过对 LLaVA 进行简单修改,即使用 CLIP-ViT-L-336px 和 MLP 投影,并添加面向学术任务的 VQA 数据及响应格式提示,我们建立了更强的基线模型,在 11 个基准测试中实现了最新的技术水平。我们的最终 13B 模型检查点仅使用了 120 万公开数据,并在单个 8-A100 节点上约 1 天内完成全部训练。此外,我们还对 LMM 中的一些开放性问题进行了初步探索,包括扩展到更高分辨率的输入、组合能力以及模型幻觉等。我们希望这能使最先进的 LMM 研究更加可及。代码和模型将公开提供。
1. 简介
尽管在许多基准测试和发展中取得了进展,但如何训练 LMM 以实现通用助手的目标仍然没有明确的最佳方案。例如,LLaVA [36] 在对话风格的视觉推理方面表现出色,甚至在某些基准测试 [55] 中超过了后来的方法如 Instruct-BLIP [14],而 Instruct-BLIP 在需要单词或短句回答的传统 VQA 基准测试中表现更优。考虑到它们在模型架构和训练数据上的显著差异,其能力差异的根本原因仍不明确,尽管有相关猜测 [37, 55],如训练数据量、使用 Qformer [32] 之类的重采样器等。为此,我们首次在受控环境中对 LMM 的设计选择进行了系统研究。我们的研究起源于 LLaVA,通过从输入、模型和数据的角度做出有效贡献,建立了一条发展路线。
首先,我们揭示了 LLaVA 中的全连接视觉-语言连接器出人意料的强大和数据高效性,并基于 LLaVA 框架建立了更强大且更具可行性的基线模型。我们发现两个简单的改进,即 MLP 跨模态连接器(cross-modal connector)和引入与学术任务相关的数据(如 VQA),与 LLaVA 框架是正交的,并且结合使用可以增强多模态理解能力。相比于 InstructBLIP [14] 或 Qwen-VL [3],这些模型在数亿甚至数十亿的图像-文本配对数据上训练专门设计的视觉重采样器,LLaVA 使用了最简单的 LMM 架构设计,仅需在约 60 万对图像-文本配对数据上训练一个简单的全连接投影层。我们的最终模型可以在单台 8-A100 设备上约 1 天内完成训练,并在多个基准测试中实现最先进的性能。此外,与包含内部数据的 Qwen-VL [3] 不同,LLaVA 仅使用公开可用的数据。
接下来,我们对大型多模态模型的其他开放问题进行了早期探索。我们的发现包括:
- 扩展到高分辨率图像输入:我们发现通过简单地将图像划分为网格,LLaVA 的架构在扩展到更高分辨率时表现灵活,并保持了数据效率;随着分辨率的提高,模型的细节感知能力提升,幻觉现象减少。
- 组合能力:我们发现大型多模态模型能够概括出组合能力。例如,同时训练长形式语言推理和较短的视觉推理可以提高模型回答多模态问题时的写作能力。
- 数据效率:我们表明,将 LLaVA 的训练数据混合随机下采样多达 75%,模型性能不会显著下降,这表明更复杂的数据集压缩策略可能进一步提升 LLaVA 本已高效的训练流程。
- 数据扩展:我们提供了关于数据粒度扩展与模型能力结合的重要实证证据,显示数据扩展对提升能力至关重要,同时避免引入如幻觉等伪影。
3. 方法
3.1 初步介绍
作为视觉指令调优的奠基性工作,LLaVA [36] 展现了卓越的视觉推理能力,在处理现实生活中视觉指令任务的多种基准测试中 [4, 55] 超越了许多更近期的模型。LLaVA 通过单一线性层将视觉特征投影到语言空间,并优化整个 LLM 以适应视觉指令调优。然而,LLaVA 在需要短答案(如单词)的学术基准测试上表现不足,并且由于训练数据分布中缺乏相关数据,在是/否问题中倾向于回答“是”。
另一方面,InstructBLIP [14] 首次将面向学术任务的数据集(如 VQA-v2 [19])与 LLaVA-Instruct [36] 结合,并在 VQA 基准测试中表现出更高性能。它通过 1.29 亿对图像-文本对预训练 Qformer [32],并仅对面向指令的 Qformer 进行视觉指令调优。然而,最新研究 [7, 55] 表明,它在实际的视觉对话任务中不如 LLaVA 表现出色。具体而言,如表 1a 所示,它可能对短答案的 VQA 训练集过拟合,即使在需要详细回答的请求中也是如此。
3.2 响应格式提示
我们发现,像 InstructBLIP [14] 这样的模型无法在短答案和长答案 VQA 之间取得平衡 [7],主要是由于以下原因:
- 响应格式提示的不明确。例如,提示语 “Q: {问题} A: {答案}” 并未清楚表明所需的输出格式,可能导致 LLM 在自然视觉对话中行为上过拟合到短答案。
- 未对 LLM 进行微调。InstructBLIP 仅对 Qformer 进行指令调优,加剧了上述问题。它依赖 Qformer 的视觉输出 token 控制 LLM 的输出长度为长答案或短答案(如前缀调优,prefix tuning [33]),但由于 Qformer 的能力有限(与 LLaMA 等 LLM 相比),可能无法正确完成这一任务。
因此,为了使 LLaVA 更好地处理短答案,同时解决 InstructBLIP 的问题,我们提出了一种单一响应格式提示,明确指出所需的输出格式。在鼓励短答案时,该提示会添加在 VQA 问题末尾:"用一个单词或短语回答问题"。
我们发现,当使用此类提示对 LLM 进行微调时,LLaVA 能够根据用户指令适当地调整输出格式(见表 1b),并且不需要使用 ChatGPT [7] 对 VQA 答案进行额外处理,从而进一步扩展到多种数据源。正如表 2 所示,仅通过在训练中加入 VQAv2 [19] 数据,LLaVA 在 MME 上的性能显著提升(1323.8 对比 809.6),并超出 InstructBLIP 111 分。
3.3 数据与模型扩展
MLP 视觉-语言连接器。受通过将线性投影更改为 MLP 提升自监督学习性能的启发 [9, 10],我们发现,通过使用两层 MLP 增强视觉-语言连接器的表示能力,与原始线性投影相比,可以显著提升 LLaVA 的多模态能力。
面向学术任务的数据。我们进一步加入了额外的面向学术任务的 VQA 数据集(如 VQA、OCR 和区域级感知数据),以多种方式提升模型能力(见表 2)。我们首先引入 InstructBLIP 中使用的四个额外数据集:开放知识 VQA(OKVQA [41],A-OKVQA [45])和 OCR(OCRVQA [42],TextCaps [47])。
- 对于 A-OKVQA,将其转换为多选问题,并使用特定响应格式提示:"直接用选项的字母回答问题"。
- 仅使用 InstructBLIP 部分数据集,LLaVA 已经在表 2 的三个任务中全面超越 InstructBLIP,这表明 LLaVA 的设计更为高效。
此外,我们发现进一步加入区域级 VQA 数据集(如 Visual Genome [25] 和 RefCOCO [24, 40])能够提升模型在细粒度视觉细节定位上的能力。
额外扩展。
- 图像分辨率扩展:我们将输入图像分辨率扩展到 336²,以便 LLM 能更清晰地 “看到” 图像细节。这通过将视觉编码器替换为 CLIP-ViT-L-336px(CLIP 可用的最高分辨率)实现。
- 增加数据集:我们加入了 GQA 数据集作为额外的视觉知识来源,并结合 ShareGPT [46] 数据,同时将 LLM 扩展到 13B(参见 [3, 8, 39])。
在 MMVet 基准测试上的结果表明,当将 LLM 扩展到 13B 时,性能提升最显著,这凸显了基础 LLM 在视觉对话任务中能力的重要性。
LLaVA-1.5。我们将包含所有上述改进的最终模型命名为 LLaVA-1.5(表 2 的最后两行),它的性能显著超越了原始的 LLaVA [36]。
计算成本。对于 LLaVA-1.5,我们使用与原始 LLaVA [36] 相同的预训练数据集,并在指令调优中保持训练迭代和 batch 大小大致不变。由于图像输入分辨率扩展到 336²,LLaVA-1.5 的训练时间约为 LLaVA 的两倍:预训练约 6 小时,视觉指令调优约 20 小时,均使用 8× A100 GPUs 完成。
3.4. 高分辨率扩展
在 Sec. 3.3 中,我们观察到提升输入图像分辨率能够增强模型能力。然而,目前开源的 CLIP 视觉编码器的分辨率限制为 336²,这使得仅通过替换视觉编码器(如 Sec. 3.3 中的方法)无法支持更高分辨率图像。在本节中,我们提出了一种扩展 LMM 至更高分辨率的初步探索,同时保持 LLaVA-1.5 的数据效率。
当使用 ViT [15] 作为视觉编码器时,为扩展分辨率,现有方法通常采用 位置嵌入插值 [3, 32] 并在微调时调整 ViT 主干网络以适应新的分辨率。然而,这种方法存在以下问题:
- 依赖大规模图像-文本配对数据集:模型需要在微调过程中使用大规模数据集 [3, 32]。
- 固定分辨率限制:推理时图像的分辨率被限制为模型可以接受的固定大小。
我们将采用此方法的模型命名为 LLaVA-1.5-HD,该模型可以支持更高分辨率的输入,从而进一步提升模型的视觉理解能力。
相应地,如图 2 所示,我们将图像划分为分辨率与视觉编码器原始训练分辨率相匹配的小图像块,并独立编码这些图像块,来克服这一问题。在获得各个图像块的特征图后,我们将它们组合成目标分辨率的单一大特征图,并将其输入到大型语言模型(LLM)。为了向 LLM 提供全局上下文并减少分割-编码-合并操作的伪影,我们另外将下采样图像的特征与合并后的特征图拼接在一起。这使我们能够将输入扩展到任意分辨率,同时保持 LLaVA-1.5 的数据效率。我们将这一结果模型称为 LLaVA-1.5-HD。
4. 评估
5. 大型语言模型中的开放问题
鉴于 LLaVA-1.5 的成功扩展,我们基于 LLaVA-1.5 的模型设计和数据混合,进行了一些关于大型语言模型(LMMs)开放问题的额外研究。
5.1 数据效率
尽管与 InstructBLIP [14] 等方法相比,LLaVA-1.5 具有更高的数据效率,但其训练时间相比 LLaVA 仍然增加了一倍。在本节中,我们通过对 LLaVA-1.5 的训练数据混合集进行随机子采样(采样比例从 0.1 到 0.5)来进一步提高数据效率。我们在图 4 中可视化了不同采样变体的相对性能。
首先,完整的数据混合提供了最佳的知识覆盖,允许模型实现最佳的整体性能。令我们惊讶的是,仅使用 50% 的样本,模型仍能保持超过 98% 的完整数据集性能。这表明数据效率还有进一步提高的空间。
其次,当将数据集下采样至 50% 时,模型在 MMBench、ScienceQA 和 POPE 上的表现没有任何下降,甚至在 MMBench 上有所提升。同样,当进一步将数据从 50% 缩小到 30% 时,模型的表现仍然保持稳定。这些结果表明,少即是多(less-is-more) [61] 的优势在多模态模型中同样具有潜力。
5.2 重新思考大型语言模型中的幻觉问题
幻觉是大型语言模型(LLMs)和多模态模型(LMMs)需要解决的一个重要问题。在多模态模型中,我们通常将模型的幻觉归因于训练数据集中的错误或幻觉。例如,LLaVA-Instruct [36] 中的详细描述可能包含少量的幻觉内容,认为在这种数据上训练可能导致模型在被要求 “详细描述图像” 时出现幻觉。然而,我们发现,当我们将模型的输入分辨率提高到如 448^2 这样更高的分辨率时,这种幻觉显著减少。
这一发现很有趣,因为它表明,多模态模型可能对训练数据中的少数错误具有鲁棒性。然而,当输入分辨率不足以让模型辨识训练数据中的所有细节,且在该粒度上的数据量超出模型能力时,模型便会学会产生幻觉。这进一步表明,在改进数据标注,增加更多细节与模型能够正确处理这些细节的能力之间,需要找到一个平衡。我们希望这一发现为未来关于解决幻觉问题以及模型和数据扩展的研究提供参考。
5.3 组合能力
我们展示了 LLaVA-1.5 中有趣的组合能力:该模型在独立训练一组任务的基础上,能够推广到需要这些能力组合的任务,而无需显式的联合训练。以下是一些发现:
首先,我们观察到,在包含 ShareGPT [46] 数据后,视觉对话中的语言能力有所提升,包括第 4.3 节讨论的多模态多语言能力。此外,模型在视觉对话中能够提供更长且更详细的回答。
其次,来自学术任务导向数据集的额外视觉知识,提升了 LLaVA-1.5 在视觉对话中响应的视觉基础性,量化证明表现在表 4 中的 MMVet [55] 和 LLaVA-Wild [36] 上的改进结果。
然而,对于某些需要特定能力组合的任务,仍然难以实现理想的表现。例如,能够正确回答 VQA 中某个物体的属性,并不保证在图像的详细描述中准确描绘该物体属性。此外,与某些外语(如韩语)进行对话的能力仍然落后。具体示例请见附录。
这些发现表明,LMMs 的组合能力可以用来提升模型的表现,而无需通过穷举所有任务组合来显著增加数据量。然而,仍然可以进一步研究 LMMs 组合能力背后的机制,深入理解这一机制将有助于进一步提升 LLaVA-1.5 的能力和数据效率。
6. 结论
本文迈出了揭示大型多模态模型设计的一步,并提出了一个简单、有效且数据高效的基线模型 LLaVA-1.5,用于大型多模态模型。此外,我们探索了视觉指令微调中的开放问题,将 LMMs 扩展到更高分辨率,并在模型幻觉和多模态模型的组合能力方面提出了一些有趣的发现。我们希望这些改进的、易于复现的基线和新发现能够为未来的开源 LMM 研究提供参考。
局限性。尽管 LLaVA-1.5 展示了有希望的结果,但它仍然存在一些限制,包括高分辨率图像的训练时间较长、缺乏多图像理解、在某些领域的问题解决能力有限。它并非不产生幻觉,因此在关键应用(如医学)中应谨慎使用。详见附录中的讨论。
附录:LLaVA-1.5-HD 实现细节
A.1.1 预处理
概述。我们使用 CLIP-ViT-L-14 (224^2) 作为基础图像编码器。首先,我们选择并填充输入图像,以达到有效捕捉其细节的目标分辨率,并将图像拆分为 224^2 网格。所有 224^2 图像块由 CLIP 图像编码器独立编码,并将它们的特征合并回单一的大特征图。然后,我们对生成的特征图进行后处理,将其转换为展平的(flattened)特征列表。我们还将固定分辨率图像的特征拼接到一起,为模型提供全局上下文。
目标分辨率选择。我们预定义了一组分辨率,以支持最多六个网格(1x1、1x2、1x3、1x4、1x5、1x6、2x2、2x3 及其转置)。该系统允许的最大分辨率为 672x448(或 448x672)。目标分辨率选择中遵循两个标准:
- 细节保留:所选分辨率尽可能保留原始图像的细节;
- 资源效率:分辨率不应过大,以避免不必要的像素和内存消耗(例如,对于 224^2 输入图像,不能选择 448^2)。
后处理。我们执行三个后处理步骤,以确保最终的特征能够被语言模型有效且高效地处理。
- 填充去除:仅对应填充的特征将被丢弃。这减少了语言模型处理的视觉 token 数,从而提高了效率。
- 行末 token:我们在每行特征的末尾添加一个特殊 token,以明确表示图像的形状。与原始的 LLaVA 和 LLaVA-1.5 使用固定分辨率不同,我们现在对 LLaVA-1.5-HD 的图像特征使用可变分辨率,这一指示可以让语言模型捕捉到每个样本的图像形状和大小。
- 扁平化:最后,我们将图像特征图扁平化,并与语言 token 特征一起输入到语言模型中。
A.1.2 训练
由于我们在视觉编码器训练时使用的原始 224^2 分辨率上计算视觉特征,因此我们不进行额外的预训练。我们也不对视觉投影器进行额外的高分辨率预训练,而是直接在更高分辨率的图像上进行视觉指令微调。
论文地址:https://arxiv.org/abs/2310.03744
项目页面:https://llava-vl.github.io/