【论文笔记】Florence-VL: Enhancing Vision-Language Models with Generative Vision Encoder and Depth-Breadth Fusion

基本信息

标题: Florence-VL: Enhancing Vision-Language Models with Generative Vision Encoder and Depth-Breadth Fusion
作者: Jiuhai Chen, Jianwei Yang, Haiping Wu, Dianqi Li, Jianfeng Gao, Tianyi Zhou, Bin Xiao
arXiv: https://arxiv.org/abs/2412.04424

基本信息

摘要

我们提出了一种名为 Florence-VL 的新型多模态大语言模型家族,该模型通过 Florence-2 生成视觉基础模型增强了视觉表示。

与广泛使用的基于对比学习的 CLIP 风格视觉 Transformer 不同,Florence-2 能够捕捉不同层次和方面的视觉特征,这使得它们更灵活,可以适应各种下游任务。

我们提出了一种新的特征融合架构和创新训练方案,有效地将 Florence-2 的视觉特征集成到预训练的 LLM,如 Phi 3.5 和 LLama 3 中。

特别是,我们提出了“depth-breath fusion (DBFusion)”来融合从不同深度和多个提示中提取的视觉特征。

我们的模型训练包括整个模型的端到端预训练,随后在精心设计的包含高质量图像描述和指令调整对的多样化开源数据集上对投影层和 LLM 进行微调。

我们对 Florence-VL 视觉特征的定量分析和可视化表明,它在视觉-语言对齐方面优于流行的视觉编码器,其中丰富的Depth and Breadth起着重要作用。

在涵盖通用 VQA、感知、幻觉、OCR、图表、知识密集型理解等多种多模态和视觉中心基准测试中,Florence-VL 在现有最先进的 MLLM 上实现了显著改进。

为了促进未来的研究,我们的模型和完整的训练方案已开源。

https://github.com/JiuhaiChen/Florence-VL

方法

Preliminary: Florence-2

Comparison of LLaVA-style MLLMs with our Florence-VL

Florence-2 是一个视觉基础模型,它利用统一的、基于提示的方法来处理各种视觉任务,如图像说明、目标检测、定位和分割。该架构由视觉编码器 DaViT 和标准的编码器-解码器模型组成。

它将输入图像IRH×W×3\mathbf{I} \in \mathbb{R}^{H \times W \times 3}(其中HHWW 分别表示高度和宽度)处理为展平的视觉token嵌入。

然后,该模型应用标准的编码器-解码器变压器架构来处理视觉和语言token嵌入。

它首先使用语言tokenizer和词嵌入层生成提示文本嵌入TRNt×D\mathbf{T} \in \mathbb{R}^{N_t \times D},其中NtN_tDD 分别表示提示token的数量和维度。

视觉token嵌入随后与提示嵌入连接,以创建多模态编码器模块的输入X=[V,T]\mathbf{X} = [\mathbf{V}, \mathbf{T}],其中VRNv×D\mathbf{V} \in \mathbb{R}^{N_v \times D} 是通过将线性投影和 LayerNorm 层应用于 DaViT 的视觉嵌入生成的,NvN_vDD 分别表示视觉token的数量和维度。

线性投影和 LayerNorm 层用于确保与T\mathbf{T} 的维度对齐。编码器-解码器模型将处理X\mathbf{X} 并生成期望的结果,例如图像说明、目标检测、定位等文本形式的结果。

Using Florence-2 as Vision Backbone

为了解决现有视觉骨干网络在多语言语言模型(MLLMs)中的局限性,特别是,最后一层特征通常产生一个图像级表示,它捕捉了整体场景和上下文,但往往忽略了像素或区域级细节,我们利用视觉基础模型Florence-2作为我们的视觉编码器来提取视觉特征。

与提供单一通用图像特征的CLIP预训练视觉变换器不同,Florence-2可以通过使用不同的任务提示来识别不同尺度的空间细节。

在MLLMs中,有效的图像理解需要捕捉从全局语义到局部细节的多个粒度级别,并理解对象和实体在其语义上下文中的空间关系。

Florence-2凭借其管理不同粒度级别的功能,是解决图像理解核心方面的理想视觉编码器。

Visual Features spanning Depth and Breadth

Breadth

由于不同的下游任务需要从图像中获取不同的感知信息,我们考虑扩展视觉表示的宽度。给定一个输入图像IRH×W×3\mathbf{I} \in \mathbb{R}^{H \times W \times 3} 和一个特定于任务的提示,例如“提供图像中显示的文本”,Florence-2 将处理图像特征和提示特征,生成X=[V,T]\mathbf{X} = [\mathbf{V}, \mathbf{T}],然后将其输入到编码器-解码器 Transformer 架构中。

编码器采用注意力机制处理X\mathbf{X},生成输出X=[V,T]\mathbf{X}' = [\mathbf{V}', \mathbf{T}']。由于V\mathbf{V}T\mathbf{T} 之间的交叉注意力,更新的图像特征V\mathbf{V}' 更加专注于提示“提供图像中显示的文本”,具体来说是从图像中提取更多的文本信息。

