GraphCanon updated 2w · GitHub synced 2w
Decision brief
Olmo-eval is an evaluation framework for large language models, using uv for reproducible builds. It focuses on modular task implementations and integrates with various datasets via defined tasks.
Good fit when
- When you need a flexible evaluation setup that works with a variety of LLMs and datasets.
- For reproducible evaluations where your build environment needs to be consistent across runs.
Avoid when
- When you require a simpler setup that doesn't need the reproducibility constraints of uv builds.
- If your project already has an established evaluation toolchain and does not benefit from introducing a new framework for manageability reasons.
Observed Jul 12, 2026 · Source: enrich:decision_facts
Verify the decision
Maintenance and security
Full trust report- Maintenance
- Very active (0d since push)
- As of 2w
- Provenance
- Not a fork · Organization account
- As of 2w
- Security (OSV)
- No lockfile
- As of 1mo
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
pip install olmo-eval PyPISimilar tools
Same-category neighbours. No typed graph edges are catalogued for this tool yet.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
A framework to evaluate large language models through various tasks and datasets, using reproducible build setup with uv.
Capability facts
- Deploy
- Self-host
Source: dockerfile:Dockerfile · Aug 7, 2026
- Docker
- Dockerfile present
Source: dockerfile:Dockerfile · Aug 7, 2026
- CLI
- CLI entrypoint
Source: pyproject.toml:[project.scripts] · Aug 7, 2026
- Languages
- python
Source: github.language+pyproject.toml · Aug 7, 2026
Categories
Compatibility
Sourced claims from the README excerpt - not unsourced marketing copy.
Source: README excerpt (regex_v1, Aug 7, 2026)
# Install Python 3.12 if your machine does not already have itSource link
Tags
README
Quick Start
This project uses uv with a checked-in uv.lock
for reproducible builds. To get started, sync the repo with uv, browse the
available tasks and suites, and preview a run with the built-in mock provider.
Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
Install Python 3.12 if your machine does not already have it
uv python install 3.12
Install dependencies + the package (editable) from the lockfile.
Quick Start: Minimal Task Example
"""Example: Minimal task implementation."""
from collections.abc import Iterator
from typing import Any
from olmo_eval.common.types import Instance, LMOutput, LMRequest, RequestType
from olmo_eval.data import DataLoader, DataSource
from olmo_eval.evals.tasks.common import Task, register
@register("my_task")
class MyTask(Task):
"""My task implementation."""
# DataSource arguments:
# path: HuggingFace dataset path (e.g., "cais/mmlu")
# subset: Dataset subset/config (e.g., "abstract_algebra")
# split: Dataset split (e.g., "test", "validation")
data_source = DataSource(path="cais/mmlu", subset="abstract_algebra", split="test")
@property
def instances(self) -> Iterator[Instance]:
"""Load and yield instances from the dataset."""
if self._instances_cache is None:
self._instances_cache = []
loader = DataLoader()
source = self.config.get_data_source()
for doc in loader.load(source):
self._instances_cache.append(self.process_doc(doc))
yield from self._instances_cache
def process_doc(self, doc: dict[str, Any]) -> Instance:
"""Convert a dataset document to an Instance."""
return Instance(
question=doc["question"],
gold_answer=doc["answer"],
choices=tuple(doc["choices"]), # For MC tasks
metadata={"id": doc["id"]},
)
def format_request(self, instance: Instance) -> LMRequest:
"""Format instance for the language model."""
if self.config.formatter is not None:
return self.config.formatter.format(instance, self.get_fewshot())
# Fallback formatting
return LMRequest(request_type=RequestType.COMPLETION, prompt=instance.question)
def extract_answer(self, output: LMOutput) -> str | None:
"""Extract the answer from model output."""
return output.text.strip()
Installation
The beaker extra is included in the default dev group, so a plain
uv sync --frozen is enough. If you previously opted out of the default
groups, re-enable it with:
uv sync --frozen --extra beaker
Docker Image Management
Docker images provide the runtime environment (Python, PyTorch, CUDA) but do NOT include:
- Source code - Gantry mounts your git repository at runtime
- Inference providers - Installed at job startup from each model's resolved provider config
This approach allows you to:
- Use any git commit without rebuilding images
- Keep images small and cacheable
Manual installation inside container
uv pip install -e '.[vllm]' # includes vllm[runai]
For raw OLMo-core checkpoints, force the provider kind through the harness and
use `provider.package` when you need a specific `ai2-olmo-core` install:
```bash
---
# Install dependencies from the lockfile
uv sync --frozen
For agents
This page has a .md twin and JSON over the API.