Перейти к содержанию
Данные и AI

8 вопросов по теме «ML-системный дизайн» на собеседовании

В этом материале — 8 вопросов из русской колоды RecallDeck по теме «ML-системный дизайн». Сначала сформулируйте короткий ответ сами, затем откройте подробный разбор и проверьте примеры, ограничения и отказные случаи.

7 мин чтения8 подробных ответовПроверено 24 августа 2026
Главная мысль

Сначала зафиксируйте grain данных, допущения, метрику и риск leakage, затем обсуждайте модель, инструмент или инфраструктуру.

Вопросы и ответы

8 подробных ответов

01

Интервьюер говорит: «Бизнес хочет снизить отток. Начинайте». Как развернуть ML-задачу из бизнес-запроса?

Короткий ответ: Не начинать с модели. Сначала уточняющие вопросы: какое ДЕЙСТВИЕ бизнес совершит с прогнозом — оно задаёт горизонт предсказания и окно таргета. Затем не-ML бейзлайн, определение таргета, данные, оффлайн-метрика, привязанная к деньгам, и дизайн эксперимента.

Подробно:

  1. Действие — кто и что сделает со скорингом (звонок, скидка, push)? Действие определяет горизонт прогноза и цену ошибок.
  2. Определение таргета — что считаем «оттоком»: нет покупок 60 дней? отписка? Окно наблюдения фиксируем явно.
  3. Не-ML бейзлайн — правило «не заходил 30 дней» может закрыть 80% ценности; модель обязана его обыграть.
  4. Данные и фичи — только то, что известно на момент прогноза (as-of-time), иначе лик.
  5. Метрика — оффлайн-метрика (PR-AUC, precision@k) плюс связь с деньгами: стоимость удержания против ложного срабатывания.
  6. Валидация и эксперимент — time-based split, затем A/B на реальном действии.
бизнес-запрос → действие → таргет и горизонт → бейзлайн (правила)
    → данные as-of-time → оффлайн-метрика ↔ деньги → time split → A/B

⚠️ Частая ошибка: прыгнуть в «обучим XGBoost» до определения таргета и действия — ML-секция в Яндексе заваливает кандидата именно на этом шаге.

02

Спроектируйте рекомендательную ленту для маркетплейса. Какая архитектура и где подводные камни?

Короткий ответ: Двухэтапный каскад: отбор кандидатов (миллионы → сотни) лёгкими моделями, затем тяжёлое ранжирование кандидатов бустингом или нейросетью, сверху бизнес-правила. Главные камни: холодный старт, position bias в имплицитном фидбеке и разрыв оффлайн/онлайн-метрик.

Подробно:

  1. Отбор кандидатов — коллаборативная фильтрация (ALS), two-tower эмбеддинги + ANN-индекс (HNSW/FAISS): дёшево, с высоким recall.
  2. Ранжирование — бустинг/NN на фичах пользователя, айтема и контекста; таргет — клик/покупка с поправкой на position bias.
  3. Бизнес-правила — разнообразие, свежесть, фильтры (уже купленное), квоты категорий.
  4. Холодный старт — контентные фичи для новых айтемов, popularity prior для новых пользователей.
  5. Метрики — оффлайн recall@k/NDCG на логах ≠ онлайн CTR/GMV: логи смещены прошлой моделью (feedback loop), финальное слово за A/B.
каталог (10⁶)
   │  отбор кандидатов: ALS / two-tower + ANN

кандидаты (10²–10³)
   │  ранжирование: бустинг/NN, фичи user × item × context

топ-N → бизнес-правила (разнообразие, свежесть) → лента

⚠️ Частая ошибка: одноэтапный ответ «модель ранжирует весь каталог» и ни слова про холодный старт — сразу видно отсутствие продакшен-опыта.

03

Спроектируйте систему детекции фрода по транзакциям в реальном времени.

Короткий ответ: Антифрод — это экстремальный дисбаланс, жёсткий бюджет латентности, ЗАДЕРЖАННЫЕ метки и противник, который адаптируется. Дизайн: feature store с предрасчитанными агрегатами + лёгкие онлайн-фичи, модель + слой правил, precision@k под ёмкость команды разбора, частое переобучение и human-in-the-loop.

