跳到主要内容

快速开始

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


模型部署

方式一:使用 vLLMViewer

启动 vLLMViewer

进入容器后执行:

/workspace/vllmviewer

执行后,默认会在 8888 端口启动 Web 服务。使用浏览器访问:

http://<你的机器IP>:8888

在页面中配置并启动服务

进入页面后,按以下顺序完成配置:

  1. 选择模型路径:在模型路径栏填写或选择本地模型目录,例如 /data/llm_models/Qwen3.5-35B-A3B
  2. 设置并行参数:根据硬件资源配置张量并行数,例如 tensor_parallel_size=4
  3. 设置上下文与显存参数
    • max_model_len:最大上下文长度(输入 + 输出 token 总数)。
    • block_size:KV Cache 块大小。
    • gpu_memory_utilization:GPU 显存使用率上限(0.0 ~ 1.0)。
  4. 点击启动:确认参数无误后点击启动按钮,等待服务状态变为“运行中”。

功能说明

功能区域说明
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