vLLM 启动报 CUDA error 怎么办?3 个常见原因排查

发布时间:2026/10/24 2:27:33
vLLM 启动报 CUDA error 怎么办?3 个常见原因排查

vLLM 版本更新快,报错信息以你实际终端输出为准,本文给常见原因和排查方向。

按教程装好 vLLM,一启动直接报 CUDA error,模型加载不起来。很多人第一反应是"卡坏了"或者"vLLM 不支持这个模型"——其实大概率是下面 3 个原因。

原因 1:CUDA 版本和 vLLM 版本不匹配

vLLM 对 CUDA 版本有要求。你装的 vLLM 和服务器上的 CUDA 对不上,启动就会报版本相关的 CUDA error。

先查你的 CUDA 版本:

nvidia-smi

右上角会显示 CUDA 版本号。然后去对照你装的 vLLM 版本支持哪个 CUDA。

解决办法:最省心的是直接用官方 Docker 镜像——镜像里 CUDA、vLLM、依赖都是配好的,不用自己折腾版本匹配。比在系统里 pip 装干净得多。

原因 2:显存不够,但不是模型本身的问题

第二个很常见:你算着 FP16 权重刚好塞得下,结果 vLLM 启动还是 out of memory。

原因是:vLLM 不只要装模型权重,还要额外分配一大块显存给KV Cache(做连续批处理用)。所以"权重能塞下"不等于"vLLM 能启动"。

解决办法:

  • 调--gpu-memory-utilization,告诉 vLLM 最多能用多少显存(默认 0.9,视情况调整);
  • 开量化(INT8 / AWQ),把权重压小,省出显存给 KV Cache;
  • 别把--max-model-len开太大,上下文越长 KV Cache 越吃显存。

原因 3:模型格式不对(不是 safetensors)

第三个:加载模型时报格式相关的错。vLLM 对模型文件格式有要求,最稳的是safetensors格式。有些老模型还是 bin(pytorch_model.bin)格式,vLLM 可能加载失败。

解决办法:确认模型目录里是.safetensors文件。如果只有 bin 格式,用 transformers 提供的转换脚本转成 safetensors 再加载。

你的 vLLM 报错是哪种?

报错现象大概率原因先做什么
启动就报版本不兼容CUDA 与 vLLM 不匹配用官方 Docker 镜像
模型加载一半 OOMKV Cache 显存不够调 gpu-memory-utilization / 开量化
报模型格式错误不是 safetensors转格式

你用 vLLM 部署报什么错?把终端里的错误信息贴评论区,我帮你看是版本、显存还是格式的问题。