Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot 单机部署
本文介绍了在昇腾单机服务器上部署Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot模型
适配:Ascend 910B,单节点 8 卡 = TP=8 镜像:
quay.io/ascend/vllm-ascend:v0.18.0rc1
一、模型信息
| 属性 | 信息 |
| 模型 ID | Eco-Tech/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot |
| 量化格式 | w8a8 QuaRot(INT8 权重 + INT8 激活) |
| 权重数量 | 56 个 safetensors(~222GB) |
| 权重路径 | /root/.cache/modelscope/hub/models/Eco-Tech/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot/ |
| 模型名 | qwen-vl |
| max_model_len | 262144(256k) |
二、拉起容器
2.1 安装 Docker(如未安装)
yum install -y docker systemctl start docker systemctl enable docker2.2 创建软链接
ln -s /root/.cache/modelscope/hub/models/Eco-Tech/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot \ /root/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot2.3 拉起容器
docker run -d \ --name qwen3-vl-deploy \ --network host \ --shm-size=1200g \ --privileged=true \ --device=/dev/davinci_manager \ --device=/dev/hisi_hdc \ --device=/dev/devmm_svm \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /root/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot:/model \ -v /root/.cache:/root/.cache \ quay.io/ascend/vllm-ascend:v0.18.0rc1 \ bash -c 'sleep infinity'必须挂载
/usr/lib64/libstdc++.so.6。如果启动失败,加入:-v /usr/lib64/libstdc++.so.6:/usr/lib64/libstdc++.so.6
三、启动 vLLM
3.1 先停其他容器(释放显存)
gpu-memory-utilization=0.94 需要几乎全部显存,必须停掉其他容器。
docker stop $(docker ps -q)3.2 启动 qwen3-vl-deploy 容器
docker start qwen3-vl-deploy3.3 启动 vLLM
docker exec -d qwen3-vl-deploy bash -c 'vllm serve /root/.cache/modelscope/hub/models/Eco-Tech/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot/ \ --served-model-name qwen-vl \ --host 0.0.0.0 --port 8800 \ --data-parallel-size 1 \ --tensor-parallel-size 8 \ --max-model-len 131072 \ --max-num-batched-tokens 16384 \ --max-num-seqs 128 \ --gpu-memory-utilization 0.94 \ --compilation-config "{\"cudagraph_mode\": \"FULL_DECODE_ONLY\"}" \ --trust-remote-code \ --dtype bfloat16 \ --enable-auto-tool-choice \ --tool-call-parser hermes \ --async-scheduling \ --allowed-local-media-path / \ --quantization ascend \ --additional-config "{\"enable_cpu_binding\":true}"'四、验证
等待约 3-5 分钟后(vLLM 加载模型需要时间),执行:
curl http://localhost:8800/v1/models应返回 `qwen-vl`。
对话测试:
curl --location "http://localhost:8800/v1/chat/completions" \ --header "Content-Type: application/json" \ --data '{"model":"qwen-vl","messages":[{"role":"user","content":"hello"}],"max_tokens":50}'五、访问服务
服务启动后,通过容器所在机器的 8800 端口访问:
http://{机器IP}:8800API 端点:
- `GET /v1/models` — 查看可用模型
- `POST /v1/chat/completions` — 对话
- `POST /v1/completions` — 文本补全
六、重启恢复
6.1 启动容器
docker start qwen3-vl-deploy6.2 重新启动 vLLM
先停其他容器,再启动 vLLM:
docker stop $(docker ps -q) docker exec -d qwen3-vl-deploy bash -c 'vllm serve /root/.cache/modelscope/hub/models/Eco-Tech/Qwen3-VL-235B-A22B-Instruct-w8a8-QuaRot/ \ --served-model-name qwen-vl \ --host 0.0.0.0 --port 8800 \ --data-parallel-size 1 \ --tensor-parallel-size 8 \ --max-model-len 36864 \ --max-num-batched-tokens 16384 \ --max-num-seqs 128 \ --gpu-memory-utilization 0.94 \ --compilation-config "{\"cudagraph_mode\": \"FULL_DECODE_ONLY\"}" \ --trust-remote-code \ --dtype bfloat16 \ --enable-auto-tool-choice \ --tool-call-parser hermes \ --async-scheduling \ --allowed-local-media-path / \ --quantization ascend \ --additional-config "{\"enable_cpu_binding\":true}"'6.3 确认进程运行
docker exec qwen3-vl-deploy bash -c "ps -ef | grep 'vllm serve' | grep -v grep"七、常见问题排查
7.1 查看启动日志
docker logs -f qwen3-vl-deploy7.2 确认端口在监听
docker exec qwen3-vl-deploy bash -c "netstat -tlnp | grep 8800"7.3 确认 NPU 进程
docker exec qwen3-vl-deploy bash -c "npu-smi info | grep 'Process id'"应该看到 8 个进程(TP=8)。
7.4 常见错误
显存不足:
ValueError: Free memory on device (4.6/60.96 GiB) ... less than desired GPU memory utilization (0.94)→docker stop $(docker ps -q)停掉其他容器
tool-call-parser 错误:
KeyError: 'invalid tool call parser: qwen2' 或 'qwen3_coder'→ Qwen3-VL 用hermes,不是 qwen3_coder(qwen3_coder 是编程模型专用)
PyTorch OpenMP 错误:
pool INTERNAL ASSERT FAILED at ParallelOpenMP.cpp→ 挂载主机的 libstdc++.so.6:/usr/lib64/libstdc++.so.6
vLLM 启动后立即退出→ 检查显存是否足够(需停其他容器);检查日志确认具体报错
curl 失败但 vLLM 正在运行→ vLLM 初始化约需 3-5 分钟,期间端口不监听是正常现象,等待即可
