РАЗРАБОТКА

На Habr разобрали движок тренажёра собесов без LLM в рантайме

Четыре механизма и меньше 700 строк кода: на Habr показали, как устроен движок тренажёра собесов без единого вызова LLM в рантайме.

✍️ Редакция iTech News | 15.07.2026 | ⏱ 5 мин | Источник: Habr / Карьера

Меньше 700 строк кода, две таблицы состояния и ни одного вызова LLM в рантайме — именно так, по данным Habr / Карьера, устроен тренажёр собесов, который вместо бесконечных списков вопросов пытается реально доводить кандидата до повторяемого результата. Для разработчиков, дата-сайентистов и тимлидов здесь важен не только сам кейс, но и инженерный вывод: в части учебной механики простая система с понятной математикой может работать лучше модной нейросетевой обвязки.

Автор материала — ведущий дата-сайентист, который регулярно проводит собеседования и потому смотрит на задачу сразу с двух сторон: как интервьюер и как человек, который когда-то сам пытался учить «2000 вопросов с ответами». Его тезис предсказуемо болезненный для любого, кто готовился к техническому интервью по PDF или табличке: список не помнит, где пользователь ошибается, не отслеживает, что уже забылось, и не умеет выбирать следующий вопрос. В ответ на это он собрал тренажёр собесов из четырёх отдельных механизмов: память, сложность, карта слабых мест и политика сборки сессии. Всё состояние живёт в двух сущностях: для пары «пользователь-вопрос» хранятся корзина, дата следующего показа и последний балл; для пары «пользователь-подтема» — точность, локальный Elo и давность практики.

Блок памяти решён через корзины Лейтнера — старую, но по-прежнему живую механику интервального повторения. Логика здесь намеренно грубая: пять корзин с интервалами 0, 1, 3, 7 и 21 день. Если ответ дотягивает до порога 0,6, вопрос переходит в следующую корзину; если нет, возвращается в нулевую и появляется снова почти сразу. Автор отдельно объясняет, почему не пошёл в сторону более продвинутых схем вроде SM-2 или FSRS. Первая добавляет сложность с умеренной пользой, вторая требует накопленных данных и отдельной валидации. Для продукта, который делает один человек и который ещё только собирает историю ответов, такой выбор выглядит не как аскеза, а как нормальная инженерная дисциплина: сначала берём механику, которую можно объяснить, отладить и поддерживать.

Второй слой — сложность вопроса, и здесь уже используется Elo, знакомый всем, кто сталкивался с шахматами или матчмейкингом в онлайне. Пользователь и вопрос трактуются как два игрока с рейтингом, а каждый ответ — как отдельный матч. Причём рейтинг меняется у обеих сторон: пользователь калибруется по результатам, а вопрос постепенно дорожает или дешевеет в зависимости от того, как с ним справляются люди. Если сильные кандидаты валят вопрос, его сложность растёт. Если слабые стабильно отвечают правильно, вопрос становится легче. Чтобы банк не трясло от новичков, автор развёл коэффициенты: для пользователя K=24, а в первые десять ответов K=48, чтобы быстрее поймать уровень; для вопроса K=24 до первых 50 ответов, затем K=8, чтобы уже откалиброванные карточки менялись медленно. Плюс введены жёсткие границы: рейтинг пользователя ограничен диапазоном 600–2400, сложность вопроса — 800–1800. Это скучная защита, но без неё любой бот или случайный спамер может за ночь сломать шкалу.

Самая интересная часть материала — не формулы, а то место, где красивая теория упёрлась в прод. Первая версия подбора вопросов была очевидной: если у пользователя рейтинг X, показываем задачи примерно на X. На бумаге всё логично, на практике точность ответов оказалась в диапазоне 18–38%, а пользователи начали жаловаться, что им слишком тяжело. Один из них, как пишет автор, прямо сообщил, что после такой практики чувствует себя тупым. Ошибка была в трактовке «равного матча». Для рейтинговой системы 50% ожидаемого успеха — это нормально: баланс найден. Для обучения это плохой режим, потому что человек регулярно ошибается и быстро выгорает. Рабочая зона лежит выше — примерно на уровне 70–85% успешности, когда вопрос чуть выше комфорта, но не превращается в монетку. Иными словами, для учебного продукта нужен не честный бой, а осознанный гандикап.

Отдельное место в статье занимает вопрос, который в 2026 году почти обязателен: почему здесь вообще нет LLM в рантайме. Ответ у автора скучный и поэтому ценный. Во-первых, деньги: freemium-модель с бесплатным дневным лимитом плохо сочетается с постоянным инференсом на каждом ответе. Во-вторых, ритм: петля «ответил — сразу получил разбор» живёт на десятках миллисекунд, и даже секунда ожидания убивает ощущение тренажёра. В-третьих, детерминизм: одинаковый ответ должен получать одинаковую оценку, иначе пользователь начинает спорить не с материалом, а с системой. И, наконец, риск фактической ошибки. Если языковая модель галлюцинирует в развлекательном чате, это неприятно. Если она галлюцинирует в подготовке к техническому интервью, кандидат уносит эту ошибку на реальный собес. Поэтому нейросеть в проекте оставлена только в офлайновом конвейере подготовки контента, где её результат ещё успевает проверить человек.

Для рынка эта история важна не потому, что кто-то в очередной раз написал свой велосипед для обучения. Скорее потому, что она очень точно попадает в запрос 2025–2026 годов на прикладной, приземлённый AI и ML. Бизнес устал от продуктов, где нейросеть прикручена просто потому, что без неё нельзя попасть в презентацию для инвестора. Внутри инженерных команд настроение похожее: если задачу можно закрыть понятным алгоритмом, который дешёв в сопровождении, объясним пользователю и предсказуем на проде, это часто лучше, чем ещё один зависимый от внешнего API сервис с плавающим качеством и меняющейся экономикой. Для HR и hiring-команд в IT здесь тоже есть полезный намёк: подготовка к интервью может быть не складом вопросов, а системой диагностики слабых мест, которая адаптируется под человека и при этом не требует огромной ML-инфраструктуры.

Тренажёр собесов в этом кейсе выглядит не как edtech-аттракцион, а как аккуратный пример того, как собирается продукт на стыке обучения и оценки знаний: немного классической психологии памяти, немного рейтинговой математики, немного продовой гигиены. Главный вопрос теперь не в том, можно ли обойтись без LLM, а в другом: сколько ещё задач в обучении и рекрутинге окажутся выгоднее на таких «скучных» механизмах, пока рынок продолжает по привычке тянуться к генеративной магии.

Поделиться: Telegram X LinkedIn