多模态模型架构的演进

news2024/11/24 6:56:15

人工智能咨询培训老师叶梓 转载标明出处

多模态学习正成为连接不同类型数据(如图像、文本、音频等)的桥梁。随着深度学习技术的发展,多模态模型在理解和处理跨领域数据方面表现出了显著的效能。来自普渡大学、混沌工业公司、斯坦福大学和亚马逊的研究人员共同撰写了一篇论文,题为《多模态模型架构的演进》(The Evolution of Multimodal Model Architectures),该论文系统地识别并描述了当代多模态领域中普遍存在的四种多模态模型架构模式。

四种多模态模型架构

图1展示了四种不同的多模态架构类型及其子类型。两种总体类别分别是:深度融合(Deep Fusion),在模型的内部层次中发生模态的融合;以及早期融合(Early Fusion),以模型输入阶段的模态融合为特征。每种类别中又观察到两个主要的集群。在深度融合领域中,模态与内部层次的整合体现在:类型A(Type-A)采用标准的交叉注意力层,而类型B(Type-B)则使用定制设计层。相反,在早期融合领域中,多模态输入主要有两种形式:非标记化的多模态输入作为类型C(Type-C),以及离散标记化的多模态输入作为类型D(Type-D)。

想要掌握如何将大模型的力量发挥到极致吗?2024年10月26日叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。

留言“参加”即可来叶老师的直播间互动,1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。互动交流,畅谈工作中遇到的实际问题。

类型A(Type-A):基于标准交叉注意力的深度融合(SCDF)

在多模态模型架构的研究中,类型A代表了一种深度融合的方法,其中模态信息在模型的内部层次中进行融合。这种架构主要利用了标准的交叉注意力层来实现这一点。图 3清晰地展示了类型A多模态模型的架构,其中输入模态通过特定的编码器进行处理,然后通过重采样器输出固定数量的模态(视觉/音频/视频)标记,这些标记随后被送入LLM(大模型)的内部层中,使用标准的交叉注意力层进行深度融合。

图 3 类型A多模态模型架构展示了输入模态如何被深度融合到LLM的内部层中。交叉注意力层可以在自注意力层之前(子类型A.1)或之后(子类型A.2)添加。模态特定的编码器处理不同的输入模态,并且使用重采样器来输出固定数量的模态(视觉/音频/视频)标记,以适应解码器层的要求。

子类型A.1

子类型A.1的模型在LLM的每个自注意力层之前都设有交叉注意力层。例如,Flamingo模型及其衍生模型通常属于这种架构子类型。这些模型通常涉及预训练的大模型,并集成了标准的交叉注意力层,以实现输入模态的深度融合。

子类型A.2

子类型A.2则包含了标准的编码器-解码器变换器架构,每个解码器中的自注意力层后都设有交叉注意力层。这种架构通常不使用重采样器。例如,VL-BART和VL-T5模型就是基于这种架构子类型。

类型B(Type-B):基于定制层的深度融合(CLDF)

类型B架构使用预训练的大模型、可学习的线性层/MLP/Q-former、定制的交叉注意力层或定制层以及模态编码器构建。与类型A不同的是,类型B使用定制设计层而不是标准交叉注意力层。例如,LLaMA-Adapter-V2模型在交叉注意力层的输出上添加了可学习嵌入,然后才将交叉注意力层的输出与自注意力层的输出进行添加/连接。

图 4 类型B多模态模型架构展示了如何使用定制设计层将输入模态深度融合到LLM的内部层中。这种架构允许更细粒度地控制模态信息如何在模型内部流动,并且可以根据需要进行定制,以适应特定的模态融合需求。

类型C(Type-C):非标记化的早期融合(NTEF)