Подробно:

Ограничение Решение в дизайне
Дисбаланс ~0.1% PR-AUC оффлайн; precision@k, где k = ёмкость очереди ручного разбора
Латентность < 100 мс тяжёлые агрегаты предрасчитаны в feature store; онлайн — только лёгкие фичи (сумма, гео, девайс)
Задержка меток chargeback приходит через недели: обучение на сдвинутом окне, прокси-метки, мониторинг без меток
Дрейф (adversarial) фродеры адаптируются: частое переобучение + слой правил для мгновенной реакции
Асимметрия цен ошибок порог из cost-матрицы (пропущенный фрод против ложной блокировки), а не 0.5
  1. Human-in-the-loop — скор → авто-блок / очередь аналитика / пропуск; разметка аналитиков возвращается в обучение.

⚠️ Частая ошибка: спроектировать «обычный классификатор», проигнорировав задержку меток и дрейф — в антифроде это ядро задачи, а не деталь.

04

Кредитный скоринг: чем он отличается от обычной бинарной классификации?

Короткий ответ: Ограничениями вокруг модели: регулятор требует интерпретируемость (скоркарты, WoE, монотонность), язык метрик — Gini, скор калибруется в PD (вероятность дефолта), стабильность популяции важнее последнего процента качества, а меток для отклонённых заявок вы не увидите никогда (reject inference).

Подробно:

  1. Интерпретируемость — логрег на WoE-фичах или бустинг с монотонными ограничениями; каждая фича обоснована (IV), причину отказа надо уметь объяснить.
  2. Язык метрик — Gini (= 2·AUC − 1): банковские команды говорят «Gini 55», а не «AUC 0.775».
  3. Калибровка в PD — от вероятности дефолта считаются ставка, лимит и резервы: калибровка важнее ранжирования.
  4. Стабильность — PSI отслеживает сдвиг популяции; нестабильная фича выбрасывается, даже если сильная.
  5. Reject inference — обучение только на одобренных = selection bias; отклонённых размечают суррогатно или моделируют.
  6. Лаг метки — дефолт виден через 12+ месяцев: валидация по винтажам.
Обычный ML Кредитный скоринг
max AUC Gini + калиброванный PD + стабильность
любые фичи интерпретируемые, монотонные, стабильные
вся выборка размечена reject inference, метка через год

⚠️ Частая ошибка: «возьму CatBoost и максимизирую AUC» — в банке модель без калибровки, PSI и объяснимости не пройдёт валидацию.

05

Что такое uplift-моделирование и чем оно отличается от предсказания отклика? Кого таргетировать кампанией?

Короткий ответ: Response-модель предсказывает P(купит | воздействие), uplift — ПРИРОСТ вероятности от самого воздействия (CATE): P(купит | промо) − P(купит | без промо). Таргетировать нужно только persuadables — тех, кого промо реально переключает.

Подробно:

Квадрант Без промо С промо Действие
Persuadables не купит купит таргетировать — весь эффект здесь
Sure things купит купит не трогать: скидка = сожжённая маржа
Lost causes не купит не купит не трогать: бюджет впустую
Sleeping dogs купит НЕ купит исключить: промо будит отток
  1. Подходы — S-learner (воздействие как фича), T-learner (две модели), X-learner, uplift-деревья с критерием расщепления по разнице откликов.
  2. Данные — нужен рандомизированный эксперимент: без случайного назначения воздействия CATE не идентифицируется.
  3. Валидация — uplift@k, Qini-кривая: обычные AUC/logloss не работают, истинный uplift одного человека ненаблюдаем.

⚠️ Частая ошибка: таргетировать тех, у кого высокая P(купить) — это sure things: конверсия кампании красивая, инкрементальный эффект ноль. В СНГ (ритейл, телеком, банки) вопрос любят именно из-за этой ловушки.

06

Как устроен learning-to-rank: pointwise, pairwise, listwise?

