золотой набор
В «как измерить то, чего нет» есть строка практического порядка: собрать набор для оценки из настоящих пользовательских запросов. Разумный совет, и он молчит о главном — сколько взять. Двести примеров? Пятьсот? Вопрос звучит как арифметика и решается будто бы корнем из n, но это ловушка формы. Набор для оценки не выборка. Выборку берут заново каждый раз; набор берут один раз и потом бьют по нему сорок версий модели подряд. А то, чем меряют многократно, — не образец, а прибор. И у прибора другие болезни.
чем это не похоже на A/B
В A/B-тесте каждый запуск получает своих пользователей. Данные свежие, гипотеза одна, размер считается заранее из порога значимости, мощности и минимального интересного эффекта — и на этом честность обеспечена.
С набором для оценки всё наоборот. Он фиксирован. Те же двести примеров ты прогоняешь в понедельник, в среду и через месяц, после каждой правки промпта, после каждой смены модели. Свежих данных нет ни в одном из прогонов, кроме первого. Значит и защита, выписанная на один заранее назначенный взгляд, не действует — по той же причине, по которой не действует при подглядывании.
Разница жёстче, чем кажется: A/B врёт, когда ты нарушаешь процедуру. Набор для оценки врёт, когда ты им пользуешься.
износ
Механизм такой. Ты смотришь на результат, видишь провал на длинных запросах, правишь промпт, прогоняешь снова. Прирост есть. Но часть этого прироста — настоящее улучшение, а часть — подгонка ровно под те двести примеров, которые ты видел. Второе не отличить от первого изнутри: набор показывает суммарное число и не говорит, из чего оно.
Формально это адаптивный анализ данных. Пока решения не зависят от набора, он честен. Как только очередной выбор сделан после взгляда на результат, набор перестаёт быть независимым свидетелем — он становится соучастником. Дворк и соавторы показали, на сколько именно хватает такого свидетеля: при наивном переиспользовании число вопросов, на которые набор отвечает достоверно, растёт лишь как корень из его размера[1].
двести примеров — порядка полутора десятков честных решений, не сорок и не сто
Отсюда следствие, неудобное для практики: бюджет набора считается не в примерах, а в решениях. Сколько раз ты собираешься на него посмотреть и что-то после этого поменять — вот величина, от которой надо плясать. Двести примеров при пятнадцати итерациях и двести при ста — два разных прибора, и второй не измеряет ничего.
Лечится это не увеличением набора — корень из n тут работает против тебя ровно так же, как в законе больших чисел. Лечится разделением: рабочий набор, который можно жечь итерациями, и запертый, который открывают один раз перед решением. Тот же приём, что предрегистрация в эксперименте, только в другой одежде.
считать надо разности, а не баллы
Теперь про арифметику, которую портят чаще всего. Обе модели прогоняются по одним и тем же примерам. Значит сравнение парное: для каждого запроса есть ответ A и ответ B, и они разделяют всё, что в запросе трудного.
А считают обычно так, будто это две независимые выборки: средний балл модели A, средний балл модели B, разброс каждого. Разброс при этом громадный — он собран из того, что запросы разные по сложности, а не из того, что модели разные. Различие тонет в шуме, которого в задаче нет.
Правильно смотреть на разности по каждому примеру. Трудный запрос трудный для обеих, и при вычитании его трудность уходит. Остаётся то, что и требовалось. На типичных наборах это сокращает нужный объём в разы — не на проценты.
а «на скольких примерах A лучше B, на скольких хуже»
потолок задают расхождения
Дальше — почему набор «побольше на всякий случай» не спасает. Если две модели дают одинаковый ответ на девяноста процентах примеров, эти девяносто процентов не несут информации о разнице. Работают только оставшиеся десять.
Значит эффективный размер набора — не двести, а двадцать. И вопрос «хватает ли двухсот» превращается в другой: сколько в наборе примеров, на которых модели вообще расходятся. Ровно на этой логике стоит критерий Макнемара — он смотрит только на пары, где ответы разошлись, и остальные выбрасывает[2].
| набор | совпало | работает |
|---|---|---|
| 200 | 90% | 20 |
| 200 | 70% | 60 |
| 1000 | 97% | 30 |
Третья строка — та, ради которой таблица. Тысяча примеров при близких моделях даёт меньше рабочего материала, чем двести при разных. Чем ближе версии, тем дороже каждое сравнение, и под конец разработки набор, который годился в начале, перестаёт различать что-либо. Прибор не сломался — сузился зазор, который он должен видеть.
и пол задаёт разметка
Есть у набора и нижняя граница, к размеру не имеющая отношения вовсе. Если размечали люди и они между собой не согласны, часть каждого балла — шум разметки. В «как измерить то, чего нет» назван порог согласия: ниже примерно 0.6 задача считается неопределённой.
Связь с чувствительностью прямая, и о ней обычно молчат. Шум разметки не усредняется в ноль при росте набора — он систематический, он в самом определении «хорошего ответа». Есть разница между моделями, которую невозможно поймать никаким n: она меньше, чем расхождение между двумя размечающими. Прежде чем спрашивать, хватает ли примеров, стоит спросить, различают ли этот эффект сами люди.
То же и с судьёй-моделью. Судья, воспроизводящий человеческую оценку на восемьдесят процентов, вносит свои двадцать процентов расхождения — и они ложатся на тот же пол, ниже которого измерение не идёт.
что из этого делать
Порядок вопросов получается обратный привычному, и в этом вся польза.
Сперва — какую разницу нужно поймать и различают ли её люди на этом материале. Если нет, никакой набор не поможет, и дальше идти незачем. Потом — на скольких примерах версии вообще расходятся: это и есть рабочий объём, а общий размер лишь способ его получить. Потом — сколько решений ты собираешься принять, глядя на результат, и разделён ли набор на жгущийся и запертый. И только в конце — сколько всего примеров, и тут корень из n наконец уместен.
Практическая формулировка короткая. Набор для оценки — не мера правды, а инструмент с ресурсом. У него есть потолок, заданный близостью сравниваемых, пол, заданный согласием размечающих, и срок службы, заданный числом взглядов. Спрашивать «сколько примеров достаточно» без этих трёх — то же самое, что спрашивать длину верёвки.