pip install evalscope # 安装 Native backend (默认)
# 额外选项
pip install 'evalscope[opencompass]' # 安装 OpenCompass backend
pip install 'evalscope[vlmeval]' # 安装 VLMEvalKit backend
pip install 'evalscope[rag]' # 安装 RAGEval backend
pip install 'evalscope[perf]' # 安装 模型压测模块 依赖
pip install 'evalscope[app]' # 安装 可视化 相关依赖
pip install 'evalscope[all]' # 安装所有 backends (Native, OpenCompass, VLMEvalKit, RAGEval)
evalscope -h
## 查看命令帮助
usage: evalscope <command> [<args>]
positional arguments:
{perf,eval,app} EvalScope command line helper.
options:
-h, --help show this help message and exit
- 简单测评模型
evalscope eval \
--model /path/Qwen/Qwen3-8B \
--datasets arc \
--dataset-args '{"arc": {"local_path": "/path/dataset/arc"}}' \
--generation-config max_tokens=200 \
--eval-batch-size 2 \
--work-dir /path/test_ret \
--limit 5
### 参数说明
--model:模型在ModelScope中的model_id,也可以使用本地模型路径,例如/path/to/model
--datasets:数据集名称,支持输入多个数据集,使用空格分开;
--dataset-args:测评数据集的参数设置,如果使用本地数据集则需要填写本地路径参数,如'{"arc": {"local_path": "/path/to/workdir/data/arc"}}'
--generation-config:生成参数,以逗号分隔,key=value形式;本地模型支持max_tokens(生成最大长度),temperature(生成温度),如--generation-config max_tokens=100,temperature=0.5
--limit:每个数据集最大测评数量,不填则默认为全部测评
--eval-batch-size:评测批量大小,在eval-type=service时,表示并发评测的请求数,默认为8
--eval-backend:评测后端,可选Native, OpenCompass(用于评测大语言模型), VLMEvalKit(用于评测多模态模型), RAGEval(用于评测RAG流程、Embedding模型、Reranker模型、CLIP模型), ThirdParty(用于其他特殊任务评测),默认为Native
--work-dir:模型评测输出路径,默认为./outputs/{timestamp}
- 模型API服务测评
evalscope eval \
--model /data/models/DeepSeek-R1-Distill-Llama-70B \
--api-url http://127.0.0.1:6001/v1/chat/completions \
--api-key EMPTY \
--eval-type service \
--datasets arc \
--dataset-args '{"arc": {"local_path": "/path/dataset/arc"}}' \
--generation-config max_tokens=200 \
--stream True \
--eval-batch-size 2 \
--work-dir /path/test_ret \
--limit 5
### 参数说明
--model:模型在ModelScope中的model_id,也可以使用本地模型路径,例如/path/to/model
--api-url : API服务地址
--api-key:API服务的key,没有设置则填EMPTY
--eval-type:必须指定为service
--datasets:数据集名称,支持输入多个数据集,使用空格分开;
--dataset-args:测评数据集的参数设置,如果使用本地数据集则需要填写本地路径参数,如'{"arc": {"local_path": "/path/to/workdir/data/arc"}}'
--generation-config:生成参数,以逗号分隔,key=value形式;本地模型支持max_tokens(生成最大长度),temperature(生成温度),如--generation-config max_tokens=100,temperature=0.5
--limit:每个数据集最大测评数量,不填则默认为全部测评
--stream:是否使用流式传输,默认为False,eval-type=service有效
--eval-batch-size:评测批量大小,在eval-type=service时,表示并发评测的请求数,默认为8
--eval-backend:评测后端,可选Native, OpenCompass(用于评测大语言模型), VLMEvalKit(用于评测多模态模型), RAGEval(用于评测RAG流程、Embedding模型、Reranker模型、CLIP模型), ThirdParty(用于其他特殊任务评测),默认为Native
--work-dir:模型评测输出路径,默认为./outputs/{timestamp}
evalscope perf \
--url "http://127.0.0.1:6001/v1/chat/completions" \
--parallel 5 \
--model /path/DeepSeek-R1-Distill-Llama-70B \
--number 20 \
--api openai \
--dataset line_by_line \
--dataset-path /path/dataset/trivia_qa/trivia-test.qa.csv \
--max-tokens 2048 \
--stream
### 参数说明
url: 请求的URL地址
parallel: 并行请求的任务数量
model: 使用的模型名称
number: 请求数量
api: 使用的API服务
dataset: 数据集名称,openqa 使用jsonl文件的 question 字段作为prompt,longalpaca 使用jsonl文件的 instruction 字段作为prompt
dataset-path 数据集文件的路径,与dataset结合使用
stream: 是否启用流式处理
max-tokens: 可以生成的最大token数
temperature:采样温度,默认为0
### 指标说明
Time taken for tests :整个测试过程从开始到结束所花费的总时间
Number of concurrency : 同时发送请求的客户端数量
Total requests: 在整个测试过程中发送的所有请求的数量
Succeed requests: 成功完成并返回预期结果的请求数量
Failed requests: 由于各种原因未能成功完成的请求数量
Output token throughput: 每秒钟处理的平均标记(token)数;总输出token数 / 测试总时长
Total token throughput :每秒钟处理的平均标记(token)数;总输入token数 + 总输出token数 / 测试总时长
Request throughput :每秒钟成功处理的平均请求数;成功请求数 / 测试总时长
Total latency :所有成功请求的延迟时间总和
Average latency: 从发送请求到接收完整响应的平均时间;总延迟时间 / 成功请求数
Average time to first token:从发送请求到接收到第一个响应标记的平均时间;总首chunk延迟 / 成功请求数
Average time per output token:生成每个输出标记所需的平均时间(不包含首token);总每输出token时间 / 成功请求数
Average input tokens per request :每个请求的平均输入标记数
Average output tokens per request:每个请求的平均输出标记数
百分位指标 (Percentile):以单个请求为单位进行统计,数据被分为100个相等部分,第n百分位表示n%的数据点在此值之下。
TTFT (Time to First Token):从发送请求到生成第一个token的时间(以秒为单位),评估首包延时
ITL (Inter-token Latency):生成每个输出token间隔时间(以秒为单位),评估输出是否平稳
TPOT (Time per Output Token):生成每个输出token所需的时间(不包含首token,以秒为单位),评估解码速度
Latency:端到端延迟时间,从发送请求到接收完整响应的时间(以秒为单位):TTFT + TPOT * Output tokens
Input tokens:请求中输入的token数量
Output tokens:响应中生成的token数量
Output Throughput:每秒输出的token数量:输出tokens / 端到端延时
Total throughput:每秒处理的token数量:(输入tokens + 输出tokens) / 端到端延时