盘点 2024 年的视觉语言模型VLMs
盘点 2024 年的视觉语言模型VLMs
青稞作者:AI椰青
原文:https://zhuanlan.zhihu.com/p/7827587018
1 引言
视觉语言模型(Vision Language Models, VLMs)是一类生成模型,能够同时从图像和文本中学习以解决多种任务。
视觉语言模型被广义定义为能够从图像和文本中学习的多模态模型。这类生成模型以图像和文本为输入,生成文本(或图像)作为输出。大型视觉语言模型在零样本学习中表现出色,具有良好的泛化能力,并能够处理多种类型的图像,包括文档、网页等 。Vision Language Models Explained
近年来,已有大量关于 VLMs 的综述文章 An Introduction to Vision-Language Modeling,Vision-Language Models for Vision Tasks: A Survey。因此,本博文将跳过基础介绍,直接聚焦于 2024 年的最新研究趋势。
2 多模态设计
一般而言,视觉语言模型(VLMs)有两种主要的设计类型 lecture14-Vision_Language_Model.pdf:
类型 A:多模态大语言模型(Multimodal LLM, 或 MLLM)
架构:视觉编码器 -> 多模态投影器 -> 大语言模型(LLM)或文本解码器
视觉编码: 首先通过视觉编码器对图像或视频进行编码。视觉编码器通常是预训练的,例如SimCLR 、CLIP 或SigLIP 。
多模态对齐: 将压缩后的视觉表示传递到多模态投影器中,与文本表示进行对齐。
生成文本: 投影后的视觉标记(通常与文本标记一起)被输入到预训练的大语言模型(LLM)中进行处理,从而生成文本。
优点与局限性:
类型 A 的 VLMs 利用预训练的视觉编码器和 LLM,因此训练相对简单。重点在于对视觉特征和文本特征的对齐,大部分视觉特征的理解依赖于 LLM。然而,基于文本的 LLM 在没有额外设计和训练的情况下,难以生成多模态输出。
类型 B:多模态标记化Transformer
架构:离散标记器/编码器 -> 多模态Transformer / 解码器
图像标记化: 使用标记器(如VQ-VAE )直接将图像或视频编码为一系列标记。
多模态Transformer训练: 通过多模态Transformer处理这些视觉(及文本)标记。
生成多模态输出: 借助适当的解码或扩散设计,可直接生成多模态输出。
优点与局限性:
类型 B 的 VLMs 天然支持多模态输出生成。但它们通常需要从零开始训练,训练难度较大,速度较慢。
典型示例:
- Gemini 1.5(闭源)采用类型 B 设计,其开源版本PaliGemma 使用预训练的 Gemma-2B,则属于类型 A 设计。
- Transfusion采用 "VAE 编码器 -> Transformer -> VAE 解码器" 的设计。图像标记基于 patch(图像块),在 Transformer 中,局部图像块间的注意力掩码是全连接的,而不同输入序列间(以及每个文本序列内部)的注意力掩码仍为因果掩码。
研究趋势
本博文主要聚焦于类型 A 的 VLMs,因为研究社区很少从零开始训练多模态Transformer。下文也将列举一些尝试统一两种设计的近期研究论文(如 VILA-U 和 Libra)。
3 架构
这是一个典型的多模态大语言模型(MLLM)设计。在默认设置下,预训练阶段仅训练投影器(也称为连接器)。在后续训练阶段,有时会解冻大语言模型(LLM)和/或视觉编码器,以提升模型在指令跟随任务中的表现。例如,在 Llama3.2 中,为了保持纯文本性能,LLM 在后续训练阶段也保持冻结状态。而在 MM1.5 中,LLM 和视觉编码器都被解冻。训练细节将在后文的训练部分详细讨论。
3.1 视觉编码器
在 MM1 和 LLaVa-Next 的实验中,视觉编码器主要作为一种半无损的特征压缩器。只要压缩后的特征是半无损的,编码器的规模对 MLLM 的性能影响不大,但提高图像分辨率却至关重要。
视觉编码器的主要挑战之一是支持高分辨率或不同分辨率的图像,以及包含丰富文本信息的图像。以 ViT 架构的 CLIP 视觉编码器为例,其图像分辨率通常为 224x224 或 336x336,难以支持大尺寸图像。此外,ViT 的最后一层通常作为视觉输入特征,产生的特征张量(576 或 768)已经很大,难以支持多张图像输入。
以下是一些近期研究如何解决该问题的方法:
- MiniCPM-V 自适应地将原始图像划分为不同部分(如 1x6、2x3、4x2、8x1),并采用二维位置嵌入插值来支持图像分割。
- LLaVa-OneVision 先将原始图像下采样为视觉编码器输入大小,然后将图像划分为不同裁剪块,通过双线性插值减少输入尺寸。
- InternVL1.5 方法与 LLaVa-OneVision 类似,但使用 PixelShuffle 技术减少标记大小。
- MM1.5 采用与 LLaVa-OneVision 类似的方法,并对图像填充进行特殊处理,生成 378×378 的图像块,同时尽量减少分辨率损失。
- Qwen2-VL 通过在 ViT 后添加一个额外的 MLP 来支持更大的图像输入,同时使用二维旋转位置编码(2D RoPE)作为位置嵌入。
- NaViT 是一篇早期的论文,尝试总结如何通过打包和补丁处理多模态输入,以支持大规模动态输入。
不同方法针对问题的不同方面,因此在不同的评估任务中各有优劣。所有方法的目标都是尽可能多地捕获原始图像信息,同时尽量避免显著增加特征或标记大小。
此外,还有一些技术可以在不增加训练或推理复杂度的情况下改进对富文本内容的理解,例如使用多个小型视觉编码器或专家混合(MoEs)来提升多任务性能(如 BRAVE),以及将卷积与 Transformer 结合(如 ViTamin)。
最新研究案例
一篇名为 ROSS 的论文提出了一种附加的重构视觉监督方法,用于帮助在 LLM 中保留视觉上下文信息。
3.2 多模态投影器
多模态投影器通常处理视觉编码器的最后一个特征层(例如,不含CLS标记的Transformer最后一层),并生成供LLM使用的一维类似token的特征。常见的技术包括:
- 池化:直接对视觉特征应用平均或注意力池化,例如MM1。
- 带有MLP或卷积的小型神经网络:学习适应不同的模态,通常更易于训练,例如Honeybee(C/D-Abstractor)、MM1、LLaVa-OneVision、InternVL1.5。
- 使用交叉注意力的重采样:结合二维位置编码,学习领域适应,并有助于压缩token大小(支持多帧或大图像),例如MiniCPM-V。
像MM1和LLaVa-OneVision这样的论文声称,与模型架构中的其他因素相比,多模态投影器对整体模型性能的影响较小。随着模型其他部分的规模扩大,多模态投影器也可能需要调整。我们可能会在明年看到这一趋势。
3.3 LLM / 文本解码器
由于大多数研究论文利用预训练的LLM来降低训练成本,例如Llama3.2、Mixtral-8x7B、Qwen2.5及其变体,我们将不深入探讨LLM模型设计的细节。重申一下,扩展LLM的规模仍然是提升模型性能的关键,因为视觉编码器和投影器本质上是将多模态输入转换为类似文本的token,而LLM是执行理解和生成的核心。
3.4 视觉解码器,或者可能是另一个多模态Transformer?
为了进一步生成多模态输出,一个简单的解决方案是在MLLM之后附加一个独立的文本到图像解码器(Diffusion Transformer、Consistency Models等),例如DALL·E 3。一些近期的工作也提出了将视觉解码器集成到端到端MLLM管道中的方法:
Janus直接在LLM的下一个token预测输出中添加了一个图像解码器。它还具有两个独立的视觉编码器,一个专注于理解,另一个专注于生成。
VisionLLM v2(用于InternVL2)添加了一个可训练的“超级链接”来连接LLM和任务特定的解码器。解码器还需要额外的微调,以在保持全局视觉理解效果的同时,获得对视觉任务的多样化能力。
VILA-U使用VQ-VAE离散分词器来编码视觉输入,并添加了一个RQ-VAE视觉解码器。虽然它使用LLaMA-2-7B LLM作为多模态Transformer,但其架构设计与我们之前介绍的类型B VLM非常相似。
Libra采用了类似的架构,使用混合视觉编码器为视觉输入生成连续信号和离散ID,并在每个LLM层中嵌入了一个“路由视觉专家模块”,在视觉和语言之间应用交叉注意力。
可以看到,随着视觉解码器顺利融入多模态模型,类型A和类型B VLM之间的差距正在缩小。通过对LLM和混合视觉token的后期训练,它们甚至可以统一为一个整体设计。
4 预训练
根据MM1和MM1.5的深入研究,预训练一个视觉语言模型(VLM)(假设不冻结任何组件)通常需要以下数据:
- 数十亿对图像-文本对
- 数十亿条交错的图像-文本数据(例如,Flamingo,用于更好的多模态理解以及更好的少样本和仅文本性能)
- 数万亿的仅文本token
- [可选] 合成数据
- 通常的数据采样比例是 5:1:4,大约一半用于以图像为中心的数据,另一半用于以文本为中心的数据。典型的批量大小为 256 或 512。
预训练流程与策略
对于使用预训练视觉编码器和LLM的模型,通常在开始阶段会冻结这两者(有时称为预热阶段或对齐阶段),仅训练一个合适的多模态投影器,使用 数百万至数亿对低分辨率、低至中等质量的图像-文本对。
在训练多模态投影器后,研究人员发现添加第二阶段的预训练(持续预训练或高质量知识学习)也十分有益。这一阶段使用 数百万至数亿对高分辨率、中等质量和/或文本丰富的图像-文本对,以提升图像理解能力。此外,加入多语言标注数据还能显著改善模型在不同语言上的性能(如LLaVa-OneVision、MiniCPM-V)。在这一阶段中,数据过滤至关重要,以确保数据质量优于最初的大规模互联网抓取数据集。
LLM 冻结策略
除非使用高质量的以文本为中心的数据,否则LLM通常在预训练阶段保持冻结状态。
常用训练目标
在模型训练中,通常会使用以下损失函数:
- 重构损失(针对视觉编码器,例如AIM)
- 对比损失(针对VQA任务)
5 后训练
在模型后训练的监督微调(SFT)阶段,数据的质量和多样性至关重要。
- MM1.5 混合了高质量的单帧图像、多帧图像和仅文本数据,重点关注文本丰富、指代与对齐、通用知识、数学和代码等类别。
- LLaVa-OneVision 和 MiniCPM-V 采用与 MM1.5 类似的 SFT 策略,利用数百万条数据样本。此外,它们还引入了多语言数据并增加了输入图像块的最大数量,以支持高分辨率图像。
冻结与微调策略
在 SFT 阶段,不同模型的训练策略各异:
- 一些模型(例如 Llama3.2)会冻结 LLM,以避免对以文本为中心或仅文本任务的性能回退。
- 其他模型(例如 MM1.5、MiniCPM-V、LLaVa-OneVision)声称微调 LLM 能提高对视觉特征的理解能力以及任务指令的执行能力。
类似地,是否冻结(部分)视觉编码器也各有利弊。根据不同的模型配置、数据量和数据分布,可能不存在统一的最佳后期训练策略,因此需要视具体情况决策(或者从另一个角度看,扩展模型的其他部分可能对性能提升更为关键)。
基于强化学习的对齐
基于强化学习(RL)的对齐方法在 VLM 研究领域研究相对较少。但例如 MiniCPM-V 这样的论文认识到对齐的重要性,并部署了 RL 技术(例如 RLAIF-V 中的 DPO),以提高在高风险场景下的对齐和可靠性。
6 高效 VLM
多模态模型(VLM)的一个常见用例是设备端多模态理解,这通常对内存消耗和推理速度有严格限制。以下优化技术可以有效降低内存成本、提升推理速度,并优化模型服务:
推理优化
- 量化、KV 缓存、编译和配置优化(例如,计算分配到不同内核,利用 NPU,参考 MiniCPM-V)。
- 注意力机制优化,如 Flash Attention、Paged Attention、KV共享的局部注意力、分组查询和多查询注意力(GQA 和 MQA)。
- 飞行中批处理(in-flight batching)、预测性解码(SPD)、RMSNorm 和 LLM剪枝。
训练优化
- 结构化稀疏性、并行训练、量化感知训练、LoRA、QLoRA 和 LOMO优化器。
模型压缩
设备端任务中,LLM 的主干通常在 1B 到 3B 参数之间(例如 Llama3.2 和 Gemma-2B),同时结合上述优化,并可选支持专家混合(MoEs)。为进一步减小模型规模或继承高质量大模型,可以通过模型蒸馏(结合教师模型的软标签和硬标签)降低模型体积,同时保持较好的性能。新架构如 Mamba 也能在性能相当的情况下实现参数减少 43%(例如 Cobra)。
服务端任务优化
对于服务端的高吞吐量任务和多轮查询,分布式系统设计以及额外的状态缓存(例如基于主存的 LRU 缓存)非常有帮助。
7 基准测试
传统的视觉问答(VQA)基准测试因样本方差小和样本规模小而受到限制。以下基准测试扩展了视觉理解的某些类别:
- MathVista、MME、SEED-Bench 和 POPE 专注于一个或多个类别的扩展。
- 新的基准如 MMBench、MM-Vet、MMMU 和 MMMU-Pro(增加了答案数量并改进了视觉数据)尝试为 VLM 性能提供全面分析。
多重基准测试
VLM 研究论文通常在多个基准测试上评估模型性能,而不仅仅局限于一两个数据集。文本为中心和仅文本基准(例如 MMLU)也有助于评估 LLM 的性能。有些论文会区分 零样本 和 少样本 的评估,以便更好地进行消融研究。
当前领先模型
截至目前,在 MMMU 基准测试中,OpenAI 的 o1 性能最佳,甚至超越人类专家(低水平),表现出慢速、回顾性和基于步骤的推理能力。以下是排名:
- GPT-4o
- Claude 3.5 Sonet
- Gemini 1.5 Pro
- Qwen2-VL-72B
最好的开源模型是 InternVL2-Pro,其次是 Llama 3.2 90B 和 NVLM-H 1.0 72B。
图像生成质量评估
目前,图像生成质量的评估仍主要依赖定性人工评估(例如 VisionLLM v2),或将模型性能与最先进的扩散模型(如稳定扩散)或自回归模型(如 LlamaGen)进行比较。定量评估方法包括 FID 分数 和 CLIPScore,用于评估生成图像与真实图像的质量差异。
附注:端到端 VLM——自动驾驶的新基础模型
端到端(E2E)VLM 是自动驾驶领域的新型基础模型。通过适当的提示工程(例如自我状态、交通场景总结、高召回边界框提案、上一帧预测、高级路由命令),E2E VLM 能够处理传感器数据序列和经过处理的文本提示,在以下任务中生成下一个 token 的预测:
- 目标检测
- 空间推理
- 道路/场景理解
- 运动规划(结合链式推理)。
Waymo 的 Emma 是一个典型的 E2E 模型,将感知与规划通过 VLM 统一。另一篇论文中提到的 DriveVLM 模型,则将端到端驾驶任务分为两条管道:一条利用 VLM 进行慢速的分层规划,另一条通过经典的感知-规划机器学习管道进行快速轨迹规划。