[论文阅读] MoAI: Mixture of All Intelligence for Large Language and Vision Models

devtools/2024/10/20 3:50:10/

原文链接:http://arxiv.org/abs/2403.07508

源码链接:https://github.com/ByungKwanLee/MoAI

启发:这篇文章提供一个比较新奇的思路,将传统CV小模型的输出进行语言化,转换成统一格式,传入到后续的模型中,为后续任务提供重要的辅助信息。此外,提出了一个MoAI-Mixer模块,它将CV模型输出的辅助tokens、图像视觉特征和文本的语言特征结合,这种成功利用多模态特征的方法非常值得学习。

Abstract  

研究问题:这篇论文提出的研究问题在于现有的大型语言和视觉模型(LLVMs)在处理视觉语言(VL)任务时,往往忽视了专门计算机视觉(CV)模型在视觉感知任务中的详细和全面的真实世界场景理解能力。这些视觉感知任务包括图像分割、目标检测、场景图生成(SGG)和光学字符识别(OCR)。现有的LLVMs主要依赖于其大型语言模型(LLM)主干的巨大容量和涌现能力,而不是利用这些专门的CV模型的输出。因此,论文提出了一个新的LLVM,名为“Mixture of All Intelligence”(MoAI),旨在通过整合来自外部CV模型的辅助视觉信息来改善这一问题。

研究方法:

  1. 模型架构:提出了一个新的LLVM,MoAI,它通过两个新引入的模块工作:MoAI-Compressor和MoAI-Mixer。

  2. 辅助视觉信息:MoAI利用来自外部分割、检测、SGG和OCR模型的输出,将这些输出转化为语言形式,以便于整合到LLVM中。

  3. MoAI-Compressor:该模块负责对外部CV模型的输出进行对齐和压缩,以高效地使用相关的辅助视觉信息进行视觉语言任务。

  4. MoAI-Mixer:这个模块结合了三种智能类型:

    • 视觉特征。
    • 来自外部CV模型的辅助特征。
    • 语言特征。 MoAI-Mixer利用专家混合(Mixture of Experts)的概念,将这三种特征融合在一起。
  5. 零样本学习:MoAI在多种零样本视觉语言任务中进行评估,特别是在涉及真实世界场景理解的任务,如对象存在性、位置、关系和OCR等方面。

  6. 性能比较:MoAI与开源和闭源的LLVMs进行性能比较,结果显示MoAI在不增加模型大小或额外视觉指令调整数据集的情况下,显著提高了性能。

总的来说,研究方法的核心在于通过结合多种智能源和利用外部CV模型的输出,来提升LLVM在视觉语言任务中的理解和性能。这种方法旨在克服现有LLVMs在真实世界场景理解方面的局限性。

1 Introduction

  1. 背景:介绍了大型语言模型(LLMs)和指令调整数据集的结合,如FlanPaLM和Flan-T5,这些模型通过扩展指令调整数据集来覆盖各种任务,并扩大了模型容量,从而在众多语言任务中提高了零样本(zero-shot)性能。同时,为了提高大型语言和视觉模型(LLVMs)在视觉语言(VL)任务中的零样本性能,研究人员精心策划了多个视觉指令调整数据集,并扩大了LLVMs的规模。

  2. 现有LLVMs的局限性:当前的开源LLVMs尚未明确或完全利用详细和全面的真实世界场景理解能力,主要依赖于其LLM主干的大容量和涌现能力。

  3. MoAI模型的创新:提出了MoAI模型,该模型利用来自外部CV模型的辅助视觉信息,通过两个新引入的模块来有效利用这些信息:MoAI-Compressor和MoAI-Mixer。MoAI-Compressor负责对外部CV模型的输出进行对齐和压缩,以高效地使用相关信息进行视觉语言任务。MoAI-Mixer则混合了三种智能类型:视觉特征、外部CV模型的辅助特征和语言特征,借鉴了专家混合(Mixture of Experts)的概念。

  4. MoAI的性能:MoAI在多种零样本视觉语言任务中的性能显著超过了多个强大的LLVM基线,如InstructBLIP、Qwen-VL和LLaVA1.5,即使没有额外的视觉指令调整数据集或扩大LLVMs的规模。MoAI的成功归因于其利用多样化的外部CV模型的辅助视觉信息,并通过整合三种智能类型来有效执行视觉语言任务。

  5. 贡献总结:引入了一个新的大型语言和视觉模型MoAI,该模型处理来自外部CV模型的各种辅助视觉信息,并通过MoAI-Mixer混合三种类型的智能。MoAI在视觉感知能力方面表现出色,在零样本视觉语言任务的性能上超越了开源和闭源的LLVMs,这是通过考虑详细和全面的真实世界场景理解能力实现的,而不需要扩大模型大小或数据集大小。

