vllm bench serve¶
JSON 命令行参数¶
当传递 JSON 命令行参数时,以下几组参数是等效的
--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'--json-arg.key1 value1 --json-arg.key2.key3 value2
此外,列表元素可以使用 + 单独传递
--json-arg '{"key4": ["value3", "value4", "value5"]}'--json-arg.key4+ value3 --json-arg.key4+='value4,value5'
参数¶
--seed¶
默认值: 0
--num-prompts¶
要处理的提示数量。
默认值: 1000
--dataset-name¶
可能选项: sharegpt, burstgpt, sonnet, random, random-mm, random-rerank, hf, custom, prefix_repetition, spec_bench
要进行基准测试的数据集名称。
默认值: random
--no-stream¶
不以流式模式加载数据集。
默认值: False
--dataset-path¶
sharegpt/sonnet 数据集的路径。如果使用 HF 数据集,则是 Huggingface 数据集 ID。
默认值: None
--no-oversample¶
如果数据集样本少于 num-prompts,则不进行过采样。
默认值: False
--skip-chat-template¶
跳过为支持聊天模板的数据集应用聊天模板。
默认值: False
--disable-shuffle¶
禁用数据集样本的随机排序,以实现确定性顺序。
默认值: False
--label¶
基准测试结果的标签(前缀)。如果未指定,则使用 '--backend' 的值作为标签。
默认值: None
--backend¶
可能选项: vllm, openai, openai-chat, openai-audio, openai-embeddings, openai-embeddings-chat, openai-embeddings-clip, openai-embeddings-vlm2vec, infinity-embeddings, infinity-embeddings-clip, vllm-rerank
要用于基准测试的后端或端点的类型。
默认值: openai
--base-url¶
服务器或 API 的基本 URL,如果未使用 http 主机和端口。
默认值: None
--host¶
默认值: 127.0.0.1
--port¶
默认值: 8000
--endpoint¶
API 端点。
默认值: /v1/completions
--header¶
键值对(例如,--header x-additional-info=0.3.3),用于在每次请求中传递的标头。这些标头会覆盖每个后端常量以及通过环境变量设置的值,并且会被其他参数(如请求 ID)覆盖。
默认值: None
--max-concurrency¶
最大并发请求数。这可用于模拟一个更高级别的组件强制执行最大并发请求数的环境。虽然 --request-rate 参数控制请求启动的速率,但此参数将控制一次实际允许执行的请求数量。这意味着,当组合使用时,如果服务器处理请求的速度不够快,实际的请求速率可能会低于 --request-rate 中指定的速率。
默认值: None
--model¶
模型的名称。如果未指定,将从服务器的 /v1/models 端点获取第一个模型。
默认值: None
--input-len¶
数据集的一般输入长度。映射到特定于数据集的输入长度参数(例如,--random-input-len,--sonnet-input-len)。如果未指定,则使用数据集的默认值。
默认值: None
--output-len¶
数据集的一般输出长度。映射到特定于数据集的输出长度参数(例如,--random-output-len,--sonnet-output-len)。如果未指定,则使用数据集的默认值。
默认值: None
--tokenizer¶
分词器的名称或路径,如果未使用默认分词器。
默认值: None
--tokenizer-mode¶
分词器模式
- "auto" will use the tokenizer from `mistral_common` for Mistral models
if available, otherwise it will use the "hf" tokenizer.
- "hf" will use the fast tokenizer if available.
- "slow" will always use the slow tokenizer.
- "mistral" will always use the tokenizer from `mistral_common`.
- "deepseek_v32" will always use the tokenizer from `deepseek_v32`.
- Other custom values can be supported via plugins.
默认值: auto
--use-beam-search¶
默认值: False
--logprobs¶
要计算并作为请求一部分返回的每 token 的 logprobs 数量。如果未指定,则(1)如果禁用束搜索,则不计算 logprobs,并且每个 token 返回一个虚拟 logprob;或者(2)如果启用束搜索,则计算每个 token 的 1 个 logprob。
默认值: None
--request-rate¶
每秒请求数。如果此值为 inf,则所有请求在时间 0 发送。否则,我们使用泊松过程或伽马分布来合成请求到达时间。
默认值: inf
--burstiness¶
请求生成的突发性因子。仅当 request_rate 不是 inf 时生效。默认值为 1,遵循泊松过程。否则,请求间隔遵循伽马分布。较低的突发性值(0 < burstiness < 1)会导致更突发的请求。较高的突发性值(burstiness > 1)会导致更均匀的请求到达。
默认值: 1.0
--trust-remote-code¶
信任来自 Huggingface 的远程代码。
默认值: False
--disable-tqdm¶
指定禁用 tqdm 进度条。
默认值: False
--num-warmups¶
预热请求的数量。
默认值: 0
--profile¶
使用 vLLM 性能分析。--profiler-config 必须在服务器上提供。
默认值: False
--save-result¶
指定将基准测试结果保存到 JSON 文件。
默认值: False
--save-detailed¶
保存结果时,是否包含每个请求的信息,如响应、错误、ttfs、tpots 等。
默认值: False
--append-result¶
将基准测试结果附加到现有的 JSON 文件。
默认值: False
--metadata¶
键值对(例如,--metadata version=0.3.3 tp=1),用于此运行的元数据,以便保存在结果 JSON 文件中以供记录。
默认值: None
--result-dir¶
指定保存基准测试 JSON 结果的目录。如果未指定,则结果保存在当前目录。
默认值: None
--result-filename¶
指定保存基准测试 JSON 结果的文件名。如果未指定,则结果将以 {label}-{args.request_rate}qps-{base_model_id}-{current_dt}.json 格式保存。
默认值: None
--ignore-eos¶
发送基准测试请求时设置 ignore_eos 标志。警告:deepspeed_mii 和 tgi 不支持 ignore_eos。
默认值: False
--percentile-metrics¶
用于报告百分位数的选定指标的逗号分隔列表。此参数指定要报告百分位数的指标。允许的指标名称是 "ttft"(首次 token 延迟)、"tpot"(token 生产时间)、"itl"(token 间延迟)、"e2el"(端到端延迟)。如果未指定,则对于生成模型默认为 "ttft,tpot,itl",对于池化模型默认为 "e2el"。
默认值: None
--metric-percentiles¶
选定指标的百分位数的逗号分隔列表。要报告第 25、50 和第 75 百分位数,请使用 "25,50,75"。默认值为 "99"。使用 "--percentile-metrics" 选择指标。
默认值: 99
--goodput¶
指定服务水平目标(SLO)的 goodput,格式为 "KEY:VALUE" 对,其中 key 是指标名称,value 是毫秒。可以提供多个 "KEY:VALUE" 对,用空格分隔。允许的请求级别指标名称为 "ttft"(首次 token 延迟)、"tpot"(token 生产时间)、"e2el"(端到端延迟)。有关 goodput 定义的更多上下文,请参阅 DistServe 论文:https://arxiv.org/pdf/2401.09670 和博客:https://hao-ai-lab.github.io/blogs/distserve。
默认值: None
--request-id-prefix¶
指定请求 ID 的前缀。
默认值: bench-3d02ebce-
--served-model-name¶
API 中使用的模型名称。如果未指定,模型名称将与 `--model` 参数相同。
默认值: None
--lora-modules¶
在启动服务器时传入的 LoRA 模块名称的子集。对于每个请求,脚本都会随机选择一个 LoRA 模块。
默认值: None
--ramp-up-strategy¶
可能选项: linear, exponential
预热策略。这将用于在基准测试期间将请求速率从初始 RPS 预热到最终 RPS 速率(由 --ramp-up-start-rps 和 --ramp-up-end-rps 指定)。
默认值: None
--ramp-up-start-rps¶
预热的起始请求速率(RPS)。使用 --ramp-up-strategy 时需要指定。
默认值: None
--ramp-up-end-rps¶
预热的结束请求速率(RPS)。使用 --ramp-up-strategy 时需要指定。
默认值: None
--ready-check-timeout-sec¶
等待端点就绪的最大时间(秒)(默认值:600 秒 / 10 分钟)。如果设置为 0,则跳过就绪检查。
默认值: 600
--extra-body¶
一个 JSON 字符串,表示要在每个请求中包含的额外正文参数。例如:'{"chat_template_kwargs":{"enable_thinking":false}}'
默认值: None
自定义数据集选项¶
--custom-output-len¶
每个请求的输出 token 数,仅用于自定义数据集。
默认值: 256
spec bench 数据集选项¶
--spec-bench-output-len¶
每个请求的输出 token 数,仅用于 spec bench 数据集。
默认值: 256
--spec-bench-category¶
spec bench 数据集的类别。如果为 None,则使用所有类别。
默认值: None
sonnet 数据集选项¶
--sonnet-input-len¶
每个请求的输入 token 数,仅用于 sonnet 数据集。
默认值: 550
--sonnet-output-len¶
每个请求的输出 token 数,仅用于 sonnet 数据集。
默认值: 150
--sonnet-prefix-len¶
每个请求的 prefix token 数,仅用于 sonnet 数据集。
默认值: 200
sharegpt 数据集选项¶
--sharegpt-output-len¶
每个请求的输出长度。将覆盖 ShareGPT 数据集中的输出长度。
默认值: None
blazedit 数据集选项¶
--blazedit-min-distance¶
blazedit 数据集的最小距离。最小值:0,最大值:1.0
默认值:0.0
--blazedit-max-distance¶
blazedit 数据集的最大距离。最小值:0,最大值:1.0
默认值: 1.0
random 数据集选项¶
--random-input-len¶
每个请求的输入 token 数,仅用于随机采样。
默认值: 1024
--random-output-len¶
每个请求的输出 token 数,仅用于随机采样。
默认值: 128
--random-range-ratio¶
用于采样输入/输出长度的范围比例,仅用于随机采样。必须在 [0, 1) 范围内,以定义一个对称的采样范围 [length * (1 - range_ratio), length * (1 + range_ratio)]。
默认值:0.0
--random-prefix-len¶
请求中随机上下文之前的固定前缀 token 数。总输入长度是 random-prefix-len 和从 [input_len * (1 - range_ratio), input_len * (1 + range_ratio)] 采样的随机上下文长度的总和。
默认值: 0
--random-batch-size¶
随机采样的批量大小。仅用于嵌入基准测试。
默认值: 1
--no-reranker¶
模型是否支持重排(reranking)功能。仅用于重排基准测试。
默认值: False
random multimodal 数据集选项,扩展自 random 数据集¶
--random-mm-base-items-per-request¶
random-mm 的每请求基础多模态项目数。实际每请求计数将在该基础值周围采样,使用 --random-mm-num-mm-items-range-ratio。
默认值: 1
--random-mm-num-mm-items-range-ratio¶
用于采样每个请求项目数的范围比例 r,取值范围为 [0, 1]。我们从闭区间 [floor(n*(1-r)), ceil(n*(1+r))] 中均匀采样,其中 n 是基础每请求项目数。r=0 表示固定;r=1 表示允许 0 个项目。最大值将被限制在 --random-mm-limit-mm-per-prompt 中每模态的总限制。如果计算出的最小值超过最大值,则会引发错误。
默认值:0.0
--random-mm-limit-mm-per-prompt¶
每请求多模态项目的硬上限,例如 '{"image": 3, "video": 0}'。采样的每请求项目数将被限制在这些限制的总和。当某个模态达到其上限时,其存储桶将被排除,并重新标准化概率。注意:目前仅支持图像采样。
默认值: {'image': 255, 'video': 1}
--random-mm-bucket-config¶
存储桶配置是一个字典,将多模态项目采样配置映射到概率。目前支持 2 种模态:图像和视频。存储桶键是 (height, width, num_frames) 的元组,值是采样该特定项目的概率。例如:--random-mm-bucket-config {(256, 256, 1): 0.5, (720, 1280, 1): 0.4, (720, 1280, 16): 0.10} 第一个项目:分辨率为 256x256 的图像,概率为 0.5。第二个项目:分辨率为 720x1280 的图像,概率为 0.4。第三个项目:分辨率为 720x1280、16 帧的视频,概率为 0.1。注意:如果概率总和不为 1,则会进行标准化。注意 bis:目前仅支持图像采样。
默认值: {(256, 256, 1): 0.5, (720, 1280, 1): 0.5, (720, 1280, 16): 0.0}
hf 数据集选项¶
--hf-subset¶
HF 数据集的子集。
默认值: None
--hf-split¶
HF 数据集的分割。
默认值: None
--hf-name¶
HuggingFace 上数据集的名称(例如,'lmarena-ai/VisionArena-Chat')。如果您的 dataset-path 是本地路径,则需要指定此项。
默认值: None
--hf-output-len¶
每个请求的输出长度。将覆盖从采样的 HF 数据集中获取的输出长度。
默认值: None
prefix repetition 数据集选项¶
--prefix-repetition-prefix-len¶
每个请求的 prefix token 数,仅用于 prefix repetition 数据集。
默认值: 256
--prefix-repetition-suffix-len¶
每个请求的 suffix token 数,仅用于 prefix repetition 数据集。总输入长度为 prefix_len + suffix_len。
默认值: 256
--prefix-repetition-num-prefixes¶
要生成的 prefix 数量,仅用于 prefix repetition 数据集。每个 prefix 的提示数量为 num_requests // num_prefixes。
默认值: 10
--prefix-repetition-output-len¶
每个请求的输出 token 数,仅用于 prefix repetition 数据集。
默认值: 128
采样参数¶
--top-p¶
Top-p 采样参数。仅对 openai 兼容的后端有效。
默认值: None
--top-k¶
Top-k 采样参数。仅对 openai 兼容的后端有效。
默认值: None
--min-p¶
Min-p 采样参数。仅对 openai 兼容的后端有效。
默认值: None
--temperature¶
Temperature 采样参数。仅对 openai 兼容的后端有效。如果未指定,则默认为贪婪解码(即 temperature==0.0)。
默认值: None
--frequency-penalty¶
Frequency penalty 采样参数。仅对 openai 兼容的后端有效。
默认值: None
--presence-penalty¶
Presence penalty 采样参数。仅对 openai 兼容的后端有效。
默认值: None
--repetition-penalty¶
Repetition penalty 采样参数。仅对 openai 兼容的后端有效。
默认值: None
--common-prefix-len¶
所有提示共享的公共前缀长度(由 random 数据集使用)。
默认值: None