类型C架构是将模态编码器的输出直接在模型的输入端进行融合,而不是在模型的内部层中。这种架构的特点是简单且易于训练。例如,图 5展示了类型C多模态模型的架构,其中输入模态直接在模型的输入端进行早期融合。不同类型的模块被用来将模态编码器的输出连接到LLM,例如线性层/MLP(子类型C.1)、Q-former和线性层/MLP(子类型C.2)、Perceiver重采样器(子类型C.3)以及定制的可学习层(子类型C.4)。

图 5 类型C多模态模型架构突出了非标记化输入模态如何直接被送入模型的输入端,而不是其内部层,从而实现早期融合。这种架构允许使用现成的大模型和编码器,而无需对它们的内部架构进行重大更改。

类型D(Type-D):标记化的早期融合(TEF)

在类型D中,多模态输入通过通用分词器或模态特定的分词器进行标记化。标记化的输入随后被送入预训练的大模型或编码器-解码器变换器模型,生成多模态输出。图 6展示了类型D多模态模型架构的一般情况,其中标记化的输入模态直接被送入模型的输入端。这种架构允许模型以自回归的方式进行训练,以生成图像、音频和不同模态的标记以及文本标记。

图 6 类型D多模态模型架构展示了标记化输入模态如何直接被送入模型的输入端。这种架构可以使用仅解码器的变换器(子类型D.1)或编码器-解码器风格的变换器(子类型D.2)作为多模态变换器。

这些架构类型为多模态模型的设计和开发提供了清晰的分类和指导,有助于研究人员和开发者根据具体的应用需求选择合适的模型架构。

四种多模态模型架构类型的优劣势

类型A (Type-A)

类型A架构能够细粒度控制模态信息在模型中的流动,并且是端到端可训练的。使用标准的变换器层,例如交叉注意力层,来融合模态,而不是设计定制层。然而,这种架构需要大量的训练数据样本和计算资源。与类型B和类型C相比,构建这种架构的模型更具挑战性,需要对大模型的内部层有深入的理解。此外,添加新的模态非常困难,因为一旦在大模型层中添加了图像模态交叉注意力层,就难以再向每个大模型层添加其他模态。

类型B (Type-B)

类型B架构同样能够细粒度控制模态信息的流动,并且是端到端可训练的。与类型A不同,类型B使用了定制设计层,这增加了模态融合的控制能力。这种架构相比类型A更易于扩展,因为它的定制层设计更有效,计算效率更高。但是,与类型C相比,扩展性可能仍然是一个挑战。类型B通过引入门控机制简化了添加更多模态的过程,这使得直接将输入模态添加到输出大模型层成为可能。

类型C (Type-C)

类型C架构是模块化的,可以轻松替换模型架构的部分,并且新模型可以高效地训练用于多模态任务。与类型A和类型B不同,类型C没有对模态信息流动进行细粒度控制,不同模态的输入仅在解码器(大模型)的输入端融合。这种架构易于构建,因为它不需要详细了解大模型的内部层,只需要了解新集成的大模型或编码器的接口细节。类型C架构易于扩展,添加更多模态也相对容易。

类型D (Type-D)

类型D架构由于输入和输出模态的标记化而具有简化的模型架构。标记化所有模态提供了通过标准自回归目标函数进行所有模态训练的优势。然而,这也带来了训练通用分词器或模态特定分词器的挑战。与类型A和类型B不同,类型D没有对模态信息流动进行细粒度控制,不同模态的输入仅在主变换器模型的输入端融合。这种架构易于构建,并且由于模态的标记化,它是可扩展的。然而,添加额外的模态需要为每个新模态训练新的分词器或适应现有的多模态分词器,这可能是一个复杂的任务。

下一代多模态架构

图 7 展示了从单一模态模型到任何模态模型的发展时间线。类型C和类型D的任何到任何多模态模型在图中被注明。

下一代多模态架构的发展聚焦于提升模型处理多样化输入输出的能力。类型C和类型D架构是当前研究的热点,分别通过预训练组件的集成和输入标记化来简化训练过程。类型C架构如Next-GPT和CoDI,无需分词器即可生成多模态输出,而类型D架构如Unified-IO和4M,利用分词器实现多模态输出,简化了训练目标函数。然而,类型D在处理大规模数据和计算需求方面仍面临挑战。

