AI 模型与平台

MoE-LLaVA:大型视觉语言模型的专家混合模型

mm
将 Unite.AI 添加到您在 Google 上的首选来源

近年来,大型视觉语言模型(LVLMs)的发展表明,扩大这些框架可以显著提高各种下游任务的性能。LVLMs,包括MiniGPT、LLaMA等,通过将视觉投影层和图像编码器集成到其架构中,实现了显著的能力。通过实施这些组件,LVLMs增强了大型语言模型(LLMs)的视觉感知能力。性能可以通过增加模型的大小和参数数量以及扩大数据集规模进一步提高。

像InternVL这样的模型已经将图像编码器扩展到超过60亿参数,而其他模型已经将LVLMs的后端扩展到130亿参数,实现了在广泛任务上的卓越性能。IDEFICS已经训练了一个具有超过80亿参数的LVLM。这些扩大方法已经匹配或超过了在超过34亿、70亿甚至100亿参数上预训练的LLMs的性能。然而,扩大有其缺点:它显著增加了训练和推理成本。这是因为它需要所有参数对于每个计算的标记都处于活动状态,导致高计算需求和更高的成本。

本文讨论MoE-LLaVA,一种基于专家混合(MoE)的稀疏LVLM架构,它采用了一种有效的训练策略,MoE-Tuning,用于LVLMs。MoE-Tuning创新地解决了多模态稀疏学习中的性能下降问题,实现了一个具有大量参数但训练和推理成本一致的模型。MoE-LLaVA架构旨在仅在部署期间激活顶k个专家,而保持其余专家不活动。

我们将探索MoE-LLaVA框架,检查其机制、方法、架构以及它与领先的图像和视频生成框架的比较。

MoE-LLaVA:大型视觉语言模型的经济扩展

除了利用视觉投影层和图像编码器,大型视觉语言模型还通过增加参数数量来增强模型的性能。一些值得注意的大型视觉语言模型的例子包括MiniGPT-4、InternGPT、InternVL等。在实际应用中,扩大大型语言模型或大型视觉语言模型的规模通常是必要的,以提高模型的性能。虽然扩大模型的规模可以提高性能,但也增加了训练和部署模型的计算成本,并进一步增加了并行设备上的部署的复杂性和效率。扩大模型的主要原因是每个标记都需要计算每个参数,这被称为密集模型。

另一方面,稀疏的MoE或专家混合模型已经展示了通过使用固定激活参数来处理数据的有效扩展,这种方法在自然语言处理领域得到了广泛应用。然而,直接使用MoE来训练稀疏的大型视觉语言模型是具有挑战性的,因为同时将LLMs转换为LVLMs和稀疏化模型会导致显著的性能下降。为了实现MoE来扩大LLMs和LVLMs,首先需要初始化LVLM以进行稀疏化。为此,MoE-LLaVA框架引入了MoE-Tuning,一种简单而有效的三阶段训练策略。

如上图所示,MoE-Tuning过程首先训练一个多层感知器(MLP),将视觉标记适应大型语言模型,在第一阶段。然后,框架训练整个LLM的参数,以预先赋予大型视觉语言模型一般的多模态理解能力。最后,在第三阶段,框架复制FFN或前馈神经网络作为专家的初始化权重,并仅训练MoE层。总体而言,训练过程有助于从LVLM初始化到稀疏混合专家模型的渐进转变。

有了训练过程的介绍,让我们来了解MoE-LLaVA,一种大型视觉语言模型的基线,它包含可学习的路由器和MoE模型。在其核心,MoE-LLaVA模型由多个稀疏路径组成,框架使用这些路径通过可学习的路由器将每个标记分配给不同的专家。然后,激活的专家集体处理标记,同时保持不活动的路径静默。框架然后迭代地堆叠MoE编码器层,以提供一个向更大、更强大的LVLM的稀疏路径。

由于MoE-LLaVA框架采用的方法,它能够在POPE对象幻觉基准上超越具有类似数量激活参数的模型,并且具有显著的差异,尽管仅有22亿参数。此外,MoE-LLaVA框架具有22亿参数,能够实现与InternVL-Chat-19B框架类似的性能,后者具有几乎8倍的激活参数。

强大的大型语言模型具有强大的泛化和指令跟随能力,已经被实施到大型视觉语言模型中。早期的LLMs,如BLIP,将视觉信号编码为视觉标记序列,使得使用多个投影层成功地将视觉适应LLMs。同时,最近的工作重点是通过实施方法(如扩展指令调优数据集、增加图像分辨率、优化训练策略、对齐输入、增强图像编码器等)来提高模型的性能。这些方法已经帮助赋予LVLMs强大的视觉理解能力,通过扩展视觉指令调优数据集和模型规模。此外,一些LVLMs还具有细粒度的图像理解能力,例如区域和多区域理解,以及像素级别的接地能力。然而,扩大密集视觉数据和模型的计算成本通常很高,这使得它具有挑战性。另一方面,MoE-LLaVA框架旨在使LVLM研究更加经济实惠,通过利用MoE模型的能力。

MoE-LLaVA:方法和架构

在其核心,MoE-LLaVA框架由视觉投影层(多层感知器)、视觉编码器、MoE块、多个堆叠的LLM块和词嵌入层组成。

架构

以下表格总结了MoE-LLaVA框架的详细配置。

