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

5.9 KiB
Raw Permalink Blame History

参数说明

执行 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指南
  • --port 本地推理服务端口默认为8877仅对locallocal_vllm有效。
  • --attn-implementation Attention实现方式默认为None可选[flash_attention_2|eager|sdpa],仅在apilocal时有效。
  • --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生成没有间隔否则我们使用泊松过程生成请求间隔。
    在本工具的实现中请求生成与发送是分开的:
    `--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自定义数据集解析器参考自定义数据集指南
    • 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-lengthmax-prompt-lengthmin-prompt-length随机生成prompt必需指定tokenizer-path使用示例
  • --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