LIMoE:使用MoE学习多个模态

news2024/11/18 21:51:56

文章链接:Multimodal Contrastive Learning with LIMoE: the Language-Image Mixture of Experts

发表期刊(会议): NeurIPS 2022

目录

  • 1.背景介绍
    • 稀疏模型
  • 2.内容摘要
    • Sparse Mixture-of-Experts Models
    • Contrastive Learning
    • Experiment Analysis
  • 3.文章总结

1.背景介绍

在实际应用中,多模态数据通常是高维度的,处理这样的数据可能会导致计算和存储开销巨大。稀疏模型可以帮助缓解这种问题,因为它们具有较少的参数,可以有效地处理高维数据。因此,将稀疏性考虑到多模态学习中,可以在减少计算和存储成本的同时,提高模型的性能和效率。
一些研究工作和实际应用尝试将多模态数据与稀疏模型相结合,以更好地处理来自不同传感器或数据源的信息。这种结合可能涉及将多模态数据转换为稀疏表示形式,或者在多模态模型的构建中引入稀疏性,以提高处理效率和性能。这种融合可以帮助解决处理大规模多模态数据时的挑战,并提供更高效的解决方案。稀疏模型可以作为处理多模态数据的一种方式,以降低计算和存储开销,并提高模型的效率和性能。在多模态学习的背景下,引入稀疏性可以是处理复杂数据的有效策略之一。

同时(多任务)或顺序(持续学习)学习许多不同任务的密集模型(dense model)通常会受到负面干扰过多的任务多样性意味着最好为每个任务训练一个模型,灾难性遗忘意味着模型在早期任务中会随着新任务的添加而变得更差。

稀疏模型

稀疏模型(Sparse models)在深度学习未来最有前途的方法中脱颖而出。 采用条件计算的 Sparse models 不是模型的每个部分都处理每个输入(“dense” modeling),而是学习将各个输入 “route” 到潜在庞大网络中的不同 “experts” 。这有很多好处。

  • 模型大小可以增加,同时保持计算成本不变。这是一种有效且更环保的模型缩放方式,也是高性能的关键。
  • 稀疏性也自然地划分了神经网络。 稀疏模型有助于避免这两种现象通过不将整个模型应用于所有输入,模型中的“专家”可以专注于不同的任务或数据类型,同时仍然利用模型的共享部分。

Google Reaserch团队长期以来一直致力于稀疏性的研究。 今天的人工智能模型通常只接受训练做一件事。 Pathways 将使人们能够训练单个模型来完成数千或数百万件事情。Pathways 总结了构建一个大型模型的研究愿景,该模型可以勤奋地处理数千个任务和众多数据模式。
在这里插入图片描述
到目前为止,语言(Switch、Task-MoE、GLaM)和计算机视觉(Vision MoE)的稀疏单峰模型已经取得了相当大的进展。目前,谷歌团队通过研究大型稀疏模型,通过与模态无关的 “Router” 同时处理图像和文本,朝着 Pathways 愿景迈出了重要一步。 他们提出了多模态对比学习,它需要对图像和文本都有深入的理解,以便将图片与其正确的文本描述对齐。 迄今为止,解决此任务的最强大模型依赖于每种模式的独立网络(“two-tower”方法)。

2.内容摘要

本文提出了第一个使用MoE组合的大规模多模式架构 LIMoE。 它同时处理图像和文本,但使用稀疏激活的自然专业专家。 在零样本图像分类方面,LIMoE 的性能优于可比较的密集多模态模型和双塔方法。 最大的 LIMoE 零样本 ImageNet 准确率达到 84.1%,与更昂贵的 state-of-the-art 模型相当。 稀疏性使 LIMoE 能够优雅地扩展规模,并学会处理截然不同的输入,从而解决多面手和专才之间的紧张关系。

在这里插入图片描述

LIMoE 架构包含许多“专家”,“Router” 决定将哪些 token(图像或句子的一部分)发送给哪些专家。 经过专家层(灰色)和共享dense layer(棕色)处理后,最终输出层计算图像或文本的单个向量表示。

Sparse Mixture-of-Experts Models

Transformers 将数据表示为向量(或标记)序列。 虽然最初是为文本开发的,但它们可以应用于大多数可表示为标记序列的事物,例如图像、视频和音频。 最近的大规模 MoE 模型在 Transformer 架构中添加了专家层(例如自然语言处理中的 gShard 和 ST-MoE,以及用于视觉任务的 Vision MoE)。