除了端到端可训练的模型,结合类型C与代理的方法也为多模态模型提供了新的视角,如ModaVerse所示。这种方法通过生成特定文本输出来辅助其他模态的生成,尽管它不是端到端可训练的,但也展现了潜力。

另外状态空间模型(SSMs)作为基于变换器模型的有力补充,正在被探索用于解决注意力机制中的二次复杂性问题。VL-Mamba和Cobra等模型展示了SSMs在多模态学习中的潜力,预示着SSMs可能成为未来任何到任何多模态任务的强有力架构。这些新兴架构的发展,不仅推动了多模态模型的进化,也为解决多模态生成的挑战提供了新思路。

https://arxiv.org/pdf/2405.17927

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

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

相关文章

ICM20948 DMP代码详解(80)

接前一篇文章:ICM20948 DMP代码详解(79) 本回继续对“上半场”即ICM20948传感器各寄存器初始化状态进行回顾复盘。 接下来是 icm20948_sensor_setup() ---> icm20948_set_fsr() ---> inv_icm20948_set_fsr() ---> inv_icm20948_set_accel…

ARM 之十九 详解 Semihosting、SWO 以及在 MDK-ARM、IAR、Eclipse、SEGGER-ES 的使用

在嵌入式系统开发中,我们通常会将标准输入输出作为一个控制台功能添加到我的嵌入式应用程序中。这样我就有了一个命令行接口,可以检查和修改目标系统。在 ARM 架构中,Semihosting 和 SWO 是经常会遇到的两个概念,在调试输出方面也…

python+appium+雷电模拟器安卓自动化及踩坑

一、环境安装 环境:window11 1.1 安装Android SDK AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 这里面任选一个就可以,最终下载完主要要安装操作安卓的工具adb,安装这个步骤的前提是要…

MarsCode--字符串有多少种可能性【简单】

问题描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数&#x…

[翻译]MOSIP Blue Book

