跳到主要内容

快速开始

环境准备完成后,本文介绍如何快速部署模型并进行推理测试。


模型部署​

方式一:手动部署​

命令行直接启动​

如需纯命令行部署,可直接使用 vllm serve 启动服务。以下提供两种模式供选择。

不启用 MUSAGraph​

适用于显存较紧张或需要快速启动的场景。此模式会减少显存占用和启动时间,但推理性能略低于 MUSAGraph 模式。

vllm serve /data/llm_models/Qwen3.5-35B-A3B \
--trust-remote-code \
--enforce-eager \
--tensor-parallel-size 4 \
--max-model-len 512 \
--block-size 32 \
--attention-backend FLASH_ATTN \
--gpu-memory-utilization 0.8
启用 MUSAGraph​

适用于追求更高推理性能的场景。以下示例使用 Qwen3.6-35B-A3B,并将模型切分到 4 张 GPU:

vllm serve /data/nfs_shared/models/Qwen3.6-35B-A3B \
--host 127.0.0.1 \
--port 18014 \
--gpu-memory-utilization 0.80 \
--served-model-name Model \
--max-num-seqs 1 \
--max-model-len 10240 \
--max-num-batched-tokens 10240 \
--block-size 32 \
--tensor-parallel-size 4 \
--attention-config.backend FLASH_ATTN \
--mm-encoder-attn-backend TORCH_SDPA \
--generation-config vllm \
--override-generation-config '{"temperature":0}' \
--default-chat-template-kwargs '{"enable_thinking":false}' \
--disable-custom-all-reduce \
--speculative-config '{"method":"mtp","num_speculative_tokens":4}' \
--language-model-only \
--compilation-config '{"mode":"VLLM_COMPILE","cudagraph_mode":"FULL_AND_PIECEWISE","cudagraph_capture_sizes":[5],"max_cudagraph_capture_size":5}'

请根据实际模型路径、端口和 GPU 数量调整命令。模型的推荐参数可参考容器内的 vllm/musa_tools/config.json。

方式二:使用 deploy.sh 一键部署​

容器内提供 /workspace/deploy.sh 脚本,可基于模型最佳配置一键启动服务。

bash /workspace/deploy.sh /path/to/model {Model_Name} {Port}

参数说明:

参数说明
/path/to/model本地模型目录路径
{Model_Name}服务模型名称
{Port}服务监听端口

脚本会自动加载模型对应的最佳配置(best config),无需手动指定并行参数、上下文长度等;如需覆盖,可在脚本基础上追加自定义参数。

部署后验证​

服务启动后,可通过以下方式确认其运行状态:

  • 端口验证:在服务器终端执行以下命令,检查服务端口是否处于监听状态(将 18014 替换为实际服务端口):
ss -lntp | rg 18014

模型推理​

服务启动后,可通过 HTTP API 进行推理。默认监听端口为 8000(如未指定 --port)。

单次 Completions 测试​

curl http://127.0.0.1:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-8B",
"prompt": "The capital of China is",
"max_tokens": 256,
"temperature": 0,
"stream": true
}'

单次 Chat 测试​

curl http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-8B",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "1+1等于几?"}
]
}'
参数替换提醒
  • 将 8000 替换为实际服务端口号
  • 将 "Qwen3-8B" 替换为启动服务时指定的 --served-model-name

性能基准测试​

方式一:query.sh 脚本​

容器内提供 /workspace/query.sh 脚本,支持批量压测和报告生成。

脚本能力​

  • 运行多种配置组合(不同输入/输出长度、并发数)
  • 生成包含详细指标的 CSV 报告
  • 结果按时间戳命名保存

使用方法​

编辑 /workspace/query.sh 修改以下变量:

变量说明
MODEL_PATH模型权重路径
SERVED_MODEL_NAME服务名(与 --served-model-name 一致)
PORT服务端口
CONFIGS测试配置数组,每项为 (input_len, output_len, num_prompts)

然后执行:

bash /workspace/query.sh

方式二:vllm-perf​

容器内提供 vllm-perf,会根据 GPU 平台读取 vllm/musa_tools/config.json 中的推荐参数并启动性能测试:

vllm-perf Qwen3.6-35B-A3B --max-concurrency=1 --port=18014

批量测试重点模型时,在完成容器基础验证后执行:

bash vllm_L0_regression_test.sh

测试日志保存在容器内的 /workspace/bench_log。