快速开始
环境准备完成后,本文介绍如何快速部署模型并进行推理测试。
模型部署
方式一:使用 vLLMViewer
启动 vLLMViewer
进入容器后执行:
/workspace/vllmviewer
执行后,默认会在 8888 端口启动 Web 服务。使用浏览器访问:
http://<你的机器IP>:8888
在页面中配置并启动服务
进入页面后,按以下顺序完成配置:
- 选择模型路径:在模型路径栏填写或选择本地模型目录,例如
/data/llm_models/Qwen3.5-35B-A3B。 - 设置并行参数:根据硬件资源配置张量并行数,例如
tensor_parallel_size=4。 - 设置上下文与显存参数:
max_model_len:最大上下文长度(输入 + 输出 token 总数)。block_size:KV Cache 块大小。gpu_memory_utilization:GPU 显存使用率上限(0.0 ~ 1.0)。
- 点击启动:确认参数无误后点击启动按钮,等待服务状态变为“运行中”。
功能说明
| 功能区域 | 说明 |
|---|---|
| GPU 状态面板 | 左侧实时显示 GPU 使用率、显存占用等信息 |
| 模型部署 | 从指定目录加载模型,选择部署 GPU,一键启动服务 |
| 进程状态 | 查看和管理当前运行的 vLLM 服务进程,支持关闭 |
| 发起请求 | 发送单次自定义请求,验证模型响应 |
| Benchmark | 大规模压测,结果自动保存至 benchmark/ 目录 |
| 日志查看 | 实时查看任意服务的运行日志 |
最佳配置加载
vLLMViewer 支持读取模型最佳配置。在用户不强制指定配置的情况下,启动服务时会自动采用该模型的最佳配置运行。
方式二:手动部署
命令行直接启动
如需纯命令行部署,可直接使用 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
适用于追求极致推理性能的场景。首次启用时,建议设置 VLLM_DISABLE_COMPILE_CACHE=1 以避免编译缓存带来的潜在问题。
# 首次启动时建议关闭编译缓存
export VLLM_DISABLE_COMPILE_CACHE=1
vllm serve /data/llm_models/Qwen3.5-35B-A3B \
--trust-remote-code \
--tensor-parallel-size 4 \
--max-model-len 512 \
--block-size 32 \
--attention-backend FLASH_ATTN \
--gpu-memory-utilization 0.8 \
--compilation_config.custom_ops=["all"]
方式三:使用 deploy.sh 一键部署
容器内提供 /workspace/deploy.sh 脚本,可基于模型最佳配置一键启动服务。
bash /workspace/deploy.sh /path/to/model {Model_Name} {Port}
参数说明:
| 参数 | 说明 |
|---|---|
/path/to/model | 本地模型目录路径 |
{Model_Name} | 服务模型名称 |
{Port} | 服务监听端口 |
脚本会自动加载模型对应的最佳配置(best config),无需手动指定并行参数、上下文长度等;如需覆盖,可在脚本基础上追加自定义参数。
部署后验证
服务启动后,可通过以下方式确认其运行状态:
- 页面验证:若使用
vllmviewer,在“进程状态”页面查看对应进程是否显示为“运行中”。 - 端口验证:在服务器终端执行以下命令,检查服务端口是否处于监听状态(将
39000替换为实际服务端口):
ss -lntp | rg 39000
模型推理
服务启动后,可通过 HTTP API 进行推理。默认监听端口 8000(如未指定 --port),vLLMViewer 默认使用 39000。
单次 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替换为实际服务端口号(vLLMViewer 部署时默认为39000) - 将
"Qwen3-8B"替换为启动服务时指定的--served-model-name
性能基准测试
方式一:vLLMViewer Benchmark
在 vLLMViewer 的 Benchmark Tab 中,选择模型和测试配置后即可一键压测,结果自动展示并保存。
方式二: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

