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
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
Prompt Templates
Prompts are Jinja2 templates with access to the following variables:input: the raw input text or structured datainstruction: task-specific instructioncontext: optional background contextexamples: few-shot examples if configured
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
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.