论文:https://arxiv.org/pdf/2404.16821
目录
InternVL 1.5,这是一款开源的多模态大语言模型(MLLM),旨在弥合开源模型与专有商业模型在多模态理解能力上的差距。引入了三个简单的改进:
- 强大的视觉编码器:我们探索了一种大规模视觉基础模型——InternViT-6B的持续学习策略,提升了其视觉理解能力,使其可以在不同的大语言模型中进行转移和重用。
- 动态高分辨率:我们根据输入图像的宽高比和分辨率,将图像划分为1到40个448×448像素的块,支持高达4K分辨率的输入。
- 高质量双语数据集:我们精心收集了一个高质量的双语数据集,覆盖了常见场景和文档图像,并用中英文问答对进行了标注,显著提升了在OCR和中文相关任务中的性能。
通过一系列基准测试和对比研究对InternVL 1.5进行了评估。与开源和专有商业模型相比,InternVL 1.5表现出竞争力,在18个多模态基准测试中有8项达到了最先进的结果。
1 介绍
大语言模型(LLMs)在推动通用人工智能(AGI)系统方面发挥了重要作用,展现了在处理开放世界语言任务中的非凡能力。借助LLMs的进步,多模态大语言模型(MLLMs)[5, 18, 23, 62, 63, 84, 92, 116, 142]取得了显著进展,促进了复杂的视觉语言对话和交互,弥合了文本信息和视觉信息之间的差距。尽管取得了这些成就,开源模型与专有商业模型之间仍然存在明显的能力差距,例如GPT-4V [87]、Gemini系列[92, 107]和Qwen-VL-Max [5]。
这种差距主要体现在以下三个方面:
- 参数规模:最近的专有商业MLLMs [5, 87, 92, 102]通常规模不小于1000亿参数,而开源模型通常采用300百万参数的视觉基础模型(VFM),与70亿或130亿参数的大语言模型集成。
- 图像分辨率:专有商业模型通常采用动态分辨率方法,保留原始宽高比以促进详细的场景和文档理解。相比之下,开源模型通常以固定分辨率进行训练[18, 23, 62, 71, 117, 142],例如336×336和448×448,这导致其能力相对于商业模型存在显著差距。
- 多语言能力:专有模型通常利用大量多语言数据集进行训练,增强其在多种语言上的表现。然而,开源模型主要使用英文数据,依赖于LLMs的零样本能力来处理其他语言,例如LLaVA-NeXT [64]。这导致在非英语场景理解和OCR任务中的表现不佳。
为弥合这一差距,我们介绍了InternVL 1.5,集成了三大改进以提升其性能和可用性:
- 持续学习方法:我们对大规模视觉基础模型——InternViT-6B [18]实施了持续学习方法,利用高质量的图像-文本数据进行优化。这一过程不仅增强了模型理解视觉内容的能力,还提高了其在各种LLMs中的适应性。此外,使用InternLM2-20B [11]作为语言基础模型也提供了强大的初始语言处理能力。
- 动态高分辨率策略:我们采用了一种动态高分辨率策略,根据图像的宽高比和分辨率,将图像分割成448×448像素的块,块的数量从1到40不等(即4K分辨率)。为了捕捉全局上下文,我们还包括了一个缩略图视图。
- 高质量双语数据集:我们收集了多样的公共数据集,涵盖高质量的自然场景、图表、文档和中英文对话。此外,我们开发了一个数据翻译管道,使用开源LLMs,可以轻松扩展到更多语言。
通过这些改进,InternVL 1.5在多模态理解能力上取得了显著提升,缩小了与专有商业模型之间的差距。
这些设计赋予了我们的模型若干优势:
- 灵活的分辨率:类似于GPT-4V [87]中提供的“低”或“高”模式,InternVL 1.5允许用户为图像选择最佳分辨率,例如使用低分辨率进行场景主体描述,使用高分辨率(高达4K分辨率)进行文档理解,有效平衡计算效率与细节保留。
- 双语能力:InternVL 1.5展现了强大的双语能力,能够熟练处理中英文的多模态感知和理解任务。特别是在与中文相关的任务中,我们的模型通常优于领先的商业模型GPT-4V [87]。
- 强大的视觉表示:通过实施持续学习策略,我们增强了InternViT-6B [18]的视觉表示能力,使其对灵活的输入分辨率和各种视觉领域具有鲁棒性。得益于InternViT-6B的大量参数,我们的模型在视觉表示方面达到了与超过200亿参数的大语言模型相媲美的水平。这种视觉和语言处理之间的协同作用赋予了我们的系统强大的多模态能力。
我们在18个具有代表性的多模态基准测试上评估了InternVL 1.5,这些基准测试分为四个特定组别:OCR相关、通用多模态、数学和多轮对话基准测试。与开源和专有模型相比,InternVL 1.5表现出竞争力,在18个基准测试中有8项达到了最先进的结果。值得注意的是,如图1所示,它甚至在四个特定基准测试中超越了领先的专有模型,如Grok-1.5V [125]、GPT-4V [87]、Claude-3 Opus [3]和Gemini Pro 1.5 [92],特别是在OCR相关的数据集如TextVQA [100]、ChartQA [81]和DocVQA [82]中。这一评估表明,InternVL 1.5有效缩小了开源模型与领先商业模型之间的差距。我们希望我们的方法和开源模型权重能够为MLLM社区的发展做出贡献。
3.1 整体架构
如图3所示,InternVL 1.5采用了一种类似于广泛使用的开源多模态大语言模型(MLLMs)的架构,特别是“ViT-MLP-LLM”配置,这在多项现有研究中被引用[18, 23, 62–64, 71, 142]。我们在实现这一架构时,集成了一个预训练的InternViT-6B[18]和一个预训练的InternLM2-20B[11],并使用了一个随机初始化的MLP投影器。
在训练过程中,我们实施了一种动态分辨率策略,根据输入图像的宽高比和分辨率,将图像划分为1到12个448×448像素的块。在测试时,这可以零样本扩展到40个块(即4K分辨率)。为了增强高分辨率的可扩展性,我们简单地采用了一种像素洗牌操作,将视觉标记的数量减少到原来的四分之一。因此,在我们的模型中,一个448×448的图像由256个视觉标记表示。
3.2 强大的视觉编码器
在现有的多模态大语言模型(MLLMs)中[5, 23, 62–64, 78, 142],最常用的视觉基础模型通常是对比预训练的ViT[18, 36, 91, 136]。然而,这些ViT通常在固定低分辨率(例如224×224)下对从互联网上抓取的图像-文本对进行训练,因此在处理高分辨率图像或来自互联网以外来源(如文档图像)的图像时,其性能会下降。
InternViT-6B-448px-V1.2
为了解决这个问题,InternVL 1.2更新中对InternViT-6B模型进行了持续预训练。首先,我们发现倒数第四层的特征在多模态任务中表现最佳,因此我们直接舍弃了最后三层的权重,将InternViT-6B从48层减少到45层。然后,我们将InternViT-6B的分辨率从224增加到448,并将其与Nous-Hermes-2-Yi-34B[130]集成。为了使模型具备高分辨率处理和OCR能力,我们在训练中同时激活了视觉编码器和MLP,使用了图像描述[10, 17, 90, 93, 100]和OCR特定的数据集[29, 94]的混合数据。这一过程中新衍生的InternViT权重被发布为InternViT-6B-448px-V1.2。
InternViT-6B-448px-V1.5
InternVL 1.5的开发继续了InternViT-6B-448px-V1.2的强大基础预训练。在此次更新中,训练图像的分辨率从固定的448×448扩展到动态的448×448,基本块大小为448×448,块的数量从1到12不等。此外,我们还增强了预训练数据集的数据规模、质量和多样性,使我们1.5版本的模型具备强大的鲁棒性、OCR能力和高分辨率处理能力。动态分辨率和训练数据集的详细信息在第3.3和3.4节中描述。
值得注意的是,尽管InternVL 1.5中的大语言模型从Nous-Hermes-2-Yi-34B更换为InternLM2-20B[11],但InternViT仍然与新的大语言模型保持了出色的兼容性和可移植性。这表明,InternViT-6B在MLLMs预训练阶段学习到的视觉特征具有广泛的适用性,并不紧密依赖于特定的大语言模型。
3.3 动态高分辨率
受UReader [127]的启发,我们采用了一种动态高分辨率训练方法,有效适应输入图像的不同分辨率和宽高比。该方法利用将图像分割成块的灵活性,增强了模型处理详细视觉信息的能力,同时适应多样的图像分辨率。其主要步骤包括:
动态宽高比匹配
如图4所示,为了在处理过程中保持自然的宽高比,我们从预定义的一组宽高比中动态匹配最佳宽高比。由于计算资源有限,我们在训练时允许最多12个块。因此,该集合包括由1到12个块形成的所有35种可能的宽高比组合,例如{1:1, 1:2, 2:1, 3:1, ..., 2:6}。在匹配过程中,对于每个输入图像,我们计算其宽高比,并通过测量绝对差异将其与35种预定义的宽高比进行比较。如果多个预定义的宽高比匹配(例如,1:1和2:2),我们优先选择不超过输入图像面积两倍的宽高比,从而防止低分辨率图像的过度放大。
图像分割与缩略图
一旦确定了合适的宽高比,图像将被调整到相应的分辨率。例如,一个800×1300的图像将被调整为896×1344。调整后的图像然后被分割成448×448像素的块。除了这些块之外,我们还包括整个图像的缩略图,以捕捉全局上下文。这个缩略图被缩小到448×448,帮助模型理解整体场景。因此,在训练过程中,视觉标记的数量从256到3,328不等。在测试期间,块的数量可以增加到最多40个,导致10,496个视觉标记。
这种动态高分辨率方法不仅提高了模型处理高分辨率图像的能力,还增强了其对不同宽高比图像的适应性。
PixelShuffle(像素洗牌)
Pixel Shuffle可以用于减少视觉令牌的数量。通过这种操作,可以将图像表示的视觉令牌数量减少到原始数量的四分之一,从而提高模型在处理高分辨率图像时的计算效率。
Pixel Shuffle操作源自2016年的一篇论文(https://arxiv.org/abs/1609.05158)。其本质是对特征元素进行重排列,将形状为 (𝐶×𝑟2,𝐻,𝑊) 的特征变换为 (𝐶,𝐻×𝑟,𝑊×𝑟),实现了空间维度的上采样,同时将通道数缩小为原来的 1𝑟2。在这里,输出的视觉令牌数可以理解为通道数。其主要目的是通过提升特征维度来减少令牌数,从而支持更高的图像分辨率。
例如,对于一个448×448的输入图像,patch size为14,总共有32×32=1024个令牌。设置上采样系数 𝑟=2 后,该图像可以表示为256个令牌。
在InternVL 1.5模型中,使用Pixel Shuffle操作是为了在保持图像表示的同时减少模型在处理时所需的视觉令牌数量。这样,即使在测试阶段图像瓦片的数量增加到40个(即4K分辨率),模型也能高效地处理高分辨率输入,实现对高分辨率图像的零样本适应性。