Skip to main content

Evaluation overview

Training tells you the loss went down. Evaluation tells you whether the model got better at what you care about, and whether that number can be trusted. The Evaluation channel measures any checkpoint Modeling built, or a base model from the Hub, on items it never trained on, and reports how much of the evaluation set leaked into training next to every score.

Evaluation channel flow

What it measures, by kind of model​

ModelRecipeMeasured onHeadline numbers
LLM, decision or embedding modelevaluation_customyour rows, in the format the model trained onthe training recipe's own validation metrics
Generative LLMevaluation_benchmarkpublic benchmarks through lm-evaluation-harness (English and Korean presets)accuracy or exact match per benchmark, with its standard error
Several checkpoints and the baseevaluation_comparethe same benchmarks, rows, decision questions or MTEB tasks for every runthe difference to the base with a verdict, a polygon chart
Decision modelevaluation_decisionJev rows or the JevBench tiers, without and with reasoningaccuracy, NLL, ECE, latency
Embedding modelevaluation_embeddingMTEB taskseach task's main score
Wake word detectorevaluation_wakewordvoices and hours of audio it never heard, clean and in noisemiss rate, false accepts per hour, the threshold sweep
TTS voicetts_piper's own validateheld-out texts read by the voice, transcribed by Whisperwer against the recordings' reference_wer

Which one to run​

  1. Right after training: evaluation_custom on rows you care about, with checkpoint: base once for the baseline.
  2. Before trusting a fine-tune: evaluation_compare of the base and the trained checkpoint on a benchmark preset, so a gain on your task and a loss in general knowledge show up together.
  3. For decision, embedding and wake word models: their own recipe, because their metrics differ (calibration and latency; retrieval scores; false accepts per hour).

Everything is a recipe on the same runner as training: a score is cached per checkpoint content, task and settings, so comparing three checkpoints scores each benchmark once per checkpoint, and a benchmark added later is the only one that runs. Reports land in report.json, go to wandb with tracker.enabled, and are listed by the API.

Score trained models beyond the validation gate: on public benchmarks, on custom evaluation sets, and across several checkpoints at once, with a report a person can read. The question it answers is "which checkpoint of this model is best, on what, and compared with the base model".

RowsCheckpointsDecidesWhere
training.eval_everythe experiment's own held-out rowsthe weights at that stepnothing; a curve next to the losstraining.jsonl, tracker
validatethe experiment's own held-out rowsthe one it trainedpass or fail against validation.min / maxvalidation.json
Evaluation channelany benchmark or evaluation setany number, plus the base modelnothing; results kept for comparisonoutput/<evaluation>/report.json, a chart

Source: evaluation/README.md. This page is generated; edit the source and run npm run sync.