更多内容:XiaoJ的知识星球
文章目录
- InternVL: 扩展视觉基础模型与通用视觉语言任务对齐
- 1.概述
- 2.InternVL整体架构
- 1)大型视觉编码器:InternViT-6B
- 2)语言中间件:QLLaMA。
- 3)训练策略
- (1)第一阶段:视觉-语言对比训练
- (2)第二阶段:视觉语言生成训练
- (3)第三阶段:监督微调(SFT)
- 3.InternVL应用
- 1)对于视觉感知任务
- 2)对于对比任务
- 3)对于生成任务
- 4)对于多模态对话
InternVL: 扩展视觉基础模型与通用视觉语言任务对齐
图1. 不同视觉和视觉语言基础模型的比较。
(a) 表示传统的视觉基础模型,例如 ResNet 在分类任务上预先训练。
(b) 表示视觉语言基础模型,例如在图像-文本对上预训练的 CLIP。
(c ) 是 InternVL,它将大规模视觉基础模型InternViT-6B与大型语言模型保持一致,并且适用于对比和生成任务。
Supervised pre - training(监督预训练)
:图像经过视觉编码器(vision encoder),得到分类类别。
Contrastive pre - training(对比预训练)
:图像经过视觉编码器(vision encoder),再通过对比编码器(contrastive encoder)与文本进行对比训练。
1.概述
大型语言模型的快速增长,为多模态AGI(Artificial General Intelligence,通用人工智能)系统带来了更多可能,但视觉和视觉语言基础模型的发展却没跟上。
我们设计了大规模视觉语言基础模型 InternVL, 它首次将大规模视觉编码器与LLMs该模型对齐。该模型在各种通用视觉语言任务上表现出强大的性能,包括视觉感知任务、视觉语言任务和 多模态对话。
目前视觉语言模型(VLLMs)的限制
为了将视觉模型与 LLMs 桥接,现有的视觉语言模型(VLLMs)通常使用轻量级的“glue(粘合层)”,如QFormer或线性投影,来对齐视觉和语言模型的特征,连接视觉和语言模型。
但这种方法存在以下问题:
(1)参数规模差异:LLM参数可达10000亿,而VLLMs的视觉编码器通常只有10亿左右,这可能导致LLM的容量未被充分利用;
(2)表征不一致:视觉模型,基于纯视觉数据进行训练或与BERT系列对齐,与LLM的表征往往不一致;
(3)连接效率低,轻量级且随机初始化的“粘合层”可能无法有效捕捉多模态理解和生成所需的丰富跨模态交互和依赖关系。
2.InternVL整体架构
与传统的纯视觉主干和双编码器模型不同,InternVL有三个关键设计:
-
参数平衡的视觉和语言组件: 60亿参数视觉编码器( InternViT-6B)+80亿参数的LLM中间件(QLLaMA)
-
对齐视觉编码器和语言中间件:视觉编码器(InternViT-6B)与LLM中间件(QLLaMA)对齐。
-
渐进式图像文本对齐:在大规模嘈杂的图像文本数据上启动对比学习,随后过渡到在细粒度数据上生成学习。
1)大型视觉编码器:InternViT-6B
它使用普通视觉转换器(ViT)实现了 InternVL 的视觉编码器。为了匹配 LLMs的规模,我们将视觉编码器扩展到 60 亿个参数,从而产生了 InternViT-6B 模型。
2)语言中间件:QLLaMA。
语言中间件 QLLaMA 旨在协调视觉和语言特征。
QLLaMA 基于预先训练的多语言 LLaMA 开发的,并新增了 96 个随机初始化的可学习查询和交叉注意力层(10 亿个参数)。这种方式使 QLLaMA 能够顺利地将视觉元素集成到语言模型中,从而增强组合特征的连贯性和有效性。
3)训练策略
图3. 所提出的 InternVL 模型的训练策略。
如图所示,InternVL 的训练包括三个渐进阶段,包括视觉-语言对比训练、视觉-语言生成训练和监督微调。
(1)第一阶段:视觉-语言对比训练
我们进行对比学习,在网络规模的嘈杂图像文本对上将 InternViT-6B 与多语言 LLaMA-7B 对齐。这些数据都是公开的,包括多语言内容,包括 LAION-en、LAIONmulti、LAIONCOCO、COYO、Wukong 等。我们使用这 些数据集的组合,并过滤掉一些质量极低的数据来训练我们的模型。
在训练过程中,我们使用LLaMA-7B对文本进行编码得到文本特征Tf,同时利用InternViT-6B提取视觉特征If。按照CLIP(Contrastive Language-Image Pretraining)的目标函数通过最大化匹配的图像-文本对的相似度,同时最小化不匹配对的相似度,从而学习图像和文本之间的关联。
(2)第二阶段:视觉语言生成训练
我们将InternViT-6B与QLLaMA连接,并采用生成训练策略。QLLaMA继承了第一阶段LLaMA-7B的权重,我们保持InternViT-6B和QLLaMA冻结,仅用过滤后的高质量数据训练新增的可学习查询和交叉注意力层。
我们进一步筛选掉 了质量不高的数据,从第一阶段的49.8亿减少到10.3亿。
沿用BLIP-2的损失函数,该阶段的损失由图像-文本对比 (ITC) 损失、图像-文本匹配 (ITM) 损失和图像基于文本生成 (ITG) 损失三部分组成,这使得查询能够提取强大的视觉表示,并进一步与LLMs对齐特征空间。
(3)第三阶段:监督微调(SFT)
InternVL在创建多模态对话系统时,我们通过 MLP 层将其与 现成的LLM解码器(例如 Vicuna 或 InternLM) 连接起来,并进行监督微调 (SFT)。
3.InternVL应用
图 4. 使用 InternVL 的不同方式。
通过灵活地结合视觉编码器和语言中间件,InternVL 可以支持各种视觉语言任务,包括对比任务、生成任务和多模态对话。
1)对于视觉感知任务
InternVL 的视觉编码器 InternViT-6B,可以作为视觉任务的支柱。给定一个输入图像,我们的模型可以生成特征图进行密集预测任务,或者使用全局平均池化和线性投影进行图像分类。
2)对于对比任务
如图 4(a)、4(b) 所示,我们引入了两种推理模式:InternVL-C和InternVL-G。它们使用视觉编码器,或InternViT和QLLaMA的组合来编码视觉特征。
具体来说,我们将InternViT的视觉特征,或QLLaMA的查询特征进行注意力池化,以计算全局视觉特征If。此外,我们从QLLaMA的[EOS]令牌中提取特征,将文本编码为Tf。通过计算If和Tf之间的相似度分数,我们可以支持图像-文本检索等对比任务。
3)对于生成任务
QLLaMA由于其有大量的参数,本身就具有很有前途的图像描述能力。QLLaMA的查询重新组织了 InternViT-6B 的视觉表示,并作为QLLaMA的前缀文本。后续的文本标记将按顺序逐个生成。
4)对于多模态对话
引入了 InternVLChat,利用 InternVL 作为视觉组件来连接LLMs。为此,我们有两种不同的配置。
-
一种选择是独立使用 InternViT-6B,如图 4© 所示。
-
另一种方法是同时使用完整的 InternVL 模型,如图 4(d) 所示。
.
论文《InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks》:
- https://huggingface.co/papers/2312.14238
- https://arxiv.org/pdf/2312.14238
GitHub:
- https://github.com/OpenGVLab/InternVL
声明:资源可能存在第三方来源,若有侵权请联系删除!