Диагностика Mock-интервью
Главная · Продакшн и качество

Дизайн ML-систем на собеседовании

«Спроектируйте ленту рекомендаций» — интервью, где проверяют не знание формул, а умение довести ML от продуктовой задачи до работающей и наблюдаемой системы. Здесь выигрывает не самая умная модель, а самый структурированный ответ.

Интуиция

ML system design (дизайн ML-систем) — это разговор на 40–60 минут по открытой задаче: рекомендации, антифрод, поиск, модерация контента. Интервьюер смотрит, как ты думаешь: задаёшь ли вопросы, привязываешь ли метрики к деньгам, помнишь ли про данные и продакшн. Главная ошибка кандидатов — прыгнуть в «возьмём трансформер» на первой минуте, пропустив вопросы «а что мы вообще оптимизируем и какой ценой?».

Как это работает: фреймворк из 8 шагов

  1. Продуктовая цель и ограничения. Что за продукт, кто пользователь, какова цена ошибок: ложное срабатывание (FP) против пропуска (FN)? Какие латентность, масштаб, бюджет? Во фроде FP — заблокированный честный клиент, FN — украденные деньги; баланс определяет всю систему.
  2. Метрики. Онлайн (бизнес): выручка, retention, доля пойманного фрода. Оффлайн (ML): AUC, recall, nDCG. Обязательно проговори связь: «оптимизируем PR-AUC, потому что классы несбалансированы, и верим, что рост precision снизит потери от блокировок».
  3. Данные и разметка. Откуда берём: логи, ручная разметка, слабая разметка? Здесь же — дисбаланс классов и утечки (leakage): признак, недоступный в момент предсказания, даст сказочные оффлайн-метрики и провал в проде.
  4. Бейзлайн — сначала! Правила, логистическая регрессия, «рекомендуем популярное». Бейзлайн проверяет пайплайн данных, даёт точку отсчёта и нередко закрывает задачу.
  5. Фичи и модель по нарастающей. От простого к сложному, каждое усложнение оправдано метрикой: логрег → градиентный бустинг → нейросети.
  6. Обучение и валидация. Для временных данных — сплит по времени: трейн на прошлом, тест на будущем. Random split перемешает будущее с прошлым — утечка и завышенные метрики.
  7. Деплой и сервинг. Батч (пересчитать рекомендации ночью) или реалтайм (фрод-скоринг за 50 мс)? Кэши для тяжёлых фичей, фолбэк на правила или популярное, если модель недоступна.
  8. Мониторинг и переобучение. Дрифт входных данных, распределение предсказаний, деградация онлайн-метрик; расписание и триггеры переобучения.
💡 Ключевая мысль Порядок шагов — это и есть ответ: цель → метрики → данные → бейзлайн → модель → валидация → деплой → мониторинг. Модель — лишь пятый шаг из восьми, и интервьюер это знает.

Типичные задачи и их акценты

Задач на таких интервью немного, и у каждой — свой центр тяжести. Рекомендации: двухэтапная схема «отбор кандидатов → ранжирование», холодный старт новых пользователей, метрики nDCG и CTR. Антифрод: жёсткий реалтайм, экстремальный дисбаланс классов, адаптирующийся противник — модель устаревает быстро. Поиск: recall на первом этапе против precision на реранжировании, оценка релевантности по кликам с поправкой на позиционное смещение. Модерация контента: цена пропуска токсичного контента против цены ложного бана, обязательный контур человека-ревьюера для спорных случаев. Полезный ход на интервью — явно назвать, к какому классу относится задача, и переиспользовать известные паттерны.

Красные флаги для интервьюера

Эти фразы мгновенно понижают оценку — проверь, что не говоришь их сам:

⚠️ Подводный камень Утечка данных (data leakage) — самый коварный враг: признак вроде «число звонков в поддержку за неделю» отлично «предсказывает» отток, потому что записан после ухода клиента. Оффлайн-метрики сказочные, продакшн — провал. На интервью прямо проговаривай: «проверяю, что каждый признак доступен на момент предсказания».
🎤 На собеседовании
  • «Спроектируйте антифрод» — начни с цены ошибок FP/FN и требования к латентности (реалтайм!), затем по фреймворку; метрика — precision/recall или PR-AUC, не accuracy.
  • «Как валидировать модель оттока?» — сплит по времени: учимся на январе–июне, проверяем на июле; random split даст утечку.
  • «Модель готова, что дальше?» — теневой запуск (shadow mode), A/B-тест на онлайн-метриках, мониторинг дрифта, план переобучения.
  • «Почему сначала бейзлайн?» — точка отсчёта, проверка пайплайна данных и честный ответ на вопрос «а нужен ли здесь ML вообще».