当前位置: 首页 > news >正文

多模态大语言模型和 Apple 的 MM1

原文地址:multimodal-large-language-models-apples-mm1

2024 年 4 月 13 日

抽象是计算机科学中最关键的概念之一,具有一些最强大的影响。从简单的角度来看,抽象就是将某一事物应用于多种不同情况的能力。例如,如果你创造了一种方法,可以在工厂中成功地根据苹果的大小进行分类,那么你的解决方案也可以抽象为以同样的方式对橘子或桃子进行分类。这样,通过抽象,一个非常强大的解决方案就能从根本上影响世界的多个部分。

虽然大型语言模型(Large Language Models)在以文本作为输入时的推理能力非常出色,但最近我们已经能够对其输入进行抽象,使其能够对图像和声音进行推理。

下面这篇文章将介绍苹果公司 MM1 论文中的架构删减,以及他们在构建多模态大型语言模型(MLLM)时的研究成果。

抽象LLM型输入

大型语言模型背后的架构可以追溯到 2017 年的论文《Attention is All You Need》,其中介绍了 Transformer 架构。

本文展示了如何将人类语言转化为神经网络可以处理的标记(在该论文中,处理为不同的语言)

8

从图中可以看到,我们很早就进行了转换,将输入转换为标记(嵌入部分)。然而,只有文本数据才能被映射为标记,这并没有内在的原因。因此,该领域开始尝试将其他类型的数据映射为标记。

MM1 架构基础

9

苹果的模型有三个关键组件:视觉转换器(ViT)图像编码器、视觉语言连接器和大型语言模型。假设你已经对大型语言模型及其工作原理有了一定的了解,下面我们就来深入了解图像编码器和视觉语言连接器。

图像编码器和视觉连接器

虽然从抽象的角度来看,我们可以将文本和图像想象成简单的不同输入类型,但要使其正常工作,我们需要接受的是,我们可能必须以不同的方式处理它们,才能将它们转换成令牌形式。目前,我们有两个不同的系统来帮助我们将图像转换成 LLM 可以推理的标记:图像编码器和连接器。

首先,图像编码器负责将我们的图像转换成转换器模型可以理解的标记形式。

其次,连接器从图像编码器中获取数据,并将其转换为直接传递给大型语言模型的数据。鉴于图像编码器会返回标记,你可能会问为什么我们需要连接器。我们的想法似乎是,图像编码器在其标记中提供了太多信息,因此,为了在优化推理的同时降低成本,我们希望有选择地传递信息。

下图显示了我们正在使用的数据流。

10、

消融

机器学习中的消融研究围绕着删除和修改模型的某些部分,以了解它们对整体性能的贡献。苹果的研究围绕着不同的图像编码器训练方式、VL Connector 的不同投影仪以及不同的预训练数据展开。

图像编码器消融

在图像编码器方面,CLIP 和 AIM 模型、图像分辨率大小以及模型训练数据集都有所不同。下图显示了每种消融的结果。

11

让我们来回顾一下上面的主要部分,并解释一下它们是什么。

CLIP 是 "对比语言图像预训练"(Contrastive Language Image Pre-training)的缩写,目的是通过为文本中的事物提供名称,帮助模型学习视觉概念。如下图所示,它将图像与文本编码配对,以便模型最终将视觉标记(下图中表示为 I,文本标记为 T)连接起来。这种方法称为对比训练。

12

AIM 是自回归图像模型的缩写,通过重建损失优化算法对其进行训练。这里的目标是看变换器能否重新创建(重建)所给的图像。

13

这里的图像分辨率指的是输入转换器的像素数。例如,378 x 378 的图像分辨率意味着我们将输入该大小的矩阵,然后将其转换为嵌入式数据,再在此基础上对模型进行训练。训练数据分为 (DFN-2B)、(DFN-5B)、(DFN-5B + VeCap) 和 (ImageText-400M)。

VL 连接消融

对于 VL Connector,他们测试了使用 64 或 144 标记的图像,测试了使用 224、336 和 378 的图像分辨率,并选择了几种架构。下面我将简要介绍一下这些架构。

平均池化 "和它听起来的意思一样,取所有tokens的平均值,然后对这个平均值进行线性投影,使网格为 8x8 或 12x12。

注意力池假设图像标记应被视为来自与文本标记完全不同的群体集的样本。在这里,我们调整了每张图片输入的标记数量,在本文中称为 k 可学习查询。研究人员只考虑了 64 或 144 的 k。

卷积映射是 Honeybee 提出的一种方法,它使用 ResNet 来动态决定从图像传递到 LLM 的词块数量。这在 C-Abstractor 模块中得以实现。

14

从上面可以看出,不同的架构实际上影响不大。正如我们所猜测的那样,更高分辨率的图像和更多的令牌通过会提高所有连接器的性能,但并不显著。

