Skip to main content

Distributed LLM Evaluation Benchmark Server

Project description

dbsp - Distributed LLM Evaluation Benchmark Server

Python License

A distributed benchmark server for evaluating Large Language Models (LLMs) across multiple benchmarks.

Features

  • Distributed Evaluation: Support concurrent worker processes
  • Multiple Benchmarks: ARC, ETHICS, MMLU-Pro, BiPaR, and more
  • Rate Limiting: Token bucket based rate limiting for API calls
  • Batch Processing: Process multiple model-benchmark pairs in batch
  • Resume Support: Continue interrupted tasks with --run_id

Installation

pip install dbsp

Or install from source:

pip install -e .

Quick Start

Single Task

# Generate answers and evaluate
dbsp gen_eval -b ARC -m qwen-plus -w 10

Batch Processing

Create a task configuration file tasks.json:

[
    {"model": "qwen-plus", "benchmark": "ARC_parquet"},
    {"model": "deepseek", "benchmark": "ethics"}
]

Then run:

dbsp batch --config tasks.json -w 10

Resume Interrupted Task

dbsp gen_eval --run_id 20260210-164048-322281

Commands

gen_eval

Generate model answers and optionally evaluate.

dbsp gen_eval [options]

Options:
  -b, --benchmark     Benchmark name (e.g., ARC, ethics)
  -m, --model         Model name (e.g., qwen-plus, deepseek)
  -w, --worker_nums   Number of concurrent workers (default: 6)
  --batch_size        Batch size (default: 1)
  --rate_limit        Token bucket fill rate (default: 5.0)
  --bucket_capacity   Token bucket capacity (default: 20.0)
  --limited_test      Quick test with first 50 questions
  --evaluate         Run evaluation after generation
  --run_id          Resume from run_id

evaluate

Run evaluation on existing results.

dbsp evaluate -b ARC -r 20260210-164048-322281_qwen-plus

list

List available benchmarks or models.

dbsp list benchmark
dbsp list model

batch

Batch process tasks from config file.

dbsp batch --config tasks.json

Project Structure

dbsp/
├── llm/                  # LLM model implementations
│   ├── qwen_plus/
│   ├── deepseek/
│   └── ...
├── mep_client/           # Client for generating answers
│   ├── run/
│   └── API/
├── method_server/      # Benchmark implementations
│   ├── ARC_parquet/
│   ├── ethics/
│   ├── BiPaR/
│   └── ...
└── dbsp_cli.py       # CLI entry point

Adding New Models

  1. Create folder under llm/<your_model/
  2. Implement model.py inheriting from BaseModel
  3. Create model_card.json
  4. Register in llm/config.py

Adding New Benchmarks

  1. Create folder under method_server/<benchmark_name>/
  2. Implement prepare_ques.py - Prepare questions and golden answers
  3. Implement eval_script.py - Run evaluation
  4. Create dataset_card.json

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbsp-0.1.0.tar.gz (56.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbsp-0.1.0-py3-none-any.whl (95.1 kB view details)

Uploaded Python 3

File details

Details for the file dbsp-0.1.0.tar.gz.

File metadata

  • Download URL: dbsp-0.1.0.tar.gz
  • Upload date:
  • Size: 56.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for dbsp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c9affbc415c9c5f29e6d2bacb8c59d5cc9282f8c107953f886bd4d808708a6b2
MD5 a1fe46f808030e6c9fc23ccc62e302f9
BLAKE2b-256 cb443b6a40b6621dc5a3ceda1b90704aa946d2231ede7de3e2d03e4dcd34e7a4

See more details on using hashes here.

File details

Details for the file dbsp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dbsp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 95.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for dbsp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39857d353d2c4418815cc8df0e7e271aa6cafa468d90ff31eaaecda54336a43e
MD5 ab043b32ffe4dcc5436b18e030551112
BLAKE2b-256 76214bd6569a5219fa885c8d3d512b452fbbd2e1b6c07ed3941f1b309f576caf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page