【论文笔记】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
小嗷犬基本信息
标题: 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
Florence-2 是一个视觉基础模型,它利用统一的、基于提示的方法来处理各种视觉任务,如图像说明、目标检测、定位和分割。该架构由视觉编码器 DaViT 和标准的编码器-解码器模型组成。
它将输入图像(其中 和 分别表示高度和宽度)处理为展平的视觉token嵌入。
然后,该模型应用标准的编码器-解码器变压器架构来处理视觉和语言token嵌入。
它首先使用语言tokenizer和词嵌入层生成提示文本嵌入,其中 和 分别表示提示token的数量和维度。
视觉token嵌入随后与提示嵌入连接,以创建多模态编码器模块的输入,其中 是通过将线性投影和 LayerNorm 层应用于 DaViT 的视觉嵌入生成的, 和 分别表示视觉token的数量和维度。
线性投影和 LayerNorm 层用于确保与 的维度对齐。编码器-解码器模型将处理 并生成期望的结果,例如图像说明、目标检测、定位等文本形式的结果。
Using Florence-2 as Vision Backbone
为了解决现有视觉骨干网络在多语言语言模型(MLLMs)中的局限性,特别是,最后一层特征通常产生一个图像级表示,它捕捉了整体场景和上下文,但往往忽略了像素或区域级细节,我们利用视觉基础模型Florence-2作为我们的视觉编码器来提取视觉特征。
与提供单一通用图像特征的CLIP预训练视觉变换器不同,Florence-2可以通过使用不同的任务提示来识别不同尺度的空间细节。
在MLLMs中,有效的图像理解需要捕捉从全局语义到局部细节的多个粒度级别,并理解对象和实体在其语义上下文中的空间关系。
Florence-2凭借其管理不同粒度级别的功能,是解决图像理解核心方面的理想视觉编码器。
Visual Features spanning Depth and Breadth
Breadth
由于不同的下游任务需要从图像中获取不同的感知信息,我们考虑扩展视觉表示的宽度。给定一个输入图像 和一个特定于任务的提示,例如“提供图像中显示的文本”,Florence-2 将处理图像特征和提示特征,生成,然后将其输入到编码器-解码器 Transformer 架构中。
编码器采用注意力机制处理,生成输出。由于 和 之间的交叉注意力,更新的图像特征 更加专注于提示“提供图像中显示的文本”,具体来说是从图像中提取更多的文本信息。
我们专注于三个不同的任务,这些任务有助于图像理解,从而生成三个不同的图像嵌入,每个嵌入都针对特定任务:
- Detailed Image Caption:用一段话描述图像中显示的内容。它使模型能够给出图像的整体上下文。
- OCR:提供图像中显示的文本。它从图像中提取更多的文本信息。
- Dense Region Caption:定位图像中的对象,并附上描述。它捕捉对象之间的空间关系。
我们使用不同的任务提示可视化图像特征,对视觉嵌入应用PCA,并为可视化设置阈值。
如图3所示,不同的图像嵌入强调图像中的不同概念信息。
此外,我们还在图3中可视化了OpenAI CLIP的最终层图像特征,这些特征在大多数情况下通常缺乏某些区域级别的细节。
Depth
我们还结合了来自 DaViT 的低级特征,以及从三个提示中得出的更高级特征,这使我们能够捕捉概念细节的多个层次。
Depth-Breadth Fusion
由于我们有不同粒度级别的图像特征,特征融合通常被使用。
在处理多个特征嵌入时,例如,下一个问题就变成了如何融合这些特征,并将它们与语言模型空间对齐。
为了利用这四个特征,可以考虑几种方法来进行这一融合过程:
- Token Integration:这种方法涉及沿token维度连接所有特征。然而,这可能会使视觉token过长并使模型训练复杂化。
- Average Pooling:或者,可以使用所有特征的平均池化,但这种方法可能导致信息丢失。
- Channel Integration:一种更有效的方法是沿通道维度连接特征,这不会增加序列长度。
为了快速评估哪种特征融合方法提供最佳的整体性能,我们使用来自 LLaVA-1.5 的数据集,其中包括558K图像描述用于预训练和665K条目用于指令微调。
在表1中,Channel Integration策略显示出比其他两种融合方法更好的性能和训练效率。
因此,我们选择Channel Integration作为简单但有效的融合策略。
Florence-VL
如图2所示,Florence-VL由视觉基础模型Florence-2和大语言模型组成。
在提取多个图像特征后,我们使用MLP将这些特征投影到语言模型空间。
在预训练阶段,我们使用图像详细描述数据将Florence-2与语言模型对齐。
在指令调整阶段,我们使用多样且高质量的指令调整数据集,以有效地将模型适应下游任务。
实验
总结
Florence-VL将Florence-2作为一款通用的视觉编码器,在多个计算机视觉任务如描述生成、OCR和Grounding中提供多样化的、特定于任务的视觉表示。
通过利用深度宽度融合(DBFusion),我们结合了来自不同层(“深度”)和提示(“宽度”)的多种视觉特征,创建了满足下游任务多样化感知需求的丰富表示。
我们的融合策略,基于通道拼接,有效地结合了这些多样化的特征,然后将它们作为语言模型的输入。
通过在包含详细描述的预训练数据和多样化的指令微调数据的新型数据集上进行训练,Florence-VL在视觉编码器和LLM之间的对齐方面表现出卓越的能力,在涵盖视觉中心、基于知识和OCR & 图表任务的25个基准测试中优于其他模型。
我们的分析强调了Florence-2的生成能力在增强多语言模型对齐和广泛应用的灵活性方面的有效性。
对于未来的工作,有几个方向可以进一步提高Florence-VL的能力和效率。一个方向是改进DBFusion策略,通过探索更复杂的融合技术,根据特定的下游任务需求动态调整深度-宽度平衡。
此外,虽然Florence-2提供了多样化的视觉表示,未来的研究可以探索自适应视觉编码器,它能够实时选择特征,优化计算效率而不影响性能。