Урок 0006 · LLM-as-judge: теория, баги, калибровка

Финал курса: как строить судью, которому можно верить, и какие баги у него гарантированно будут.

Цель урока Рассказать протокол калибровки судьи, назвать три бага из литературы и собрать промпт-скелет судьи.

1. Судья — это классификатор

Не «мнение», а предсказание: фейл / не фейл. Меряется TP/FP/TN/FN, TPR/TNR, confusion matrix — не accuracy.

Ловушка accuracy: 5% фейлов → судья «всегда ок» даёт 95% accuracy и ловит ноль проблем.

Подробно — в глоссарии метрик.

2. Три способа скоринга

СпособКогдаПочему
Direct scoringФакты, faithfulness, политикаОтвет либо верен, либо нет
Pairwise comparisonТон, убедительность, когерентностьСтабильнее для субъективного
Reference-basedЕсть эталонные ответыДороже: референсы надо писать

Источник: Eugene Yan.

3. Баги судей (назвать на собеседовании)

Несмотря на баги: сильный судья (GPT-4) совпадает с людьми на >80% — на уровне человек-человек. Это легитимизирует подход при правильной калибровке.

Источник: MT-Bench / Judging LLM-as-a-Judge.

4. Протокол калибровки

  1. 30–80 примеров, разметка человеком (домен-эксперт).
  2. Прогон судьи → confusion matrix → TPR/TNR.
  3. TPR низкий → критерий узкий или промпт невнятный. FP высокий → критерий жёсткий.
  4. Few-shot — только из train, holdout не трогать.
  5. Перекалибровка регулярно: criteria drift — «критерии нужны, чтобы оценивать выходы, но оценка выходов помогает определить критерии».

Источники: Hamel judge, Who Validates the Validators?.

5. Промпт-скелет судьи

You are grading ONE criterion: <name>.
PASS if and only if: <observable rule>.
FAIL if: <counterexamples>.
Reply JSON: {"verdict": "PASS"|"FAIL", "critique": "..."}.
Do not score style, length, or politeness unless they violate the rule.

Почему так: один критерий (не мультитул), binary (Likert шумит), критика (для error analysis), JSON (парсится кодом), явный запрет стиля/длины (лечит verbosity bias).

6. Когда судья НЕ нужен

Code-based проверка всегда предпочтительнее: JSON-схема, regex, enum, «цифра баланса только из get_balance», account_id == session_id, SQL exec. Судья — только для того, что кодом не выражается.

Экономика: LLM-judge с CoT — деньги и латентность. Не вешай в горячий путь, если можно кодом.

7. Частые судьи (готовый набор для каре)

  1. Faithfulness / groundedness — claims сидят в контексте?
  2. Answer relevance — ответ про вопрос?
  3. Policy / refusal — отказался на чужой баланс?
  4. Tool efficiency — правильные тулы, разумное число раз.
  5. Citation accuracy — ссылка поддерживает утверждение.
  6. Completeness — все оси покрыты.
  7. Handoff quality — эскалация вовремя, с саммари.
  8. Pairwise A/B — какой ответ лучше по X.

Проверь себя

Судья предпочитает длинные ответы — это?

Для фактов лучше скоринг?

Criteria drift — это когда?

Первоисточник урока Eugene Yan — Evaluating the Effectiveness of LLM-Evaluators — вся теория с бумами. Баги: MT-Bench.