Layout
benchmark.yaml
benchmark.yaml
Fields
string
required
Leaf name. A published pack is referenced as
<owner>.<name>; built-ins keep the bare name.lm-eval | evalscope | rtl | judge | safety
required
Which harness executes the evaluation. See the table below.
string[]
required
The suite names the runner understands. For
lm-eval these are its task names.string
default:"general"
Dashboard grouping —
math, code, knowledge, chinese, instruction, and so on.mixed
Defaults for running it.
batch_size defaults to auto, limit caps the number of samples. A
user can override all of these at submission; what you declare is what happens when they do not.This is the point of the pack: nobody should have to remember that GSM8K wants 5-shot or that
HumanEval needs --confirm_run_unsafe_code.<owner>/<name>
Only read by the
judge runner, and for that runner it is the benchmark’s definition. Swap the
rubric and it is a different benchmark — which is why it is a declared field rather than a flag
buried in extra_args that nobody can see from the catalog.Metrics
Each entry says which number to pull out of the runner’s report and how to present it.string
required
The raw metric name the runner emits, verbatim —
exact_match,strict-match for lm-eval. This is
the machine-facing name and it is not translatable.string
What the dashboard column says. Defaults to
key, which is fine for a machine and poor for a
human.higher | lower | neutral
default:"higher"
Which way is better. The comparison view colours regressions by this.
bool
default:"true"
Whether the value is a 0–1 proportion, so the dashboard renders it as a percentage.
bool
default:"false"
The metric cross-run comparison defaults to. Exactly one should be primary; if none is, the first
is used.
The five runners
lm-eval and evalscope decide correctness with a rule — an exact match, a parsed answer. judge
and safety decide it with a rubric your team wrote. The platform supplies neither the suite’s
policy nor the rubric’s content for the last two: both belong to the deployment, and a built-in
would be the platform declaring a verdict it has no standing to declare.Bilingual display copy
Write the manifest in English and carry translations in ani18n: block, at the pack level and per
metric:
Confirm it worked
Externally scored benchmarks
When the scoring happens somewhere the platform cannot reach — a licensed harness, a physical test rig — report the numbers back instead of running them here:What ships built in
gsm8k, math, humaneval, mmlu, ceval, ifeval, plus the RTL packs (rtl-repo,
rtllm-v2, verilogeval-v2, verilogeval-v2-completion, cvdp).
Those axes are chosen deliberately: math, code, knowledge regression, Chinese, and instruction
following. Post-training most often improves one thing while quietly breaking another, and the point
of running several is to make that visible on one screen.