Короткий ответ: Три способа превратить ранжирование в обучаемую задачу: pointwise предсказывает релевантность каждого документа независимо, pairwise учится на парах «A релевантнее B», listwise оптимизирует метрику всего списка (NDCG) напрямую.

Подробно:

Подход Лосс Примеры Слабость
Pointwise регрессия/классификация на документ линейные модели, бустинг игнорирует взаимный порядок внутри запроса
Pairwise P(A > B) на парах внутри запроса RankNet, LambdaRank пар квадратично много; без весов все пары равноважны
Listwise метрика списка целиком LambdaMART, YetiRank (CatBoost) сложнее и дороже обучение
  1. LambdaRank — мост между pairwise и listwise — градиент пары масштабируется |ΔNDCG| от их перестановки: формально pairwise, фактически оптимизирует листовую метрику.
  2. Практика — LambdaMART (бустинг + LambdaRank) — рабочая лошадка поиска; в CatBoost есть режимы YetiRank/PairLogit.
  3. Связь с метрикой — NDCG дисконтирует позицию логарифмом: ошибки в топе дороже, поэтому pointwise MSE плохо коррелирует с качеством выдачи.

⚠️ Частая ошибка: «обучу регрессию на клики и отсортирую по скору» без слов про порядок, позицию и NDCG — для поисковой команды это ответ уровня стажёра.

07

Оффлайн-метрика модели выросла, а онлайн бизнес-метрика в A/B не сдвинулась. Ваши гипотезы?

Короткий ответ: Классический offline-online gap. Гипотезы в порядке проверки: лик или неверная схема валидации, смещения логов (position/selection bias), модель — не бутылочное горлышко продукта, эффект меньше мощности эксперимента, деградация латентности съела выигрыш, feedback loop.

Подробно:

Гипотеза Как проверить
Лик / валидация аудит фичей по as-of-time; time-based split вместо случайного
Смещение логов оффлайн-оценка сделана на логах старой модели: position/selection bias; interleaving, off-policy оценки
Не то горлышко +2% качества ранжирования незаметны, если доминируют UX, цена или ассортимент
Мощность сравнить MDE с ожидаемым эффектом: возможно, эффект есть, но эксперимент его не видит
Латентность тяжёлая модель отвечает дольше → таймауты и фолбэки съедают выигрыш
Feedback loop новая модель меняет распределение данных, на которых её оценивали

⚠️ Частая ошибка: сразу объявить «A/B сломан» или «оффлайн-метрика бесполезна» — интервьюер ждёт структурированный список гипотез с дешёвыми проверками, от вероятных к экзотике.

08

Когда задачу НЕ надо решать машинным обучением?

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

Подробно:

Чек-лист «нужен ли здесь ML»:
□ Есть ли не-ML бейзлайн и сколько ценности он закрывает?
□ Есть ли метки? Как быстро приходит фидбек?
□ Терпит ли задача вероятностные ошибки? Нужна ли объяснимость (регулятор)?
□ Хватает ли данных на сигнал сложнее правила?
□ Кто будет сопровождать: дрейф, переобучение, мониторинг, on-call?
□ Окупает ли выигрыш над правилом всё перечисленное?
  1. Бейзлайн первым — всегда называть эвристику до модели: «сортировка по популярности», «правило 30 дней». Часто её и хватает.
  2. ML — это обязательство — не артефакт, а процесс: данные дрейфуют, пайплайны ломаются, модель тухнет без переобучения.
  3. Что проверяет интервьюер — зрелость: кандидат с «молотком ML» на любую задачу — красный флаг, этим вопросом фильтруют сеньорность.

⚠️ Частая ошибка: рефлекторно предлагать модель на вопрос, который начинался со слов «бизнес хочет…» — сначала правило, потом ML, если правило не дотягивает.

Источники

Источники и редакционная политика

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

От чтения к воспроизведению

Отрепетируйте полный цикл интервью.

RecallDeck возвращает сложные темы по расписанию и помогает удерживать в памяти язык, SQL, архитектуру и поведенческие истории.

Начать подготовку

Продолжить подготовку

Библиотека собеседований RecallDeck

Подробные русские ответы, разборы этапов найма и планы подготовки для российского IT-рынка.

RSS