Overview
EvalScope is the evaluation framework maintained by the ModelScope community. One `evalscope eval` command points a benchmark suite at either a local checkpoint or any OpenAI-API-compatible endpoint and prints a scored table per dataset and subset. It ships industry-standard benchmarks out of the box — MMLU, C-Eval, GSM8K, ARC and many more — and covers large language models, vision-language models, embedding models, rerankers and AIGC models rather than text-only LLMs.
Beyond one-shot scoring it has an agent evaluation mode that drives benchmarks such as GSM8K, AIME and SWE-bench Agentic inside a controlled multi-turn AgentLoop with pluggable strategies, tools and a Docker sandbox, recording a full per-sample agent trace you can replay in the dashboard. An External Agent Bridge evaluates off-the-shelf agent CLIs — Claude Code, Codex — by transparently forwarding their Anthropic Messages, OpenAI Chat and OpenAI Responses traffic (including SSE streaming) to your evaluation model while recording the trajectory.
Three other pieces round it out. Multiple evaluation backends — OpenCompass, VLMEvalKit and RAGEval — plug in behind the same CLI. An inference performance stress tester measures throughput, time-to-first-token and time-per-output-token against a running service, with results recordable to Weights & Biases or SwanLab. And a web dashboard compares models across runs, browses report overviews and drills into individual predictions. Arena mode adds pairwise model battles with win rates and confidence intervals.
What it does
- Built-in benchmarks including MMLU, C-Eval, GSM8K and ARC, with a growing catalogue covering agents, code, long context, multimodal and OCR
- Evaluates LLMs, VLMs, embedding models, rerankers and AIGC models through one CLI and one Python API
- Agent evaluation mode: a controlled multi-turn AgentLoop with pluggable strategies, tools and a Docker sandbox, recording a full agent trace per sample
- External Agent Bridge that evaluates agent CLIs such as Claude Code and Codex by forwarding their LLM traffic to your evaluation model
- Multi-backend integration with OpenCompass, VLMEvalKit and RAGEval behind a single interface
- Inference stress testing with TTFT and TPOT metrics, results recordable to wandb and SwanLab
- Interactive web dashboard for multi-model comparison, report overviews and prediction-level inspection
- Arena mode for pairwise model battles with win rates and confidence intervals, plus custom datasets, models and metrics
Getting started
EvalScope is a Python package on PyPI and needs Python 3.10 or newer. Evaluating a hosted API endpoint needs no GPU.
Install
pip install evalscopeEvaluate an OpenAI-compatible endpoint
The quickest path: set your base URL and key, name the datasets, and cap the sample count while you are wiring things up.
evalscope eval \
--model your-model-name \
--api-url $OPENAI_API_BASE_URL \
--api-key $OPENAI_API_KEY \
--eval-type openai_api \
--datasets gsm8k arc \
--limit 5Evaluate a local model
Pass a model id instead and EvalScope downloads it from ModelScope automatically.
evalscope eval \
--model Qwen/Qwen2.5-0.5B-Instruct \
--datasets gsm8k arc \
--limit 5Drive it from Python
run_task takes a TaskConfig, a plain dictionary, or a path to a YAML or JSON config file.
from evalscope import run_task, TaskConfig
task_cfg = TaskConfig(
model='your-model-name',
api_url='https://your-openai-compatible-endpoint/v1',
api_key='your_api_key',
eval_type='openai_api',
datasets=['gsm8k', 'arc'],
limit=5
)
run_task(task_cfg)Open the dashboard
Install the service extra and start the visualisation server, then browse to http://127.0.0.1:9000 to compare runs.
pip install 'evalscope[service]'
evalscope serviceTune the run
Model loading, generation and per-dataset settings are all command-line JSON.
evalscope eval \
--model Qwen/Qwen3-0.6B \
--model-args '{"revision": "master", "precision": "torch.float16", "device_map": "auto"}' \
--generation-config '{"do_sample":true,"temperature":0.6,"max_tokens":512}' \
--dataset-args '{"gsm8k": {"few_shot_num": 0, "few_shot_random": false}}' \
--datasets gsm8k \
--limit 10Commands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Reach for it to score a model you are serving against standard academic benchmarks without writing a harness
- Reach for it when the thing under test is an agent loop rather than a single completion, and you need the trajectory recorded
- Reach for it to compare several checkpoints or providers side by side in a dashboard instead of a pile of JSON
- Reach for it to stress-test a deployed inference service for throughput, TTFT and TPOT before it takes traffic
How EvalScope compares
EvalScope alongside other open-source benchmark harnesses tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| LM Evaluation Harness | ★ 14.1k | EleutherAI's framework for few-shot evaluation of language models across 60+ academic benchmarks, used as the backend for many leaderboards. |
| OpenCompass | ★ 7.5k | An LLM evaluation platform that runs models against 100+ datasets covering reasoning, knowledge, coding, and domain tasks, with leaderboards and multi-model support. |
| SWE-bench | ★ 5.9k | A benchmark and containerized harness that tests whether language models can resolve real GitHub issues by generating patches that pass a repository's tests. |
| simple-evals | ★ 4.6k | OpenAI's lightweight library for running standard zero-shot, chain-of-thought benchmarks like MMLU, MATH, and GPQA to measure model accuracy. |
| lmms-eval | ★ 4.4k | An evaluation suite for large multimodal models that runs image, video, and audio benchmarks across many tasks with a unified, reproducible interface. |
| AgentBench | ★ 3.7k | A benchmark that evaluates LLMs as agents across diverse interactive environments such as operating systems, databases, web browsing, and games. |
| EvalScope | ★ 3.5k | One-command benchmark harness for LLMs, VLMs, embeddings and AIGC models |
| MTEB | ★ 3.4k | Multimodal toolbox for evaluating embedding models and retrieval systems: a Python library and CLI that runs a model over hundreds of tasks and feeds the public MTEB leaderboard. |