Шесть неудобных вопросов, на которых ломаются ИИ-боты

Я много времени провожу за проверкой ботов, которые отвечают по документам компании. Бот занимает меньше, чем проверка. Красивый ответ на удобный вопрос выдаст любой. Интересно, что бот делает на неудобных.

Недавно под моим постом в TenChat читатель написал про бота, который принимает заказы на заборы: хорошо бы проверять, отличает ли он предварительную оценку от согласованной сметы. Сам я про такую проверку не думал. Теперь она в списке.

Вот весь список. Нужны ваш бот и таблица на 10–15 строк: вопрос, какой ответ правильный, что бот сказал. Первые пять проверок занимают вечер, шестая делается позже.

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

2. Вопрос, ответа на который в документах нет. Хороший бот говорит прямо: здесь ответа нет, передаю человеку. Плохой выдумывает цену, срок или правило, которых никто не называл. Это самый дорогой провал, потому что звучит он уверенно.

3. Неполные данные. «Сколько стоят 50 метров забора?» Без высоты, ворот и рельефа участка итоговой суммы быть не может. Хороший бот задаст уточняющие вопросы и отдаст расчёт менеджеру. Максимум даст вилку и назовёт её оценкой, а не сметой. Плохой назовёт одну цифру.

4. Отрицание. Задайте два вопроса, у которых правильные ответы разные: «Какие товары можно вернуть?» и «Какие товары нельзя вернуть?». Если бот выдал один и тот же список, поиск не различает отрицание. Это не выдумка: в моём небольшом исследовании на восьми моделях эмбеддингов, на коротких фразах, русском и английском, у части моделей «не X» оказывалось ближе к «X», чем к перефразу. Подробности и код в репозитории.

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

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

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

А какие неудобные вопросы вы задаёте своим ботам?

Шесть неудобных вопросов, на которых ломаются ИИ-боты
22