Справочник · Обновляется еженедельно Москва

Как проверять качество ответов модели: набор примеров вместо ощущений

Правка промпта, смена модели, новый способ поиска фрагментов — после каждого изменения возникает вопрос: стало лучше или хуже? Без набора примеров ответ на него сводится к впечатлению того, кто последним смотрел на экран.

ПРОВЕРКАНабор примеров вместо ощущенийИначе «стало лучше» ничем не подтверждаетсяТаблица прогоновПрогон 14 · 50 примеровКрасные — расхождения с эталономДоля приемлемых ответовпромпт v1v2v3v4Цифры условные: важно не значение, а то, что его вообще измеряют
Набор из полусотни примеров превращает спор о качестве в измеримую величину

Что такое тестовый набор

Это список реальных запросов с эталонными ответами или хотя бы с критериями, по которым ответ считается приемлемым. Тридцати-пятидесяти примеров достаточно, чтобы заметить ухудшение.

Собирать их надо из настоящих обращений, а не придумывать за столом. Придуманные примеры всегда удобнее реальных и создают ложное ощущение, что всё работает.

Из чего он состоит

НАБОРИз чего складывается тестовый комплект60%25%15%Типовые случаито, что встречается каждый деньПограничныередкие, но допустимые формулировкиЗаведомо плохиезапросы, на которые нужно отказатьТридцати-пятидесяти примеров достаточно, чтобы заметить ухудшение после правки промпта.
Пограничные и заведомо плохие случаи важнее типовых: именно на них видна разница между версиями

Типовые случаи показывают базовое качество. Пограничные — устойчивость к необычным формулировкам. Заведомо плохие проверяют, умеет ли система отказывать: на запрос вне своей области она должна честно сказать, что не знает, а не сочинить ответ.

Как оценивать

Три способа, от простого к сложному.

**Точное совпадение.** Работает там, где ответ формальный: извлечённое поле, категория, да или нет. Проверяется кодом, стоит ноль.

**Проверка человеком.** Полсотни ответов просматриваются вручную по чек-листу. Медленно, но надёжно и годится для любых задач.

**Оценка моделью.** Другая модель сравнивает ответ с эталоном по заданным критериям. Быстро и дёшево, но требует калибровки: сверьте её вердикты с человеческими хотя бы один раз.

Как этим пользоваться

Заведите правило: любое изменение промпта, модели или поиска сопровождается прогоном набора. Результат записывается рядом с версией.

Через несколько итераций появляется история, из которой видно не только текущее качество, но и направление движения. Без неё команды регулярно откатывают полезные правки и внедряют вредные.

Полезнее всего не абсолютная цифра, а сравнение двух версий на одном и том же наборе. «86 % приемлемых» само по себе не значит ничего, а «было 74, стало 86» — значит.

Чего измерять не стоит

Средний балл по всем задачам сразу. Если чат-бот и разбор документов живут в одном показателе, ухудшение в одном скроется за улучшением в другом.

Разделите набор по сценариям и смотрите на них отдельно. Это дороже ровно на одну таблицу.

Что делать с расхождениями

Не бросайтесь править промпт после первого же неудачного ответа. Сначала разберите, в чём именно поломка: не нашлись данные, нашлись, но неверно пересказаны, или задача сформулирована неоднозначно и эталон спорный.

Третий случай встречается чаще, чем кажется. Иногда правильный вывод из прогона — уточнить эталон, а не менять систему.

Кто этим занимается

Самая частая причина, по которой набор примеров не появляется, — непонятно, чья это работа. Разработчик считает, что оценивать качество текста должен продукт, продукт — что это техническая задача.

Разделение, которое обычно работает: набор примеров и эталоны собирает тот, кто отвечает за содержание — руководитель поддержки, редактор, методолог. Прогон и таблицу результатов делает разработчик. Решение о выкате принимают вместе.

Времени это занимает меньше, чем кажется. Первичный сбор — несколько часов. Дальше набор пополняется по одному примеру: каждый спорный случай из продакшена добавляется туда же, где лежат остальные.

Полезная привычка — держать набор в репозитории рядом с кодом, в обычном текстовом формате. Тогда он попадает в код-ревью, историю изменений и не теряется при смене людей.

Не пытайтесь сразу автоматизировать всё. Первый прогон можно сделать вручную в таблице: пятьдесят строк, три колонки — вопрос, ответ, вердикт. Этого достаточно, чтобы принять решение по конкретной правке, а инструменты появятся, когда прогоны станут частыми.

С чего начать

Выгрузите пятьдесят последних реальных запросов. Разметьте ожидаемые ответы — это займёт несколько часов. Прогоните текущую версию и запишите результат.

Дальше набор живёт вместе с проектом: каждый спорный случай из продакшена добавляется в него. Через полгода это самый ценный актив в проекте после самого кода.

Отдельно фиксируйте, какая версия модели использовалась при прогоне. Поставщики обновляют модели молча, и ответ на тот же промпт через месяц может измениться. Запись версии превращает необъяснимое «внезапно стало хуже» в понятную и проверяемую причину.

Предыдущий материал Function calling: как связать нейросеть с вашими сервисами Следующий материал Кеширование и батчинг: инженерия дешёвых запросов

Написать