Как мы научили ИИ объяснять ПДД так, чтобы человек сдал экзамен с первого раза

Кейс: тренажёр ПДД Казахстана. 1019 вопросов, 894 разбора, две языковые версии — и почему главной проблемой оказался не ИИ, а доверие к его ответу.

Задача

В Казахстане теоретический экзамен на права принимает СпецЦОН: 40 вопросов за 40 минут, порог — 32 правильных ответа. Примерно половина кандидатов проваливает первую попытку. Причина почти всегда одна: люди учат «правильную букву» в билете, а на экзамене формулировка оказывается другой — и заученный ответ не срабатывает.

Мы делали тренажёр и уперлись в вопрос: как объяснить человеку, почему ответ именно такой, если объяснений в базе нет? 1019 вопросов, и писать разборы руками — это месяцы работы.

Первое решение, которое не сработало

Очевидный ход: взять LLM и сгенерировать разбор к каждому вопросу. Мы так и сделали. Результат выглядел отлично — гладкий текст, уверенный тон.

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

Что сработало: цитата вместо пересказа

Мы перестроили генерацию. Теперь разбор состоит из двух частей:

1. Объяснение простыми словами — что происходит в ситуации и почему верен именно этот вариант.

2. Дословная цитата из Правил с номером пункта — не пересказ модели, а текст закона, подставленный из корпуса.

Корпус Правил мы загрузили отдельно и связали с вопросами. Модель больше не «вспоминает» закон — она работает с конкретным пунктом, который ей дали. Если подходящей нормы не нашлось, разбор не публикуется вовсе: лучше пустое место, чем красивая выдумка.

Это дало главное — проверяемость. Пользователь видит и объяснение, и первоисточник, и может перепроверить сам.

Вторая проблема: картинки

Треть вопросов — это дорожные ситуации на картинках: перекрёстки, знаки, разметка. Текстовая модель их не видит и начинает угадывать по формулировке вопроса. Мы получили разборы, где описывался перекрёсток, которого на картинке нет.

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

Третья проблема: деньги и лимиты

Генерация разборов на топовой модели для всей базы стоит дорого, а базовый доступ для пользователя бесплатный. Мы сделали три вещи:

- Кэш ответов. Каждый сгенерированный разбор сохраняется. Один и тот же вопрос не генерируется дважды — ни для одного пользователя.

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

- Цепочка провайдеров. Если основной провайдер недоступен или кончилась квота, запрос уходит к следующему. Продукт продолжает работать даже когда «кончились токены» — на кэше и резервных моделях.

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

Что мы поняли про ИИ в учебных продуктах

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

Первоисточник важнее качества текста. Человек прощает суховатую формулировку, но не прощает неверный ответ. Цитата с номером пункта снимает вопрос доверия полностью.

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

Пустое место лучше выдумки. Мы сознательно оставили часть вопросов без разбора, вместо того чтобы закрыть все 1019 любой ценой.

Где это работает

Базовый доступ бесплатный: вся база из 1019 вопросов, экзамен в формате СпецЦОН, разборы с цитатой закона, казахская и русская версии. Веб-версия — pdd.baurai.com, Telegram-бот — @PDDKZaibot.

Если делаете учебный продукт на LLM — главный совет короткий: привяжите каждое утверждение модели к проверяемому источнику. Всё остальное — детали реализации.