Урок по треку Классический ML 8 мин

ML в проде и ML system design за 8 минут

Деплой, мониторинг, дрейф данных и концепта, переобучение, A/B и разборы ML system design.

Обученная модель это примерно половина работы. Senior DS и ML-инженеров спрашивают про деплой, мониторинг, дрейф и переобучение, а в отдельной секции просят спроектировать ML-систему целиком.

Режимы инференса

  • Батч: прогнозы для всех объектов раз в сутки, результат в таблице. Дёшево и просто: скоринг базы для рассылки, прогноз спроса.
  • Онлайн: ответ на текущее событие за десятки миллисекунд: антифрод платежа, поиск, рекомендации.
  • Гибрид: тяжёлые признаки считаются батчем, свежие в реальном времени.

Training-serving skew

Модель отлично прошла валидацию, а с первого дня в проде хуже. Частая причина: признаки в проде считаются иначе, чем в обучении (другой код, часовые пояса, единицы, задержки данных, обработка пропусков). Проверка: логировать признаки в проде и сравнивать с офлайн-расчётом. Профилактика: общий код признаков и feature store с point-in-time корректностью.

Дрейф

  • Data drift: меняется распределение признаков P(x). Видно без меток.
  • Concept drift: меняется связь P(y | x), например мошенники сменили схему. Видно по падению качества, когда приходят метки.

Мониторинг, когда метки приходят поздно:

  • распределения признаков, доля пропусков, новые категории;
  • распределение скоров, доля одобрений или срабатываний;
  • ранние прокси-метрики качества;
  • технические метрики: латентность, ошибки, нагрузка.

PSI (Population Stability Index):

PSI = Σ (a - e) · ln(a / e)   по бинам долей

Ориентиры: меньше 0.1 стабильно, 0.1-0.25 умеренный сдвиг, больше 0.25 значительный. Пустые бины сглаживают. Пороги эвристические.

Переобучение и выкатка

  • Частоту переобучения выбирают по тому, как быстро стареет модель на истории.
  • Новую модель сравнивают со старой на свежем отложенном периоде.
  • Shadow-режим: модель получает реальный трафик и логирует ответы, но не принимает решений. Ловит skew и проблемы задержки без риска.
  • Канареечный запуск и A/B для измерения эффекта.
  • Версионирование кода, данных, параметров и артефактов (MLflow, DVC, model registry), чтобы воспроизвести и откатить.

Модель меняет свои данные

Антифрод блокирует подозрительные платежи, и по ним не приходит метка. Обученная на пропущенных платежах новая модель «забывает» паттерны, которые ловила старая. Решения: небольшой случайный holdout без вмешательства модели, логирование вероятностей решений, ручная разметка части заблокированного.

Как вести секцию ML system design

  1. Требования: бизнес-цель, действие по прогнозу, цена ошибок, латентность, объёмы.
  2. Метрики: онлайн (деньги, конверсия) и офлайн (PR-AUC, NDCG, WAPE), связь между ними.
  3. Данные и метки: откуда, с какой задержкой, смещения (selective labels, exposure bias).
  4. Признаки: батчевые и онлайновые, point-in-time.
  5. Модель: бейзлайн, затем основная; архитектура (двухэтапная для рекомендаций, правила плюс модель для антифрода).
  6. Валидация: по времени, по группам, отложенный период.
  7. Прод: инференс, feature store, фолбэки, мониторинг, переобучение, A/B.

Типичные кейсы: антифрод платежей, кредитный скоринг, прогноз спроса, модерация объявлений, рекомендации, поиск и ранжирование, ETA доставки.

Частые ошибки

  • Не задать вопрос о действии и цене ошибок.
  • Забыть про задержку меток и смещение выборки.
  • Описать только модель и ничего про данные, мониторинг и запуск.
  • Не предусмотреть фолбэк при недоступности модели.

Что спросят на собесе

  • Чем data drift отличается от concept drift, как мониторить без меток.
  • Что такое training-serving skew и как его избежать.
  • Как и когда переобучать, зачем shadow и A/B.
  • Посчитать PSI.
  • Спроектировать антифрод, скоринг, прогноз спроса или модерацию.

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.