参数说明
执行 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) • local: 启动本地transformers推理 • local_vllm: 启动本地vLLM推理服务 • 自定义:参考自定义API指南 |
- |
--port
|
int
|
本地推理服务端口 仅对local和local_vllm有效 |
8877
|
--attn-implementation
|
str
|
Attention实现方式 仅在api=local时有效 |
None (可选:flash_attention_2、eager、sdpa)
|
--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
|
--log-every-n-query
|
int
|
每N个查询记录日志 |
10
|
--stream
|
bool
|
是否使用SSE流输出 需要启用以测量TTFT(Time to First Token)指标 |
True
|
--sleep-interval
|
int
|
每次性能测试之间的休眠时间(秒) 避免过载服务器 |
5
|
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-num-runs
|
int
|
每个并发级别的运行次数(取平均值) |
3
|
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 |
✓(必需) |
flickr8k
|
从ModelScope自动下载Flick8k 构建图文输入,数据集较大,适合评测多模态模型 |
✗ |
kontext_bench
|
从ModelScope自动下载Kontext-Bench 构建图文输入,约1000条数据,适合快速评测多模态模型 |
✗ |
random
|
根据prefix-length、max-prompt-length和min-prompt-length随机生成prompt 必需指定tokenizer-path 使用示例 |
✗ |
random_vl
|
随机生成图像和文本输入 在random基础上增加图像相关参数 使用示例 |
✗ |
custom
|
自定义数据集解析器 参考自定义数据集指南 |
✓ |
模型设置
参数 |
类型 |
说明 |
默认值 |
--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}' |
- |
数据存储
参数 |
类型 |
说明 |
默认值 |
--visualizer
|
str
|
可视化工具 可选:wandb、swanlab、clearml 设置后指标将保存到指定工具 |
None
|
--wandb-api-key
|
str
|
wandb API密钥 已废弃,请使用--visualizer wandb |
- |
--swanlab-api-key
|
str
|
swanlab API密钥 已废弃,请使用--visualizer swanlab |
- |
--outputs-dir
|
str
|
输出文件路径 |
./outputs
|
--no-timestamp
|
bool
|
输出目录不包含时间戳 |
False
|
其他参数
参数 |
类型 |
说明 |
默认值 |
--db-commit-interval
|
int
|
在写入SQLite数据库前缓冲的行数 |
1000
|
--queue-size-multiplier
|
int
|
请求队列的最大大小 计算方式:parallel * multiplier |
5
|
--in-flight-task-multiplier
|
int
|
最大调度任务数 计算方式:parallel * multiplier |
2
|