2 Related Works 

2.1 LLMs and LLVMs

        概述了大型语言模型(LLMs)和大型语言视觉模型(LLVMs)的发展、能力和当前的研究趋势。

LLMs的发展和能力

        LLMs因其出色的泛化能力和指令调整数据集的有效性而受到关注。

        模型如GPT系列展示了在多种语言任务上的强零样本(zero-shot)或少样本(few-shot)性能,包括文本分类、问题回答、机器翻译和复杂推理任务等。

        这些模型通过大幅增加模型容量和训练数据集来实现泛化能力,如T5、PaLM和OPT等。

训练方法和数据集的进步

        训练方法和数据集的发展进一步提升了LLMs的零样本泛化能力,从大规模预训练数据集过渡到指令调整数据集。

        指令调整(instruction tuning)使LLMs能够遵循人类自然语言中的指令,以适应复杂的真实世界场景。

指令调整的LLMs

        指令调整的LLMs,如Flan-T5、Flan-PaLM、OPT-IML和InstructGPT,明显展示了指令调整的有效性。

LLVMs的发展

        类似策略已应用于多模态模型LLVMs,这些模型由视觉编码器和主干多模态语言模型(MLM)组成。

        例如,LLaVA和ShareGPT4V等模型使用GPT-4和GPT4V来创建视觉指令调整数据集,以提高模型在视觉语言任务中的表现。

现有LLVMs的局限性

        现有的LLVMs忽视了过去几十年中在真实世界场景理解方面取得巨大进步的计算机视觉(CV)模型的详细和全面能力。

        在LLVM时代,这些CV模型被拥有扩大容量和视觉指令调整数据集的LLVMs所掩盖。

LLVMs通过数据的预训练拥有非常强大的泛化能力以及推理能力,但是LLVMs又与过去几十年间持续发展的传统CV算法有所割裂,而这些CV模型在真实世界场景理解方面正好可以补足LLVMs的缺陷

MoAI模型的提出

        MoAI模型强调利用来自外部CV模型的辅助视觉信息的有效性,展示了在视觉语言基准测试中增强的视觉感知能力。

        MoAI通过结合外部CV模型的输出,如全景分割、开放世界目标检测、场景图生成和光学字符识别,来提高LLVMs在真实世界场景理解方面的性能。

        总的来说,这段内容强调了LLMs和LLVMs在处理语言任务和视觉语言任务方面的进步,同时指出了现有模型在利用详细和全面的真实世界场景理解方面的不足,并提出了MoAI模型作为一种新的研究方向,以利用外部CV模型的辅助视觉信息来增强LLVMs的视觉感知能力。

2.2 Mixture of Experts

MoE的起源:Jacobs等人首次将MoE概念引入机器学习,其中不同的“专家”网络处理输入空间的不同部分,由一个门控网络指导每个部分到相关的专家。

MoE的发展:Deep MoE进一步发展了这一理念,通过在深度上堆叠MoE层。条件计算方法只有部分专家被给定输入条件激活。

Shazeer等人将MoE层与LSTM集成,通过门控网络独立地将每个token路由到选择性激活的专家,增强了语言建模和机器翻译任务的性能。

Switch Transformers将MoE层与Transformers结合,用多个专家和一个门控网络替换Transformer层中的密集前馈网络(FFN),为MoE在基于Transformer的LLVMs中的应用铺平了道路,如MoE-LLaVA。

MoE在深度学习中的理念MoE的目标是在不牺牲计算效率的情况下扩大模型容量

MoAI对MoE的创新应用:与以往的MoE方法不同,MoAI明确地为每个专家分配角色,并期望在优化过程中出现专业化。

MoAI将交叉和自注意力模块作为专家,并明确地学习它们以混合不同模态之间的信息(即视觉、辅助和语言特征)。

MoAI特别促进了视觉、辅助、语言三种特征的融合,得到六种成对特征:视觉-辅助特征、视觉-语言特征、视觉-视觉特征、语言-辅助特征、语言-视觉特征、语言-语言特征。

