当前位置: 首页 > news >正文

Vllm-0.10.1:vllm bench serve参数说明

一、KVM 虚拟机环境

GPU:4张英伟达A6000(48G)

内存:128G

海光Cpu:128核

大模型:DeepSeek-R1-Distill-Qwen-32B

推理框架Vllm:0.10.1

二、测试命令(random

vllm bench serve \
--backend vllm \
--base-url http://127.0.0.1:9400 \
--endpoint /v1/completions \
--dataset-name random \
--model qwen32b \
--tokenizer  /mnt/data/models/DeepSeek-R1-Distill-Qwen-32B \
--seed 12345 \
--random-input-len 2048 \
--random-output-len 2048 \
--num-prompts 16 \
--request-rate 8 \
--metric-percentiles 95,99 \
--trust-remote-code

三、测试结果

和vllm的启动参数关系很大。

 详见《Vllm-0.10.1:通过vllm bench serve测试TTFT、TPOT、ITL、E2EL四个指标》。

四、测试参数说明

 vllm bench serve --help

4.1、基础配置(Backend & Server)

参数

类型

默认值

说明

--backend

str

"vllm"

指定后端服务类型(如 vllm,openai,openai-chat,openai-audio等)

--base-url

str

None

若使用外部 API(如 OpenAI)或自定义 URL,则指定完整的基础地址如 http://host:port。

--host

str

"127.0.0.1"

本地测试推荐用 127.0.0.1 强制 IPv4,避免 localhost 解析为 IPv6。

--port

int

8000

对接的服务端口,默认为 vLLM 的 8000。

--endpoint

str

"/v1/completions"

API 路径,如 /v1/chat/completions 或 /v1/completions)。

4.1.1、openai和vllm的区别

维度

--backend openai

--backend vllm

协议兼容性

模拟 OpenAI API 协议

使用 vLLM 原生 API 格式

请求格式

发送标准 OpenAI JSON 格式

发送 vLLM 内部格式(简化)

tokenizer 使用方式

仅用于预处理 prompt 长度估算

同左

endpoint 含义

必须匹配 OpenAI 路由(如 /v1/completions

可自定义,但需服务端支持

数据集适配

自动将 sharegpt 转为 messages 数组

同左

灵活性

高(兼容所有 OpenAI 客户端)

低(仅用于 vLLM 内部测试)

4.2、通用数据集参数

参数

类型

默认值

说明

--dataset-name

str

"sharegpt"

可选数据集:sharegpt, burstgpt, sonnet, random, hf, custom。决定从哪加载 prompt。

--dataset-path

str

None

数据路径或 HuggingFace 数据集 ID(如 HuggingFaceH4/ultrachat_200k)。

--no-stream

flag

False

是否禁用流式加载(适用于大文件,减少内存占用)。加此参数表示不流式加载。

4.3、各数据集专属参数

4.3.1、ShareGPT (--dataset-name=sharegpt)

 --sharegpt-output-len  int  None  覆盖原始数据集中每个样本的输出长度,统一设置生成 token 数。

详见《Vllm-0.10.1:通过vllm bench serve测试TTFT、TPOT、ITL、E2EL四个指标》。

4.3.2、Sonnet (--dataset-name=sonnet)

 --sonnet-input-len  int  550  输入长度(模拟诗歌输入)。

--sonnet-output-len  int  150  输出长度。

--sonnet-prefix-len  int  200  前缀 token 数(可用于测试 prefix caching 性能)。

4.3.3、Random (--dataset-name=random)

 --random-input-len  int  1024  每个请求输入 token 数。

--random-output-len  int  128  每个请求输出 token 数。

--random-range-ratio  float  0.0  输入/输出长度采样范围:[len*(1-r), len*(1+r)],实现长度波动(如 0.1 表示 ±10%)。

--random-prefix-len  int  0  在随机 context 前固定添加的 prefix token 数量(测试 KV cache 复用)。

4.3.4、HuggingFace (--dataset-name=hf)

 --hf-subset  str  None  HF 数据集的子集(如 default)。 --hf-split  str  None  数据划分(如 train, test)。 --hf-output-len  int  None  覆盖 HF 数据集中输出长度。

4.3.5、Custom (--dataset-name=custom)

 --custom-output-len  int  256  自定义数据下生成长度。 --custom-skip-chat-template  flag  False  不应用 tokenizer 的 chat template(直接传原始文本)。

4.4、模型与 Tokenizer

参数

类型

默认值

说明

--model

str

required

模型名称(如 meta-llama/Llama-3-8b),必填。

--tokenizer

str

None

指定 tokenizer 名或路径(与 model 不同时使用)。

--tokenizer-mode

str

"auto"

tokenizer 模式:<br>auto: 优先 fast tokenizer<br>slow: 强制使用 slow tokenizer<br>mistral: 使用 mistral_common<br>custom: 使用预注册 tokenizer

--served-model-name

str

None

API 中对外暴露的模型名(可与 --model 不同)。

--trust-remote-code

flag

False

允许加载 HF 上的自定义模型代码(如 ChatGLM)。

4.5、生成控制参数(Sampling)

参数

类型

默认值

说明

--temperature

float

None

温度,0.0 为 greedy decoding。

--top-p

float

None

Nucleus sampling,保留累积概率 top-p 的 token。

--top-k

int

None

仅从 top-k 个 token 中采样。

--min-p

float

None

最小概率阈值,低于此值的 token 被过滤。

4.6、请求调度与并发控制

参数

类型

默认值

说明

--request-rate

float

inf

每秒请求数(RPS)。<br>inf:所有请求同时发出(burst 模式)<br>数值:按 Poisson 或 Gamma 分布生成到达时间。

--burstiness

float

1.0

请求到达的“突发性”:<br>=1: Poisson 过程(随机到达)<br><1: 更突发(短时间密集)<br>>1: 更均匀(接近固定间隔)

--max-concurrency

int

None

最大并发请求数。即使请求速率高,也最多允许这么多并发执行。用于模拟限流系统。

--ramp-up-strategy

str

None

请求速率爬升策略:<br>linear: 线性增长<br>exponential: 指数增长<br>需配合 --ramp-up-start-rps 和 --ramp-up-end-rps 使用。

--ramp-up-start-rps

int

None

爬升起始 RPS(如 1)。

--ramp-up-end-rps

int

None

爬升结束 RPS(如 100),在 benchmark 持续时间内达到。

4.7、解码策略与日志

参数

类型

默认值

说明

--use-beam-search

flag

False

使用 beam search 解码(非采样)。通常用于确定性输出。

--logprobs

int

None

返回每个 token 的 logprob 数量。<br>未设置时:<br>• 非 beam search → 返回 dummy logprob<br>• beam search → 返回 1 个 logprob

--ignore-eos

flag

False

忽略 EOS token,强制生成到 max_tokens。⚠️ 不支持 TGI 和 DeepSpeed-MII。

4.8、评估与结果记录

参数

类型

默认值

说明

--num-prompts

int

1000

总共处理多少个 prompt(影响 benchmark 时长)。

--disable-tqdm

flag

False

禁用进度条显示。

--profile

flag

False

启用 PyTorch Profiler,需服务端设置 VLLM_TORCH_PROFILER_DIR。

--save-result

flag

False

将 benchmark 结果保存为 JSON 文件。

--save-detailed

flag

False

保存详细结果(每个请求的响应、延迟、错误等)。

--append-result

flag

False

若结果文件已存在,追加而非覆盖。

--metadata

KEY=VALUE

None

添加元数据(如 version=0.3.3 tp=1),记录实验配置。

--result-dir

str

.

结果文件保存目录。

--result-filename

str

自动生成

自定义文件名,否则格式为:{backend}-{rps}qps-{model}-{time}.json

--percentile-metrics

str

"ttft,tpot,itl"

计算百分位的指标:

ttft: Time to First Token

tpot: Time per Output Token

itl: Inter-token Latency

e2el: End-to-end Latency

--metric-percentiles

str

"99"

百分位值(如 "25,50,75" 表示 25%/50%/75%)。

--goodput

KEY:VALUE

None

定义“有效吞吐量”(Goodput)的 SLO:<br>例如 --goodput ttft:1000 tpot:100 表示 TTFT ≤1s 且 TPOT ≤100ms 的请求才算成功。<br>参考:DistServe 论文

4.9、请求标识

参数

类型

默认值

说明

--request-id-prefix

str

"benchmark-serving"

所有请求 ID 的前缀,便于追踪日志。

4.10、高级功能:LoRA 支持

参数

类型

默认值

说明

--lora-modules

list(str)

None

指定可用的 LoRA 模块名(如 lora1 lora2)。每个请求会随机选择一个 LoRA 加载,用于测试多适配器切换性能。

http://www.xdnf.cn/news/1477909.html

相关文章:

  • 【完整源码+数据集+部署教程】农作物病害检测系统源码和数据集:改进yolo11-HSFPN
  • Flutter常用库集锦
  • Webpack热更新(HMR)底层原理详解
  • 基于定制开发开源AI智能名片S2B2C商城小程序的DMP平台离线文件上传功能优化研究
  • RK3568 Trust
  • 进程间通信(IPC)方式
  • AgentScope 1.0深度解析:技术架构、使用教程与多智能体开发实践
  • 跟着开题报告学答辩!《 Access学情分析系统的设计与实现》开题答辩实录分享!
  • Linux系统编程守护进程(36)
  • Linux笔记---TCP套接字编程
  • Docker学习笔记-网络类型
  • 【干货推荐】AI助理前端UI组件-悬浮球组件
  • 下载数据集用于图像分类并自动分为训练集和测试集方法
  • Python零基础速成指南:12周从小白到项目实战
  • uniapp | 解决组件样式不生效问题
  • uniapp新增页面及跳转配置方法
  • 【最新版】超级好用的软件卸载工具IObit Uninstaller v15.0.0.8 中文解压即用版 告别残留烦恼
  • 力扣p2009 使数组连续的最少操作数 详解
  • ELFK:企业级日志管理的完整解决方案——从入门到精通
  • 尚硅谷宋红康JVM全套教程(详解java虚拟机)
  • 苍穹外卖项目实战(day-5完整版)-记录实战教程及问题的解决方法
  • 2025高教社国赛数学建模C题参考论文(含模型和代码)
  • 【面试向】人工智能机器学习介绍
  • 【51单片机-B030】【protues仿真】基于51单片机万年历系统
  • 心路历程-passwdusermod命令补充
  • 嵌入式学习——ARM 体系架构1
  • [光学原理与应用-422]:非线性光学 - 计算机中的线性与非线性运算
  • PHP - pack/unpack「字符串/二进制字符串」- 学习/实践
  • Week 15: 深度学习补遗:集成学习初步
  • C++算法学习——链表