Using a model to grade a model
Human evaluation is slow and expensive, and string metrics cannot tell a correct paraphrase from a wrong one.
A judge model sits between them: it costs cents, runs in seconds, and understands the text well enough to apply a written rubric.
Published comparisons put a strong judge at roughly the level of agreement two human raters reach with each other, which is the bar that matters.
Measuring the judge before trusting it
- : the observed agreement between judge and human.
- : the agreement expected by chance.
Raw agreement is misleading when one label dominates. On a set that is 90 percent correct, a judge answering correct every time agrees 90 percent of the time and has learned nothing.
Cohen's kappa subtracts the chance level, which is why it is the number to report for a judge.
The judge must be validated on a few hundred human-labelled examples before it is used on thousands, and revalidated whenever the prompt or the model version changes.
The biases, which are documented and large
The first option shown wins more often.
The fix is to run every pair twice with the order swapped, and to count a disagreement between the two runs as a tie.
Longer answers score higher.
The rubric has to state that length is not quality, and even then the effect survives, so length should be reported alongside the score.
A model prefers its own outputs.
Judging a model with itself or with its own family inflates the result, which is why an independent judge is the standard precaution.
One judging setup, in order
- Write the rubric as explicit criteria, with what counts as each score.
- Include two or three graded examples in the prompt, covering the range.
- Ask for reasoning first and the score last, since a score written first is not revised.
- Constrain the output to a small discrete set, and parse it strictly.
- Run both orders on pairwise comparisons and average.
On a 1 to 10 scale, scores cluster at 7 and 8.
A fine-grained scale produces false precision. Three or five levels with written definitions is more reliable and easier to act on.
Where it should not be used
A judge is not ground truth.
Anything with a checkable answer should be checked: run the code, compare the number, query the database. A judge is for the cases where no such check exists.
Optimising a model against a judge makes the judge's blind spots into the model's behaviour, which is Goodhart's law with a fast feedback loop.
That is why a held-out human evaluation stays in the process, even when the judge is doing almost all the volume.