evalstone/evalscope/skills/evalscope/perf-reference.md
2026-07-08 08:57:50 +00:00

7.8 KiB

Perf Parameter Reference

Complete parameter reference for evalscope perf. All parameters can also be discovered via evalscope perf --help.

Model and API

Parameter Type Default Description
--model str (required) Model name or path
--api str openai API protocol: openai, local, local_vllm, dashscope, embedding, rerank, custom
--url str http://127.0.0.1:8877/v1/chat/completions API endpoint URL
--port int 8877 Port for local inference server
--api-key str None API authentication key
--tokenizer-path str None Tokenizer path for accurate token counting
--attn-implementation str None Attention implementation (local inference only)

API Types

Value Use Case
openai OpenAI-compatible API endpoints (default)
local Auto-start local inference server using the model
local_vllm Auto-start local vLLM inference server
dashscope Alibaba Cloud DashScope API
embedding OpenAI-compatible embedding API
rerank OpenAI-compatible reranking API
custom Custom API implementation

Connection Settings

Parameter Type Default Description
--headers key=value pairs None Extra HTTP headers (e.g. --headers key1=val1 key2=val2)
--connect-timeout int None Network connection timeout (seconds)
--read-timeout int None Network read timeout (seconds)
--total-timeout int 21600 Total request timeout in seconds (default: 6 hours)
--no-test-connection flag false Skip connection test before starting benchmark

Concurrency and Load

Parameter Type Default Description
--parallel int (multiple) 1 Number of concurrent requests. Supports multiple values for gradient tests
-n, --number int (multiple) 1000 Total number of requests. Must match --parallel count
--rate float -1 Requests per second limit (-1 = unlimited)
--sleep-interval int 5 Sleep seconds between consecutive perf runs

Important: When providing multiple values for --parallel and --number, they are paired positionally:

# Run 3 tests: (parallel=1, n=100), (parallel=5, n=500), (parallel=10, n=1000)
--parallel 1 5 10 --number 100 500 1000

SLA Auto-Tuning

Automatically find the maximum concurrency or rate that satisfies SLA constraints.

Parameter Type Default Description
--sla-auto-tune flag false Enable SLA auto-tuning
--sla-variable str parallel Variable to tune: parallel or rate
--sla-params JSON str None SLA constraints as JSON array
--sla-num-runs int 3 Runs to average per configuration
--sla-upper-bound int 65536 Upper bound for binary search
--sla-lower-bound int 1 Lower bound for binary search
--sla-number-multiplier float None Multiplier: number = round(variable * N). Default: 2

SLA Params Format

--sla-params accepts a JSON array of constraint objects:

[
  {"name": "latency", "operator": "<=", "value": 5.0},
  {"name": "ttft", "operator": "<=", "value": 0.5},
  {"name": "output_token_throughput", "operator": ">=", "value": 100}
]

Available constraint names: latency, ttft, tpot, request_throughput, output_token_throughput, total_token_throughput.

Operators: <=, >=, <, >, ==.

Dataset / Prompt Settings

Parameter Type Default Description
--dataset str openqa Dataset type (see below)
--dataset-path str None Path to custom dataset file
--prompt str None Use a fixed prompt text for all requests
--query-template str None Jinja2 template for request formatting
--apply-chat-template flag auto Apply chat template to prompts (auto-detected from URL)

Dataset Types

Type Description
openqa Open-ended QA prompts (default, good for general testing)
random Random token sequences (for precise input length control)
speed_benchmark Speed benchmark with fixed prompts
random_vl Random vision-language data (for multimodal models)
line_by_line Read prompts from a file, one per line
flickr8k Flickr8K vision-language dataset
longalpaca Long-context prompts
embedding_dataset For embedding model benchmarks
rerank_dataset For reranking model benchmarks
custom Custom dataset plugin

Prompt Length Control (for random dataset)

Parameter Type Default Description
--min-prompt-length int 0 Minimum input prompt length. Unit is tokens when --tokenizer-path is provided, otherwise characters (len(prompt))
--max-prompt-length int 131072 (no cap) Maximum input prompt length. Unit is tokens when --tokenizer-path is provided, otherwise characters (len(prompt))
--prefix-length int 0 Fixed prefix length for random prompts

Vision-Language Settings (for random_vl dataset)

Parameter Type Default Description
--image-width int 224 Image width in pixels
--image-height int 224 Image height in pixels
--image-format str RGB Image format
--image-num int 1 Number of images per request
--image-patch-size int 28 Patch size for image tokenizer (local token calculation)

Response Settings

Parameter Type Default Description
--max-tokens int 2048 Maximum output tokens
--min-tokens int None Minimum output tokens (forces model to generate at least N tokens)
--temperature float 0.0 Sampling temperature
--top-p float None Top-p (nucleus) sampling
--top-k int None Top-k sampling
--stream / --no-stream flag stream Enable/disable streaming (default: enabled)
--frequency-penalty float None Frequency penalty
--repetition-penalty float None Repetition penalty
--n-choices int None Number of response choices
--seed int None Random seed
--stop str (multiple) None Stop sequences
--stop-token-ids str (multiple) None Stop token IDs
--logprobs flag None Return log probabilities
--extra-args JSON str {} Additional API-specific arguments

Output and Logging

Parameter Type Default Description
--outputs-dir str outputs Output directory
--no-timestamp flag false Don't add timestamp to output directory
--name str None Custom name for the run (used in DB and visualizer)
--debug flag false Enable debug logging
--log-every-n-query int 10 Log progress every N queries
--enable-progress-tracker flag false Write progress.json for tracking

Visualization Integration

Parameter Type Default Description
--visualizer str None Visualizer: wandb, swanlab, clearml
--wandb-api-key str None W&B API key
--swanlab-api-key str None SwanLab API key

Performance Tuning Knobs

Parameter Type Default Description
--db-commit-interval int 1000 Rows buffered before SQLite commit
--queue-size-multiplier int 5 Request queue maxsize = parallel * multiplier
--in-flight-task-multiplier int 2 Max scheduled tasks = parallel * multiplier