我构建了一个Mamba1变体,称为SM1,d_state=1,在Blackwell上纯PyTorch运行[P]

Reddit r/MachineLearning 模型

摘要

作者提出了SM1,一个Mamba1的变体,d_state=1,使用两个原生PyTorch操作替代选择性扫描,与d_state=16相比内存减少16倍。闭式解消除了状态维度,实现了每个token恒定内存的高效推理。

在Windows上,mamba-ssm不容易获取,也无法在sm\_120上编译。SM1(标量Mamba1)用两个原生PyTorch操作替代了整个选择性扫描:`L = torch.cumprod(dA, dim=1)` `h = L * (h0.unsqueeze(1) + torch.cumsum(dBx / L.clamp(min=1e-6), dim=1))` `y = h * C` 这是通过参数变分法得到的d\_state=1递推的精确闭式解。不是近似,它与顺序计算的浮点精度完全相同。d\_state=2会破坏它。d\_state=1是闭式解存在的边界。Mamba1扫描中间变量是(B, T, F, S)。SM1完全消除了S,与d\_state=16的Mamba1相比,扫描内存减少16倍。一个130M参数模型的推理状态大约有14,080个浮点数,56 KB,没有KV缓存,每个token永久O(1)。我目前正在使用163K个MIDI文件训练它,大约相当于我自定义格式的25亿个token。130M参数在不到我16 GB显存一半的空间中运行,显卡是RTX 5060 Ti。d\_state仅在表示尚未编码结构时才扩展表达能力。因此,如果将结构编码到token中,就不需要d\_state超过标量。
查看原文

相似文章

具有自适应退出状态选择的循环状态空间语言模型

arXiv cs.AI

本文探索了使用Mamba和混合Mamba-Transformer骨干网络的循环(递归)状态空间语言模型,表明其在推理任务上优于非循环基线,并在等参数和等FLOPs预训练下保持竞争力,同时自适应退出状态选择改善了中间深度性能。

训练具有部分双向性的混合块扩散语言模型

arXiv cs.LG

本文提出了一种用于块扩散语言模型的混合Mamba-注意力架构,该架构将反向Mamba扫描限制在活跃去噪块内,从而实现了块间的精确缓存,并在长上下文生成中达到了高吞吐量。

一种用于音频-视觉导航的混合Mamba架构

arXiv cs.LG

本文提出了Samba,一种用于音频-视觉导航的混合状态空间架构。它使用Mamba状态编码器(M-SE)替代GRU进行时间聚合,并构建了音频Mamba编码器(AME)以更好地捕捉频谱图中的全局时频依赖关系。在Matterport3D数据集上,导航成功率(SR)相比现有最先进模型提升了11.3%。