标准 Transformer 由许多“块”组成,每个“块”包含各种不同的层。 其中一层是前馈网络 (FFN)。 对于 LIMoE 和上面引用的作品,这个单个 FFN 被包含许多并行 FFN 的专家层取代,每个 FFN 都是一个专家。 给定要处理的 token 序列,简单的 Router 会学习预测哪些专家应该处理哪些 token 。 每个 token 仅激活少量专家,这意味着虽然模型容量由于拥有如此多的专家而显着增加,但实际的计算成本是通过稀疏使用它们来控制的。 如果只激活一名专家,该模型的成本大致相当于标准Transformer 模型。

LIMoE 正是这样做的,每个示例激活一名专家,从而匹配密集基线的计算成本。 不同的是LIMoE Router 可能会看到图像或文本数据的标记。

当 MoE 模型尝试将所有 token 发送给同一位专家时,会出现一种独特的 failure。 通常,这是通过辅助损失和鼓励平衡专家使用的额外培训目标来解决的。 处理多种模式与稀疏性相互作用会导致现有辅助损失无法解决的新故障。 为了克服这个问题,本文开发了新的辅助损失(更多详细信息见论文)并在训练期间使用 Router 优先级(BPR),这两项创新产生了稳定且高性能的多模态模型。

在这里插入图片描述

新的辅助损失(LIMoE aux)Router 优先级(BPR) 稳定并提高了整体性能(左)并提高了路由行为的成功率(中和右)。 成功率低意味着路由器不会使用所有可用的专家,并且由于达到了单个专家的容量而丢弃了许多令牌,这通常表明稀疏模型学习得不好。 LIMoE 引入的组合可确保图像和文本的高路由成功率,从而显着提高性能。

Contrastive Learning

在多模态对比学习(Contrastive Learning)中,模型是根据成对的图像文本数据(例如照片及其标题)进行训练的。 通常,图像模型提取图像的表示,不同的文本模型提取文本的表示。 对比学习目标鼓励图像和文本表示对于相同的图像-文本对接近,而对于不同对的内容则远离。 这种具有对齐表示的模型可以适应新任务,无需额外的训练数据(“零样本”),例如,如果图像的表示比单词更接近单词“dog”的表示,则图像将被分类为狗 “猫”。 这个想法可以扩展到数千个类别,被称为零样本图像分类。

CLIP 和 ALIGN(都是双塔模型)扩展了这个过程,在流行的 ImageNet 数据集上实现了 76.2% 和 76.4% 的零样本分类精度。 本文研究计算图像和文本表示的单塔模型,发现这会降低 dense 模型的性能,可能是由于负面干扰或容量不足。 然而,计算匹配的 LIMoE 不仅比单塔密集模型有所改进,而且还优于双塔密集模型。 本文使用与 CLIP 类似的训练方案训练了一系列模型。 我们的密集 L/16 模型实现了 73.5% 的零射击精度,而 LIMoE-L/16 达到了 78.6%,甚至优于 CLIP 更昂贵的两塔 L/14 模型 (76.2%)。 如下所示,与同等成本的密集模型相比,LIMoE 对稀疏性的使用提供了显着的性能提升。

在这里插入图片描述对于给定的计算成本(x 轴),LIMoE 模型(圆圈、实线)明显优于其密集基线(三角形、虚线)。 该架构指示底层Transformer的大小,从左 (S/32) 到右 (L/16) 增加。 S(小)、B(基本)和 L(大)指的是模型比例。 该数字指的是补丁大小,较小的补丁意味着较大的架构。

在这里插入图片描述

LiT 和 BASIC 将 dense two-tower model 的零样本精度分别提高到了 84.5% 和 85.6%。 除了缩放之外,这些方法还利用了专门的预训练方法,重新利用了已经具有极高质量的图像模型。 LIMoE-H/14 没有受益于任何预训练或特定于模态的组件,但仍然从头开始实现了可比的 84.1% 零样本精度训练。 这些模型的规模比较也很有趣:LiT 和 BASIC 分别是 2.1B 和 3B 参数模型。 LIMoE-H/14 总共有 5.6B 个参数,但通过稀疏性,每个 token 仅应用 675M 个参数,使其更加轻量级。

Experiment Analysis

