Mamba 2的发布是否可以撼动Transformer模型的AI大一统的江湖地位

本文主要是介绍Mamba 2的发布是否可以撼动Transformer模型的AI大一统的江湖地位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Transformer模型

Transformer模型是深度学习领域的一种神经网络架构,特别适用于自然语言处理(NLP)任务。它由Vaswani等人在2017年的论文《Attention is All You Need》中提出。Transformer模型的关键创新在于其使用注意力机制,而不是传统的递归神经网络(RNN)或卷积神经网络(CNN)来处理序列数据。正是由于Transformer模型强大的注意力机制,让模型进行并行运算成功降低了训练时间,加速了模型的训练。

动图封面

1.架构概述

Transformer模型由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。

  • 编码器:由多个相同的编码器层(通常是6层)堆叠而成。每个编码器层包含两个子层:多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feed Forward Neural Network),每个子层后都有一个Add & Norm层进行残差连接和规范化。
  • 解码器:由多个相同的解码器层(通常也是6层)堆叠而成。每个解码器层包含三个子层:Masked多头自注意力机制、编码器-解码器多头注意力机制(Encoder-Decoder Attention)和前馈神经网络。和编码器一样,每个子层后都有一个Add & Norm层。

2.注意力机制

注意力机制是Transformer的核心组件,它允许模型在处理一个元素时关注输入序列中的其他元素。Transformer使用的是Scaled Dot-Product Attention

  • Q(Queries):查询矩阵
  • K(Keys):键矩阵
  • V(Values):值矩阵
  • d_k:键向量的维度,用于缩放点积的结果

动图封面

以上过程展示了QKV三矩阵的来历,其中输入的 I 矩阵为已知矩阵,而Wq Wk Wv为未知矩阵,而注意力机制的过程便是需要优化其中的未知参数了。

动图封面

注意力机制计算的过程也是极其简单,根据注意力机制的计算公式,其Q矩阵乘以K矩阵的转置矩阵,然后乘以一个缩放系数后,再乘以v矩阵,就得到了注意力机制的计算结果。

正是注意力机制的强大算法,不仅NLP领域各种任务中可以采用 transformer 模型,而在计算机视觉任务中也成功采用了 transformer 模型,且效果显著,正是这样的模型统一,让人工智能领域一度认为 transformer 模型将会承担模型大一统的任务。

Mamba模型的兴起

随着模型越来越大,训练数据越来越庞大,其输入序列也越来越长。而我们知道 transformer 模型随着输入序列长度,其模型复杂度成平方的增加。这就无意导致了大量的内存开销,虽然 transformer 模型的优点在于可以并行运算,但是较大的内存开销无法进行模型有效的训练,如何能够找到一个既能降低内存开销,又能并行运算的模型成为了大家研究的对象。

Mamba 是一种新的状态空间模型架构,在语言建模等信息密集数据上显示出良好的性能,而以前的二次模型在 Transformers 方面存在不足。Mamba基于结构化状态空间模型的,并使用FlashAttention进行高效的硬件设计和实现。

Mamba 享有快速推理(吞吐量比 Transformer 高 5 倍)和序列长度线性缩放,并且其性能在高达百万长度序列的实际数据上得到了很多的提高。 作为通用序列模型骨干,Mamba 在语言、音频和基因组学等多种任务上实现了最先进的性能。 在语言建模方面, Mamba-3B 模型在预训练和下游任务方面都优于相同大小的 Transformer模型,并且与两倍大小的 Transformer 相匹配。

而本次 2 位作者在Mamba 的基础上,更新了Mamba模型,发布了Mamba 2 。

而Mamba 2 模型的论文就叫transformer are SSMs,transformer 模型本身就是一个状态空间模型。作者用了大量的篇幅介绍了 transformer 模型与状态空间的关系,既然两者有着密切的联系,那么 transformer 模型就可以结合状态空间模型的优点,并行运算的同时降低内存开销。

上图是不是很熟悉,这个跟Retnet模型解决的大模型不可能三角很像,都是为了解决大模型的内存开销与计算复杂度问题。而根据其Mamba 2 的注意力机制的计算公式跟标准的注意力公式就是删除了 soft max 计算,取而代之的是乘以了一个 L 矩阵。而Retnet模型是一个衰减系数矩阵D.

而L 矩阵同样是一个下三角矩阵,一来屏蔽未来的输入信息,另外一个便是帮忙输入数据计算单词与单词之间的相似性。后期我们将在动画详解 transformer 专栏中详细介绍Retnet与Mamba模型,并用动画的方式来介绍相关的技术难点

Mamba 采用状态空间模型作为其核心架构,而非 Transformer 的自注意力机制。状态空间模型通过递归方式更新隐藏状态,能够更高效地处理长序列数据。Mamba 的架构允许在训练过程中进行高度并行化,从而显著缩短训练时间。与 Transformer 的平方复杂度不同,Mamba 在序列长度上的复杂度为线性,这意味着它在处理长序列时效率更高。虽然 Mamba 旨在提高效率,但初步研究表明,它在各种序列建模任务上都能保持与 Transformer 相当的性能。

Mamba的模型框架不仅可以进行高度并行化,而可以通过状态空间的递归方式更新模型状态,这就可以让模型可以进行递归方式的训练,降低内存开销。

Mamba2 的发布证明了 transformer 模型就是一个SSMs模型,完全可以采用递归的方式降低内存开销,这个跟 retnet模型的分块并行与块与块进行递归操作类似,都成功降低了内存开销。当然Mamba2模型是否在各个人工智能领域任务上都适合使用,需要各大模型的不断适配。而 transformer 模型已经被很多大模型成功使用,是否可以进行替代,需要模型与时间的验证。

https://arxiv.org/pdf/2405.21060更多transformer,VIT,swin tranformer
参考头条号:人工智能研究所
v号:启示AI科技

 动画详解transformer  在线教程

这篇关于Mamba 2的发布是否可以撼动Transformer模型的AI大一统的江湖地位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114288

相关文章

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI