InternVL1¶
概要¶
大型语言模型(LLMs)的指数级增长为多模态AGI系统带来了诸多可能性. 然而, 视觉和视觉-语言基础模型(它们也是多模态AGI的重要组成部分)的进展并没有跟上LLM的步伐. 在这项工作中, 它们设计了一个大规模视觉-语言基础模型(InternVL), 将视觉基础模型扩展到6B参数, 并利用来自各种来源的网络规模图文数据逐步将其与LLM对齐. 这个模型可以广泛应用于32项通用视觉-语言基准任务, 包括图像级或者像素级识别等视觉感知任务, 以及零样本图像/视频分类, 零样本图像/视频-文本检索等视觉-语言任务, 并可以与LLM链接来创建多模态对话系统, 它拥有强大的视觉能力, 是ViT-22B的一个不错替代方案, 他们希望这项研究能为多模态大模型的发展做出贡献.
背景¶
大型语言模型(LLMs)以其在开放世界语言任务中的强大能力, 在很大程度上推动了通用人工智能(AGI)系统的发展. 它们的模型规模和性能依然在快速增长. 利用LLMs的视觉大型语言模型(VLLMs)也取得了重大突破, 能够实现更复杂的视觉-语言对话与交互. 然而, 对于VLLMs同样至关重要的视觉和视觉-语言基础模型的进展, 却落后于LLMs的快速增长.
为了将视觉模型与LLMs连接起来, 现有的VLLMs通常使用轻量级的"glue"层, 例如QFormer或linear projection, 来对齐视觉和语言模型的特征. 这种对齐方式存在以下几个局限: (1) 参数规模差异. 大型LLMs目前已经扩展到10000亿参数, 而VLLMs广泛使用的视觉编码器规模仍在大约10亿参数左右. 这种差距可能会导致LLM潜力得不到充分发挥. (2) 表征不一致. 视觉模型通常在纯视觉数据上训练, 或与BERT系列进行对齐, 因此在表征上可能与LLMs存在不一致. (3) 连接效率不足. 这些"glue"层通常比较轻量且随机初始化, 可能无法捕捉多模态理解和生成中所需的丰富跨模态交互与依赖.
这些限制揭示了视觉编码器与LLM之间在参数规模和特征表示能力上存在着巨大的差距. 为了弥合这一差距, 我们的思路在于将视觉编码器的参数规模提升到与LLM相当的水平, 并随后协调它们的表示. 然而, 训练这样的大规模模型需要从互联网上获取海量的图文数据. 数据的高度异质性和质量差异在训练过程中带来了巨大的挑战. 为了增强训练的有效性, 他们如下图所示, 将生成式监督作为对比学习的补充策略, 以在训练时为模型提供额外指导. 但低质量数据是否适合用于生成式训练仍是一个需要考虑的问题. 此外, 如何有效地表示用户指令, 并对视觉编码器与LLM的表示进行对齐, 依然是一个亟待解决的难题.
为了解决这些问题, 研究者提出了InternVL, 这是一种大规模视觉-语言基础模型, 可以将扩展后的视觉编码器与LLM的表示进行对齐, 并在多种视觉和视觉-语言任务上达到最先进的性能. 如上图(c)所示, InternVL包含以下三个关键设计: (1) 参数平衡的视觉与语言组件: 它包括一个扩展到6B参数的视觉编码器和一个拥有8B参数的LLM中间层(在图中和LLM合并在一起了), 其中中间层充当重要的"glue"层, 根据用户命令对视觉特征进行重组. 与以往仅视觉上图(a)或双塔上图(b)结构不同, 作者的视觉编码器和中间层可以灵活地结合用于对比学习和生成式任务. (2) 表示的一致性: 为了保持视觉编码器与LLM之间表示的一致性, 研究者采用了一个预训练的多语言LLaMA来初始化中间层, 并使视觉编码器与其对齐. (3) 渐进式图文对齐: 他们利用来自多种来源的图文数据, 并通过渐进式对齐策略来确保训练的稳定性. 这一策略先在大规模噪声图文数据上进行对比学习, 然后在细粒度数据上过渡到生成式学习, 从而保证模型性能和任务范围的持续提升.
这些设计为作者的模型带来了以下优势: (1) 多功能. 它既能作为独立的视觉编码器处理感知任务, 也能与语言中间件协作, 用于视觉-语言任务和多模态对话系统. 该语言中间件弥合了视觉编码器与LLM解码器之间的鸿沟. (2) 强大. 借助训练策略、大规模参数以及web级数据, 作者的模型具备强大的表示能力, 能在各种视觉与视觉-语言任务上取得先进水平的结果, 如下图所示. (3) 与LLM兼容. 由于其与LLM的特征空间保持一致, 作者的模型可以与现有的LLM(例如LLaMA系列, Vicuna和InternLM)平滑集成. 这些特性使作者的模型区别于以往方法, 并确立了一个领先的视觉语言基础模型, 适用于多种应用场景.
总之, 作者的贡献主要包括以下三个方面:
- 作者提出了一个大规模视觉-语言基础模型——InternVL, 首次实现了大规模视觉编码器与LLM的对齐. 该模型在各种通用视觉语言任务上都展现了强劲表现, 包括视觉感知任务、视觉语言任务以及多模态对话
- 作者引入了一种渐进式图文对齐策略, 用于高效训练大规模视觉语言基础模型. 该策略充分利用网络级噪声图文数据进行对比学习, 并使用精细且高质量的数据进行生成式学习
- 作者广泛比较了所提出的模型与当前最先进的视觉基础模型及VLLMs, 结果表明InternVL在多种通用视觉语言任务中取得了领先性能, 包括图像分类 (ImageNet)、语义分割 (ADE20K)、视频分类 (Kinetics)、图文检索 (Flickr30K & COCO)、视频文本检索 (MSR-VTT) 以及图像描述 (COCO & Flickr30K & NoCaps). 同时, 该模型在多模态对话 (MME & POPE & Tiny LVLM) 方面也具有良好效果
相关工作¶
视觉基础模型¶
在过去的十年里, 计算机视觉领域的基础模型取得了显著的发展. 从开创性的AlexNet开始, 各种卷积神经网络 (CNN) 不断涌现, 并持续刷新 ImageNet 基准. 尤其是残差连接的引入有效地解决了梯度消失问题. 这一突破开启了“big & deep”的神经网络时代, 意味着只要有足够的训练和数据, 更大更深的模型就能获得更好的性能. 换言之, scaling up matters.
近年来, ViT为计算机视觉领域的网络结构带来了新的可能性. ViT及其变体显著提升了模型容量, 并在多项重要视觉任务中表现出色. 在LLM时代, 这些视觉基础模型通常通过一些轻量级的“glue”层与LLM连接. 然而, 由于它们主要来自仅含视觉数据的数据集, 或者基于图文对齐与BERT系列对齐, 并未直接与LLM对齐, 因此依然存在一定的差距. 此外, 目前用于连接LLM的主流视觉模型规模通常仅限于大约10亿参数, 这也限制了VLLM的性能.
大语言模型¶
大型语言模型在人工智能领域带来了革命性的变革, 使此前被认为只属于人类的自然语言处理任务成为可能. GPT-3 的出现标志着能力上的巨大飞跃, 特别是在少样本和零样本学习方面, 展示了大型语言模型的巨大潜力. 这一潜力在 ChatGPT 和 GPT-4 的进步中得到了进一步的体现. 同时, 开源大型语言模型的出现 (包括 LLaMA 系列, Vicuna, InternLM, MOSS, ChatGLM, Qwen, Baichuan, 和 Falcon 等) 也加速了这一领域的发展. 然而, 在真实场景下, 交互并不仅限于自然语言. 视觉模态能够提供额外的信息, 这意味着更多的可能性. 因此, 探索如何利用大型语言模型的卓越能力来实现多模态交互, 很可能成为下一阶段的研究趋势.
视觉大型语言模型¶
近年来, 随着技术的不断进步, 视觉大型语言模型 (VLLMs) 得到了发展, 它们旨在为语言模型提供处理与解释视觉信息的能力. Flamingo 使用视觉和语言输入作为提示, 在视觉问答任务中展现了出色的少样本表现. 随后, GPT-4、LLaVA 系列和 MiniGPT-4 等方法引入了视觉指令微调, 以增强 VLLMs 的指令跟随能力. 与此同时, VisionLLM、KOSMOS-2 和 Qwen-VL 等模型也通过可视化对齐技术提升了模型的视觉定位与识别能力, 从而支持区域描述和定位等任务. 许多基于 API 的方法也尝试将视觉 API 与 LLM 相结合, 用于解决视觉相关任务. 此外, PaLM-E 和 EmbodiedGPT 等方法将 VLLMs 应用于具身场景, 显著拓展了它们的潜在应用范围. 这些工作表明, VLLMs 在视觉与语言的融合上取得了重要突破. 然而, 同样至关重要的视觉和视觉-语言基础模型在这一领域的发展速度仍显不足.
方法论¶
总体架构¶
如上图所示, 与传统的仅视觉骨干网络和双编码器模型不同, 所提出的InternVL由视觉编码器InternViT-6B和语言中间件QLLaMA构成. 具体而言, InternViT-6B是一种拥有60亿参数的视觉Transformer, 专门定制以在性能和效率之间取得良好平衡. QLLaMA是一种拥有80亿参数的语言中间件, 初始化自多语言增强的LLaMA. 它既能为图文对比学习提供强大的多语言表示, 也可作为连接视觉编码器与现成LLM解码器的桥梁.
为了对齐在模态和结构上存在显著差异的两个大规模组件, 作者提出了一种渐进式对齐训练策略. 该策略以在大规模噪声数据上进行对比学习为起点, 并逐步过渡到在精致且高质量数据上进行生成式学习. 通过这种方式, 他们确保了来自多种来源的网络规模图文数据得以有效组织与充分利用. 随后, 在对齐好的视觉编码器和语言中间件支持下, 作者的模型就像一把瑞士军刀. 它拥有灵活的组合方式, 可以适用于广泛的通用视觉语言任务, 包括视觉感知、图像/视频文本检索、图像描述、视觉问答以及多模态对话等.
模型设计¶
大规模视觉编码器¶
作者采用原始视觉Transformer (ViT) 来实现InternVL的视觉编码器. 为了与大型语言模型的规模相匹配, 作者将视觉编码器扩展至60亿参数, 得到InternViT-6B. 为在精度、速度和稳定性之间取得良好平衡, 作者对InternViT-6B进行了超参数搜索, 分别在{32, 48, 64, 80}范围内调整模型深度, 在{64, 128}范围内调整头部维度, 在{4, 8}范围内调整MLP比率. 模型宽度和头部数量则根据给定的模型规模及其他超参数计算得出.
作者在LAION-en数据集的一亿子集上进行对比学习, 用于衡量不同配置的InternViT-6B变体在准确性、速度和稳定性方面的表现. 作者得出以下结论: (1) 速度. 对于不同模型设置, 当计算尚未达到饱和时, 深度较小的模型在每张图像的处理速度上更快. 然而, 当GPU计算被完全利用后, 速度差异便可忽略不计. (2) 准确性. 在相同参数量的情况下, 深度、头部维度和MLP比率对模型性能影响不大. 基于这些发现, 作者最终确定了最稳定的配置, 如下表所示.
语言中间件¶
语言中间件QLLaMA旨在对齐视觉与语言特征. 如图上图所示, QLLaMA基于预训练的多语言LLaMA开发, 并随机初始化了新增的96个可学习查询和交叉注意力层(1 billion parameters). 这种方式使QLLaMA能够顺畅地将视觉元素整合到语言模型中, 从而增强组合特征的连贯性与有效性.
和最近使用轻量化"glue"层的方法例如QFormer和线性层相比, 他们的方法有三点优势: (1) 通过预训练权重进行初始化, QLLaMA可以将InternViT-6B生成的图像tokens转换为与LLM对齐的表示; (2) QLLaMA在视觉-语言对齐方面拥有8 billion参数, 是QFormer的42倍. 因此, 即使在冻结LLM解码器的情况下, InternVL也能在多模态对话任务上取得可观的性能. (3) 它还可以用于对比学习, 为图文对齐任务(如zero-shot图像分类和图文检索)提供强大的文本表示.
瑞士军刀模型¶
通过灵活地结合视觉编码器与语言中间件, InternVL可以支持多种视觉或视觉-语言任务.
-
针对视觉感知任务, InternVL的视觉编码器(即InternViT-6B)可用作视觉任务的骨干网络. 给定输入图像\(I\in \mathbb{R}^{H\times W\times 3}\), 他们的模型可以为密集预测任务生成特征图\(F\in \mathbb{R}^{H/14\times W/14\times D}\), 或与全局平均池化和线性投影结合进行图像分类
-
对于对比任务, 如上图(a)(b)所示, 他们引入了两种推理模式: InternVL-C和InternVLG, 分别使用视觉编码器或InternViT与QLLaMA的组合来编码视觉特征. 具体而言, 他们对InternViT的视觉特征或QLLaMA的查询特征进行注意力池化, 从而得到全局视觉特征\(I_f\). 此外, 他们通过提取QLLaMA的
[EOS]
标记所对应的特征将文本编码为\(T_f\). 通过计算\(I_f\)与\(T_f\)之间的相似度, 他们支持多种对比任务, 如图文检索 -
对于生成式任务, 不同于QFormer, QLLaMA天生具有潜在的图像描述能力, 归功于其大规模参数. QLLaMA的查询会重组来自InternViT-6B的视觉表征, 并作为QLLaMA的前缀文本. 随后的文本标记则依次按顺序生成
-
对于多模态对话, 他们引入了InternVLChat, 利用InternVL作为视觉组件与LLM进行连接. 为此, 他们提供了两种不同的配置. 一种方案是独立使用InternViT-6B, 如上图(c)所示. 另一种方案则是并行使用完整的InternVL模型, 如上图(d)所示
对齐策略¶
正如上上图所示, InternVL 的训练包括三个渐进阶段, 分别是视觉-语言对比训练、视觉-语言生成训练和有监督微调. 这些阶段有效地利用了来自多种公共来源的数据, 从互联网上嘈杂的图文对到高质量的图像描述、VQA 和多模态对话数据集.
视觉-语言对比训练¶
在第一阶段, 作者们进行对比学习, 将 InternViT-6B 与多语言 LLaMA-7B 在大规模、嘈杂的图文对上进行对齐. 这些数据全部公开可用, 包含多语言内容, 包括 LAION-en, LAION-multi, LAION-COCO, COYO, Wukong 等. 作者们将这些数据集组合在一起, 并过滤掉一些极低质量的数据来训练他们的模型. 如下表所示, 原始数据集包含 6.03 billion 图文对, 经过清洗后剩余 4.98 billion. 有关数据准备的更多细节将在补充材料中提供.
在训练过程中, 作者采用 LLaMA-7B 将文本编码为\(T_f\), 并使用 InternViT-6B 提取视觉特征\(I_f\). 依据 CLIP 的目标函数, 作者在一批图文对的相似度得分上最小化对称交叉熵损失. 这一阶段使 InternVL 能在零样本图像分类和图文检索等对比任务中表现出色, 而且该阶段的视觉编码器在语义分割等视觉感知任务上也能取得良好表现.
视觉-语言生成训练¶
在训练的第二阶段, 作者将 InternViT-6B 与 QLLaMA 连接起来, 并采用生成式训练策略. 具体来说, QLLaMA 继承了第一阶段中 LLaMA-7B 的权重. 作者将 InternViT-6B 和 QLLaMA 都保持冻结状态, 只用过滤后的高质量数据来训练新添加的可学习查询和交叉注意力层. 上表总结了第二阶段使用的数据集. 可以看到, 作者进一步过滤掉了低质量的描述文本, 从第一阶段的 4.98B 条数据缩减到 1.03B 条. 根据 BLIP-2 的损失函数, 本阶段的损失由图文对比 (ITC) 损失、图文匹配 (ITM) 损失和基于图像的文本生成 (ITG) 损失这三部分组成. 这一设计使得可学习查询能够提取强大的视觉表示, 并进一步在特征空间中与大型语言模型对齐, 这主要得益于有效的训练目标以及大规模、由大型语言模型初始化的 QLLaMA.
有监督微调¶
为了展示 InternVL 在构建多模态对话系统方面的优势, 作者通过一个 MLP 层将其与现有的 LLM 解码器 (例如 Vicuna 或 InternLM) 相连接, 并进行有监督微调 (SFT). 如上表所示, 作者收集了多种高质量指令数据, 总量约为 400 万条. 对于非对话数据集, 作者采用了特定的转换方法. 由于 QLLaMA 与 LLM 具有相似的特征空间, 即便在冻结 LLM 解码器的情况下, 作者只训练 MLP 层或同时训练 MLP 层与 QLLaMA 也能获得稳健表现. 这种方法不仅加速了 SFT 过程, 还能保持 LLM 的原有语言能力.
-
Chen, Z., Wu, J., Wang, W., Su, W., Chen, G., Xing, S., Zhong, M., Zhang, Q., Zhu, X., Lu, L., Li, B., Luo, P., Lu, T., Qiao, Y., & Dai, J. (2024). InternVL: Scaling up vision foundation models and aligning for generic visual-linguistic tasks (No. arXiv:2312.14238). arXiv. https://doi.org/10.48550/arXiv.2312.14238 ↩