Skip to main content

annotations-orchestration

Generic Python library for orchestrating LLM evaluation runs: a resumable parallel scheduler over experiment manifests, plus nervaluate-based metrics (precision/recall/F1 against gold annotations).

Part of the annotations-* family: the annotation pipeline lives in annotations4all, this library provides the evaluation/experiment infrastructure, and concrete run projects (e.g. evaluation_2026) combine both.

Features

  • Library-agnostic: the scheduler speaks a subprocess CLI contract (RunSpec → flags), not annotations4all types. Reusable for any LLM evaluation workflow.
  • Conservative concurrency: documents within a run are processed linearly; remote runs share a pool (execution.remote_parallelism, default 3); self_hosted runs get one sequential lane per host.
  • Resumable: run state is persisted; completed runs are skipped, interrupted/failed runs re-execute on restart.
  • Manifest-driven: experiment YAMLs + optional controller manifests (defaults/execution/order).
  • Metrics: NER evaluation with precision/recall/F1 per entity type, using the classic nervaluate evaluation schemes (strict, entity type, partial, exact).

Installation

python -m pip install annotations-orchestration

Requires Python 3.11+.

Quickstart

# Validate an experiments directory (dry run, no execution)
annotations-orchestrate --experiments-dir experiments/ --dry-run

# Run the experiments
annotations-orchestrate --experiments-dir experiments/

Python API

from pathlib import Path

from annotations_orchestration import evaluate_classifier, calculate_metrics

# predictions: list of {"ground_truth": {"prodigy": [...]}, "predictions": [...]}
overall, per_tag = evaluate_classifier(
    data_dir=Path("data"),
    eval_dir=Path("results"),
    predictions=predictions,
)
f1 = calculate_metrics(overall, "ent_type")["f1"]

CLI

annotations-orchestrate options: --manifest, --experiments-dir, --state, --results-dir, --dry-run, --active-self-hosted, --graceful-shutdown-seconds.

Development

uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest

Citation

If you use this software in academic work, please cite it as follows:

Dresselhaus, Nicole. (2026). annotations-orchestration (Version 0.1.0) [Software]. Humboldt-Universität zu Berlin. https://scm.cms.hu-berlin.de/annotations4all/annotations-orchestration

DOI: 10.5281/zenodo.22015764

Machine-readable metadata is available in CITATION.cff.

License

MIT. The bundled nervaluate_compat/ package is a vendored, unmodified snapshot of MantisAI/nervaluate commit 0bf272a (MIT, © 2020 David S. Batista and Matthew A. Upson).

Download files

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

Source Distribution

annotations_orchestration-0.1.0.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

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

annotations_orchestration-0.1.0-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: annotations_orchestration-0.1.0.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for annotations_orchestration-0.1.0.tar.gz
Algorithm Hash digest
SHA256 78b50756d888c4648addbde3fff0baddc098fea6930401b9e0396358769c0136
MD5 e22da7b88980c37901183d4c527daabf
BLAKE2b-256 8b197344b522f5ae731ccc5ca5235ee049fc5691bd7b6d1d306d8ef42e9939c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: annotations_orchestration-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for annotations_orchestration-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fb116dda206a226dfcef40873f8d0678c949516352cd9f3d0d9a82b54ca6e9de
MD5 bb0c674fc4d960ee6b1d689da1b0170a
BLAKE2b-256 69eeac87ad5bc976cbcf7f67cbf84454b63cacac36e688c4e0b7b04344e20629

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 Sentry Error logging StatusPage Status page