这一发现表明,我们要么还没有找到更好的方法将图像编码器与 LLM 连接起来,要么这一领域根本就不是优秀模型能够脱颖而出的地方。

训练前数据消融

15

在这里,使用了 4 种不同的数据:带标题的图像、带标题的合成图像、交错图像-文本数据和纯文本数据。他们发现了 4 条经验,每条经验都有一张图表来总结性能变化。

16

首先,交错数据有助于提高少镜头和纯文本性能,而字幕数据则有助于提高零镜头性能。研究人员改变了交错的程度,下图显示了结果。正如你所看到的,在使用交错数据训练的模型上,少镜头提示的表现明显优于使用全部或无交错数据训练的模型。

17

其次,纯文本数据有助于少量推理。这里的纯文本是指训练数据包括图像示例和纯文本示例。这样做是为了确保模型既能理解人类语言,也能理解图像。将纯字幕与带文字字幕进行比较后发现,除 0 次拍摄推理外,其他所有推理都有明显改善,然而,除 TextCore 测试外,在其他所有测试中,纯交错数据的表现都优于交错加文字数据

18

然后,如果图像和文本的混合比例恰当,就能获得非常强大的性能。上图显示了交错+标题数据与纯文本数据的不同比例。由于目标是建立一个多模式模型,他们从未测试过没有图像数据时的性能。

19

接着,合成数据有助于少镜头学习。VeCap 是 "Visual-enriched Caption "的缩写,它是一种创建标题的方法,确保标题能够描述图片的关键视觉片段。反过来,想象一下,标题可以解释一张照片背后的含义,但却不解释照片中的任何元素。如果你的数据抓取器发现图片的alt-text数据很差,你通常会这样做。

这里的作者得出结论,VeCap 对少量照片的推理有 "非同小可 "的促进作用,但对质量的提高相对较小。这就对 VeCap 的成本效益提出了质疑。

研究结果

利用消融结果,创建了两种形式的 Transformer: 专家混合型和普通型。这两种模型都有一个编码器,编码器的图像为 378 x 378,仅使用 DFN-5B 数据集进行预训练。它们混合了 45% 的字幕数据、45% 的交错数据和 10% 的纯文本数据(近似于图像与文本数据 91:9 的比例)。VL Connector 有 144 个标记,他们选择了一个 C Abstractor,不过他们指出这是一个有些随意的选择。对于 LLM 本身,他们创建了一个 3B、7B 和 30B 参数模型(MoE 模型最高只能达到 7B)。下图显示了这些模型的性能。

20

有趣的是,30B 参数模型的性能与其他比它多数十亿参数的模型(LLaVA-NeXT-34B 等)相当,这表明参数大小与性能之间可能存在某种量子关系。

结论

多模态 LLM 是该领域令人兴奋的一部分。随着我们找到更好的方法将不同数据类型传输到令牌中,我们可能会为这些变压器开辟更广阔的应用领域。展望未来,我们可以考虑如何在文本描述之外输入其他感官,例如声音、气味甚至触觉。数据质量可能只会变得越来越有价值。

相关文章:

多模态大语言模型和 Apple 的 MM1

原文地址:multimodal-large-language-models-apples-mm1 2024 年 4 月 13 日 抽象是计算机科学中最关键的概念之一,具有一些最强大的影响。从简单的角度来看,抽象就是将某一事物应用于多种不同情况的能力。例如,如果你创造了一种…...

算法day04

第一题 : 209. 长度最小的子数组 有上题可知,我们会采用双指针和单调性的思路来解决 我们本题采用左右双指针从数组的0位置同向前进,所以将此类模型称为滑块; 步骤思路如下: 步骤一: 定义所有双指针都指向…...

电信网关配置管理系统 rewrite.php 文件上传致RCE漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远…...

从零学算法14

