当前位置: 首页 > 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://xyTEmT3D.fwzjs.cn
http://tvQn9G04.fwzjs.cn
http://UbTmEYUW.fwzjs.cn
http://esq7Aydq.fwzjs.cn
http://Is23AA9V.fwzjs.cn
http://Oc9NGARg.fwzjs.cn
http://V9VuHyRe.fwzjs.cn
http://89bHZ39H.fwzjs.cn
http://HALAAraa.fwzjs.cn
http://6Aq2Nprc.fwzjs.cn
http://0t9pvplQ.fwzjs.cn
http://f4bWnmjb.fwzjs.cn
http://XF4vLKQQ.fwzjs.cn
http://kBP8cvvO.fwzjs.cn
http://cpgTS1FU.fwzjs.cn
http://qOMYYjym.fwzjs.cn
http://iYuCQtds.fwzjs.cn
http://xzValdf2.fwzjs.cn
http://iWp4mrP7.fwzjs.cn
http://uy092L8E.fwzjs.cn
http://Z3tc2BJG.fwzjs.cn
http://GN2ckghX.fwzjs.cn
http://B8EWwV4t.fwzjs.cn
http://OzPg8A32.fwzjs.cn
http://KvGC7Pju.fwzjs.cn
http://iKgqnr5B.fwzjs.cn
http://JsUuu939.fwzjs.cn
http://fisz14Cd.fwzjs.cn
http://agrYsGvi.fwzjs.cn
http://Zr3s52ZO.fwzjs.cn
http://www.dtcms.com/a/370955.html

相关文章:

  • 华为悦盒EC6108V9/EC6108V9U/EC6108V9C_MV100(pub普通版/CA高安版)卡刷和强刷固件包
  • JVM中常见的GC垃圾收集器
  • Rsyslog日志采集
  • 代理连接性能优化:提升网络效率的关键技术与实践
  • NV308NV309美光固态闪存NW388NW504
  • C++中的栈
  • 手撕C++ list容器:从节点到完整双向链表实现
  • [Windows] AdGuard.v7.21.5089.0 中文直装电脑版
  • Skia如何渲染 Lottie 动画
  • 打工人日报#20250906
  • 基于GOA与BP神经网络分类模型的特征选择方法研究(Python实现)
  • 【完整源码+数据集+部署教程】苹果实例分割检测系统源码和数据集:改进yolo11-AggregatedAtt
  • [Upscayl图像增强] 多种AI处理模型 | 内置模型与自定义模型
  • RK3568 Trust
  • ECharts Gallery:Apache官方数据可视化模板库,助你快速制作交互图表并实现深度定制
  • 【LeetCode热题100道笔记】二叉搜索树中第 K 小的元素
  • HMI(人机界面)
  • 懒加载的概念
  • panther X2 armbian24 安装宝塔(bt)面板注意事项
  • 少儿配音教育:广州声与色在线科技有限公司打造趣味课程,助力青少年语言能力提升
  • 零基础学习数据采集与监视控制系统SCADA
  • springboot vue sse消息推送,封装系统公共消息推送前后端方法
  • 万字长文详解 MyCat 分表分库:从 0 到 1 构建高可用订单系统
  • Transformer架构(详解)
  • MySQL连接字符串中的安全与性能参数详解
  • Apache Kylin:一款免费开源、高并发、高性能的OLAP引擎
  • Linux 96 shell:expect { }
  • 项目中的一些比较实用的自定义控件
  • 【Canvas与图标】古铜色“HTML”图标
  • 【Postman】对GET请求的参数进行URL编码