目录 Preface(前言) Executive summary(执行摘要) 1 Introduction(介绍/序言) 1.1 Principles on Identification(识别原则) 1.2 Need for a Foundational ID(需要基…

【Java进阶】Java进阶-手撕java agent

文章目录 Java Agent一、定义与工作原理二、主要特点三、应用场景四、使用注意事项 Java Agent相关接口1. Instrumentation接口2. ClassFileTransformer接口3. 其他相关类和接口 手写一个Java Agent1. 编写Java Agent代码2. 编写MANIFEST.MF文件3. 编译代码并打包成JAR文件4. 运…

JavaWeb——Maven(2/8):概述-介绍安装(步骤、具体操作、测试)

目录 介绍 安装 步驟 具体操作 测试 主要讲解两个方面:Maven的介绍以及Maven的安装。 先来介绍一下没问当中的一些概念和模型。 介绍 Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM:project object model…

Java | Leetcode Java题解之第477题汉明距离总和

题目&#xff1a; 题解&#xff1a; class Solution {public int totalHammingDistance(int[] nums) {int ans 0, n nums.length;for (int i 0; i < 30; i) {int c 0;for (int val : nums) {c (val >> i) & 1;}ans c * (n - c);}return ans;} }

基于Flink+Hologres搭建实时数仓

Apache Paimon是一种流批统一的数据湖存储格式&#xff0c;结合Flink及Spark构建流批处理的实时湖仓一体架构。Paimon创新地将湖格式与LSM技术结合起来&#xff0c;给数据湖带来了实时流更新以及完整的流处理能力。借助实时计算Flink版与Apache Paimon&#xff0c;可以快速地在…

多人播客的生成#使用OpenAI Swarm框架

使用Swarm来写多智能体的代码&#xff0c;非常简洁高效。 什么是Swarm&#xff1f; Swarm是由OpenAI开发的一个实验性多代理系统框架&#xff0c;旨在探索多代理系统的高效接口。该框架注重轻量级、可控性高且易于测试&#xff0c;主要用于展示代理之间的交接与例行操作模式。S…

多智能体协同太复杂?OpenAI Swarm让问题迎刃而解

OpenAI Solutions团队最新推出的实验性框架Swarm正在为AI领域带来新的可能性。这个专为构建、编排和部署多智能体系统而生的轻量级工具集&#xff0c;正在改变我们处理复杂任务的方式。 Swarm框架的核心理念是让多个AI代理&#xff08;Agent&#xff09;协同工作&#xff0c;每…

基于SSM+Vue+MySQL的少儿编程网上报名系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当下&#xff0c;随着国家对教育的重视以及教育部门对教育改革的不断推进&#xff0c;少儿编程教育逐渐成为了一个热门领域。传统的少儿编程报名方式往往依赖于线下填写纸质表格或电话报名&#xff0c;这种方式不仅效率低下&a…

群晖使用frpc连接qbittorrent时会出现Unauthorized

跨域问题&#xff1a; 如果你是通过不同的网络或子网访问 qBittorrent Web UI&#xff0c;可能会引发跨域问题。尝试在 qBittorrent.conf 中添加以下设置&#xff0c;允许跨域访问&#xff1a; find / -name qBittorrent.conf WebUI\HostHeaderValidationfalse 成功

【机器人数值优化】数值优化基础(一)从理论到实战全方位指南 | 解锁机器人技术的核心技能

&#x1f4af; 欢迎光临清流君的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落 &#x1f4af; &#x1f525; 个人主页:【清流君】&#x1f525; &#x1f4da; 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 &#x1f4da; &#x1f31f;始终保持好奇心&…

一文简述工程项目管理中的最常见概念

蓝燕云https://www.lanyancloud.com/致力于为工程行业中各类企业和组织提供专业、简单、可靠的工程项目管理系统&#xff0c;专注于提升企业对于项目管理中成本、进度、质量、安全、资料等全场景管理能力。 01 怎么理解工程项目管理&#xff1f; 建设工程项目管理指的是专业…

神经网络模型的“扩散与进化”思想启迪

在上一篇笔记「上交大全华班复现o1旅程式学习下的深思考」中&#xff0c;其中对于上交大提出的旅程学习即system2慢思考认知范式下对于“多步骤的隐式到显式空间状态映射下的细粒度联合概率分布建模”的描述隐喻为“社会心理学或社会经济学两种不同的长程动态系统慢演化现象”。…

Java之lambda

目录 lambda 引入 语法 函数式接口 lambda表达式的使用 语法精简&#xff1a; 代码示例&#xff1a; 变量捕获 局部变量捕获 成员变量捕获 lambda在集合中的使用 lambda的优缺点 lambda 引入 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表…

设计模式-原型模式(克隆、Clone、Prototype)

原型模式&#xff08;克隆、Clone、Prototype&#xff09;是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需使代码依赖它们所属的类。 问题 譬如美国研制了一种特效药&#xff0c;而且还在专利保护器内&#xff0c;而印度制药公司看中了&#xff0…

常见开源组件的详解

文章目录 RPCRPC架构和工作流程为什么有了HTTP还要用RPC底层协议数据格式连接管理错误处理 使用场景常见的RPC框架 Web应用框架主要功能常见的Web应用框架Spring Boot (Java)Django (Python)Express.js (Node.js) Redis主要特点应用场景缓存问题Redis集群架构主从复制Redis Clu…

【算法】笨小猴

[NOIP2008]笨小猴_牛客题霸_牛客网 【描述】 eg1中&#xff0c;输入“error” “e”出现了1次&#xff0c;“r”出现了3次&#xff0c;“o”出现了1次 最大是3&#xff0c;最小是1&#xff0c;3-12&#xff0c;2是质数&#xff0c;所以输出“Lucky word”和这个单词 eg2中&…