Skip to main content

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

Configure Benchmark Workspace

Benchmarks should live outside the installed pip package. Configure a benchmark root once:

llmdep config set dataset_root /data/eval_datasets

The directory should contain benchmark folders directly:

/data/eval_datasets/
├── BiPaR/
│   ├── dataset_card.json
│   ├── methods/
│   ├── data/
│   └── cache/
└── gsm8k/
    ├── dataset_card.json
    ├── methods/
    ├── data/
    └── cache/

Check the active benchmark root:

llmdep list benchmark

Configure a model root once as well:

llmdep config set model_root /data/llm_models

The directory should contain only user model folders directly. BaseModel is not placed here; it remains inside the installed llmdep package.

/data/llm_models/
└── qwen-plus/
    ├── model.py
    └── model_card.json

Each model.py should expose a Model class with call_with_prompt(...). Import the base class from the installed package:

from llm.BaseModel import BaseModel

class Model(BaseModel):
    def call_with_prompt(self, input_data):
        ...

Single Task

# Generate answers
llmdep gen_eval -b ARC -m qwen-plus -w 10

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

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: 2)
  --batch_size        Batch size (default: 1)
  --rate_limit        Token bucket fill rate (default: 5.0)
  --bucket_capacity   Token bucket capacity (default: 10.0)
  --limited_test      Quick test with first 10 questions, or pass N
  --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

dashboard

Start the local web control panel.

llmdep dashboard
llmdep dashboard --host 127.0.0.1 --port 8765

batch

Batch process tasks from config file.

llmdep batch --config tasks.json

Project Structure

llmdep/
├── llm/                  # Packaged BaseModel compatibility module
├── 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. Configure model_root: llmdep config set model_root /data/llm_models
  2. Create folder under /data/llm_models/<your_model>/
  3. Implement model.py inheriting from BaseModel
  4. Create model_card.json

Adding New Benchmarks

  1. Configure dataset_root: llmdep config set dataset_root /data/eval_datasets
  2. Create folder under /data/eval_datasets/<benchmark_name>/
  3. Implement prepare_ques.py - Prepare questions and golden answers
  4. Implement eval_script.py - Run evaluation
  5. Create dataset_card.json

License

MIT License

Metadata

Release files for llmdep 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llmdep 0.2.0
File Size Uploaded Provenance
llmdep-0.2.0.tar.gz 72.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for llmdep 0.2.0
File Interpreter ABI Platform
llmdep-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 184.5 kB

Release files / llmdep-0.2.0.tar.gz

Download URL llmdep-0.2.0.tar.gz
Size 72.3 kB
Tags Source
SHA-256 checksum
How to use checksums
035054e5fdc79e5ca52bc1c76d81eaa636d883beef4f36d4b4dc8c3ab2e06960
BLAKE2b-256 checksum
How to use checksums
361cb7ab8b729641b42ed0c86f144f4d38a8814c3f68d6274f5396bc8b2d42bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / llmdep-0.2.0-py3-none-any.whl

Download URL llmdep-0.2.0-py3-none-any.whl
Size 112.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eed23d66332217ba9ccfd302c945697fba85a03b0b6b0b7b7f85aa092aebecae
BLAKE2b-256 checksum
How to use checksums
32c7afede039afce933c58c7e22d367204787887d23e731f573a534aef2746c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for llmdep 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page