Skip to main content

Distributed LLM Evaluation Benchmark Server

Project description

llmdep - 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 llmdep

Or install from source:

pip install -e .

Quick Start

Single Task

# Generate answers and evaluate
llmdep 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:

llmdep batch --config tasks.json -w 10

Resume Interrupted Task

llmdep gen_eval --run_id 20260210-164048-322281

Commands

gen_eval

Generate model answers and optionally evaluate.

llmdep 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.

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

list

List available benchmarks or models.

llmdep list benchmark
llmdep list model

batch

Batch process tasks from config file.

llmdep batch --config tasks.json

Project Structure

llmdep/
├── llm/                  # LLM model implementations
│   ├── qwen_plus/
│   ├── deepseek/
│   └── ...
├── mep_client/           # Client for generating answers
│   ├── run/
│   └── API/
├── method_server/      # Benchmark implementations
│   ├── ARC_parquet/
│   ├── ethics/
│   ├── BiPaR/
│   └── ...
└── llmdep_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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: llmdep-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 llmdep-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1d4b78fe958ff8d5d1239fb5d7d078a3265e7f313208e42fc5aef109364efb0
MD5 192b7e67f23c1c627a0156847597408d
BLAKE2b-256 0250eeed135278aade405bd11776b7dde9c02bfd7958f5527bd0299107ad948b

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