evalscope/docs/zh/user_guides/stress_test/parameters.md

75 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 参数说明
执行 `evalscope perf --help` 可获取全部参数说明:
## 基本设置
- `--model` 测试模型名称。
- `--url` 指定API地址支持`/chat/completion`和`/completion`两种endpoint。
- `--name` wandb/swanlab数据库结果名称和结果数据库名称默认为: `{model_name}_{current_time}`,可选。
- `--api` 指定服务API目前支持[openai|dashscope|local|local_vllm]。
- 指定为`openai`则使用支持OpenAI的API需要提供`--url`参数。
- 指定为`dashscope`则使用支持DashScope的API需要提供`--url`参数。
- 指定为`local`则使用本地文件作为模型并使用transformers进行推理。`--model`为模型文件路径也可为model_id将自动从modelscope下载模型例如`Qwen/Qwen2.5-0.5B-Instruct`。
- 指定为`local_vllm`则使用本地文件作为模型并启动vllm推理服务。`--model`为模型文件路径也可为model_id将自动从modelscope下载模型例如`Qwen/Qwen2.5-0.5B-Instruct`。
- 您也可以自定义API请参考[自定义API指南](./custom.md/#自定义请求-api)。
- `--port` 本地推理服务端口默认为8877仅对`local`和`local_vllm`有效。
- `--attn-implementation` Attention实现方式默认为None可选[flash_attention_2|eager|sdpa],仅在`api`为`local`时有效。
- `--api-key` API密钥可选。
- `--debug` 输出调试信息。
## 网络配置
- `--connect-timeout` 网络连接超时默认为600s。
- `--read-timeout` 网络读取超时默认为600s。
- `--headers` 额外的HTTP头格式为`key1=value1 key2=value2`。该头将用于每个查询。
- `--no-test-connection` 不发送连接测试直接开始压测默认为False。
## 请求控制
- `--parallel` 并发请求的数量可以传入多个值用空格隔开默认为1。
- `--number` 发出的请求的总数量,可以传入多个值,用空格隔开(需与`parallel`一一对应默认为1000。
- `--rate` 每秒生成的请求数量(并不发送请求),默认为-1表示所有请求将在时间0生成没有间隔否则我们使用泊松过程生成请求间隔。
```{tip}
在本工具的实现中请求生成与发送是分开的:
`--rate`参数用于控制每秒生成的请求数量,请求将放入请求队列。
`--parallel`参数用于控制发送请求的worker数量worker将从请求队列获取请求并发送且在上一请求回复后才发送下一请求。
```
- `--log-every-n-query` 每n个查询记录日志默认为10。
- `--stream` 使用SSE流输出默认为True。注意需要设置`--stream`以测量Time to First Token (TTFT)指标;设置`--no-stream`将不使用流式输出。
## Prompt设置
- `--max-prompt-length` 最大输入prompt长度默认为`131072`大于该值时将丢弃prompt。
- `--min-prompt-length` 最小输入prompt长度默认为0小于该值时将丢弃prompt。
- `--prefix-length` promt的前缀长度默认为0仅对于`random`数据集有效。
- `--prompt` 指定请求prompt一个字符串或本地文件使用优先级高于`dataset`。使用本地文件时,通过`@/path/to/file`指定文件路径,例如`@./prompt.txt`。
- `--query-template` 指定查询模板,一个`JSON`字符串或本地文件,使用本地文件时,通过`@/path/to/file`指定文件路径,例如`@./query_template.json`。
- `--apply-chat-template` 是否应用聊天模板默认为None将根据url后缀是否为`chat/completion`自动选择。
## 数据集配置
- `--dataset` 可以指定如下数据集模式您也可以使用python自定义数据集解析器参考[自定义数据集指南](custom.md/#自定义数据集)。
- `openqa` 使用jsonl文件的 `question` 字段作为prompt。不指定`dataset_path`将从modelscope自动下载[数据集](https://www.modelscope.cn/datasets/AI-ModelScope/HC3-Chinese/summary)prompt长度较短一般在 100 token 以下。
- `longalpaca` 使用jsonl文件的 `instruction` 字段作为prompt。不指定`dataset_path`将从modelscope自动下载[数据集](https://www.modelscope.cn/datasets/AI-ModelScope/LongAlpaca-12k/dataPeview)prompt长度较长一般在 6000 token 以上。
- `flickr8k` 将构建图文输入适合评测多模态模型从modelscope自动下载[数据集](https://www.modelscope.cn/datasets/clip-benchmark/wds_flickr8k/dataPeview),不支持指定`dataset_path`。
- `line_by_line` 必需提供`dataset_path`逐行将txt文件的每一行作为一个提示
- `random` 根据`prefix-length``max-prompt-length`和`min-prompt-length`随机生成prompt必需指定`tokenizer-path`[使用示例](./examples.md#使用random数据集)。
- `--dataset-path` 数据集文件的路径,与数据集结合使用。
## 模型设置
- `--tokenizer-path` 可选指定分词器权重路径用于计算输入和输出的token数量通常与模型权重在同一目录下。
- `--frequency-penalty` frequency_penalty值。
- `--logprobs` 对数概率。
- `--max-tokens` 可以生成的最大token数量。
- `--min-tokens` 生成的最少token数量不是所有模型服务都支持该参数请查看对应API文档。对于`vLLM>=0.8.1`版本,需要额外设置`--extra-args '{"ignore_eos": true}'`。
- `--n-choices` 生成的补全选择数量。
- `--seed` 随机种子默认为0。
- `--stop` 停止生成的tokens。
- `--stop-token-ids` 设置停止生成的token的ID。
- `--temperature` 采样温度默认为0。
- `--top-p` top_p采样。
- `--top-k` top_k采样。
- `--extra-args` 额外传入请求体的参数格式为json字符串例如`'{"ignore_eos": true}'`。
## 数据存储
- `--wandb-api-key` wandb API密钥如果设置则度量将保存到wandb。
- `--swanlab-api-key` swanlab API密钥如果设置则度量将保存到swanlab。
- `--outputs-dir` 输出文件路径,默认为`./outputs`。