摘要
多模态视觉语言模型(VLMs)在模型规模和数据量不断增加的支持下取得了显著进展。然而,在边缘设备上运行 VLMs 对其广泛应用构成了挑战。已有一些高效 VLM 的研究,但它们往往为增强多模态能力而牺牲语言能力,或需要大量训练。
为解决这一困境,本文引入了具有弹性视觉专家的高效视觉语言模型(Eve)这一创新框架。通过在训练的多个阶段巧妙整合适应性视觉专业知识,Eve 在保持语言能力和增强多模态能力之间取得了平衡。这种平衡的方法产生了一个仅含 18 亿参数的通用模型,在多模态和语言任务中都有显著改进。值得注意的是,在 30 亿参数以下的配置中,Eve 在语言基准测试中表现突出,并在 VLM 基准测试中达到了 68.87% 的最先进结果。此外,其多模态准确性超过了更大的 70 亿参数的 LLaVA-1.5 模型。
背景
随着人工智能的迅速发展,视觉和语言的理解备受关注,成为重要的研究焦点。多模态模型如视觉语言模型(VLMs)旨在结合视觉信息和文本描述,以增强语义理解。
现有的大多数 VLMs 主要通过扩大数据量或增加模型尺寸来增强多模态能力,这使得模型规模庞大,难以在设备上部署和高效推理,阻碍了其实际应用。为开发高效的 VLMs,虽有方法提出,但这些方法常以牺牲语言能力为代价增强多模态能力,或大幅增加训练成本。
贡献
本文提出了弹性视觉专家(Eve)框架,精心设计了三个训练阶段,并在每个阶段巧妙融入动态自适应视觉专家,使每个专家专注于特定领域任务,在训练过程中整合专家的最佳性能以增强多模态能力,同时保持固有的语言能力。
弹性视觉专家,包括弹性视觉编码器(EVE)和弹性视觉前馈网络(EVF),具有出色的适应性。在前两个训练阶段,视觉编码器保持冻结,便于与各种视觉编码器无缝集成,同时保持语言模型的性能。在第三阶段,引入 EVF,与模型的语言能力相结合,产生强大的协同作用,显著提高了模型处理和融合视觉和文本数据的能力,从而大幅增强其多模态性能。
Eve 在参数少于 30 亿的多模态任务中表现出色,在 VLM 和语言基准测试中达到顶尖性能,在多模态准确性方面与 70 亿参数的 LLaVA-1.5 模型相当。
技术方案
4.1 概述
Eve 采用了复杂的三阶段框架,在每个阶段都战略性地集成了弹性视觉专家。在训练过程中,前两个阶段视觉编码器的预训练数据变化不会影响模型的语言能力。在后期训练中,在第三阶段引入新的弹性视觉前馈网络(FFN)来增强模型处理多模态数据的能力,同时保持语言任务的熟练度。
4.2 弹性视觉编码器
基于现有的基础视觉模型如 ResNet 和 ViT 提出弹性视觉编码器。在训练的前两个阶段,视觉编码器从 RGB 图像中提取特征并转换为视觉嵌入序列,视觉适配器被持续训练以将视觉特征与语言模型的特征空间对齐。而语言模型在第二阶段仅进行轻微的基于 LoRA 的微调,且视觉编码器保持冻结以支持不同的视觉骨干模型。
本文使用 ResNet-50 作为视觉编码器,并在 ImageNet-1K、ImageNet-22K 和 LAION400M 数据集上进行训练。结果表明在 ImageNet-22K 上训练的模型在 VLM 基准测试中精度最高,且不同数据集训练的视觉编码器对模型语言能力影响较小。
4.3 弹性视觉 FFN
在第三阶段受 MoE-LLaVA 启发引入弹性视觉前馈网络(EVF)。EVF 层包含路由机制、令牌分配策略以及两个分别用于语言处理和视觉信息的前馈网络(FFNs)。
在 LLM 前向传播中,图像和文本 tokens 经处理后共同输入 LLM,路由层首先为每个 token 推荐一个 FFN,token 分配机制再综合考虑路由层建议和 FFN 容量决定 tokens 分配。
路由机制使用线性层计算将每个 token 分配到相应 FFN 的概率。公式如下:
$$P = \frac{\exp(x^T W)}{\sum \exp(x^T W)}$$
其中,$W$ 为轻量级可训练参数,对应语言 FFN,$W_v$ 对应视觉 FFN。
在第三阶段初始化时,将第二阶段的 FFN 参数复制到语言和视觉 FFNs 中,训练时冻结视觉编码器、视觉适配器和语言模型的大部分参数,仅训练视觉 FFN 和语言模型中的路由层。在多模态任务推理阶段,EVF 层的两个 FFNs 都被激活,而在语言任务中,仅保留语言 FFN。
Token 分配
对确定每个 token 分配到哪个 FFN 至关重要。在 EVF 层中,每个 FFN 有预定义容量,传统分配机制若推荐令牌数超容量会随机丢弃部分令牌。本文引入 GBPR 策略,根据路由分数优先分配重要令牌,进一步提出 Img-GBPR 机制区分管理视觉和文本 token,为每种 token 类型指定默认推荐 FFN,并根据模态优化 token 分配,最终优先级分数计算公式为:
$$Score = \alpha \cdot S_{route} + (1 - \alpha) \cdot S_{capacity}$$
当分配给 FFN 的令牌数超容量时,优先选择基于 Score 的最重要个 token 分配,剩余令牌重新分配,一定比例随机分配到另一个 FFN 以减少 token 损失。
平衡损失
借鉴 MoE-LLaVA,整体损失函数由回归损失和辅助损失组成:


