论文链接:
https://arxiv.org/pdf/2405.18014
简介
多模态融合的本质在于利用不同模态中固有的互补信息。然而,大多数流行的融合方法依赖于传统的神经架构,不足以捕捉跨模态交互的动态,特别是在存在复杂的模态内和模态间相关性的情况下。文中提出了耦合状态空间模型 (SSM),用于耦合多种模态的状态链,同时保持模态内状态过程的独立性。具体而言,设计了一种模态间隐藏状态转换方案,其中当前状态取决于其自身链的状态以及前一时间步的相邻链的状态。为了完全遵循硬件感知的并行性,引入历史状态并推导状态方程来获得全局卷积核。在三个数据集上分别将F1-Score提高了0.4%,0.9%和2.3%,推理速度提高了49%,GPU内存节省了83.7%。结果表明,耦合Mamba模型能够增强多模态融合。
研究动机
现有的融合范式要么通过忽略个体模态内传播来将模态特定特征聚合为一个,要么通过监管将模态特定特征对齐到统一的表示空间中,但未能利用互补的模态间信息交换来实现对齐监督的困难。
最近,由 LSSL、S4、GSS 和 S4D 提出的状态空间模型使用状态变量来显式地模拟连续演化的神经状态,由于其在建模远程序列方面的效率,它成为 Transformer 引人注目的替代品。特别是,Mamba 通过选择性扫描机制和硬件感知并行性进行了改进,以实现非常高效的训练和推理,在大规模数据上实现与 Transformer 相当的性能。然而,现有的探索主要集中在处理单模态数据,而 SSM 的多模态融合机制仍有待研究。
方法
如图1所示,整个Coupled Mamba模型由N层组成,最终通过池化适配下游任务。每层都有 M 个耦合 Mamba 块,其中 M 是模态数量。每个耦合 Mamba 块接收多种模态的序列数据作为输入,聚合来自多种模态的状态,然后转换到每个单独模态的下一次状态。
用于多模态融合的耦合Mamba巴方法,通过引入多模态历史状态来进行多模态融合。如图2所示,它包含两个部分:状态耦合和状态空间模型。
Mamba
Mamba在S4的基础上引入了选择性机制,将原来的时不变特性进行了转换。 Mamba 基于连续系统的概念,通过引入隐藏状态 来映射一系列输入 以获得输出 ,其中 N 表示隐藏状态的数量。连续系统可表示为:
其中 表示系统的状态转移矩阵,, 为投影矩阵。 Mamba 使用时间尺度参数 Δ 将连续参数 A、B 离散化为 、,默认采用零阶保持(ZOH)原理。离散状态空间方程为:
然后是方程的离散化版本在步长为 Δ 的情况下可重写为:
最后,通过对逐层展开,可以得到全局卷积核,用K计算输出y,定义如下:
耦合状态转换
对于多模态数据输入,一种简单的方法是将多模态特征聚合为一个特征并使用单个 Mamba 模型进行处理。然而,这种方法忽略了模内传播。受耦合隐马尔可夫模型(CHMM)的启发,一个更优雅的解决方案是对互模态转移概率进行建模,如下所示:
其中 是从所有模态到当前模态 j 的概率转移矩阵。对于具有 M 个多模态输入的 SSM,我们有 M 个状态传播序列。与 CHMM 一致,可以通过将所有模态状态耦合来对模态 m 的状态转换进行建模:
其中 表示从模态 i 到 m 的状态转移矩阵。考虑到内存开销和计算效率,这种建模大大增加了参数数量和计算复杂度。文中提出了一种内存效率更高的方法,在状态转换之前进行求和,可以实现类似的性能并且效率更高。所以耦合SSM的形成是:
其中使用 来对状态求和后的整体状态转换进行建模。这种建模的一个小缺点是我们要求所有模态具有相同的状态,这可以通过使用投影层轻松解决。
并行性和效率分析
Mamba 与传统循环神经网络(RNN)的主要区别在于状态之间的转换不依赖于任何激活函数。这一特性使其能够通过迭代式(3)预先计算中间结果,从而实现并行计算。然而Coupled Mamba在Mamba的基础上增加了多模态状态信息,这给Mamba并行化算法的维护能力带来了新的挑战。为了解决这个问题,文中推导了适合Coupled Mamba的全局卷积核,保证Coupled Mamba能够继续享受Mamba并行计算带来的优势,从而有效提高模型的吞吐量和推理速度。
对进行反汇编,可得到如下结果:
根据上式可以推广到每个模态的状态信息,使用以下公式来计算输出:
由此,可以得到适合Coupled Mamba的全局卷积核:
全局卷积核可用于对序列数据进行卷积运算。在卷积运算中,每个卷积核和输入子区域的计算是相互独立的,允许不同卷积核或输入块的并行处理。
实验结果
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。