Skip to main content
Benchmarks in EMEP are versioned, reproducible evaluation configurations. The BenchmarkEngine executes benchmarks according to their specification records. This page defines the benchmark schema, metric semantics, and configuration invariants.

Benchmark Record Schema

Versioning

Benchmark versions follow semantic versioning:
  • Major: changes to prompt templates, metric definitions, or dataset composition
  • Minor: additional samples, seed additions, documentation updates
  • Patch: bug fixes in scoring code
When a benchmark is updated, existing experiment records remain bound to the version they used. The BenchmarkCatalog maintains all historical versions.

Seeds and Reproducibility

Every benchmark specifies a list of integer seeds. The BenchmarkEngine uses these seeds for:
  • Dataset shuffling and sampling
  • Decoding randomness (when temperature > 0)
  • Any stochastic elements in metric computation
Results are reported per-seed and aggregated across seeds. The number of seeds determines the statistical power of the evaluation.

Prompt Templates

Prompts are Jinja2 templates with access to the following variables:
  • input: the raw input text or structured data
  • instruction: task-specific instruction
  • context: optional background context
  • examples: few-shot examples if configured
Templates are validated at benchmark registration time. Invalid templates produce an error before any experiment can use the benchmark.

Decoding Parameters

Decoding parameters are part of the benchmark specification. Changing them creates a new benchmark version.

Metric Definitions

Each metric definition includes:

Supported Metrics

Accuracy Proportion of correct predictions. For classification, exact label match. For multiple choice, selected option match. Exact Match String-level equality between generated and reference text, after normalization (whitespace stripping, lowercasing if specified). ROUGE ROUGE-L and ROUGE-1 scores for summarization and generation tasks. Computed using standard tokenization. BLEU BLEU-4 for translation and generation. Uses benchmark-specific tokenization. Calibrated Log-Likelihood Per-token log-likelihood normalized by sequence length. Used for perplexity and confidence estimation.

Split Policy

Every benchmark assigns its samples to one of three splits:
  • Optimization Set: used by EvolutionEngine and FitnessEngine
  • Validation Set: used for post-evolution validation reports
  • Hidden Test Set: reserved for final, unbiased assessment
The split is fixed at dataset registration time. It cannot be changed without creating a new dataset version.
Benchmark specifications are immutable after registration. Any change, even to metadata, requires a new version. This guarantees that experiments referencing benchmark_v3 always execute the same evaluation protocol.