我们专注于三个不同的任务,这些任务有助于图像理解,从而生成三个不同的图像嵌入[Vt1,Vt2,Vt3][\mathbf{V}_{t_1}', \mathbf{V}_{t_2}', \mathbf{V}_{t_3}'],每个嵌入都针对特定任务:

  • Detailed Image Caption:用一段话描述图像中显示的内容。它使模型能够给出图像的整体上下文。
  • OCR:提供图像中显示的文本。它从图像中提取更多的文本信息。
  • Dense Region Caption:定位图像中的对象,并附上描述。它捕捉对象之间的空间关系。

我们使用不同的任务提示可视化图像特征,对视觉嵌入应用PCA,并为可视化设置阈值。

如图3所示,不同的图像嵌入强调图像中的不同概念信息。

Visualization of the first three PCA components: we apply PCA to image features generated from Detailed Caption, OCR, and Grounding prompts, excluding the background by setting a threshold on the first PCA component

此外,我们还在图3中可视化了OpenAI CLIP的最终层图像特征,这些特征在大多数情况下通常缺乏某些区域级别的细节。

Depth

我们还结合了来自 DaViT 的低级特征V\mathbf{V},以及从三个提示中得出的更高级特征[Vt1,Vt2,Vt3][\mathbf{V}_{t_1}', \mathbf{V}_{t_2}', \mathbf{V}_{t_3}'],这使我们能够捕捉概念细节的多个层次。

Depth-Breadth Fusion

由于我们有不同粒度级别的图像特征,特征融合通常被使用。

在处理多个特征嵌入时,例如[V,Vt1,Vt2,Vt3][\mathbf{V}, \mathbf{V}_{t_1}', \mathbf{V}_{t_2}', \mathbf{V}_{t_3}'],下一个问题就变成了如何融合这些特征,并将它们与语言模型空间对齐。

为了利用这四个特征,可以考虑几种方法来进行这一融合过程:

  • Token Integration:这种方法涉及沿token维度连接所有特征。然而,这可能会使视觉token过长并使模型训练复杂化。
  • Average Pooling:或者,可以使用所有特征的平均池化,但这种方法可能导致信息丢失。
  • Channel Integration:一种更有效的方法是沿通道维度连接特征,这不会增加序列长度。

为了快速评估哪种特征融合方法提供最佳的整体性能,我们使用来自 LLaVA-1.5 的数据集,其中包括558K图像描述用于预训练和665K条目用于指令微调。

Experiments for different fusion strategies

在表1中,Channel Integration策略显示出比其他两种融合方法更好的性能和训练效率。

因此,我们选择Channel Integration作为简单但有效的融合策略。

Florence-VL

An overview of Florence-VL, which extracts visual features of different depths (levels of feature concepts) and breaths (prompts) from Florence-2, combines them using DBFusion, and project the fused features to an LLM’s input space

如图2所示,Florence-VL由视觉基础模型Florence-2和大语言模型组成。

在提取多个图像特征后,我们使用MLP将这些特征投影到语言模型空间。

在预训练阶段,我们使用图像详细描述数据将Florence-2与语言模型对齐。

在指令调整阶段,我们使用多样且高质量的指令调整数据集,以有效地将模型适应下游任务。

实验

Results on general multimodal benchmarks, Vision centric, Knowledge based, and OCR & Chart benchmarks

We compare LLaVA 1.5 with our model (Florence-VL 3B/7B/8B) across multiple multimodal benchmarks

The comparison between keeping only the lower-level feature [V] and our method, which includes both lower- and higher-level features, clearly demonstrates that maintaining both types of features achieves better performance

Ablation study was conducted by removing one high level image feature at a time, demonstrating that all high-level features are essential for maintaining optimal performance

We plot the alignment loss for different vision encoders, which clearly shows that Florence-2 vision encoder achieves the lowest alignment loss compared to the other vision encoders, demonstrating the best alignment with text embeddings

We plot the alignment loss for various feature combinations, removing one feature at a time from different depths and breadths

总结

Florence-VL将Florence-2作为一款通用的视觉编码器,在多个计算机视觉任务如描述生成、OCR和Grounding中提供多样化的、特定于任务的视觉表示。

通过利用深度宽度融合(DBFusion),我们结合了来自不同层(“深度”)和提示(“宽度”)的多种视觉特征,创建了满足下游任务多样化感知需求的丰富表示。

我们的融合策略,基于通道拼接,有效地结合了这些多样化的特征,然后将它们作为语言模型的输入。

通过在包含详细描述的预训练数据和多样化的指令微调数据的新型数据集上进行训练,Florence-VL在视觉编码器和LLM之间的对齐方面表现出卓越的能力,在涵盖视觉中心、基于知识和OCR & 图表任务的25个基准测试中优于其他模型。

我们的分析强调了Florence-2的生成能力在增强多语言模型对齐和广泛应用的灵活性方面的有效性。

对于未来的工作,有几个方向可以进一步提高Florence-VL的能力和效率。一个方向是改进DBFusion策略,通过探索更复杂的融合技术,根据特定的下游任务需求动态调整深度-宽度平衡。

此外,虽然Florence-2提供了多样化的视觉表示,未来的研究可以探索自适应视觉编码器,它能够实时选择特征,优化计算效率而不影响性能。