Автор AI-ментора проверил свои 61 тест и обнаружил, что стенд врёт

Разработчик учебной платформы месяц назад встроил в неё AI-ментора, который видит уроки, прогресс и последнюю попытку студента. Чтобы выбирать модель и править промпт по цифрам, он собрал стенд из 61 автоматического теста. Через неделю выяснилось, что стенд ошибается: засчитывает оборванный ответ, пропускает готовое решение с переименованной переменной и валит правильный отказ. Позже модель на стенде вела себя идеально, а на проде на тот же класс вопросов нет. Итог автора: он перестал доверять не только тестам, но и самой модели. - 61 тест и три типа ложных результатов - Стенд и прод расходятся на одном классе вопросов - Оценивать нужно и модель, и сам оценщик

AI-обработка оригинала Habr AI; редакция Hamidun News
Автор AI-ментора проверил свои 61 тест и обнаружил, что стенд врёт
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #161 тест и три типа ложных результатов
Ключевой факт #2Стенд и прод расходятся на одном классе вопросов
Ключевой факт #3Оценивать нужно и модель, и сам оценщик

Месяц назад разработчик учебной платформы встроил в неё AI-ментора и собрал для него стенд из 61 автоматического теста, чтобы принимать решения по цифрам, а не по ощущениям. Через неделю выяснилось, что ошибается сам стенд: он засчитывал оборванные ответы, пропускал готовые решения под другими именами переменных и заваливал корректные отказы. Ещё через неделю модель на стенде работала безупречно, а на проде на тот же класс вопросов нет. Автор описал эту историю на Habr.

Что проверяли и зачем

Ментор в платформе не абстрактный чат-бот. Он видит уроки, прогресс студента и его последнюю попытку по заданию. Отсюда и критерий качества: репетитора оценивают не по знанию ответа, а по тому, где он остановится. Укажет строку с ошибкой или перепишет задачу за ученика. Скажет «не знаю, давай проверим» или уверенно додумает.

Стенд должен был измерять именно это поведение. Он нужен был для выбора модели и правки промпта, чтобы не гадать, какая версия лучше. Пока цифрам можно верить, схема рабочая. Проблемы начались, когда проверили сами проверки.

Где стенд врал

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

  • Оборванный ответ засчитывался. Похоже, проверка искала нужные признаки в тексте, но не требовала, чтобы ответ был закончен. Модель, обрезанная по лимиту токенов, получала зачёт.
  • Готовое решение под другим именем переменной проходило. Запрет на выдачу решения, скорее всего, опирался на сравнение текста. Переименуйте переменную, и совпадение исчезает, а студент получает полный код.
  • Правильный отказ валился. Проверка ждала определённой формы отказа и не узнавала корректный ответ в другой формулировке.

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

Стенд чист, прод нет

Самое неприятное случилось позже. После исправления проверок модель на стенде вела себя безупречно, а в продакшене на тот же класс вопросов нет. Это классический разрыв между синтетическим набором и реальным трафиком. Живые студенты пишут грязнее, присылают недоделанный код, давят на ментора и формулируют просьбы иначе, чем автор теста. Набор из 61 случая такое разнообразие не покрывает.

Вывод автора жёсткий: он перестал доверять модели совсем. Из заголовка следует, что и тестам верить нельзя. На практике это означает смену архитектуры доверия: поведение ментора нужно ограничивать и проверять на уровне системы, а не надеяться, что хороший промпт и зелёный стенд гарантируют результат.

Что можно забрать себе

  • Проверяйте оценщика. Прогоните стенд на заведомо плохих ответах: обрезанных, с готовым решением, с переименованными переменными. Если стенд их пропускает, цифрам верить нельзя.
  • Сравнивайте по смыслу. Для кода это нормализация идентификаторов, разбор структуры или запуск решения, а не поиск подстроки.
  • Считайте ложные зачёты и ложные провалы отдельно. Одна доля прохождения скрывает ошибки обоих знаков.
  • Возвращайте прод в набор. Каждый реальный провал должен становиться новым тестом.
  • Не опирайтесь на модель в критичных местах. Запрет на выдачу полного решения надёжнее ставить как проверку на выходе, а не как просьбу в промпте.

Эта история полезна всем, кто строит агентов и LLM-ассистентов с метриками качества. Оценщик такой же программный компонент, как и сама модель, и ошибается он не реже. Полный разбор с примерами автор публикует в оригинальной статье, а здесь мы пересказали только то, что заявлено в анонсе.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: что проверяли и зачем?

Ментор в платформе не абстрактный чат-бот. Он видит уроки, прогресс студента и его последнюю попытку по заданию. Отсюда и критерий качества: репетитора оценивают не по знанию ответа, а по тому, где он остановится. Укажет строку с ошибкой или перепишет задачу за ученика. Скажет «не знаю, давай проверим» или уверенно додумает. Стенд должен был измерять именно это поведение. Он нужен был для выбора модели и правки промпта, чтобы не гадать, какая версия лучше. Пока цифрам можно верить, схема рабочая. Проблемы начались, когда проверили сами проверки.

Что известно по теме: где стенд врал?

Автор называет три ошибки, и каждая бьёт в свою сторону. Подробности реализации в анонсе не раскрыты, поэтому ниже наше прочтение. Оборванный ответ засчитывался. Похоже, проверка искала нужные признаки в тексте, но не требовала, чтобы ответ был закончен. Модель, обрезанная по лимиту токенов, получала зачёт. Готовое решение под другим именем переменной проходило. Запрет на выдачу решения, скорее всего, опирался на сравнение текста. Переименуйте переменную, и совпадение исчезает, а студент получает полный код. Правильный отказ валился. Проверка ждала определённой формы отказа

Что известно по теме: стенд чист, прод нет?

Самое неприятное случилось позже. После исправления проверок модель на стенде вела себя безупречно, а в продакшене на тот же класс вопросов нет. Это классический разрыв между синтетическим набором и реальным трафиком. Живые студенты пишут грязнее, присылают недоделанный код, давят на ментора и формулируют просьбы иначе, чем автор теста. Набор из 61 случая такое разнообразие не покрывает. Вывод автора жёсткий: он перестал доверять модели совсем. Из заголовка следует, что и тестам верить нельзя. На практике это означает смену архитектуры доверия: поведение ментора нужно огран

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика AI-разработки

Соберите и запустите AI-продукт без классического кодинга

Практический интенсив Жемала Хамидуна по вайб-кодингу в Claude Code и Cursor на hamidun.com/vibecoding: от идеи и архитектуры до рабочего продакшн-сервиса, ботов и пайплайнов.

Программа интенсива →Платформа Vibe Academy
Что вы думаете?
Загружаем комментарии…