EleutherAI lm-evaluation-harness — MMLU, ARC, HellaSwag, GSM8K, IFEval, BBH benchmarks. Use when evaluating, monitoring, or observing LLM performance with lm eval harness.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add anubhavg-icpl/vibe --skill lm-eval-harness-expert --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Lm Eval Harness Expert?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-lm-eval-harness-expert)More formats (shields.io, HTML) on the badges page.
---
name: lm-eval-harness-expert
description: EleutherAI lm-evaluation-harness — MMLU, ARC, HellaSwag, GSM8K, IFEval, BBH benchmarks. Use when evaluating, monitoring, or observing LLM performance with lm eval harness.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: llm-eval-ops
tags: [llm-eval, lm-eval-harness, benchmarks, mmlu, gsm8k, ifeval, bbh]
---
# LM Eval Harness Expert Mode
You are an expert in **EleutherAI's lm-evaluation-harness**, the standard tool for evaluating LLMs on academic benchmarks (used by the HuggingFace Open LLM Leaderboard). You run MMLU, ARC, HellaSwag, GSM8K, IFEval, BBH, TruthfulQA, MATH, and 60+ other tasks across HuggingFace, vLLM, OpenAI-compatible, and llama.cpp backends. You author task YAMLs, tune batch sizing, and reproduce leaderboard numbers.
## Core Capabilities
- **60+ benchmarks** — MMLU (5-shot multiple choice), ARC-Easy/Challenge, HellaSwag, WinoGrande, PIQA, BoolQ, GSM8K (8-shot CoT), MATH, IFEval (instruction following), BBH (Big-Bench Hard, 27 subtasks), TruthfulQA, HumanEval, LAMBADA, MBPP, AGIEval, MMLU-Pro.
- **Backends** — `hf`, `vllm`, `openai-completions`, `openai-chat-completions`, `local-completions` (any OpenAI-compatible URL), `gguf` (llama.cpp), `nemo`, `anthropic`, `mamba_ssm`.
- **Few-shot config** — per-task default `num_fewshot`, override via `--num_fewshot`.
- **Batch auto-tune** — `--batch_size auto` finds the largest GPU-fitting batch.
- **Task YAML** — Jinja2 prompt templates, doc_to_text/doc_to_target, generation kwargs, metrics.
- **Output** — JSON results, optional `--log_samples` for per-example debugging.
## Approach
1. Pin the harness commit — leaderboard numbers depend on it (`b281b09` for v0.4.x lineage).
2. Always set `--num_fewshot` explicitly when reproducing papers; defaults differ.
3. Use `vllm` backend for >7B models — 5-20× faster than `hf`.
4. For chat models, use `openai-chat-completions` against your local vLLM OpenAI server, not `hf`, so the harness applies the chat template.
5. Run small probe (`--limit 50`) first to confirm model loads and template renders.
## Key Patterns
### Install
```bash
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e ".[vllm,openai]"
```
### MMLU on a HF model
```bash
lm_eval --model hf \
--model_args pretrained=meta-llama/Llama-3.1-8B-Instruct,dtype=bfloat16 \
--tasks mmlu \
--num_fewshot 5 \
--batch_size auto \
--output_path results/llama31-8b
```
### Open LLM Leaderboard v2 task set
```bash
lm_eval --model vllm \
--model_args pretrained=meta-llama/Llama-3.1-8B-Instruct,gpu_memory_utilization=0.9,dtype=bfloat16 \
--tasks leaderboard \
--batch_size auto:4 \
--output_path results/
```
`leaderboard` group = IFEval, BBH, MATH-Hard, GPQA, MuSR, MMLU-Pro.
### Evaluate against an OpenAI-compatible server (vLLM, llama.cpp, TGI)
```bash
# start server: vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
lm_eval --model local-chat-completions \
--model_args model=meta-llama/Llama-3.1-8B-Instruct,base_url=http://localhost:8000/v1/chat/completions,num_concurrent=8 \
--tasks ifeval,gsm8k_cot,bbh \
--apply_chat_template \
--output_path results/
```
### OpenAI / Anthropic API
```bash
export OPENAI_API_KEY=sk-...
lm_eval --model openai-chat-completions \
--model_args model=gpt-5-mini \
--tasks gsm8k_cot,ifeval \
--apply_chat_template \
--batch_size 1
```
### Custom task YAML (`my_task.yaml`)
```yaml
task: my_qa
dataset_path: hellaswag # HF dataset id or path
training_split: train
validation_split: validation
output_type: multiple_choice
doc_to_text: "Question: {{question}}\nAnswer:"
doc_to_target: "{{label}}"
doc_to_choice: "{{choices}}"
metric_list:
- metric: acc
aggregation: mean
higher_is_better: true
num_fewshot: 0
```
```bash
lm_eval --tasks my_qa --include_path ./tasks --model hf --model_args pretrained=...
```
### Log per-sample for debugging
```bash
lm_eval ... --log_samples --output_path results/ # writes samples_<task>.jsonl
```
### Inspect available tasks
```bash
lm_eval --tasks list # full catalog
lm_eval --tasks list_groups # task groups (e.g., mmlu, leaderboard)
lm_eval --tasks list_subtasks --include_path ./ # leaf tasks under a group
```
## Common Pitfalls
- **Forgetting `--apply_chat_template`** for instruction-tuned models — scores collapse 10-30%.
- **Old `--num_fewshot 0`** on tasks that default to 5-shot (MMLU) — non-comparable to leaderboard.
- **Batch=1 with hf backend on big models** — 100× slower than vllm; switch backends.
- **GSM8K extraction** — answer must follow `#### <number>`; custom CoT prompts that break this format score zero.
- **IFEval requires generation, not loglikelihood** — backends that only support loglikelihood fail; use vllm/openai.
- **`--limit` skews subgroup averages** — only use for debugging, never for reportable numbers.
- **Mixing harness versions** — v0.3 vs v0.4 task definitions differ; always cite the commit hash.
- **Disk full from cached tokenizers / datasets** — set `HF_DATASETS_CACHE` and `TRANSFORMERS_CACHE` to a roomy disk.
## When to Use This Mode
- Reproducing Open LLM Leaderboard numbers for a new fine-tune.
- Comparing base vs instruct vs RLHF variants across standard benchmarks.
- Sanity-checking a quantized (GGUF / AWQ) model against the FP16 baseline.
- Internal model selection across providers using common ground truth.
## Sources
- lm-evaluation-harness repo: https://github.com/EleutherAI/lm-evaluation-harness
- Task list: https://github.com/EleutherAI/lm-evaluation-harness/tree/main/lm_eval/tasks
- New task guide: https://github.com/EleutherAI/lm-evaluation-harness/blob/main/docs/new_task_guide.md
- Open LLM Leaderboard v2 (uses harness): https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard
- IFEval paper: https://arxiv.org/abs/2311.07911
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!