百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

新架构Mamba更新二代!作者:数学上Transformer和SSM是一回事

ccwgpt 2024-10-29 13:31 44 浏览 0 评论

梦晨 发自 凹非寺
量子位 | 公众号 QbitAI

Transformer挑战者、新架构Mamba,刚刚更新了第二代:

Mamba-2,状态空间扩大8倍,训练速度提高50%!

更重要的是,团队研究发现原来Transformer和状态空间模型(SSM)竟然是近亲??

两大主流序列建模架构,在此统一了。

没错,这篇论文的提出的重磅发现:Transformer中的注意力机制与SSM存在着非常紧密的数学联系。

团队通过提出一个叫结构化状态空间二元性(Structured State Space Duality,SSD)的理论框架,把这两大模型家族统一了起来。

Mamba一代论文年初被ICLR拒稿,当时还让许多学者集体破防,引起一阵热议。

这次二代论文在理论和实验上都更丰富了,成功入选ICML 2024。

作者依然是Albert GuTri Dao两位。

他们透露,论文题目中“Transformers are SSMs”是致敬了4年前的线性注意力经典论文“Transformers are RNNs”。

那么,SSM和注意力机制究竟是怎么联系起来的,Mamba-2模型层面又做出哪些改进?

统一SSM和注意力机制

Transformer的核心组件是注意力机制,SSM模型的核心则是一个线性时变系统

两者看似不相关,但论文指出:它们都可以表示成可半分离矩阵(Semiseparable Matrices)的变换。

先从SSM的视角来看。

SSM本身就定义了一个线性映射,恰好对应了一个半可分离矩阵。

半可分离矩阵有着特殊的低秩结构,这种结构又恰好对应了SSM模型中的状态变量。

于是,矩阵乘法就相当于SSM的线性时变系统了。带选择性的SSM本质上就是一种广义线性注意力机制

从注意力的视角看又如何?

团队试图以更抽象方式来刻画注意力机制的本质,毕竟“Softmax自注意力”只是众多可能形式中的一种。

更一般地,任意带掩码的注意力机制,都可以表示为4个张量的缩并(Contraction)

其中QKV对应注意力中的query,key,value,L对应掩码矩阵。

借助这一联系,它们在线性注意力的基础上提出了结构化掩码注意力SMA(Structured Masked Attention)。

当注意力的掩码矩阵是半可分离的,就与SSM等价了。

基于这个发现,作者进一步推导出两种等价的计算形式,这就是本文核心思想”状态空间二元性”SSD的由来。

Mamba-2:更强学习能力,更快训练推理

基于SSD思想的新算法,Mamba-2支持更大的状态维度(从16扩大到256),从而学习更强的表示能力。

新方法基于块分解矩阵乘法,利用了GPU的存储层次结构,提高训练速度。

架构设计上,Mamba-2简化了块的设计,同时受注意力启发做出一些改动,借鉴多头注意力创建了多输入SSM。

有了与注意力之间的联系,SSD还可以轻松将Transformer架构多年来积累起来的优化方法引入SSM

比如引入张量并行和序列并行,扩展到更大的模型和更长的序列。

又比如引入可变序列长度,以实现更快的微调和推理。

Mamba-2的SSD层比Mamba-1中的关联扫描快很多,使团队能够增加状态维度并提高模型质量。

实验中,3B参数规模的Mamba-2,在300B tokens训练,超越了相同规模的Mamba-1和Transformer

Mamba-2在需要更大状态容量的任务上比Mamba-1有了显著改进,例如硬关联召回任务 (MQAR)

团队还对Mamba-2+注意力的混合架构模型做了一些实验。发现4-6个注意力层与Mamba-2层混合模型的性能,甚至优于Transformer++(原版结构+现代最佳实践)和纯Mamba-2。

作者Tri Dao认为,这说明了Attention和SSM两种机制可以互为补充,另外他还提出了对未来研究方向的思考。

最后,除了52页的论文之外,两位作者还撰写了四篇更易读的系列博客文章。

他们特别建议:先看博客,再看论文。

对Mamba-2模型或者状态空间二元性理论感兴趣的,可以读起来了~

博客(两个地址内容一样):
https://tridao.me/blog/

https://goombalab.github.io/blog/

论文:
https://arxiv.org/abs/2405.21060

代码和模型权重:
https://github.com/state-spaces/mamba

参考链接:
[1]https://x.com/_albertgu/status/1797651240396144758

[2]https://x.com/tri_dao/status/1797650443218436165

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

相关推荐

Java七大热门技术框架源码解析(25章) 完结

