Skip to main content

Local HuggingFace model

The default backend loads models via transformers.AutoModelForCausalLM.
Model args go inline in brackets (key=value, comma-separated); quote the spec so your shell doesn’t expand the brackets.

Model args reference

vLLM backend

For faster throughput on large models, use the vLLM backend (requires pip install -e ".[vllm]"):

API backend (LiteLLM)

Run any model accessible via an OpenAI-compatible API. API models support generative tasks only, so use mmlu_pro (chain-of-thought), not the log-prob mmlu:
Set OPENAI_API_KEY / ANTHROPIC_API_KEY in your environment before running.

Few-shot evaluation

mill eval runs each task at its built-in default n_shots value (MMLU defaults to 5, MMLU-Pro to 0). Few-shot examples are pulled from the task’s designated few-shot split (e.g. MMLU’s dev split):
mill eval has no n-shot flag — it always uses the task’s configured default. To sweep multiple n-shot values, use mill schedule with --n_shots 0,5, which launches one job per value.

Limiting samples (smoke tests)

Pass --limit to cap the number of samples evaluated per task — useful for quick iteration:

Caching

Mill writes results to Apache Feather files in output_dir. On a re-run, completed (model, task, n_shot) jobs are automatically skipped — you only pay for new work.

Viewing results