跳到主要内容

模型部署

该版本支持模型的部署脚本示例,请参考 vLLM-MUSA serving recipes

下文以 Qwen3.6-27B-FP8 为例,说明如何在已启动的容器内单机部署并验证模型。环境检查及 vLLM 容器启动见 环境准备

重要提示
  • 脚本参数设置以 4K 输入、1K 输出、TTFT ≤ 2s、TPOT ≤ 40ms 为目标,当流量形态、并发、时延目标不同时,请根据需要进行调优,如 max-num-batched-tokensmax-num-seqsgraph capture 等参数。

  • FP8、MTP 和 CUDA Graph 路径对权重版本、框架/算子库版本和输入 shape 敏感,生产部署前应完成真实请求和语义检查。

部署 Qwen3.6-27B

将模型权重存放至 vLLM 容器挂载的模型目录,例如宿主机 /data/models/Qwen3.6-27B-FP8

modelscope download --model Qwen/Qwen3.6-27B-FP8 --local_dir /data/models/Qwen3.6-27B-FP8

进入 vLLM 容器:

docker exec -ti vllm-service bash

vLLM 容器内启动服务:

export VLLM_PLUGINS=musa,musa_custom_ops
export VLLM_WORKER_MULTIPROC_METHOD=spawn
export PYTHONUNBUFFERED=1
export SAFETENSORS_FAST_GPU=1

CAPTURE_SIZES="$(seq -s, 4 4 512)"

vllm serve /models/Qwen3.6-27B-FP8 \
--trust-remote-code \
--tensor-parallel-size 2 \
--served-model-name Qwen3.6-27B-FP8 \
--max-model-len 8192 \
--max-num-seqs 128 \
--max-num-batched-tokens 8192 \
--gpu-memory-utilization 0.80 \
--mamba-ssm-cache-dtype float32 \
--no-enable-prefix-caching \
--no-enable-chunked-prefill \
--attention-config '{"backend":"FLASH_ATTN"}' \
--compilation-config "{\"mode\":\"NONE\",\"cudagraph_mode\":\"FULL_DECODE_ONLY\",\"cudagraph_capture_sizes\":[${CAPTURE_SIZES}]}" \
--speculative-config '{"method":"qwen3_5_mtp","num_speculative_tokens":3}'

验证推理服务 API

服务默认监听 8000 端口。先确认模型已注册:

curl -sS http://127.0.0.1:8000/v1/models

再发送一条对话请求:

curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3.6-27B-FP8",
"messages": [{"role": "user", "content": "你好,请用一句话介绍你自己。"}],
"max_tokens": 64,
"temperature": 0
}'

也可用 Python 客户端验证:

from openai import OpenAI

client = OpenAI(api_key="EMPTY", base_url="http://127.0.0.1:8000/v1")
response = client.chat.completions.create(
model="Qwen3.6-27B-FP8",
messages=[{"role": "user", "content": "Hello"}],
temperature=0,
)
print(response.choices[0].message.content)

返回非空 content 即表示推理服务可用。