现场是这样的。在 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 窄,长上下文或大模型偶尔会出现溢出,这时优先换卡而不是继续调参数。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。