LIMoE 的动机是稀疏条件计算使通用多模态模型仍然能够发展擅长理解每种模态所需的专业化。 本文分析了 LIMoE 的专家层并发现了一些有趣的现象。

  • 模式专门化专家的出现。在实验的训练设置中,图像标记比文本标记多得多,因此所有专家都倾向于至少处理一些图像,但有些专家要么主要处理图像,要么主要处理文本,或两者兼而有之。
    在这里插入图片描述上图展示了 LIMoE 八位专家的分配; 百分比表示专家处理的图像标记的数量。 有一到两名明显专门研究文本的专家(主要由蓝色专家表示),通常有两到四名图像专家(主要是红色),其余的则处于中间位置。

  • 图像专家之间也存在一些清晰的定性模式。 例如,在大多数 LIMoE 模型中,都有一位专家处理所有包含文本的图像块。
    在这里插入图片描述
    在上面的示例中,有专家处理动物和绿色植物,也有专家处理人类双手。LIMoE 为每个token选择一位专家。 在这里展示了 LIMoE-H/14 某一层上哪些图像token被发送给哪些专家。 尽管没有接受过这方面的培训,但能观察到专门研究植物或轮子等特定主题的语义专家的出现。

3.文章总结

处理许多任务的多模式模型是一条很有前途的前进道路,成功的关键因素有两个:1.规模;2.在利用协同效应的同时避免不同任务和模式之间干扰的能力。 稀疏条件计算是实现这两点的绝佳方法。 它支持高性能、高效的多面手模型,同时还具有出色完成单个任务所需的专业化能力和灵活性,正如 LIMoE 以更少的计算量实现的可靠性能所证明的那样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1298504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM类加载器ClassLoader的源码分析

1、ClassLoader与现有类加载器的关系 ClassLoader与现有类加载器的关系: ClassLoader是一个抽象类。如果我们给定了一个类的二进制名称,类加载器应尝试去定位或生成构成定义类的数据。一种典型的策略是将给定的二进制名称转换为文件名,然后去…

VUEX使用总结

1、Store 使用 文件内容大概就是这三个。通俗来讲actions负责向后端获取数据的,内部执行异步操作分发 Action,调用commit提交一个 mutation。 mutations通过Action提交commit的数据进行提交荷载,使state有数据。 vuex的数据是共享的&#xf…

(三)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(SWO、COA、LSO、GRO、LO)简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

Docker 安装Apache Superset 并实现汉化和快速入门

什么是Apache Superset Apache Superset是一个现代化的企业级商业智能Web应用程序。Apache Superset 支持用户的各种数据类型可视化和数据分析,支持简单图饼图到复杂的地理空间图表。Apache Superset 是一个轻量级、简单化、直观化、可配置的BI 框架。 Docker 安…

Mongodb 添加索引 优化记录

因 每晚12点20分定时任务做数据统计,mongodb 50万条数据开始,每天晚上CPU报警:CPU>95,并耗时3分钟以上. 2023-12-08 00:20:00.023 [Thread-95] INFO c.q.i.q.jobhandler.dataMongoDBXxlJob - 定时生成记录开始 ………… …………

每日一道c语言

任务描述 题目描述:输入10个互不相同的整数并保存在数组中,找到该最大元素并删除它,输出删除后的数组 相关知识(略) 编程要求 请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充&#xf…

二叉树查找值为x的结点(C语言)

目录 前言 查找值为x的结点 返回值为指针 返回值为布尔类型 整体代码 前言 在二叉树结点个数、叶子结点个数、树的高度、第k层结点个数的计算(C语言)中,我们解决了关于二叉树的部分问题,但是还有一个问题我们放在本篇解决。 …

04_W5500_TCP_Server

上一节我们完成了TCP_Client实验,这节使用W5500作为服务端与TCP客户端进行通信。 目录 1.W5500服务端要做的: 2.代码分析: 3.测试: 1.W5500服务端要做的: 服务端只需要打开socket,然后监听端口即可。 2…

二叉树结点个数、叶子结点个数、树的高度、第k层结点个数的计算(C语言)

目录 前言 分治算法 模拟二叉树代码 结点个数计算 错误方法 不便利方法 基于分治思想的方法 叶子结点个数 树的高度 第k层结点的个数 前言 在链式二叉树的前序、中序、后续遍历中我们模拟了一棵二叉树,并实现了它的前、中、后序遍历,现在我们来…

Leetcode—231.2的幂【简单】