获课》aixuetang.xyz/5699/Hibernate与MyBatis源码级PK:ORM框架的两种哲学在Java持久层框架领域,Hibernate与MyBatis代表了两种截然不同的设计哲学。...

【25章】Java七大热门技术框架源码解析

获课》aixuetang.xyz/5699/Java高级面试:七大框架源码精讲与实战解析在当今Java技术生态中,对主流框架源码的深入理解已成为高级开发者面试的核心竞争力。掌握Spring、MyBat...

饿了么董事长吴泽明兼任CEO,韩鎏分管即时物流中心

饿了么调整组织架构。2月11日,饿了么董事长吴泽明(花名:范禹)通过公司全员信宣布饿了么最新组织调整:即日起,吴泽明将兼任饿了么CEO,韩鎏(花名:昊宸)专注分管即时物流中心,继续向吴泽明汇报。吴泽明...

饿了么100%迁至阿里云,快速扩容可支持1亿人同时点单

来源:环球网6月17日,记者获悉,饿了么已完成100%上云,所有业务系统、数据库设施等均已迁移至阿里云。高峰期,饿了么可在阿里云上快速扩容,可以支持1亿人同时在线点单,这意味着饿了么的服务能力再次全面...

饿了么组织架构调整:董事长吴泽明兼任CEO 韩鎏专注即时物流中心管理

近日,饿了么董事长吴泽明(花名:范禹)通过公司全员信宣布饿了么最新组织调整:即日起,吴泽明将兼任饿了么CEO,韩鎏(花名:昊宸)专注分管即时物流中心,继续向吴泽明汇报。吴泽明在内部信中表示,考虑即时物...

饿了么组织架构调整:董事长吴泽明兼任CEO

Tech星球2月11日消息,据新浪科技报道,今日饿了么董事长吴泽明(花名:范禹)通过公司全员信宣布饿了么最新组织调整:即日起,吴泽明将兼任饿了么CEO,韩鎏(花名:昊宸)专注分管即时物流中心,继续向吴...

饿了么又调整了组织架构,董事长吴泽明兼任CEO

2月11日,饿了么董事长,花名为范禹的吴泽明,通过公司全员信宣布最新组织调整:从即日起,吴泽明将兼任饿了么CEO。公司原CEO,花名为昊宸的韩鎏今后专注分管即时物流中心,继续向吴泽明汇报。在内部信中,...

SpringBoot项目快速开发框架JeecgBoot——Web处理!

Web处理JeecgBoot框架主要用于Web开发领域。下面介绍JeecgBoot在Web开发中的常用功能,如控制器、登录、系统菜单、权限模块的角色管理和用户管理。首先启动后台项目,将其导入IDE...

腾讯即将开源Kuikly:基于Kotlin的纯原生跨端解决方案

IT之家3月4日消息,腾讯日前在端服务网站发布预告,即将开源Kuikly跨端开发框架。预告海报介绍称,Kuikly是基于KotlinKMM技术、客户端开发友好的全新跨端解决方案,可...

Python构建MCP服务器完整教程:5步打造专属AI工具调用系统

模型控制协议(ModelControlProtocol,MCP)是一种专为实现AI代理与工具解耦而设计的通信协议,为AI驱动应用程序的开发提供了高度的灵活性和模块化架构。通过MCP服务器,AI代...

Python3使用diagrams生成架构图(python模块制作)

目录技术背景diagrams的安装基础逻辑关系图组件簇的定义总结概要参考链接技术背景对于一个架构师或者任何一个软件工程师而言,绘制架构图都是一个比较值得学习的技能。这就像我们学习的时候整理的一些Xmi...

Python 失宠!Hugging Face 用 Rust 新写了一个 ML框架,现已低调开源

大数据文摘受权转载自AI前线整理|褚杏娟近期,HuggingFace低调开源了一个重磅ML框架:Candle。Candle一改机器学习惯用Python的做法,而是Rust编写,重...

Python Web 框架(Python Web 框架)

Tornado、Flask、Django三个PythonWeb框架的主要区别和适用场景:特点/框架TornadoFlaskDjango类型异步非阻塞Web服务器和框架轻量级微框架全功能...

构建并发布你的自定义 Python 包(python如何创建自定义模块)

Python让你可以重用代码,并将代码分享给他人以节省时间和精力。所以,当你编写了一些方便的脚本,希望你的同事或其他人也能使用时,接下来该怎么做呢?这篇文章就来解决打包和分发的问题。我们将专注于将你...

Python 应用开发框架 BeeWare 简明实用教程

1.BeeWare简介BeeWare是一个Python框架,用于开发跨平台原生应用。它支持Android、iOS、Windows、macOS和Linux,并提供原生用户体验。2.安装B...

取消回复欢迎 发表评论: