首页 > 其他分享 >Mamba: Linear-Time Sequence Modeling with Selective State Spaces

Mamba: Linear-Time Sequence Modeling with Selective State Spaces

时间:2024-06-12 20:58:51浏览次数:26  
标签:bar Linear Sequence Time 算法 如上图 Delta Mamba

目录

Gu A. and Dao T. Mamba: Linear-time sequence modeling with selective state spaces. 2023.

Mamba.

Mamba

  • S4S4D 虽然解决了 SSM 计算速度的问题, 但是有一个前提, 就是 \(A, B, C, D\) 是与时间 \(t\) 无关的. 这导致这些方法只能采取一种固定的模式取处理序列问题, 作者认为这导致 SSM 无法 text 这类强上下文关系的任务.

  • 所以如上图和上述算法所示, \(B, C, \Delta\) 现在是与输入有关的了, 不同的输入会产生不同的 \(B, C, \Delta\).

  • 但是, 我们知道 \(\bar{A}\) 由 \(A, \Delta t\) 共同决定, 这就导致 \(\bar{A}(x)\) 实际上也是与输入有关的了.

  • 而我们知道, S4, S4D 训练速度快的原因就是输出能够通过卷积的方式实现:

    \[y = \mathcal{K}_L (\bar{A}, \bar{B}, C) * u + Du, \\ \mathcal{K}_L (A, B, C) := (CB, CAB, \ldots, CA^{L-1}B). \]

    但是这个必须要求 \(A\) 是随着 \(t\) 不变的, 所以我们没法实现这一点.

  • 所以作者额外设计了 scan 算法, 如上图所示, 这是一种 hardware-aware 的算法, 他会把隐状态的更新放在 GPU 中速度最快的 SRAM 位置, 我看网上大多用下面这个图来说:

  • 我对这个不太感兴趣, 有兴趣的同学可以找相应的博客看看.

代码

[official-code]

标签:bar,Linear,Sequence,Time,算法,如上图,Delta,Mamba
From: https://www.cnblogs.com/MTandHJ/p/18244663

相关文章

  • QTime序列化时间处理(字符串与秒、毫秒互转)
    秒转为时、分、秒格式inttime_sec=11320;QStringtime=QTime(0,0,0).addSecs(static_cast<int>(time_sec)).toString(QString::fromLatin1("HH:mm:ss"));qDebug()<<time;//输出:"03:08:40"毫秒转为时、分、秒、毫秒格式inttime_ms=211320;QString......
  • TimerTask 定时任务
    定时任务就是在指定时间执行程序,或周期性执行计划任务。Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求。一、Timer和TimerTaskTimer和TimerTask可以作为线程实现的常见方式,JDK1.5之后定时任务推荐使用ScheduledThreadPoolExecutor。1、快......
  • 前端菜鸡流水账日记 -- setTimeout定时器
    中午好哇,一上午的时间过的真快,这都快要吃午饭啦,突击询问有想好吃什么吗???当然,这不是重点,重点是我今天要说的这个定时器,以及和他搭配的取消定时器,话不多说,开始我们的新内容setTimeout都不陌生就是定时器,他可以这样用setTimeout(()=>{dealData.forEach(e=>{if(aw......
  • Efficiently Modeling Long Sequences with Structured State Spaces
    目录概符号说明S4代码GuA.,GoelK.andReC.Efficientlymodelinglongsequenceswithstructuredstatespaces.NeurIPS,2022.概Mamba系列第三作.符号说明\(u(t)\in\mathbb{R}\),输入信号;\(x(t)\in\mathbb{R}^N\),中间状态;\(y(t)\in\mathbb{R}\),输......
  • Mybatis 实体类中字段使用 ZonedDateTime,但达梦数据库使用无时区的 Timestamp 时发生
    背景开发的应用运行在东八区,无国际化需求,也无时区相关要求。后端使用SpringBoot和Mybatis,数据库使用达梦数据库,数据库中存储时间的类型为Timestamp(不存储时区信息)其中实体如下publicclassStudent{Stringid;ZonedDateTimeentryTime;}前端和后端约定时......
  • TimerWheel(计时轮)在Rust中的实现及源码解析
    计时器轮(TimerWheel),模拟时钟格式组成的高效计时器TimerWheel算法原理环形数据结构:TimerWheel,即时间轮,是一个环形的数据结构,类似于时钟的面,被等分为多个格子或槽位(slot)。槽位时间间隔:每个槽位代表一个固定的时间间隔,例如1毫秒、1秒等。这个时间间隔决定了定时器的精度。......
  • MFC案例:利用SetTimer函数编写一个“计时器”程序
    一、希望达成效果    利用基于对话框的MFC项目,做一个一方面能够显示当前时间;另一方面在点击开始按钮时进行读秒计时,计时结果动态显示,当点击结束时读秒结束并保持最后结果。二、编程步骤及相关代码、注释   1、启动VS->创建新项目->MFC应用-项目名称:MFCtimer->......
  • Combining Recurrent, Convolutional, and Continuous-time Models with Linear State
    目录概符号说明LSSL和其它方法的联系代码GuA.,JohnsonI.,GoelK.,SaabK.,DaoT.,RudraA.,andReC.Combiningrecurrent,convolutional,andcontinuous-timemodelswithlinearstate-spacelayers.NeurIPS,2021.Statespacerepresentaion-wiki.概Mamba......
  • C#中的DateTime.AddMilliseconds()方法
    原文链接:http://www.imangodoc.com/9fFUQ6eR.html在C#中,DateTime类是表示日期和时间的类型。DateTime.AddMilliseconds()是DateTime类的一个方法,可以用于在日期和时间中添加指定的毫秒数。本文将详细介绍DateTime.AddMilliseconds()方法的用法和示例。publicDateTimeAddMillis......
  • DateTime.Now.ToLocalTime().ToString();
    原文链接:https://www.cnblogs.com/longshen/archive/2010/02/10/1667074.html//2009-9-520:12:12//获取日期DateTime.Now.ToLongDateString().ToString();    //2009年9月5日DateTime.Now.ToShortDateString().ToString();       //2009-9-5DateTime.Now.ToStr......