首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >状态空间模型 >状态空间模型的并行扫描算法是如何工作的?

状态空间模型的并行扫描算法是如何工作的?

词条归属:状态空间模型

1. 循环结构的并行化需求

朴素循环结构逐时间步串行计算,无法利用现代硬件的并行能力,训练效率低下。并行扫描(Parallel Scan)算法通过将递推分解为可结合的前缀和运算,使循环结构能够在硬件上并行执行。

2. 选择性扫描(Selective Scan)

Mamba 引入的选择性机制使参数依赖输入,破坏了线性时不变性,无法直接用卷积。为此,Mamba 采用选择性扫描算法:将序列分块,块内做二次(类注意力)计算以利用硬件效率,块间传递 SSM 状态以维持整体线性复杂度。该算法在保持线性扩展的同时恢复了并行训练能力。

3. 硬件感知实现

Mamba 的实现进一步做了 IO 优化:不将庞大的状态矩阵写入 GPU 高带宽内存(HBM),而是在片上高速 SRAM 中完成扫描(recurrence)运算,大幅减少内存读写。官方实现报告,该高效扫描内核相比朴素的选择性循环实现可提速数十倍。

相关文章
Flink中可查询状态是如何工作的
QueryableStates 允许用户对流的内部状态进行实时查询,而无需将结果存储到任何外部存储中。 这制造了许多有趣的可能,因为我们不再需要等待系统写入外部存储(这一直是此类系统的主要瓶颈之一)。 甚至可能没有任何类型的数据库能让用户的应用程序直接查询流,这将使应用程序更快、更便宜。 这可能不适用于所有用例,但如果您的 Pipeline 必须维护内部状态(可能是进行一些聚合),则最好使状态可用于查询。
smartsi
2021-06-29
3.6K0
面部识别算法是如何工作的?
过去十年,深度学习领域出现了许多先进的新算法和突破性的研究,并且引入了新的计算机视觉算法。
小白学视觉
2022-12-27
1.5K0
Transformers是SSMs:通过结构化状态空间对偶性的广义模型和高效算法(一)
尽管Transformer一直是深度学习在语言建模中取得成功的主要架构,但最近的研究表明,如Mamba之类的状态空间模型(SSMs)在小到中等规模上能够匹敌或超越Transformer的性能。我们表明,这两类模型实际上是非常相关的,并在一个经过充分研究的结构化半可分离矩阵类的各种分解之间,发展出SSM和注意力变体之间丰富的理论联系框架。我们的状态空间对偶性(SSD)框架使我们能够设计一种新的架构(Mamba-2),其核心层是对Mamba的选择性SSM的改进,速度提高了2-8倍,同时在语言建模方面继续与Transformer保持竞争力。
AI浩
2024-10-22
1.1K0
JavaScript 是如何工作的🔥 🤖 [视觉解释]
JavaScript 是世界上最受欢迎和最讨厌的语言之一。它被爱,因为它是有效的。您只需学习 JavaScript 即可制作全栈应用程序。它也被讨厌,因为它以出乎意料和令人不安的方式行事,如果您不投入理解该语言,可能会让您讨厌它💔。 这篇博客将解释 JavaScript 如何在浏览器中执行代码,我们将通过动画 gif 来学习它😆。看完这篇博文,你离成为Rockstar开发者又近了一步🎸😎 执行上下文 “ JavaScript 中的一切都发生在一个执行上下文中。” 我希望每个人都记住这句话,因为它是必不可
玖柒的小窝
2021-09-12
4.6K0
Goroutine是如何工作的
在golangweekly的第36期Go Newsletter中我发现一篇短文"How Goroutines Work" ,其作者在参考了诸多资料后,简短概要地总结了一下 Goroutine的工作原理,感觉十分适合刚入门的Gophers(深入理解Goroutine调度的话,可以参考Daniel Morsing的" The Go scheduler" )。这里粗译如下。 一、Go语言简介 如果你是Go语言新手,或如果你对"并发(Concurrency)不是并行(parallelism)"这句话毫无赶脚,那么请
李海彬
2018-03-19
4.1K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券