微信网站开发模板,云南建设银行招聘网站,网页制作与设计教案,浙江恒元建设网站Mamba模型简介
问题#xff1a;许多亚二次时间架构(运行时间复杂度低于O(n^2)#xff0c;但高于O(n)的情况)#xff08;例如线性注意力、门控卷积和循环模型以及结构化状态空间模型#xff08;SSM#xff09;#xff09;已被开发出来#xff0c;以解决 Transformer 在长…Mamba模型简介
问题许多亚二次时间架构(运行时间复杂度低于O(n^2)但高于O(n)的情况)例如线性注意力、门控卷积和循环模型以及结构化状态空间模型SSM已被开发出来以解决 Transformer 在长序列上的计算效率低下问题但此类模型的一个关键弱点是它们无法执行基于内容的推理
1. 模型架构 模型简单理解(特殊的门控RNN网络)线性层门控选择性SSM的组合 2. 模型特点
2.1 选择性机制 Δ \Delta Δ 、A、B、C应该是SSM中的可学习参数 根据输入参数化 SSM 参数来设计一种简单的选择机制这使得模型能够过滤掉不相关的信息并无限期地记住相关信息。 这里作者认为研究动机‘序列建模的一个基本问题是将上下文压缩成更小的状态。事实上我们可以从这个角度来看待流行序列模型的权衡。例如注意力既有效又低效因为它明确地根本不压缩上下文。自回归推理需要显式存储整个上下文即KV缓存这直接导致Transformers的线性时间推理和二次时间训练缓慢。’ 序列模型的效率与有效性权衡的特征在于它们压缩状态的程度高效模型必须具有较小的状态而有效模型必须具有包含上下文中所有必要信息的状态。反过来我们提出构建序列模型的基本原则是选择性或关注或过滤掉序列状态输入的上下文感知能力。
2.2 硬件算法
算法通过扫描而不是卷积来循环计算模型但不会具体化扩展状态计算速度比所有先前的 SSM 模型提升三倍。 代码调用 import torch
from mamba_ssm import Mambabatch, length, dim 2, 64, 16
x torch.randn(batch, length, dim).to(cuda)
model Mamba(# This module uses roughly 3 * expand * d_model^2 parametersd_modeldim, # Model dimension d_modeld_state16, # SSM state expansion factord_conv4, # Local convolution widthexpand2, # Block expansion factor
).to(cuda)
y model(x)
print(x.shape)
print(y.shape)
assert y.shape x.shape总结
这项基础性模型研究旨在解决transformer模型的长序列数据计算效率低的问题其解决方法的动机利用选择性机制实现有效特征的提取。个人理解为通过有效特征信息的选择实现知识提取信息压缩这让我联想到最初的VGG语义分割网络结构设计其实类似于模拟知识特征的压缩与抽取但后来发现这种方式会损失边缘信息因此提出了U-net架构再进一步卷积的方式无法有效估计全局上下文信息的联系进而提出注意力机制来解决这一问题。 从技术与文章写作的角度来看问题的发展似乎从知识压缩-细节特征提取-全局信息整合到Mamba貌似是在全局信息整合基础上在进行一次有效信息的抽取进而使模型从数据中提取根据代表性的特征。整体突出一点深度学习也是一个特征工程利用模型来替换原有的手工设计的特征
详细代码链接相关模型应用案例U-Mamba