Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
1de79fb
foundational refactoring and image modality mvp
islobozhan Mar 5, 2026
ae6129a
updated readme
islobozhan Mar 9, 2026
84a8857
fix readme and added access tutorial to Leonardo cluster
islobozhan Mar 9, 2026
c8cdf46
Setting up Leonardo docs
islobozhan Mar 9, 2026
ea3428e
fix paths
islobozhan Mar 9, 2026
4cea7ae
fix HF_HOME
islobozhan Mar 9, 2026
2eb5a1f
bug fixes
islobozhan Mar 9, 2026
98ee685
merge with main
islobozhan Mar 13, 2026
82ca625
Foundational refactoring & image modality
islobozhan Mar 16, 2026
5908bb6
[Contrib][Custom Benchmark] Adding Region Reasoner benchmark
islobozhan Mar 24, 2026
ffeef35
[Base][Refactoring] Config validation and decompose main.py
islobozhan Mar 24, 2026
d245bc5
[Base][Refactoring] Refresh readme
islobozhan Mar 25, 2026
f7ac14a
[Contrib][Custom Benchmark] Fix RegionDial-Bench OOM and multi-GPU sh…
islobozhan Mar 29, 2026
b47ebf1
[Base][Sync with upstream] Add missing belebele for norwegian
islobozhan Mar 30, 2026
3710b89
Merge remote-tracking branch 'upstream/main'
islobozhan Mar 30, 2026
3ccb5ef
Sync fork with upstream (OpenEuroLLM/oellm-cli)
islobozhan Mar 30, 2026
c888c6c
update leonardo storage info documentation
islobozhan Mar 31, 2026
452a5e2
[Base][Docs] update docs for Leonardo storage setup for HF cache
islobozhan Mar 31, 2026
89ee880
merge with main
islobozhan Apr 1, 2026
e102df5
[Base][Sync with upstream] Add snellius support
islobozhan Apr 1, 2026
a9aa9bf
[Contrib][RR bench] Fix per-round metric computation in RegionDial-Be…
islobozhan Apr 2, 2026
06fdf84
merge with upstream
islobozhan Apr 7, 2026
34678b8
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-2
islobozhan Apr 7, 2026
484bfb9
fixes
islobozhan Apr 7, 2026
ff79828
fix tests
islobozhan Apr 7, 2026
cc46d33
[Base][Merge with upstream] Local runner
islobozhan Apr 8, 2026
d6a4173
[Base][Refactor] Switch CLI to Typer, added runs via config
islobozhan Apr 9, 2026
937e3da
[Base][New Modality] Adding support for video modality and benchmarks
islobozhan Apr 14, 2026
52235bf
merge with upstream
islobozhan Apr 14, 2026
f73d9dd
fix lints
islobozhan Apr 14, 2026
79b3f79
[Base][Merge with upstream] Fix local run flag
islobozhan Apr 14, 2026
a48c24d
[Base][New Modality] Adding audio modality benchmarks from llms-eval
islobozhan Apr 20, 2026
c48c105
merge with upstream
islobozhan Apr 22, 2026
fdfdc49
clean up
islobozhan Apr 22, 2026
a30c078
[Base][Merge with upstream] sync with latest upstream
islobozhan Apr 23, 2026
35dc906
[Contrib][Audio] Add AudioBench contrib plugin (Part 1: judge-free ta…
islobozhan May 4, 2026
a72abbb
[Base] Metric correctness and orchestration fixes
islobozhan May 17, 2026
ddb8645
fix conflicts
islobozhan May 31, 2026
5a898fb
fixes
islobozhan Jun 6, 2026
f856ef6
fixes
islobozhan Jun 10, 2026
84a1348
Merge pull request #19 from elliot-project/merge-with-upstream-5
islobozhan Jun 10, 2026
afc50f9
merge with upstream
islobozhan Jun 17, 2026
f05c263
bug fixes
islobozhan Jun 18, 2026
2aecbbf
[Base] Merge with upstream
islobozhan Jun 18, 2026
8754e44
merge with upstream
islobozhan Jun 18, 2026
53e3f73
[Base] Merge with upstream
islobozhan Jun 19, 2026
2bc1e54
Fix textvqa offline staging, collect robustness, and ufal cluster acc…
islobozhan Jun 19, 2026
9e1b1ec
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-8
islobozhan Jun 21, 2026
e332f56
[Base] Merge with upstream
islobozhan Jun 21, 2026
bef6c88
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-9
islobozhan Jun 23, 2026
252fc4b
[Base] Merge with upstream
islobozhan Jun 23, 2026
784d88f
merge with upstream
islobozhan Jun 25, 2026
9a74946
[Base] Merge with upstream
islobozhan Jun 25, 2026
41eabb8
[Base][Image] Add image VL benchmarks
islobozhan Jun 25, 2026
79b9188
Merge upstream: resolve main.py conflict, port --nodes=$NODES strip t…
islobozhan Jun 30, 2026
0d172e9
[Base] merge with upstream
islobozhan Jul 1, 2026
f9cba40
merge with upstream
islobozhan Jul 1, 2026
a62a96a
[Base] Merge with upstream
islobozhan Jul 1, 2026
ae4de66
merge with upstream Global-MGSM, PolyMath, X-CSQA, MMLU-ProX EU suites
islobozhan Jul 12, 2026
0460c79
[Base] Merge with upstream Global-MGSM, PolyMath, X-CSQA, MMLU-ProX E…
islobozhan Jul 12, 2026
d3a13fc
[Base] Results correctness, quantization, timeouts
islobozhan Jul 16, 2026
b463d04
[Base] Phase 4 tabular and time series support
islobozhan Jul 22, 2026
4181e38
[Base] README: document new modalities, operational flags, and fix in…
islobozhan Jul 22, 2026
27d1bf8
[Base] Require lm-eval>=0.4.12 in the text extra
islobozhan Aug 3, 2026
1ed795b
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-14
islobozhan Aug 7, 2026
84f5fd1
[Base] Merge with upstream XNLI EU task group
islobozhan Aug 7, 2026
31771fe
[Base] Add missing latex2sympy2_extended dependency for PolyMath
islobozhan Aug 10, 2026
6712940
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-15
islobozhan Aug 12, 2026
197c24d
[Base] Merge with upstream PAWS-X EU task group
islobozhan Aug 12, 2026
ea3bcb2
[Contrib][Image] Add spurious-robustness contrib plugin (ImageNet, Ce…
islobozhan Aug 24, 2026
6e25d8b
Merge upstream/main: singularity bind fix for --lm_eval_include_path
islobozhan Aug 24, 2026
0f354ee
[Base] Merge with upstream: singularity bind fix for --lm_eval_includ…
islobozhan Aug 24, 2026
eb5eebc
[Base] Make lm_eval batch size configurable, explicit for local runs
islobozhan Aug 27, 2026
60ab95c
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-17
islobozhan Sep 1, 2026
8645722
[Base] Merge with upstream Okapi HellaSwag, MMMLU, XCOPA, MultiBLIMP …
islobozhan Sep 1, 2026
b87a1fd
merge with upstream
islobozhan Sep 3, 2026
9d75650
[Base] Merge with upstream: robust cluster recognition, lighteval acc…
islobozhan Sep 3, 2026
138269b
[Base] Merge with upstream: bigbench generate_until fix, per-group me…
islobozhan Sep 15, 2026
2f40b14
lmms-eval: real adapter names, registry pre-flight, run-time device p…
islobozhan Sep 15, 2026
3116e6a
[Base] Merge with upstream 19: per-group metric keys, collect --fetch…
islobozhan Sep 15, 2026
04e47a8
[Base] Merge with upstream 20: drop trust_remote_code on datasets>=4 …
islobozhan Sep 17, 2026
886cb69
[Base] Merge with upstream
islobozhan Sep 18, 2026
9e8e645
[Contrib][Image] Add DocVQA 2026 benchmark
islobozhan Sep 21, 2026
2cf4cdc
[Base] Merge with upstream 21: fail job on missing results, LUMI ligh…
islobozhan Sep 22, 2026
8f8c70a
[Base] Merge with upstream: missing-result failures, LUMI lighteval f…
islobozhan Sep 22, 2026
a0c4473
[Base] Review fixes: correct results, scheduling and datasets; AudioB…
islobozhan Sep 23, 2026
3096fb4
[Base] Merge with upstream 22: batch lm-eval tasks per call, HF_HOME …
islobozhan Sep 24, 2026
0a3e3b2
[Base] Drop duplicate upstream tests, keep the cases ours missed
islobozhan Sep 24, 2026
c93a359
[Base] Merge with upstream : batch lm-eval tasks per call, HF_HOME ch…
islobozhan Sep 24, 2026
098d8ca
[Base] Push collected results to the dashboard from the login node (o…
islobozhan Sep 25, 2026
c98ea2a
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-23
islobozhan Sep 27, 2026
64a33c0
[Base] Keep lm-eval 0.4.12 name for INCLUDE North Macedonian
islobozhan Sep 27, 2026
da04b0c
[Base] README: link to the dashboard site
islobozhan Sep 27, 2026
351578b
[Base] Pin lm-eval 0.4.12 in the text extra, same as the containers
islobozhan Sep 27, 2026
6e45a15
[Base] Merge with upstream
islobozhan Sep 27, 2026
5ecc7c0
Merge remote-tracking branch 'upstream/main' into merge-with-upstream-24
islobozhan Sep 29, 2026
7716a55
[Base] Merge with upstream: SIB-200 scored by acc instead of acc_norm
islobozhan Sep 29, 2026
1842d86
[Base] Fix logged run-folder paths for language-bracket runs
islobozhan Sep 29, 2026
d278455
[Base] Merge with upstream: CrowS-Pairs bias benchmark
islobozhan Sep 30, 2026
44b9753
[Base] Merge with upstream - CrowS-Pairs bias benchmark
islobozhan Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/sky/slurm-integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ run: |
lm-eval torch transformers accelerate "datasets<4.0.0"
UV_TOOL_DIR="$EVAL_BASE_DIR/.uv-tools" UV_TOOL_BIN_DIR="$EVAL_BASE_DIR/.venv/bin" \
uv tool install --python 3.12 \
--with "langcodes[data]" --with "pillow" \
--with "langcodes[data]" --with "pillow" --with "xxhash<4" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git"
fi

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
run: uv python install 3.12

- name: Install dependencies
run: uv sync --extra dev --extra eval-base
run: uv sync --extra dev

- name: Run tests
run: uv run pytest tests/ -v --ignore=tests/integration/
run: uv run pytest tests/ -v --ignore=tests/integration/ --ignore=tests/test_datasets.py
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,9 @@
**/task_map_cache.json
*.sif
results/
# SSH keys/certs must never be committed
key_filename*
*.pem
id_rsa*
id_ecdsa*
id_ed25519*
404 changes: 308 additions & 96 deletions README.md

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions containers/jupiter.def
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,20 @@ From: nvcr.io/nvidia/pytorch:25.06-py3
export UV_TOOL_BIN_DIR=/usr/local/bin
uv --version

uv pip install --system --break-system-packages lm-eval \
uv pip install --system --break-system-packages lm-eval==0.4.12 \
latex2sympy2_extended \
wandb sentencepiece tiktoken accelerate

# lighteval as isolated tool (avoids dependency conflicts)
export UV_TOOL_DIR=/opt/uv-tools
# Install lighteval without [multilingual] extras first, then add multilingual deps
# sudachipy (spacy[ja] dep) has no ARM64 wheel, so skip Japanese support
# xxhash<4: 4.0 rejects str input, which lighteval hashes (see lumi.def)
uv tool install --python 3.12 \
--with "pillow" \
--with "torch<2.9" \
"lighteval @ git+https://github.com/huggingface/lighteval.git"
--with "xxhash<4" \
"lighteval @ git+https://github.com/huggingface/lighteval.git@64f4f5ae173626509fad6e477ca4ee56ebb26129"
uv pip install --system --break-system-packages "spacy>=3.0.0,<4.0.0" jieba "underthesea>=6.0.0"
uv pip install --system --break-system-packages nltk

Expand Down
7 changes: 5 additions & 2 deletions containers/jureca.def
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ From: nvcr.io/nvidia/pytorch:25.06-py3

# lm-eval and dependencies (system Python)
uv pip install --system --break-system-packages \
lm-eval \
lm-eval==0.4.12 \
latex2sympy2_extended \
transformers \
"datasets<4.0.0" \
wandb \
Expand All @@ -23,10 +24,12 @@ From: nvcr.io/nvidia/pytorch:25.06-py3
nltk

# lighteval as isolated tool (avoids dependency conflicts)
# xxhash<4: 4.0 rejects str input, which lighteval hashes (see lumi.def)
uv tool install --python 3.12 \
--with "langcodes[data]" \
--with "pillow" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git"
--with "xxhash<4" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git@64f4f5ae173626509fad6e477ca4ee56ebb26129"

# Pre-load lighteval registry to trigger tinyBenchmarks data download at build time
/opt/uv-tools/lighteval/bin/python -c "from lighteval.tasks.registry import Registry; Registry.load_all_task_configs(load_multilingual=True)"
Expand Down
7 changes: 5 additions & 2 deletions containers/leonardo.def
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ From: nvcr.io/nvidia/pytorch:25.10-py3

# lm-eval and dependencies (system Python)
uv pip install --system --break-system-packages \
lm-eval \
lm-eval==0.4.12 \
latex2sympy2_extended \
transformers \
"datasets<4.0.0" \
wandb \
Expand All @@ -23,10 +24,12 @@ From: nvcr.io/nvidia/pytorch:25.10-py3
nltk

# lighteval as isolated tool (avoids dependency conflicts)
# xxhash<4: 4.0 rejects str input, which lighteval hashes (see lumi.def)
uv tool install --python 3.12 \
--with "langcodes[data]" \
--with "pillow" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git"
--with "xxhash<4" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git@64f4f5ae173626509fad6e477ca4ee56ebb26129"

# Pre-load lighteval registry to trigger tinyBenchmarks data download at build time
/opt/uv-tools/lighteval/bin/python -c "from lighteval.tasks.registry import Registry; Registry.load_all_task_configs(load_multilingual=True)"
Expand Down
5 changes: 3 additions & 2 deletions containers/lumi.def
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ From: rocm/pytorch:rocm6.4.1_ubuntu24.04_py3.12_pytorch_release_2.7.1

# lm-eval and dependencies (system Python)
uv pip install --system --break-system-packages \
lm-eval \
lm-eval==0.4.12 \
latex2sympy2_extended \
transformers \
"datasets<4.0.0" \
wandb \
Expand Down Expand Up @@ -44,7 +45,7 @@ From: rocm/pytorch:rocm6.4.1_ubuntu24.04_py3.12_pytorch_release_2.7.1
--with "langcodes[data]" \
--with "pillow" \
--with "xxhash<4" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git"
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git@64f4f5ae173626509fad6e477ca4ee56ebb26129"

# Pre-load lighteval registry to trigger tinyBenchmarks data download at build time
/opt/uv-tools/lighteval/bin/python -c "from lighteval.tasks.registry import Registry; Registry.load_all_task_configs(load_multilingual=True)"
Expand Down
7 changes: 5 additions & 2 deletions containers/slurm-ci.def
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ From: nvcr.io/nvidia/pytorch:25.10-py3

# lm-eval and dependencies (system Python)
uv pip install --system --break-system-packages \
lm-eval \
lm-eval==0.4.12 \
latex2sympy2_extended \
transformers \
"datasets<4.0.0" \
wandb \
Expand All @@ -23,10 +24,12 @@ From: nvcr.io/nvidia/pytorch:25.10-py3
nltk

# lighteval as isolated tool (avoids dependency conflicts)
# xxhash<4: 4.0 rejects str input, which lighteval hashes (see lumi.def)
uv tool install --python 3.12 \
--with "langcodes[data]" \
--with "pillow" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git"
--with "xxhash<4" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git@64f4f5ae173626509fad6e477ca4ee56ebb26129"

# Pre-load lighteval registry to trigger tinyBenchmarks data download at build time
/opt/uv-tools/lighteval/bin/python -c "from lighteval.tasks.registry import Registry; Registry.load_all_task_configs(load_multilingual=True)"
Expand Down
7 changes: 5 additions & 2 deletions containers/snellius.def
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ From: nvcr.io/nvidia/pytorch:25.10-py3

# lm-eval and dependencies (system Python)
uv pip install --system --break-system-packages \
lm-eval \
lm-eval==0.4.12 \
latex2sympy2_extended \
transformers \
"datasets<4.0.0" \
wandb \
Expand All @@ -23,10 +24,12 @@ From: nvcr.io/nvidia/pytorch:25.10-py3
nltk

# lighteval as isolated tool (avoids dependency conflicts)
# xxhash<4: 4.0 rejects str input, which lighteval hashes (see lumi.def)
uv tool install --python 3.12 \
--with "langcodes[data]" \
--with "pillow" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git"
--with "xxhash<4" \
"lighteval[multilingual] @ git+https://github.com/huggingface/lighteval.git@64f4f5ae173626509fad6e477ca4ee56ebb26129"

# Pre-load lighteval registry to trigger tinyBenchmarks data download at build time
/opt/uv-tools/lighteval/bin/python -c "from lighteval.tasks.registry import Registry; Registry.load_all_task_configs(load_multilingual=True)"
Expand Down
37 changes: 36 additions & 1 deletion docs/CONTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,47 @@ Apptainer containers are built automatically via GitHub Actions and stored on Hu
## How It Works

1. Definition files live in `containers/<cluster>.def`
2. On push to `main` (when `.def` files change), GitHub Actions provisions [Lambda Labs](https://lambdalabs.com/) GPU instances via [SkyPilot](https://skypilot.readthedocs.io/) and builds all containers in parallel
2. Builds are triggered **manually** ("Run workflow" on the [build-and-push-apptainer](../.github/workflows/build-and-push-apptainer.yml) action — manual since PR #46). The workflow provisions [Lambda Labs](https://lambdalabs.com/) GPU instances via [SkyPilot](https://skypilot.readthedocs.io/) and builds all containers in parallel
3. Built `.sif` images are uploaded to HuggingFace Hub
4. Clusters pull the image specified in `oellm/resources/clusters.yaml` via `EVAL_CONTAINER_IMAGE`

Images are compressed with zstd (level 3) via mksquashfs for a good balance of size and build speed.

## What the Images Contain (and What They Don't)

The shipped images provide exactly **two engines**: `lm-eval` (system Python)
and `lighteval` (installed as an isolated uv tool to avoid the `datasets`
version conflict). They do **not** contain `lmms-eval`, the `oellm` package
(needed by contrib suites), or evalchemy — scheduling those suites in
container mode is rejected by the environment pre-flight; pass `--venv-path`
with a suitable venv instead (see [VENV.md](VENV.md)).

## Image / Video / Audio Evaluation (lmms-eval)

lmms-eval benchmarks require a custom venv:

**Option 1 — Custom venv (recommended):**
Follow the general-venv setup in [VENV.md](VENV.md) — note that `lmms-eval`
is **not** provided by any pyproject extra; it must be installed editable
from git (its wheel build drops required template files), alongside the
`[text,image,audio]` extras.

**Option 2 — Build a container with lmms-eval:**
Extend a `.def` file — install lmms-eval **editable from git** (a plain
`pip install lmms-eval` produces a broken install — the wheel drops
`_default_template_yaml` files) and include the `oellm` package if contrib
suites should run in the container:

```singularity
%post
uv pip install --system --break-system-packages \
lm-eval torch transformers accelerate "datasets<4.0.0"
uv pip install --system --break-system-packages \
-e "git+https://github.com/EvolvingLMMs-Lab/lmms-eval.git#egg=lmms-eval"
```

Then set `EVAL_CONTAINER_IMAGE` in `clusters.yaml` to point to this image.

## Adding a New Cluster

1. Create `containers/<cluster>.def` with the appropriate base image:
Expand Down
Loading
Loading