Mamba:超越Transformer的新一代神经网络架构

news2024/9/23 9:30:15

image.png

在过去的七年里,Transformer一直在语言建模领域占据着主导地位。然而,现在有一个新兴的神经网络架构Mamba,正在挑战Transformer的霸主地位。虽然目前Mamba仅在规模较小的模型上进行了测试(参数量达到数十亿),但其结果已经展现出巨大的潜力。此外,与Transformer相比,Mamba所需的计算量更少。对于n个单词的输入序列,Mamba仅需O(nlog(n))的计算量,而Transformer则需要O(n^2)的计算量。因此,基于Mamba的语言模型应该能够处理~~~~更大的上下文信息量。

什么是Mamba?

Mamba通常被认为是状态空间模型(State-Space Model)的一种扩展。状态空间模型是一种序列模型,近年来逐渐受到关注。然而,状态空间模型背后的理论相当复杂,涉及到一些高级数学。幸运的是,Mamba也可以被理解为递归神经网络(Recurrent Neural Networks,简称RNNs)的扩展,而RNNs相对来说更容易理解。因此,我们将通过RNN的路径来理解Mamba。

递归神经网络概述

递归神经网络是一种处理序列数据的神经网络。给定一个输入向量序列,一个卷积层会对连续的向量组应用神经网络。关键在于神经网络每次只处理少量向量,这使得模型易于训练。然而,卷积神经网络(CNNs)的一个缺点是,远处向量的信息不能被立即组合起来,这使得它们难以理解输入中的长距离依赖关系。为了解决这个问题,Transformer架构应运而生,成功地允许单层神经网络组合任意距离的向量信息。

Transformer的局限性

尽管Transformer在许多任务中表现出色,但它的一个显著限制是其计算量随着输入长度呈二次方增长。这对于较小的输入来说不是大问题,但如果输入包含百万个向量,那么计算量将增加到百万的平方,这相当庞大。

RNN的不同方法

递归神经网络采用了一种完全不同的方法来改进卷积层。其基本思想是,将神经网络应用于一个输入向量和先前的输出向量。这看似一个小改动,但却带来了深远的影响:每个输出向量现在包含了所有先前输入向量的信息,而不仅仅是前一个向量的信息。这使得最终的输出向量包含了所有输入向量的信息,而无需额外的计算量。

RNN的实际问题

尽管理论上RNN能够免费地整合长距离信息,但在实际使用中,RNN存在两个主要问题,使其几乎无法使用。首先,尽管递归层的计算量与卷积层相同,但这种计算无法并行化。即使有许多处理器可用,也无法在前一步完成前开始评估下一个输入。相比之下,卷积层的神经网络只需要看到原始输入,可以同时在所有输入上运行。

其次,RNN非常难以训练。尽管理论上单层递归层可以整合任意多的输入信息,但实际中它们只能学习到整合前几步的信息。这使得RNN在过去几十年中逐渐被卷积神经网络和Transformer所取代,几乎没有被使用。

线性RNN的突破

去年发表的一篇论文展示了线性RNN能够避免上述两个问题,因此线性RNN在处理长序列任务时非常有效。那么,什么是线性递归神经网络?简单来说,就是将神经网络替换为线性函数。尽管线性函数只能进行相对简单的变换,但我们可以通过在每个输出向量后应用完整的神经网络来弥补这一缺陷。

线性递归层的并行计算

通过将递归操作纯粹线性化,可以在O(log(n))时间内并行计算。具体来说,线性递归操作可以通过一种称为扫描(scan)的操作来实现,例如累积和(cumulative sum)。这种操作可以在并行计算中显著提高效率。

解决RNN的训练问题

RNN训练困难的根源在于梯度消失和爆炸问题。线性RNN通过在初始化时确保权重接近于1来解决这个问题。具体方法包括使用复数极坐标形式参数化权重,确保在初始化时权重接近于1,并将输入乘以一个可学习参数,使其接近于0,从而在初始化时保持稳定状态。

Mamba的创新

尽管线性RNN在长序列任务中表现出色,但在语言建模中效果不如Transformer。Mamba通过根据输入生成不同的权重来解决这一问题,从而实现信息的选择性遗忘或保留。此外,Mamba将输出向量的大小增加了16倍,使其能够存储更多的输入信息。这些改进使得Mamba在语言建模中表现优于Transformer,同时计算量仅为O(nlog(n))。

Mamba的争议

尽管Mamba展现出巨大潜力,但在2024年ICLR会议中,Mamba论文被拒,引发了机器学习社区的广泛讨论。评审认为Mamba未在长距离竞技场基准上进行测试,且只在语言建模上进行了评估。然而,Mamba在语言建模中的表现已经证明了其优越性,并在下游任务中表现出色。

Mamba通过一系列创新,成功地解决了RNN和Transformer的局限性,为语言建模提供了一种高效且强大的新方法。尽管面临一些争议和质疑,但Mamba的潜力不容忽视。在未来,它有望在更多实际应用中展现出其卓越的性能。

关注我,每天带你开发一个AI应用,每周二四六直播,欢迎多多交流。

image.png

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

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

相关文章

