Признаки считаются по-разному при обучении и в проде
В блокноте средний чек считается по всем заказам, а в сервисе — по оплаченным. Модель получает на входе не те данные, на которых училась, и выдаёт ерунду.
Выберите тему — соберём контекст
Разрабатываем модели вместе с инфраструктурой вокруг них: единый Feature Store, воспроизводимые пайплайны обучения, версионирование артефактов, автоматическое переобучение по расписанию и триггерам, мониторинг качества в проде.
Или сразу: +7 (962) 368-39-51 Telegram
Типовые причины, по которым ноутбук аналитика остаётся единственным местом, где модель работает.
В блокноте средний чек считается по всем заказам, а в сервисе — по оплаченным. Модель получает на входе не те данные, на которых училась, и выдаёт ерунду.
Через полгода никто не может сказать, на каких данных и с какими параметрами получена модель в проде. Обновить её или откатить — целое расследование.
Метрики посчитали один раз на тестовой выборке перед сдачей. Что происходит с моделью через три месяца, не знает никто.
Данные обновились, а модель осталась прежней: никто не помнит, что её пора переучить. Автоматизация процесса отсутствует, и обновление откладывается месяцами.
Обучение на той же машине, где работает сервис, приводит к тому, что переобучение модели роняет прод. Разделение контуров не заложено заранее.
Выгрузка перезаписана, старая выборка утеряна, а вместе с ней — возможность сравнить новую модель с предыдущей на одном наборе данных.
Четыре слоя ML-платформы, которые мы разворачиваем вместе с моделью.
Создаём единый слой признаков, который используется и при обучении, и при инференсе — это устраняет главный источник расхождений.
Пайплайны обучения оформлены как код и запускаются одинаково на любой машине — от ноутбука разработчика до кластера.
Модель превращается в сервис с понятным контрактом: HTTP или gRPC, батчевый режим, предсказуемая задержка.
После запуска система сама сообщает, когда качество падает или входные данные меняются.
Сначала инфраструктура и данные, затем модель: обратный порядок приводит к переделке.
Определяем целевую метрику, допустимую задержку, объём запросов и требования к среде исполнения.
Собираем данные в витрины, описываем признаки, настраиваем их регулярный пересчёт и контроль качества.
Обучаем модель, сравниваем с бейзлайном, проверяем на отложенном периоде и фиксируем версию в реестре.
Разворачиваем сервис, подключаем мониторинг, настраиваем переобучение и передаём регламент эксплуатации.
Классическая причина деградации модели после вывода в прод — training-serving skew: признаки при обучении считаются одним кодом и по одним правилам, а при инференсе — другим кодом и по другим. Разница может быть незаметной: иначе обработанные пропуски, другой часовой пояс, иная фильтрация отменённых заказов. Модель получает на входе не то, на чём училась.
Feature Store устраняет расхождение тем, что и обучение, и инференс читают одни и те же заранее рассчитанные признаки. Дополнительный плюс — переиспользование: признак, посчитанный для одной модели, доступен для другой, и команда не тратит время на повторную реализацию одной и той же логики.
Дрейф бывает двух видов. Data drift — изменение распределения входных данных: например, в систему начали приходить заявки нового типа, которых не было при обучении. Concept drift — изменение самой зависимости между признаками и целевой переменной: поведение клиентов изменилось, и старая закономерность больше не работает.
Первый тип отслеживается без разметки: сравниваем распределения признаков с обучающей выборкой статистическими тестами и следим за долей значений вне наблюдаемого диапазона. Второй требует фактических исходов, которые узнаются с задержкой, поэтому мы строим мониторинг на отложенных метриках и настраиваем алерт, когда расхождение между прогнозом и фактом превышает согласованный порог.
Стоимость эксплуатации складывается из трёх частей: инфраструктура, сопровождение и переобучение. Инфраструктура зависит от объёма запросов и требований к задержке: батчевый ночной пересчёт на обычном сервере стоит несопоставимо дешевле онлайн-инференса на GPU. Сопровождение — это мониторинг, разбор инцидентов и текущие доработки.
Отдельная статья — переобучение и повторная валидация. Если правила меняются часто или поведение клиентов нестабильно, обновлять модель приходится ежемесячно, и это нужно планировать как регулярную работу, а не как разовый проект. Мы всегда закладываем эти расходы в бизнес-кейс, чтобы решение принималось по полной стоимости владения.
MLOps — это набор практик, которые делают работу модели воспроизводимой и управляемой: версионирование данных и моделей, автоматизация обучения, мониторинг качества, контролируемое развёртывание. Небольшой команде он нужен ровно так же, как и крупной: без него обновление модели превращается в рискованный ручной процесс, а понять, почему вчерашний прогноз отличался от сегодняшнего, не удаётся.
Зависит от скорости изменения данных. Для задач с сезонностью и стабильным поведением достаточно ежемесячного переобучения по расписанию. Там, где поведение меняется быстро, добавляются триггеры: падение метрики ниже порога, значимый дрейф входных данных, появление нового сегмента клиентов. Каждое переобучение обязательно сопровождается проверкой на отложенном периоде — обновление без валидации опаснее устаревшей модели.
Можно, если данные допускают передачу внешнему провайдеру и стоимость запросов укладывается в бюджет. Облачные сервисы выигрывают на старте: не нужно разворачивать инфраструктуру, доступны управляемые хранилища признаков и реестры моделей. Собственный контур выигрывает при больших объёмах однотипных запросов и при жёстких требованиях к защите данных. Часто оптимален гибрид: обучение в облаке, инференс в закрытом контуре заказчика.
Три сигнала, которые мы настраиваем сразу: рост доли отказов сервиса или таймаутов, изменение распределения входных данных относительно обучающей выборки и снижение фактического качества на размеченных данных, которые поступают с задержкой. Первые два видны без разметки и срабатывают быстро, третий подтверждает проблему. Все три выводятся на один дашборд с алертами, чтобы деградацию замечала система, а не клиент.
Смежные задачи, которые обычно решаются в одном проекте с этой.
Опишите задачу и текущее состояние данных — предложим план: что нужно доделать, чтобы модель работала как сервис, и сколько это займёт.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.