使用 Xinference 运行嵌入模型报错解决办法:使用非vLLM模型引擎如 sentence_transformers

在这里插入图片描述

在使用 Xinference 运行嵌入模型时遇到 CUDA 错误提示:

CUDA error: no kernel image is available for execution on the device

这通常表明 PyTorch 或相关框架尝试在 GPU 上执行操作时,无法找到与当前 GPU 架构兼容的编译内核。此问题可能出现在 Xinference 启动模型服务或执行推理过程中,尤其是在使用 GPU 加速时。以下是可能的原因与对应的解决方法。

使用非vLLM模型引擎如 sentence_transformers

在这里插入图片描述

检查 CUDA 和 PyTorch 版本兼容性

Xinference 依赖 PyTorch 来运行深度学习模型,因此必须确保所安装的 PyTorch 版本与系统中的 CUDA 驱动兼容。可以通过以下命令查看当前 PyTorch 的 CUDA 支持情况:

import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)

在这里插入图片描述

若输出显示 torch.version.cuda 与系统中安装的 CUDA 版本不一致,可能导致内核镜像无法加载。建议访问 PyTorch 官网选择与系统环境匹配的安装命令。

更新 NVIDIA 驱动程序

过时的 NVIDIA 驱动程序可能无法支持当前 GPU 架构,从而导致 CUDA 内核加载失败。可通过 NVIDIA 官网下载并安装最新驱动程序,确保其支持当前 GPU 的计算能力。例如,RTX 30 系列 GPU 需要至少支持 CUDA 计算能力 8.6 的驱动和内核。

设置 TORCH_CUDA_ARCH_LIST 环境变量

若使用自定义编译的 PyTorch 或通过源码安装,应确保在构建时设置了正确的 TORCH_CUDA_ARCH_LIST 环境变量,以包含目标 GPU 的架构。例如:

export TORCH_CUDA_ARCH_LIST="8.6"

这将确保 PyTorch 编译时包含适用于 Ampere 架构(如 RTX 30 系列)的内核。

使用 Conda 安装 PyTorch 以获得稳定依赖

使用 conda 安装 PyTorch 可以更好地管理依赖版本,避免因多个 CUDA 版本共存导致的问题。例如:

conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch

此命令将安装与 CUDA 11.8 兼容的 PyTorch 构建版本,适用于大多数现代 GPU。

避免混合使用多个 CUDA 版本

如果系统中存在多个 CUDA 版本,可能导致 PyTorch 加载错误的库文件。可以通过检查 LD_LIBRARY_PATH 环境变量确保其仅包含与当前 PyTorch 构建版本匹配的 CUDA 库路径。此外,使用 ldd 命令可验证 PyTorch 的 CUDA 依赖:

ldd $(python -c "import torch; print(torch.utils.cmake_prefix_path)")

重新安装 PyTorch

若上述方法无效,建议卸载并重新安装 PyTorch,确保使用与系统环境匹配的版本。例如:

pip uninstall torch
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118

这将安装与 CUDA 11.8 兼容的 PyTorch 构建版本。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值