2023每日刷题&#xff08;五十四&#xff09; Leetcode—231.2的幂 实现代码 class Solution { public:bool isPowerOfTwo(int n) {if(n < 0) {return false;}long long ans 1;while(ans < n) {ans * 2;}if(ans n) {return true;}return false;} };运行结果 之后我会…

Echarts饼图中显示百分比

开发中遇到一个需求&#xff0c;要在饼图上显示数据百分比&#xff0c;下图&#xff1a; 查了echarts 文档&#xff0c;并不能通过简单的配置来实现&#xff0c;原因如下&#xff1a;在单个serie的label中&#xff0c;只能设置一个label&#xff0c;位置可以选择在饼图内部inne…

坚鹏:兴业银行EAST5.0政策解读及数据质量提升方案培训

兴业银行股份有限公司&#xff08;简称“兴业银行”&#xff09;成立于1988年8月&#xff0c;2022年总资产9.27万亿元&#xff0c;是经国务院、中国人民银行批准成立的首批股份制商业银行之一&#xff0c;总行设在福州市。现已发展成为横跨境内外&#xff0c;线上线下结合&…

【论文精读】REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS 前言ABSTRACT1 INTRODUCTION2 REACT: SYNERGIZING REASONING ACTING3 KNOWLEDGE-INTENSIVE REASONING TASKS3.1 SETUP3.2 METHODS3.3 RESULTS AND OBSERVATIONS 4 DECISION MAKING TASKS5 RELATED WORK6 CONCLUSI…

m_map导入本地地形数据

m_map绘制地形图时&#xff0c;虽然自带有1的地形图以及从NOAA下载的1分的地形图&#xff08;详见&#xff1a;Matlab下地形图绘图包m_map安装与使用&#xff09;&#xff0c;但有时需要对地形图分辨率的要求更高&#xff0c;便无法满足。 此时&#xff0c;需要导入本地地形数…

代理IP和网络加速器的区别有哪些

随着互联网的普及&#xff0c;越来越多的人开始使用网络加速器来提高网络速度。然而&#xff0c;很多人并不清楚代理IP和网络加速器之间的区别。本文将详细介绍两者的概念及区别。 一、代理IP 代理IP是一种通过代理服务器进行网络连接的方式。在使用流冠代理IP时&#xff0c;用…

金南瓜SECS/GEM C# SDK 快速使用指南

本文对如何使用金南瓜SECS/GEM C# SDK 快速创建一个满足SECS/GEM通信要求的应用程序&#xff0c;只需简单3步完成。 第一步&#xff1a;创建C# .NET程序 示例使用Visual Studio 2010&#xff0c;使用者可以选择更高级版本 Visual Studio 第二步&#xff1a;添加DLL库引用&am…

Proteus仿真--基于ADC0808设计的调温报警器

本文介绍基于ADC0808实现的调温报警器设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 温度调节使用滑动变阻器模拟实现&#xff0c;ADC0808采集信号并输出在LCD上面显示&#xff0c;报警系统是LED灯和蜂鸣器实现声光电报警 仿真图如下 仿真运行视频 Proteus仿真…

001 LLM大模型之Transformer 模型

参考《大规模语言模型--从理论到实践》 目录 一、综述 二、Transformer 模型 三、 嵌入表示层&#xff08;位置编码代码&#xff09; 一、综述 语言模型目标是建模自然语言的概率分布&#xff0c;在自然语言处理研究中具有重要的作用&#xff0c;是自然 语言处理基础任务之一…

带大家做一个,易上手的家常土豆丝

搞两个土豆 就能做一盘 然后 去皮 切片 然后再将片切条 然后 绿皮辣椒切片 放一些干辣椒 一些花椒 四五个大料 准备好 然后 起锅烧油 下土豆 翻炒两下 然后放小半碗水 让它煮一下 毕竟土豆不是很好熟的东西 看水少了大半时 放入 干辣椒 绿皮辣椒 大料 花椒 然后 倒入 一滴…

前端知识(九)------------JavaScript底层知识

1.事件循环机制 在实际的编码过程中小伙伴们不知道有没有遇到过这样的问题&#xff0c;我们都知道js是单线程的。而且是一门解释型语言。那么正常来讲执行代码的顺序就是自上而下一句一句执行对吧 但是有的时候我们发现返回的结果并不是自上而下执行的。我们先写了一段代码 …