Когда хорошая модель портится: дрейф, обнаружение и бизнес-цена
Модель, прошедшая все тесты при запуске, может незаметно деградировать за несколько месяцев. Понимание причин помогает решить, сколько стоит вложить в мониторинг.
В прошлом году ко мне обратился клиент с проблемой, которую я видел не раз. Их модель прогнозирования спроса хорошо работала при запуске - это подтверждали бэктесты и трёхмесячная живая оценка. Год спустя качество прогнозов существенно ухудшилось. Бизнес-последствия были реальными: избыток запасов в одних категориях, дефицит в других. Никто не заметил постепенного изменения, потому что мониторинга на выходе модели не было.
Это называется дрейфом модели. Он распространён, медленен настолько, чтобы быть невидимым без целенаправленного отслеживания, и предотвратим.
Два типа дрейфа
Первый тип - дрейф данных. Распределение входных признаков меняется со временем. Модель прогнозирования спроса, обученная на паттернах покупок 2019 года, не обучалась на паттернах, возникших в период кризиса здравоохранения. Кредитная модель, обученная до рецессии, смотрит на другую совокупность заявителей после неё. Логика модели не изменилась. Мир изменился.
Второй тип - концептуальный дрейф. Само соотношение между входными данными и целевой переменной меняется. То, что предсказывало отток клиентов в 2019 году, может не предсказывать его в 2021-м - не потому что данные о клиентах выглядят иначе, а потому что базовая динамика изменилась. Ценовая чувствительность, конкурентные альтернативы, изменения продукта - факторы, определяющие результат, поменяли вес или направление.
Оба типа в большинстве случаев развиваются постепенно, что делает их лёгкими для упущения.
Почему дрейф невидим без мониторинга
Продакшн ML-модель, в отличие от сервера, не выдаёт ошибок, когда её производительность ухудшается. Она продолжает выдавать результаты. Результаты выглядят правдоподобно. Система продолжает работать.
Первый сигнал о проблеме часто приходит со стороны бизнеса: кто-то замечает, что прогнозы кажутся неправильными, отчёт показывает необычный паттерн, менеджер спрашивает, почему цифры расходятся с реальностью. К этому моменту модель может недорабатывать уже несколько месяцев.
Что требует мониторинг на практике
Поймать дрейф можно, отслеживая две вещи:
- Распределения входных данных во времени. Если статистический профиль данных, которые поступают в модель, значимо отклонился от профиля обучающих данных - это ранний предупредительный сигнал.
- Качество результатов относительно истинных значений. Это требует наличия фактических результатов с некоторой задержкой - реальных продаж, реальных оттоков, реальных дефолтов - для сравнения с предсказаниями модели.
Для многих бизнес-задач задержка достаточно мала, чтобы это было практичным. Прогноз спроса можно оценить относительно реальных продаж через несколько дней. Модель обнаружения мошенничества можно оценить относительно подтверждённых случаев в течение нескольких недель.
Минимальная рабочая система мониторинга
Для начала не нужна сложная MLOps-платформа. Практический минимум для бизнес-модели в продакшне:
- Логировать каждое предсказание со входными признаками и меткой времени.
- Еженедельное сравнение распределений входных признаков с базовым значением на обучающих данных. Простая статистическая мера расстояния достаточна, чтобы обнаружить крупные сдвиги.
- Ежемесячная оценка качества предсказаний относительно истинных значений, с определённым порогом, запускающим ревью.
- Конкретный ответственный человек за разбор результатов. Автоматические алерты без человека, несущего ответственность за реакцию, не замыкают контур.
Вопрос переобучения
Универсальной периодичности нет. Как часто нужно переобучать модель - зависит от того, как быстро меняется мир. Модель, предсказывающая отказ оборудования в стабильной промышленной среде, может работать годами. Модель, предсказывающая поведение потребителей на быстро меняющемся рынке, может требовать переобучения каждый квартал.
Честный ответ такой: следите за производительностью, и пусть данные сами скажут, когда пришло время. Выбрать фиксированный период заранее - это угадать. Мониторируемый период - это ответ на свидетельства.