使用ctransformers加载GGUF量化Llama-2模型遇libcudart.so.12错误求助
问题排查与解决方案
核心问题分析
报错OSError: libcudart.so.12: cannot open shared object file: No such file or directory的本质原因:
- 系统NVIDIA驱动(470.141.03)最高支持CUDA 11.4,conda虚拟环境中安装的是CUDA 11.7相关库,但ctransformers新版本默认依赖CUDA 12.x的运行时库,当前环境不存在该版本的库文件。
- 环境内同时存在多版本CUDA包冲突(cudatoolkit 10.1、cuda-runtime 11.7),进一步导致依赖查找混乱。
解决方案
方案一:降级ctransformers适配CUDA 11.x
新版本ctransformers对CUDA 12.x有强制依赖,安装旧版本即可兼容当前环境:
pip uninstall ctransformers -y pip install ctransformers==0.2.24
注:0.2.24及更早版本的ctransformers无需CUDA 12支持,可正常适配CUDA 11.x环境。
方案二:临时禁用GPU加速验证功能
如果不想调整版本,可先关闭GPU加速,确认模型本身能正常加载:
修改代码中的gpu_layers参数为0:
llm = ctransformers.AutoModelForCausalLM.from_pretrained( model_path, model_type="gguf", gpu_layers=0, # 关闭GPU加速,仅用CPU运行 threads=24, reset=False, context_length=10000, stream=True, max_new_tokens=256, temperature=0.8, repetition_penalty=1.1 )
方案三:统一升级到CUDA 12.x(长期使用推荐)
若要保留最新版ctransformers并使用GPU,需先升级驱动和CUDA版本:
- 卸载当前NVIDIA驱动:
sudo apt purge nvidia-* sudo apt autoremove
- 安装支持CUDA 12.x的驱动(如525版本,适配Ubuntu 18.04):
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-525
- 下载并安装Ubuntu 18.04对应的CUDA 12.x toolkit,配置环境变量:
在~/.bashrc中添加:
export PATH=/usr/local/cuda-12.x/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.x/lib64:$LD_LIBRARY_PATH
执行source ~/.bashrc使配置生效。
4. 重建conda虚拟环境,安装适配CUDA 12.x的PyTorch和最新版ctransformers。
环境清理建议
当前conda环境存在多版本CUDA包冲突,建议清理后统一版本:
conda uninstall cudatoolkit cudnn -y conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
内容的提问来源于stack exchange,提问作者user3476463
相关产品推荐
相关产品推荐