每一对都被视为相应的交叉或自注意力模块的查询-键对,作为专家,明确了不同模态间信息融合的过程。

总的来说,这段内容强调了MoE在提高模型处理能力和效率方面的重要作用,以及MoAI如何创新性地将MoE应用于处理和融合多模态信息,以提升模型在视觉语言任务中的表现。

3 MoAI: Mixture of All Intelligence 

3.1 Model Architecture

MoAI模型架构如下:

  1. 视觉编码器(Vision Encoder)

    • 负责处理输入的视觉信息,将图像转换为模型可以理解的特征表示。
  2. 多模态语言模型(MLM)

    • 构成MoAI的主干,处理与文本相关的信息,并且与视觉编码器的输出结合,以理解和回答涉及视觉内容的问题。
    • MoAI-Mixers被集成到MLM中,用于混合不同模态的特征。
  3. 中间多层感知器(MLP)连接器

    • 位于视觉编码器和MLM之间,用于进一步处理和转换特征,确保不同模态的信息能够有效地结合。
  4. MoAI-Compressor

    • 专门设计来处理来自外部计算机视觉(CV)模型的多样化辅助视觉信息,包括全景分割、开放世界目标检测、场景图生成和光学字符识别。
    • MoAI-Compressor将这些CV模型的输出通过语言化(verbalization)处理,使它们与MLM对齐并可被解释,如Fig. 4所示。
  5. MoAI-Mixer

    • 用于高效地融合原始特征(视觉和语言特征)与来自外部CV模型的辅助特征。
    • MoAI-Mixer借鉴了专家混合(Mixture of Experts)的概念,通过交叉和自注意力模块来处理不同模态之间的信息融合。
  6. 外部CV模型

    • MoAI利用四个外部CV模型来获取辅助视觉信息,这些模型分别负责全景分割、开放世界目标检测、场景图生成和光学字符识别。

        MoAI模型的架构设计旨在通过结合视觉特征、语言特征和外部CV模型提供的辅助特征,来提高模型在视觉语言任务中的性能,尤其是在理解真实世界场景方面。通过MoAI-Compressor和MoAI-Mixer,模型能够有效地利用和整合来自不同源的信息,从而在零样本视觉语言任务中表现出色。

3.2 Vision and Language Backbone

        选择CLIP-L/14作为视觉编码器,因为它能在视觉语言任务中将图像理解与文本对齐。MoAI使用的MLM是基于InternLM-7B。视觉编码器和MLM之间的桥梁是MLP,它是两个具有GELU激活函数的线性层。

3.3 Verbalization

        由于CV model的输出需要传入MLM,所以需要将输出转换成MLM可以理解的自然语言形式,将这个过程称作Verbalization(语言化)。图4说明了如何将四个CV模型的输出进行语言化。

        (1)panoptic segmentation model(全景分割模型PS):作用是能够区分图像中的前景和背景对象,并且将对象进行分割并获取边界框坐标。因此,将PS输出进行语言化需要描述对象名称及其边界框坐标,然后再embedding为辅助tokens。此外,为了能直接利用分割后的图像,我们使用一个视觉编码器和一个MLP层生成局部保留的辅助tokens。最后把文本辅助tokens和视觉辅助tokens进行拼接。这一过程确保了全景分割图中的视觉信息被全面转换成语言信息,同时保留了全景分割图中固有的空间局部性。

        (2)open-world object detection model(开放世界对象检测模型OWOD):OWOD可以检测PS遗漏的对象,OWOD的输出将按照下述模板进行语言化:

‘The image includes bounding boxes and their objects: {verbalized open-world object detection (OWOD) results}’

        然后embedding为辅助tokens。

        (3)SGG和OCR语言化过程与上面类似。分别按照模板:

        ‘The image includes relationships between objects: {verbalized SGG results}’ 

        ‘The image includes text descriptions: {verbalized OCR results}’

3.4 MoAI-Compressor

        基于Perceiver Resampler(Flamingo: a visual language model for few-shot learning)的模型结构。输入是经过语言化的四个CV模型的辅助tokens以及一个固定长度的可学习的tokens A_{input},输出的长度与A_{input}长度一致,这样就成功将长度不固定的辅助tokens压缩到固定长度的矩阵中。

3.5 MoAI-Mixer

        MoAI-Mixer 嵌入在 MLM 的每一层中,它接收来自 MoAI-Compressor 的辅助tokens A图像的视觉特征 I(l) ∈ Rd×NI 文本的语言特征 L(l) ∈ Rd×NL,其中 l = 0、1、···,N − 1 表示层索引,d 表示嵌入维度,N_I 表示视觉特征的长度,N_L 表示语言特征的长度。通常,MLM 层仅由 Transformer 解码器块 TransDec(l) 组成,\left[ I(l+1), L(l+1) \right] = \text{TransDec}(l) \left[ I(l), L(l) \right]

在MLM内部,特征按照下述公式在层之间传递:

        其中\hat{I}(l)\hat{L}(l)是混合视觉特征与混合语言特征。为了完成特征混合,我们在MoAI-Mixer中设计了六个expert模块,这些模块是自注意模块或者交叉注意力模块,其中三个处理视觉信息,另外三个处理语言信息。如图5所示。

3.6 First Training Step

  1. 训练组件

    • 使用视觉指令调整数据集来训练输入选择模块(A_input)、MoAI-Compressor和MoAI-Mixer。
    • 这一步骤的目的是确保MoAI-Mixer中的六个专家模块能够产生有意义的特征,以执行视觉语言(VL)任务。
  2. 专家模块输出选择

    • 随机选择三个专家模块中的输出,分别对应视觉和语言特征。
    • 使用采样函数从视觉特征的三个专家模块($I_{AUX}$、$I_{LANG}$、$I_{SELF}$)和语言特征的三个专家模块($L_{AUX}$、$L_{IMG}$、$L_{SELF}$)中选择输出。
  3. 注入Transformer解码器

    • 选定的输出被注入到Transformer解码器块(TransDec),以进行进一步的处理。

3.7 Second Training Step

  1. 扩展学习过程

    • 在第一训练步骤学习到的参数基础上,进一步训练两个门控网络,每个MoAI-Mixer一个,分别针对视觉和语言特征。
  2. 门控网络设计

    • 门控网络由单个线性层组成,用于视觉和语言特征,分别表示为$W_{GatingI}$和$W_{GatingL}$。
  3. 权重输出和softmax函数

    • 门控网络的目标是通过使用线性层和softmax函数来输出三个专家模块的最佳权重组合。
  4. 权重计算

    • 计算权重向量,这些权重作为信心分数,用于确定是否使用每个专家模块的信息。
    • 权重通过softmax函数计算,然后与相应的专家模块输出进行元素级乘法($\otimes$)。
  5. 独立训练

    • 视觉和语言特征的门控网络独立训练,没有参数共享,确保两个门控网络以不同的权重混合三种智能。

        通过这种训练方法,MoAI-Mixer和门控网络能够促进三种智能源(辅助、图像、语言)之间的交互,从而提高模型在处理视觉语言任务时的性能和准确性。这种结构允许模型更有效地融合来自不同模态的信息,并在复杂的视觉语言任务中做出更准确的预测。

4 Experiments

为了确保复现性,我们概述了 MoAI 的三个关键技术细节:(a) 外部 CV 模型,(b) MoAICompressor 和 MoAI-Mixer,(c) 训练和推理细节。

4.1 外部CV模型的详细信息:

  1. 全景分割

    • 使用Mask2Former模型(模型大小:106M),结合Swin-B/4。
    • 预测全景分割图时,设置阈值为0.5以保留预测的实例掩码,设置掩码阈值为0.95。
  2. 开放世界目标检测

    • 使用OWLv2模型(模型大小:154M),结合CLIP-B/16。
    • 处理ADE20K-847和ImageNet中的1847个对象类别。
    • 设置阈值为0.1以保留目标检测预测,设置对象阈值为0.5。
  3. 场景图生成(SGG)

    • 使用panoptic SGG模型(模型大小:44M),结合ResNet-50。
    • 设置阈值为0.8以使用SGG谓词。
  4. 光学字符识别(OCR)

    • 使用PaddleOCRv2框架(模型大小:18M)。
    • 设置可识别语言为中文和英文,并调整超参数以读取旋转文本描述。

4.2 MoAI-Compressor和MoAI-Mixer的结构:

  1. 可学习tokens(Ainput)

    • 维度为R4096×64,其中64表示tokens数量(长度),4096表示MLM输入的通道维度d。
  2. MoAI-Compressor

    • 包含4个标准Transformer编码器层。
    • 自注意力中设置4个头和64个头维度。
  3. MoAI-Mixer

    • 特定MLM层索引为l = 7, 15, 23, 31。
    • 对于CA/SA专家模块,使用64个降维、4个头、头维度为1024。

4.3 训练过程:

  1. 训练步骤

    • 使用标准视觉指令调整数据集LLaVA-Instruct-665K进行训练。
  2. 第一训练步骤

    • 训练可学习tokens(Ainput)、MoAI-Compressor参数和MoAI-Mixer的六个专家模块。
    • 使用AdamW优化器,通过余弦退火从1e-4学习率调度到1e-6。
  3. 第二训练步骤

    • 训练第一训练步骤中的参数以及门控网络。
    • 学习率从2e-5调度到1e-6。
  4. 高效推理

    • 将MoAI量化为4位,使用双量化和标准化浮点4位(nf4)。
    • 对于文本生成,使用确定性束搜索(n = 3)。

5 Conclusion

        为了实现对真实世界场景的理解,我们利用了植根于认知科学和机器学习的基本感知能力。这涉及整合来自历史上丰富的外部 CV 模型的辅助视觉信息,我们使用专家模块和门控网络将其与 MLM 中的视觉和语言功能无缝集成。由于这些进步,MoAI 展示了改进的视觉感知能力,从而显着增强了零镜头视觉语言性能。这突显了 MoAI 通过有效利用各种辅助视觉信息和集成多种形式的智能来推进 LLVM 建模的潜力。

 


http://www.ppmy.cn/devtools/125253.html

相关文章

React和Vue区别,以及注意事项

目录 一、语法和框架特性的差异 二、开发习惯和注意事项 三、特别注意事项 一、语法和框架特性的差异 模板语法: Vue使用了类似于传统HTML的模板语法,通过双大括号{{ }}进行插值,而React则使用了JSX语法。在Vue中,你可以直接在…

ML 系列:机器学习和深度学习的深层次总结(16) — 提高 KNN 效率-使用 KD 树和球树实现更快的算法

一、说明 在机器学习系列的第 16 节,我们重点介绍了提高 K 最近邻 (KNN) 算法的效率,这是一种广泛用于分类和回归任务的方法。虽然 KNN 简单有效,但对于大型数据集来说,其计算成本可能会令人望而却步。为了…

前端开发笔记--css 黑马程序员1

文章目录 1. css 语法规范2.css的书写风格3.基础选择器选择器的分类标签选择器类选择器类选择器的特殊使用--多类名 id 选择器 字体属性常见字体字体大小字体粗细字体倾斜字体的复合简写字体属性总结 文本属性文本颜色文本对齐装饰文本文本缩进文本间距文本属性总结 css的引入方…

入门篇-1 数据结构简介

数据结构简介 在计算机科学中,数据结构是指组织、存储和管理数据的方式,它使得数据可以被高效地访问和修改。数据结构是计算机程序设计和算法分析中的一个重要概念,因为它们直接影响到程序的执行效率和内存使用。 1. 什么是数据结构&#x…

Unity 3d 继承MonoBahaviour的单例

在使用Unity3d开发游戏或做客户端项目时,单例是最常见的模式之一,他简单了类的创建,在代码中可以直接调用。下面是两个例子,代码两种不同类型的单例,一个是基本类的单例基类,不是unity MonoBehaviour的类都…

ES6语法有哪些

ES6语法包括let和const声明、箭头函数、模板字符串、解构赋值、扩展运算符、类和模块化等。以下是这些特性的具体介绍: let和const声明 let声明:let允许程序员在块级作用域内声明变量,这意味着变量只在其定义的代码块(由大括号包围…

JavaScript 第8章:日期与时间

在编程中处理日期与时间是一个常见的需求,特别是在涉及到数据记录、定时任务或者任何需要时间和日期的应用场景中。下面我们将针对您提到的几个方面来展开深入讲解。 Date 对象 在JavaScript中,Date对象用于处理日期和时间。创建一个Date对象可以使用以…

神经网络的一些benchmark示例

1.MLPerf https://github.com/mlcommons/inference?tabreadme-ov-file https://docs.mlcommons.org/inference/benchmarks/text_to_image/sdxl/ MLPerf 是一个业界标准的机器学习基准测试套件,旨在评估各种硬件、框架和模型的性能。它包含训练和推理两个部分&…