以SSMs为基础的Mamba模型被视为Transformer模型的替代者,由于其序列建模的特征,Mamba拥有线性复杂度,能够捕捉更好的全局依赖关系。本文记录了笔者配置mamba环境时的几个问题和解决办法,基本涵盖大部分可能出现的问题:
问题汇总
1. pip install causal_conv1d/mamba_ssm 失败
报错:which is required to install pyproject.toml-based projects
pip install pyproject-toml
2.源码安装报错: /usr/local/cuda/bin/nvcc: No such file or directory
# 查看是否安装cuda
nvcc -V
# 将/usr/local/cuda临时加入环境变量
export CUDA_HOME=/usr/local/cuda
3.报错:运行代码时,undefined symbol: _ZN3c107WarningC1ENS
原因:版本问题
解决办法详见正确打开方式
4.cuda版本与pytorch不一样:
源码编译安装 causal_conv1d/mamba_ssm 时会检查torch对应的CUDA和本机CUDA版本是否完全一致,否则就会提示版本不一致。
正确打开方式:
1. torch官网安装对应版本的torch,注意,该步骤需要CUDA版本和torch完全对应,而不是向下兼容。笔者最开始使用的时CUDA12.0,Pytorch对应CUDA11.8,出现下图中的报错,对CUDA降级之后error解决。切换CUDA版本参考:CUDA安装及多版本切换_切换cuda版本-CSDN博客
2. 下载对应版本的causal_conv1d和mamba_ssm
经过测评,1.1.1的causal-conv1d和1.1.1的mamba版本之间相互适配。
文件已上传至:https://download.csdn.net/download/weixin_51555629/89241670
方便不能科学上网的朋友自取~
解压后进入文件夹,使用源码编译安装
cd causal-conv1d-1.1.1
CAUSAL_CONV1D_FORCE_BUILD=TRUE python -m pip install .
cd ..
cd mamba-1.1.1
python -m pip install .
3.测试:
python
>>>import torch
>>>from mamba_ssm import Mamba
如果不报错则安装成功,如下: