Обучение · Агенты и вайб-кодинг
Глава 23. Эвалы
Эта глава самая техническая в книге и самая полезная. Здесь про то, как отличить настоящее улучшение от случайного совпадения, и не наебать самого себя.
ЧТО ТАКОЕ ЭВАЛ Эвал это набор задач с известным ожидаемым результатом, на котором ты проверяешь свою систему. Слово пришло из машинного обучения, где так называют оценку модели. У нас оно означает то же самое, только оценивают не модель, а всю сборку: модель вместе с инструкциями, инструментами и обвязкой. Смысл в одном: без него ты не знаешь, стало лучше или тебе показалось.
Один прогон это не эвал Главное утверждение главы.
Агент стохастичен по своей природе. Тот же запрос при той же температуре даёт разные траектории: разный порядок вызовов, разные промежуточные решения, а иногда и разный результат.
Значит, один зелёный прогон в автоматической проверке не доказывает ни хуя. Это одна точка из распределения, и где она в этом распределении лежит, ты не знаешь.
ГЛАВНОЕ ПРО ИЗМЕРЕНИЕ Метрика вида запустил один раз и посмотрел это не метрика, это лотерея. Правильная величина это доля успешных из нескольких попыток. Гоняй одну задачу несколько раз и смотри не на факт успеха, а на его частоту. Разброс между прогонами это и есть информация: маленький разброс означает надёжную схему, большой означает, что ты пока управляешь случайностью.
Первое, что стоит сделать после этой главы: взять свою типовую задачу, прогнать её пять раз подряд и посмотреть на результаты. У большинства после этого челюсть отвисает сильнее, чем от любой теории.
Выкинь шкалы Второе утверждение, идущее вразрез с интуицией.
Естественное желание при оценке качества это шкала от одного до пяти. Модель-судья ставит оценку, ты усредняешь, получаешь число, рисуешь график.
Совет человека, который поставил больше тридцати систем оценки: выкинуть шкалы нахуй и судить бинарно. Прошло или не прошло, плюс критика текстом.
Эвалы
Причина в том, что дашборд из оценок вида три и две десятых и четыре и одна десятая это бухгалтерия без смысла. Что делать с числом три и две десятых, хуй проссышь. Что делать со списком из десяти проваленных случаев и объяснением, почему они провалились, понятно сразу.
Судья строится из объяснений эксперта Третье, и самое неочевидное.
Обычный подход: ты пишешь судье инструкцию, где перечисляешь критерии хорошего ответа. Беда в том, что ты перечисляешь то, что можешь сформулировать, а не то, что действительно отличает хорошее от хуёвого.
Работающий подход другой. Главный доменный эксперт размечает около тридцати примеров: прошло или не прошло, и обязательно объяснение почему. Запрос для судьи строится уже из этих объяснений.
Разница в том, что в объяснениях эксперта вылезают критерии, которые он сам ни за что не назвал бы, если спросить абстрактно.
КАК СТРОИТСЯ ЭВАЛ
Разметить с Собрать случаи Построить судью Прогнать N раз Считать по срезам объяснением
из реальной работы тридцати хватает из объяснений не один раз функция, сценарий, роль
Считай по срезам Общая доля ошибок не говорит почти ни хуя. Восемьдесят процентов успеха может означать и ровное качество, и отличную работу на большинстве случаев при полном провале на одном классе.
Полезные срезы: по функции системы, по типу сценария, по типу пользователя. Именно на срезах видно, что чинить.
Смещения судьи Четвёртое, техническое, но критичное.
Модель-судья, сравнивая два ответа, страдает двумя предпочтениями, которые от качества не зависят вообще.
Позиционное. Первый показанный ответ выигрывает чаще.
Многословное. Более длинный ответ кажется лучше.
Оба смещения работают даже у сильных моделей. Позиционное лечится перемешиванием: показывай каждую пару в обоих порядках и усредняй. Многословное лечится хуже, но хотя бы учитывается: если твой новый вариант просто длиннее, рост оценки может быть чистой иллюзией.
Эвалы
Судить траекторию, а не ответ Пятое, специфичное именно для агентов.
У обычной модели есть только ответ. У агента есть путь: какие инструменты вызвал, в каком порядке, сколько раз обосрался, что прочитал.
Правильный ответ, полученный случайно после двадцати неудачных попыток, это ни разу не то же самое, что правильный ответ с первого захода. Первый наебнётся на следующей же задаче.
Поэтому судят траекторию: использовал ли агент нужные инструменты, не ходил ли по кругу, уложился ли в разумное число ходов.
ГЛАВНОЕ ПРО ЭВАЛ АГЕНТА Эвал агента это не тест, а распределение. Несколько прогонов, судья из другого семейства моделей, суд по траектории, а не только по ответу, счёт по срезам. Всё вместе, иначе получается видимость измерения.
Эвалы для скиллов и инструкций Отдельный случай, где обмануться проще простого.
Проверять скилл надо сравнением с базовой линией: та же задача без скилла. Иначе ты измеряешь способности модели, а не пользу своей надстройки.
Формулировка, по которой видно честный замер: девяносто процентов выполненных требований со скиллом против семидесяти пяти без него, на двенадцати сценариях по три прогона. Здесь есть база, есть число случаев, есть повторы. Утверждение вида стало в десять раз лучше не содержит ни хуя из этого.
Самое трудное в оценке скилла не измерение, а формулировка повторяемой задачи, на которой измерение вообще имеет смысл. Задача каждый раз разная, значит сравнивать нечего.
С чего начать, если нет ни хуя
ПЕРВЫЙ ЭВАЛ ЗА ОДИН ВЕЧЕР 1. Возьми десять задач, которые ты реально давал агенту за последний месяц. Не выдумывай новые. 2. Для каждой запиши, что считается успехом. Одним предложением, проверяемым. 3. Прогони каждую три раза. Запиши, сколько раз получилось. 4. Посчитай долю успеха по всему набору и по срезам, если срезы просматриваются. 5. Это твоя базовая линия. Дальше любое изменение обвязки проверяется тем же набором. 6. Раз в месяц выбрасывай задачи, которые проходят всегда. Они больше ничего не измеряют.
Эвалы
Шестой пункт неочевиден, но важен. Набор, где всё зелёное, перестал быть измерением и стал ритуалом с бубном.
Что считать хорошим набором задач Критерии приёмки, сформулированные в одной из фабрик эвалов: осмысленность, элегантность, разнообразие.
И отдельно оговорка: сложность намеренно не является критерием. Сложность легко накрутить, и с полезностью она не связана. Набор из десяти зубодробительных задач хуже, чем набор из десяти типичных.
Что живёт долго Наблюдение, которым стоит закончить.
Инструкции стареют. Скиллы стареют. Обвязка протухает быстрее, чем достраивается.
Постоянно живут только проверки. Хотя и они однажды идут на выброс, но живут дольше всего остального.
Отсюда порядок вложений: сначала способ измерить, потом всё остальное. Обратный порядок это то, что делают почти все, а потом годами пиздят о приёмах вместо того, чтобы взять и сравнить.
Что запомнить Один прогон это точка из распределения. Считай долю успешных из нескольких.
Шкалы от одного до пяти выкидывай. Прошло или нет, плюс критика.
Судью строй из объяснений эксперта на трёх десятках размеченных примеров.
Считай по срезам, а не общим средним.
Перемешивай позиции при сравнении: первый и длинный выигрывают сами по себе.
Суди траекторию, а не только ответ.
Скилл проверяй против базовой линии без него.
И строй измерение раньше обвязки, а не после.
← Ревью · оглавление · Детерминированные проверки вместо уговоров →
Спросить книгу может любой, кто вошёл в Neuraldeep Hub: агент ищет ответ по тексту и приводит цитату со ссылкой на главу.