5.9 KiB
5.9 KiB
参数说明
执行 evalscope perf --help 可获取全部参数说明:
基本设置
--model测试模型名称。--url指定API地址,支持/chat/completion和/completion两种endpoint。--namewandb/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指南。
- 指定为
--port本地推理服务端口,默认为8877,仅对local和local_vllm有效。--attn-implementationAttention实现方式,默认为None,可选[flash_attention_2|eager|sdpa],仅在api为local时有效。--api-keyAPI密钥,可选。--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生成,没有间隔;否则,我们使用泊松过程生成请求间隔。在本工具的实现中请求生成与发送是分开的: `--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-lengthpromt的前缀长度,默认为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自定义数据集解析器,参考自定义数据集指南。openqa使用jsonl文件的question字段作为prompt。不指定dataset_path将从modelscope自动下载数据集,prompt长度较短,一般在 100 token 以下。longalpaca使用jsonl文件的instruction字段作为prompt。不指定dataset_path将从modelscope自动下载数据集,prompt长度较长,一般在 6000 token 以上。flickr8k将构建图文输入,适合评测多模态模型;从modelscope自动下载数据集,不支持指定dataset_path。line_by_line必需提供dataset_path,逐行将txt文件的每一行作为一个提示,。random根据prefix-length,max-prompt-length和min-prompt-length随机生成prompt,必需指定tokenizer-path,使用示例。
--dataset-path数据集文件的路径,与数据集结合使用。
模型设置
--tokenizer-path可选,指定分词器权重路径,用于计算输入和输出的token数量,通常与模型权重在同一目录下。--frequency-penaltyfrequency_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-ptop_p采样。--top-ktop_k采样。--extra-args额外传入请求体的参数,格式为json字符串,例如'{"ignore_eos": true}'。
数据存储
--wandb-api-keywandb API密钥,如果设置,则度量将保存到wandb。--swanlab-api-keyswanlab API密钥,如果设置,则度量将保存到swanlab。--outputs-dir输出文件路径,默认为./outputs。