14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:strs [“d…...

[入门] Unity Shader前置知识(5) —— 向量的运算

在Unity中,向量无处不在,我想很多人都使用过向量类的内置方法 normalized() 吧,我们都知道该方法是将其向量归一化从而作为一个方向与速度相乘,以达到角色朝任一方向移动时速度都相等的效果,但内部具体是如何将该向量进…...

html的i标签 “\e905“ font-family 字体没有效果

一、html的i标签 “\e905” 没有效果 在HTML和CSS中,\e905 这样的字符通常与字体图标(Font Icons)或自定义字体(Custom Fonts)中的Unicode字符相关。具体来说,\e905 是一个Unicode转义序列,但它…...

Golang reflect.MakeFunc() 的用法及示例

Golang 作为一门强类型语言,在某些场景下,我们需要动态地创建函数或者修改函数,这个时候就可以使用反射的方法去实现。在反射中,我们可以使用 reflect.MakeFunc() 方法来创建一个新的函数,本文我将介绍使用反射及其 Ma…...

深入学习和理解Django视图层:处理请求与响应

title: 深入学习和理解Django视图层:处理请求与响应 date: 2024/5/4 17:47:55 updated: 2024/5/4 17:47:55 categories: 后端开发 tags: Django请求处理响应生成模板渲染表单处理中间件异常处理 第一章:Django框架概述 1.1 什么是Django?…...

【MySQL】SQL基本知识点DDL(1)

目录 1.SQL分类: 2.DDL-数据库操作 3.DDL-表操作-创建 4.DDL-表操作-查询 5.DDL-表操作-数据类型 6.DDL-表操作-修改 1.SQL分类: 2.DDL-数据库操作 3.DDL-表操作-创建 注意:里面的符号全部要切换为英文状态 4.DDL-表操作-查询 5.DDL…...

短剧奔向小程序,流量生意如何开启?

随着移动互联网的飞速发展,小程序作为一种轻量级、易传播的应用形态,逐渐在各个领域展现出其独特的商业价值。而最近爆火的短剧小视频作为一种受众广泛的娱乐形式,与小程序结合后,不仅为观众提供了更为便捷的观看体验,…...

微服务下的技术栈架构解析

微服务是一种架构风格,它将一个复杂的应用拆分成多个独立自治的服务,每个服务负责应用程序中的一小部分功能。这些服务通过定义良好的API进行通信,通常是HTTP RESTful API或事件流。微服务架构的主要特点包括单一职责、自治性、可独立部署和扩…...

Mesa3D图形库与NIR(New Intermediate Representation)

Mesa 是一个开源图形库,为 Unix 和 Linux 系统提供了 OpenGL 和 Vulkan API 的实现。它也支持其他图形 API,如OpenCL、OpenGL ES 和 Vulkan。Mesa 项目的目标是为开源社区提供高性能的图形库,使得开源操作系统能够充分利用现代图形硬件。 Me…...

C++:模板初阶

文章目录 泛型编程函数模板概念函数模板格式函数模板的原理函数模板的实例化模板参数的匹配原则 模板类类模板的定义格式类模板实例化 泛型编程 如何实现一个通用的交换函数呢? 函数重载可以帮助我们完成 void Swap(int& left, int& right) {int temp l…...

为什么要学Python?学Python有什么用?

为什么要学Python?学Python有什么用? 在当今的数字化时代,编程已成为一项宝贵的技能。Python,作为一种流行的编程语言,因其易于学习和强大的功能而受到全球开发者的青睐。本文将探讨学习Python的原因和它的实际应用&am…...

Linux磁盘IO、网络IO、零拷贝详解

一、什么是I/O? 在计算机操作系统中,所谓的I/O就是输入(input)和输出(output),也可以理解为读(read)和写(write),针对不同的对象,I/O模式可以划分…...

工业交换机外壳材质大比拼,看看哪种外壳适合你

在工业领域里,交换机就像我们的网络心脏,时刻跳动着确保信息畅通无阻。而它的外壳,就是保护这颗“心脏”的铠甲。今天,咱们就来聊聊这些铠甲——工业交换机外壳的材质和防护等级,看看它们如何守护我们的网络世界。 首…...

智慧公厕的技术基础、保障技术和应用价值

近年来,随着信息技术的快速发展,智慧公厕逐渐成为城市管理的热点项目。智慧公厕利用物联网技术与大数据、云计算、网络通信、自动化控制等先进技术相结合,公共厕所的管理变得更加快捷高效,实现了真正的智能化使用和智慧化管理。下…...

思腾合力受邀参加VALSE 2024视觉与学习青年学者研讨会

在充满学术氛围的五月,思腾合力荣幸受邀参加了于2024年5月5-7日在重庆举行的第十四届VALSE大会。作为视觉与学习领域的顶级交流平台,VALSE大会每年都吸引着全国专家与学者的目光。 本次大会不仅延续了往届的高水平学术研讨,还进一步拓宽了研究…...

geotrust dv通配符证书800

Geotrust是成立时间较久的正规CA认证机构,在过去的几十年间颁发了无数的SSL证书,这些SSL证书被各个开发者使用,受到大多数浏览器的信任。而Geotrust旗下的DV通配符证书因其广泛的应用范围受到了用户的青睐。今天就随SSL盾小编了解Geotrust旗下…...

SpringBoot工作原理

优点:自动装配,起步依赖 起步依赖 原理就是maven的依赖传递 【A依赖B、B依赖C….,则我导入依赖A的时候,B,C都会被maven加载进来】 重点看看自动装配 概念: 当Spring容器启动后,一些配置类、…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

【网络安全】开源系统getshell漏洞挖掘

审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...