昇腾 310P Docker 部署 Qwen3.8-27B W8A8(vLLM-Ascend + MCP)

  |   0 评论   |   0 浏览

环境:麒麟 / 统信 UOS,310P×4,对接小 U 同学,支持 MCP 工具调用,中文思考模板

一、准备

  1. 模型路径:/data/models/Qwen3.8-27B-w8a8-310p/
  2. 中文模板:同目录下新建 chat_template_cn.jinja(不改动原版模板)
  3. 权限:chmod -R 755 /data/models

二、启动命令

docker run -d  --name vllm-qwen27b \
--env ASCEND_RT_VISIBLE_DEVICES=0,1,2,3 \
--device=/dev/davinci0 --device=/dev/davinci1 --device=/dev/davinci2 --device=/dev/davinci3 \
--device=/dev/davinci_manager --device=/dev/devmm_svm --device=/dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi:ro \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi:ro \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/:ro \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info:ro \
-v /etc/ascend_install.info:/etc/ascend_install.info:ro \
-v /data/models:/models \
-p 8099:8000 \
m.daocloud.io/quay.io/ascend/vllm-ascend:v0.23.0-310p \
vllm serve /models/Qwen3.8-27B-w8a8-310p \
--served-model-name qwen-3.8 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.85 \
--host 0.0.0.0 --port 8000 \
--trust-remote-code \
--language-model-only \
--dtype float16 \
--max-model-len 262144 \
--max-num-seqs 8 \
--compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY","cudagraph_capture_sizes":[1,8]}' \
--additional-config '{"ascend_compilation_config":{"enable_npugraph_ex":false}}' \
--enable-auto-tool-choice \
--tool-call-parser qwen3_xml \
--chat-template /models/Qwen3.8-27B-w8a8-310p/chat_template_cn.jinja

端口:宿主机 8099,OpenAI 接口地址:http://IP:8099/v1

chat_template_cn.jinja是为了推理输出显示中文

三、常用运维

# 实时日志
docker logs -f vllm-qwen27b
# 停删
docker stop vllm-qwen27b && docker rm vllm-qwen27b

四、测试 curl

curl http://192.168.13.97:8099/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model":"qwen-3.8",
"messages":[{"role":"user","content":"查看当前目录文件"}],
"tools":[{"type":"function","function":{"name":"list_dir","description":"列出文件夹文件","parameters":{"type":"object","properties":{"path":{"type":"string"}},"required":["path"]}}}],
"tool_choice":"auto",
"temperature":0.35,
"top_p":0.8,
"max_tokens":512
}'

五、对接小 U 同学

  1. 添加自定义 OpenAI 模型,地址填 http://IP:8099/v1,模型名 qwen-3.8
  2. 推理参数:temperature=0.35,top_p=0.8
  3. 兜底提示词:思考必须使用中文,工具调用遵循 <tool_call>格式

六、踩坑速查

  1. NPUGraph 捕获报错 507903:当前配置仅 Decode 开 Graph;追求稳定改为 cudagraph_mode":"NONE"
  2. 思考一直英文:MCP 工具描述全部改为中文,不要 temperature=0
  3. MCP 报错:必须成对携带 --enable-auto-tool-choice --tool-call-parser qwen3_xml
  4. 找不到模板:核对容器内 /models 路径和文件名

七、说明

  • TP=4 4 卡张量并行,纯文本推理,关闭多模态
  • 模板仅修改提示文字,<tool_call>等标签不可改动,保证 MCP 正常解析
  • 长上下文 256k,上下文越大,并发越低

标题:昇腾 310P Docker 部署 Qwen3.8-27B W8A8(vLLM-Ascend + MCP)
作者:zytops
地址:https://www.zytops.com/articles/2026/11/05/1793847853872.html