对于给定的RGB图像,视觉编码器处理图像以获得视觉标记序列,并且视觉投影层将视觉标记序列映射到输入图像。文本输入由词嵌入层处理,然后投影到获得序列标记。同时,MoE-LLaVA框架将文本和视觉标记连接起来,并将它们输入LLM。然而,框架仅训练视觉投影层和大型语言模型,后者由FFN或前馈神经网络和多头自注意力层组成。最后,框架对每个块应用残差连接和层归一化。

继续,MoE-LLaVA框架复制FFN或前馈神经网络以初始化专家作为初始化步骤。路由器作为线性层,预测每个标记被分配给每个专家的概率。每个标记由具有最大概率的顶k个专家处理,并根据概率的softmax结果计算加权和。一次激活顶k个专家,模型关闭其余专家,这种方法使MoE-LLaVA框架具有无限可能的稀疏路径,从而赋予模型广泛的能力。

MoE-Tuning

MoE-Tuning是一种简单而有效的三阶段训练策略,首先训练一个多层感知器(MLP),将视觉标记适应大型语言模型,在第一阶段。然后,框架训练整个LLM的参数,以预先赋予大型视觉语言模型一般的多模态理解能力。最后,在第三阶段,框架复制FFN或前馈神经网络作为专家的初始化权重,并仅训练MoE层。

阶段1

在第一阶段,主要目标是将图像标记适应大型语言模型,使LLM能够理解图像中的实例。MoE-LLaVA框架采用多层感知器将图像标记投影到大型语言模型的输入域,并将图像块视为伪文本标记。在此阶段,MoE-LLaVA框架训练LLM来描述图像,并不在此阶段应用MoE层到LLM。

阶段2

在第二阶段,MoE-LLaVA尝试通过使用多模态指令数据来增强框架的能力和可控性。MoE-LLaVA框架通过调整LLM使其成为具有多模态理解能力的LVLM来实现这一点。框架采用更复杂的指令,包括文本识别和逻辑图像推理任务,这些任务需要模型具有更强的多模态能力。传统上,密集模型的训练过程在此步骤完成。然而,MoE-LLaVA框架在将LLM转换为LVLM的同时遇到了稀疏化模型的挑战。为了应对这一挑战,框架使用来自该阶段的权重作为下一阶段的初始化,以缓解稀疏模型的学习难度。

阶段3

在第三阶段,模型复制前馈神经网络以初始化专家作为初始化步骤。然后,框架将文本和图像标记输入MoE层,路由器计算专家和每个标记之间的匹配权重。每个标记由具有最大概率的顶k个专家处理,并根据概率的softmax结果计算加权和。一旦激活顶k个专家,模型关闭其余专家,这种方法使MoE-LLaVA框架具有无限可能的稀疏路径,从而赋予模型广泛的能力。

MoE-LLaVA:结果和实验

MoE-LLaVA框架采用CLIP-Large作为视觉编码器,多层感知器由两个层组成,中间有一个GELU激活层。默认情况下,框架采用交替替换前馈神经网络和MoE层的方法,即MoE层占总层数的50%。以下表格包含用于训练和评估MoE-LLaVA框架的不同数据集及其样本大小。

零次图像问答

以下图表表明MoE-LLaVA是一种基于LVLM的稀疏模型,具有软路由器。框架在5个图像问答基准上进行了评估,如图所示,MoE-LLaVA框架展示了显著的图像理解能力,并在5个不同基准上实现了与最先进的LLaVA 1.5框架相当的性能。

对象幻觉评估

为了评估对象幻觉,MoE-LLaVA框架采用了POPE评估流水线,一种基于投票的查询方法,结果如下表所示。如图所示,MoE-LLaVA框架在所有框架中实现了最强的结果,表明该框架能够生成与输入图像一致的对象。此外,值得注意的是,MoE-LLaVA框架平衡了是的比例,表明该稀疏模型能够为给定的问题提供准确的反馈。

以下图表显示了专家负载的分布,其中不连续的线代表了标记在模态或专家之间的良好平衡分布。第一幅图表显示了专家内部的工作量,而其余图表显示了专家对不同模态的性能。

此外,以下图表显示了模态在不同专家之间的分布。

最终思考

在本文中,我们讨论了MoE-LLaVA,一种大型视觉语言模型的基线,它包含可学习的路由器和MoE模型。在其核心,MoE-LLaVA模型由多个稀疏路径组成,框架使用这些路径通过可学习的路由器将每个标记分配给不同的专家。然后,激活的专家集体处理标记,同时保持不活动的路径静默。框架然后迭代地堆叠MoE编码器层,以提供一个向更大、更强大的LVLM的稀疏路径。MoE-Tuning策略创新地解决了多模态稀疏学习中的性能下降问题,构造了一个具有大量参数但训练和推理成本一致的模型。MoE-LLaVA框架的架构旨在仅在部署期间激活顶k个专家,而保持其余专家不活动。ng创新地构造了一个具有大量参数但训练和推理成本一致的模型,架构设计仅在部署期间激活顶k个专家,同时保持其余专家不活动。

Kunal Kejriwal 是一名专注于 Python、PostgreSQL、Redis 以及 GCP 和 AWS 上云基础设施的后端工程师。拥有三年构建和扩展生产系统的经验,他撰写关于 AI 基础设施、分布式系统以及部署机器学习工作负载背后架构的文章。