一、前言
Mamba作为一种新型的可用于深度学习的架构,以SSM(状态空间模型)为基础,在2023年被提出之后就受到了广泛关注,它集合了Transformer的注意力机制,并且克服了Transformer的缺点,即模型参数量随着输入长度的增加而呈线性增长。
本文在尝试安装Mamba时遇到了一些错误,查找资料发现其安装过程并不像一般的软件包那么容易,因此发文记录一下安装和debug过程。
二、安装过程
2.1安装环境要求
Mamba源代码地址为https://github.com/state-spaces/mamba,截至发文时最新版本为2.2.4。
按照源代码地址上安装说明,安装的环境需满足以下三个条件:
(1)须为Linux系统;
(2)NVIDIA GPU,cuda大于11.6;
(3)pytorch大于1.12。
本文安装系统环境如下:
系统:ubuntu22.04
cuda:12.1
pytorch:2.3.0
2.2安装和Debug过程
终端输入如下安装命令:
pip install mamba-ssm
输入该命令后,会首先安装一些依赖包,然后下载GitHub源代码地址上的whl安装包,此时有可能因为GitHub连接问题而报错终止安装,报错信息为Guessing wheel URL: https://github.com/**.whl,remote end closed connection without response,如下图所示:
此时可以使用其他方式手动下载whl安装包,然后使用如下命令安装:
pip install **.whl
安装顺利完成,但当调用Mamba包时遇到了错误,错误信息为:ImportError, **-gnu.so:undefined symbol:_ZN3…,如下图所示:
通过搜索错误信息,有些网页说是由于causal_conv1d的版本与Mamba-ssm的版本不一致导致该错误,然后经过检查安装的包列表发现并没有安装casual_conv1d。
经过检查下载的Mamba安装文件,发现文件名为:mamba_ssm-2.2.4+cu12torch2.5cxx11abiFALSE-cp312-cp312-linux_x86_64,从文件名可看出该安装包适配torch2.5版本,而本文安装环境中torch为2.3,因此重新下载了适配torch2.3版本的安装包,重新安装,发现能够正常调用,至此安装结束。
Mamba安装包下载地址为:https://github.com/state-spaces/mamba/releases。
三、总结
3.1安装技巧
回顾Mamba的安装过程,使用pip install mamba-ssm的方法并不能顺利安装,因为不会对系统环境中的torch版本进行检查进而下载适配版本的安装文件,稳妥的方法是手动下载适配的whl文件,然后进行安装。
3.2安装环境依赖
官方的Mamba需要依赖Linux系统,博主在windows系统下进行了安装实验,无法顺利安装。但可以在windows系统下安装非官方的Mamba替代包,在GitHub上可以检索到,具体效果需要读者进行实际测试。