华为OD机试真题 - 构成正方形的数量(Java/Python/JS/C/C++ 2024 B卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…

MySQL密码策略更改(临时+永久)

目录 1、查看数据库当前密码策略 2、查看密码插件: 3、官方文档策略定义 4、更改密码策略 临时修改 (1)更改密码策略为LOW,改为LOW或0 (2)更改密码长度 (3)设置大小写、数字…

【操作系统】操作系统运行环境——中断与异常

中断与异常 导读一、中断机制1.1 中断机制的重要性 二、中断与异常的基本概念2.1 中断与异常的个人理解2.2 内中断与外中断 三、中断与异常的分类四、中断与异常的处理过程结语 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内…

【C++ | 设计模式】简单工厂模式的详解与实现

1.简单工厂模式概述 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它定义了一个工厂类,由这个类根据提供的参数决定创建哪种具体的产品对象。简单工厂模式将对象的创建逻辑集中到一个工厂类中,从而将对…

认知杂谈32

今天分享 有人说的一段争议性的话 I I 《恋爱中的价值难题》 咱就认识个31岁的哥们,事业有成,一年能挣35 万。他现在正为找对象的事儿犯愁呢。他想找个年轻漂亮的小姑娘谈对象,可又不想在感情上投入太多,就想一边乐呵着&#x…

Linux(CentOS)同步服务器时间之~ntpd

NTP 是 Network Time Protocol(网络时间协议)的缩写,它是一种用于在计算机系统之间同步时间的协议。NTP 允许网络中的设备通过与一个或多个时间服务器进行通信,来校正自身的系统时钟,确保所有设备上的时间保持高度一致…

演示:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图(完全独立不依赖第三方库)

一、目的:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图 二、预览 三、环境 VS2022,Net7,DrawingVisual,谷歌地图瓦片 四、主要功能 地图缩放,平移,定位 真实经纬度 显示瓦片信息 显示真实经纬度和经纬线 省市县…

[环境配置]Pycharm手动安装汉化插件

在Pycharm-file-setting-Plugins中,搜索chinese,就会出现汉化包 点击install后,在安装时出现这种报错:Plugin "Chinese (Simplified) Language Pack / 中文语言包" was not installed: Invalid filename returned by a …

用 jsPDF 让 PDF 生成触手可及

jsPDF :在浏览器中生成 PDF,从未如此简单- 精选真开源,释放新价值。 概览 jsPDF 是一个开源的 JavaScript 库,专为在浏览器端生成 PDF 文档而设计。它通过提供一个直观且易于使用的 API,使得开发者能够快速地将 PDF 生…

【Kubernetes】持久卷 PV

持久卷 PV 1.什么是持久卷2.创建一个持久卷3.持久卷的访问模式4.持久卷的回收策略 数据卷是在创建 Pod 时通过 挂载目录 来实现数据的共享和持久化的。但是在一个大型系统中,这种方式是非常不利于管理的,因为数据卷把数据的 持久存储 和 供应使用 封装在…

短时傅里叶变换(Short-Time Fourier Transform, STFT),语音识别

高能预警!!! .wav文件为笔者亲自一展歌喉录制的噪声,在家中播放,可驱赶耗子,蟑螂 介绍 短时傅里叶变换(Short-Time Fourier Transform, STFT)是一种时频分析方法,用于…

智能分拣投递机器人

产品介绍 自研智能分拣投递机器人,专注于物流行业“NC小件”的分拣与投递,机器人运行稳定、分拣效率高,搭配智能分拣投递系统单台机器人最大作业效率可达400件/H,投递效率相较于传统“小黄人“提升了30%-50%,可替代“…

生成艺术,作品鉴赏:物似主人形

2001年,当21岁的我,还在恒基伟业当高级工程师时。我有一个女同事,她有个特别大的杯子用来喝水,不夸张的说,是那种我从来没见过的大杯子,由于她是很大只的那种,她便自嘲说:「物似主人…

RAG增强的视觉问答开发框架

检索增强生成 (RAG) 是一种强大的技术,可以提高大型语言模型 (LLM) 生成的答案的准确性和可靠性。它还提供了检查模型在特定生成过程中使用的源的可能性,从而使人类用户更容易进行事实核查。此外,RAG 可以使模型知识保持最新状态并整合特定主…

前端进阶| 深入学习面向对象设计原则

引言 面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程范式,它通过将数据和与之相关的操作封装在一起,提供了一种更有组织和易于理解的方式来构建应用程序。在JavaScript中,我们可以使用面…

【持续更新】【Google Play版】淘宝最新国际版10.36.10.20启动更快

功能和国内比基本是差不多的,只不过没有应用内乱七八糟的弹窗,用起来比较舒服,启动也比较快。 像这种软件如何保证是 官方 的呢?毕竟涉及到财产,还是要小心些的。 很简单,修改过的 app 会提示“签名不一致…

Unity本地化id查找器,luaparser函数参数查找

前言: 适用范围:Unity 中需要查找所有预制体里面的某一个脚本的属性值,或者Lua脚本里面的某一个属性值 本文介绍如何查找预制体和Lua脚本里面调用的本地化id 下面首先介绍改插件的功能以及使用方法,然后对该插件的原理进行说明 使…

SOMEIP_ETS_075: Wrong_Message_Type

测试目的: 验证当设备(DUT)接收到一个包含错误消息类型的SOME/IP请求时,是否能够返回错误消息或忽略该请求。 描述 本测试用例旨在检查DUT在处理一个echoUINT8方法的SOME/IP消息时,如果消息中包含的消息类型不正确&…

【超详细】Linux开发环境搭建指南 | Ubuntu

文章目录 虚拟机安装对比Virtual Box 下载ubuntu 操作系统下载Virtual Box 安装安装ubuntu设置中文语言共享文件夹设置添加输入法安装步骤,参考官方教程 安装 vscode解决主机不能通过ssh连接宿主机网络连接几种网络连接区别主机和宿主机相互 ping通 网络代理 虚拟机…

为k8s准备docker 私有仓库 harbor

目录 一、 环境准备 二、部署docker 二、为Registry提加密传输 三、为仓库建立登陆认证 四、构建harbor 五、上传镜像 然后就是在200上面进行配置了 一、 环境准备 我是用两台虚拟机(红帽9)的,一台172.25.254.10用来部署加密认证仓库,另一台172.2…