参数说明#

执行 evalscope perf --help 可获取全部参数说明。

基本设置#

参数

类型

说明

默认值

--model

str

测试模型名称,或模型路径

-

--url

str

API地址,支持/chat/completion/completion端点

-

--name

str

wandb/swanlab数据库结果名称和结果数据库名称

{model_name}_{current_time}

--api

str

服务API类型
openai: OpenAI兼容API(需提供--url
openai_embedding: OpenAI兼容Embedding API
openai_rerank: OpenAI/Cohere兼容Rerank API
local: 启动本地transformers推理
local_vllm: 启动本地vLLM推理服务
• 自定义:参考自定义API指南

-

--port

int

本地推理服务端口
仅对locallocal_vllm有效

8877

--attn-implementation

str

Attention实现方式
仅在api=local时有效

None
(可选:flash_attention_2eagersdpa

--api-key

str

API密钥

None

--debug

bool

是否输出调试信息

False

网络配置#

参数

类型

说明

默认值

--total-timeout

int

每个请求的总超时时间(秒)

21600(6小时)

--connect-timeout

int

网络连接超时(秒)

None

--read-timeout

int

网络读取超时(秒)

None

--headers

str

额外的HTTP头
格式:key1=value1 key2=value2
将用于每个查询

-

--no-test-connection

bool

不发送连接测试,直接开始压测

False

请求控制#

参数

类型

说明

默认值

--parallel

list[int]

并发请求的数量
可传入多个值,空格分隔

1

--number

list[int]

发出的请求总数量
可传入多个值(需与parallel一一对应)

1000

--rate

float

请求生成速率(请求/秒)
-1: 请求不限速,立即全部生成并放入队列
> 0: 请求按泊松到达模型生成,生成间隔服从均值为 1/rate 的指数分布,即平均每秒生成 rate 个请求

-1

--log-every-n-query

int

每N个查询记录日志

100

--stream

bool

是否使用SSE流输出
需要启用以测量TTFT(Time to First Token)指标

True

--sleep-interval

int

每次性能测试之间的休眠时间(秒)
避免过载服务器

5

--open-loop

bool

启用开放环路(open-loop)模式:
请求按 --rate 指定的速率发出,无论服务端是否已处理完之前的请求。
--rate 变为扫描变量(支持多值)
--number 须与 --rate 等长,表示每轮发出的请求总数
--parallel 在此模式下被忽略(内部设为 -1 / INF)
详见使用示例

False

小技巧

Closed-loop 模式(默认)Open-loop 模式--open-loop)的参数行为对比:

Closed-loop(默认)

Open-loop(--open-loop

--rate

控制请求入队速率(-1 不限速,R 为泊松到达均值)

控制请求发出速率;必须 > 0;支持多值(如 5 10 20),每个值对应一轮独立压测

--number

每轮总请求数,与 --parallel 等长

每轮总请求数,须与 --rate 等长

--parallel

同时在飞行中的最大请求数;每个 worker 收到响应后才发下一条(背压保护

被忽略,并发上限为无穷大(INF);请求按调度立即发出,不等待响应

适用场景

测量服务在受控并发下的延迟与吞吐

模拟真实流量(请求到达与服务时间无关);扫描多速率点的吞吐-延迟曲线

SLA设置#

参数

类型

说明

默认值

--sla-auto-tune

bool

是否启用SLA自动调优模式

False

--sla-variable

str

自动调优的变量
可选:parallel(并发数)、rate(请求速率)

parallel

--sla-params

str

SLA约束条件
JSON字符串
支持指标:avg_latency, p99_latency, avg_ttft, p99_ttft, avg_tpot, p99_tpot, rps, tps
支持操作符:<=, <, min (延时类); >=, >, max (吞吐类)
示例:'[{"p99_latency": "<=2"}]'

None

--sla-upper-bound

int

被调优变量的搜索上界

65536

--sla-lower-bound

int

被调优变量的搜索下界

1

--sla-fixed-parallel

int

--sla-variable=rate 时使用的固定并发数;未设置时默认回退到 --sla-upper-bound 以兼容旧行为

None

--sla-num-runs

int

每个并发级别的运行次数(取平均值)

3

--sla-number-multiplier

float

每次测试时请求总数相对于被调优变量(并发数或速率)的倍数,即 number = round(variable × N);未设置时默认为 2

None

参见

SLA自动调优功能使用详见自动调优指南

Prompt设置#

参数

类型

说明

默认值

--max-prompt-length

int

最大输入prompt长度
超过该值时将丢弃prompt

131072

--min-prompt-length

int

最小输入prompt长度
小于该值时将丢弃prompt

0

--prefix-length

int

prompt的前缀长度
仅对random数据集有效

0

--prompt

str

指定请求prompt
字符串或本地文件(通过@/path/to/file指定)
优先级高于dataset
示例:@./prompt.txt

-

--query-template

str

指定查询模板
JSON字符串或本地文件(通过@/path/to/file指定)
示例:@./query_template.json

-

--apply-chat-template

bool

是否应用聊天模板

None(根据URL后缀自动判断)

--image-width

int

随机VL数据集图像宽度

224

--image-height

int

随机VL数据集图像高度

224

--image-format

str

随机VL数据集图像格式

RGB

--image-num

int

随机VL数据集图像数量

1

--image-patch-size

int

图像的patch大小
仅用于本地图像token计算

28

数据集配置#

参数

类型

说明

默认值

--dataset

str

数据集模式,详见下表

-

--dataset-path

str

数据集文件路径
与数据集结合使用

-

dataset 模式说明#

文本对话类

模式

说明

支持dataset-path

openqa

从ModelScope自动下载OpenQA
prompt长度较短(一般<100 token)
指定dataset_path时使用jsonl文件的question字段

longalpaca

从ModelScope自动下载LongAlpaca-12k
prompt长度较长(一般>6000 token)
指定dataset_path时使用jsonl文件的instruction字段

line_by_line

逐行将txt文件的每一行作为一个prompt
必需提供dataset_path

✓(必需)

random

根据prefix-lengthmax-prompt-lengthmin-prompt-length随机生成prompt
必需指定tokenizer-path
使用示例

custom

自定义数据集解析器
参考自定义数据集指南

多模态类

模式

说明

支持dataset-path

flickr8k

从ModelScope自动下载Flick8k
构建图文输入,数据集较大,适合评测多模态模型

kontext_bench

从ModelScope自动下载Kontext-Bench
构建图文输入,约1000条数据,适合快速评测多模态模型

random_vl

随机生成图像和文本输入
random基础上增加图像相关参数
使用示例

Embedding 类

模式

说明

支持dataset-path

embedding

从文件加载文本数据评测Embedding模型
支持Line-by-line(TXT)或JSONL格式(含text字段)

✓ (必需)

random_embedding

根据max-prompt-lengthmin-prompt-length随机生成query评测Embedding模型
必需指定tokenizer-path

embedding_batch

批量发送文本数据评测Embedding模型
从文件加载数据
支持--extra-args '{"batch_size": 8}'设置批次大小

✓ (必需)

random_embedding_batch

批量发送根据max-prompt-lengthmin-prompt-length随机生成query数据评测Embedding模型
必需指定tokenizer-path
支持--extra-args '{"batch_size": 8}'设置批次大小

Rerank 类

模式

说明

支持dataset-path

rerank

从文件加载Query-Document对评测Rerank模型
支持JSONL格式 (含querydocuments字段)

✓ (必需)

random_rerank

根据max-prompt-lengthmin-prompt-length随机生成query数据评测Rerank模型
必需指定tokenizer-path
支持--extra-args '{"num_documents": 10, "document_length_ratio": 5}'设置文档数量和相对query的长度倍数

多轮对话类

需配合 --multi-turn 使用,详见多轮对话压测指南

模式

说明

支持dataset-path

random_multi_turn

合成多轮对话,每轮随机生成 token 序列
必需 --tokenizer-path--max-turns
使用示例

share_gpt_zh_multi_turn

从 ModelScope 自动下载中文 ShareGPT 数据集(约 70k 条),保留完整多轮对话
使用示例

share_gpt_en_multi_turn

从 ModelScope 自动下载英文 ShareGPT 数据集(约 70k 条),保留完整多轮对话

custom_multi_turn

使用本地 JSONL 文件作为自定义多轮对话数据集
每行为 OpenAI messages 格式的 JSON 数组,适合已有对话数据直接压测
必需提供dataset_path
使用示例

✓(必需)

模型设置#

参数

类型

说明

默认值

--tokenizer-path

str

分词器权重路径
用于计算输入和输出的token数量
通常与模型权重在同一目录

None

--frequency-penalty

float

frequency_penalty值

-

--logprobs

bool

是否返回对数概率

-

--max-tokens

int

可以生成的最大token数量

-

--min-tokens

int

生成的最少token数量
注意:并非所有模型服务都支持
对于vLLM>=0.8.1,需额外设置
--extra-args '{"ignore_eos": true}'

-

--n-choices

int

生成的补全选择数量

-

--seed

int

随机种子

None

--stop

str

停止生成的tokens

-

--stop-token-ids

list[int]

停止生成的token ID列表

-

--temperature

float

采样温度

0

--top-p

float

top_p采样

-

--top-k

int

top_k采样

-

--extra-args

str

额外传入请求体的参数
JSON字符串格式
示例:'{"ignore_eos": true}'

-

--tokenize-prompt

bool

在客户端将prompt tokenize为token ID列表,绕过服务端重新tokenize,通过/v1/completions直接发送

False

数据存储#

参数

类型

说明

默认值

--visualizer

str

可视化工具
可选:wandbswanlabclearml
设置后指标将保存到指定工具

None

--enable-progress-tracker

bool

是否开启进度追踪,将层级压测进度实时写入progress.json,可通过服务接口查询

False

--wandb-api-key

str

wandb API密钥
已废弃,请使用--visualizer wandb

-

--swanlab-api-key

str

swanlab API密钥
已废弃,请使用--visualizer swanlab

-

--outputs-dir

str

输出文件路径

./outputs

--no-timestamp

bool

输出目录不包含时间戳

False

多轮对话设置#

参数

类型

说明

默认值

--multi-turn

bool

启用多轮对话压测模式;--number 表示总发送 turn 数,--parallel 表示并发 turn 数

False

--min-turns

int

每个对话最少用户轮数,仅 random_multi_turn 使用

1

--max-turns

int

每个对话最多用户轮数;random_multi_turn 必需;ShareGPT 数据集可选,用于截断过长对话

None

参见

多轮对话压测使用详见多轮对话压测指南

其他参数#

参数

类型

说明

默认值

--db-commit-interval

int

在写入SQLite数据库前缓冲的行数

1000

--queue-size-multiplier

int

请求队列的最大大小
计算方式:parallel * multiplier

5

--in-flight-task-multiplier

int

最大调度任务数
计算方式:parallel * multiplier

2