现场是这样的。在 Tesla T4(算力 7.5)上启动 vllm serve Qwen2.5-7B-Instruct,报 ValueError: Bfloat16 is only supported on GPUs with compute capability >= 8.0。

中间走过弯路,把「启动参数没有显式指定半精度类型」当成主因,改完现象没变。

原因不止一个,得分开看。T4 是图灵架构,硬件层面不支持 bf16;模型配置里默认 dtype 是 bfloat16;镜像里的 PyTorch 版本对旧卡回退逻辑不完善。

显式指定 float16 启动

vllm serve Qwen/Qwen2.5-7B-Instruct --dtype float16 --max-model-len 4096

再往下确认当前显卡算力与可用显存

nvidia-smi --query-gpu=name,memory.total --format=csv

显存不足时换更小的模型或量化版本

vllm serve Qwen/Qwen2.5-1.5B-Instruct --dtype float16

末了启动后验证接口可用

curl http://localhost:8000/v1/models

命令输出我都留了记录,免得改完记不清原来的值。

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

别只看报错消失,验证要多做一步。服务正常启动并打印 Uvicorn running,接口返回模型列表,推理请求能拿到完整回答。

容易忽略的是,float16 在数值范围上比 bf16 窄,长上下文或大模型偶尔会出现溢出,这时优先换卡而不是继续调参数。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189