Блог · Аналитика · 14 марта 2024

Понимание дрейфа данных: как он убивает ваши модели

Почему модель, которая идеально работала на валидации, начинает ошибаться через 30 дней после продакшена — и как остановить процесс до того, как он сожрёт вашу прибыль.

Куем точность. Ускоряем успех.

В среднем 70% моделей машинного обучения деградируют в течение первых 90 дней после деплоя. Причин много, но главная — дрейф данных. Мы разберём, что это такое, как его обнаружить и какие стратегии помогают минимизировать потери.

Что такое концептуальный и предиктивный дрейф

Дрейф данных — это изменение распределения входных признаков или связи между признаками и целевой переменной со временем. Он делится на два типа, и путать их — дорогая ошибка.

Предиктивный дрейф (Data Drift)

Входные данные меняются, но функция f(X) → Y остаётся той же. Пример: сезонный рост трафика в ритейле. Модель формально «правильная», но попадает в незнакомое распределение и начинает выдать зашумленные предсказания.

Концептуальный дрейф (Concept Drift)

Связь X → Y меняется. Пример: после пандемии поведение клиентов финтеха изменилось — прежние паттерны мошенничества больше не работают. Здесь нужна не просто калибровка, а переобучение модели на новых данных.

Почему их важно разделять

Для предиктивного дрейфа достаточно автоматической калибровки порогов и ретрейна на свежей выборке. Концептуальный дрейф требует пересмотра самой формулировки задачи. АймФордж детектирует оба типа и выдаёт рекомендацию в дашборде.

Методы детектирования: статистические тесты и ML-подходы

Существует два больших семейства методов. Статистические — быстрые и интерпретируемые, ML-подходы — чувствительнее к сложным зависимостям. В продакшене их почти всегда используют в паре.

Тест Колмогорова–Смирнова

Сравнивает эмпирические распределения двух выборок. Порог значимости 0.05, для дискретных признаков — тест хи-квадрат. Хорошо ловит сдвиги в медиане и хвостах, но не чувствителен к изменениям дисперсии.

PSI (Population Stability Index)

Стандарт индустрии финтеха. Значения PSI < 0.1 — стабильность, 0.1–0.25 — умеренный дрейф, > 0.25 — критический. Работает с бинаризованными признаками, легко интерпретируется риск-командами.

Кросс-энтропия и KL-дивергенция

Измеряет расхождение между распределением предсказаний и истинных меток. Эффективна, когда есть доступ к ground truth. В АймФордж считается на скользящем окне 7 дней с автоматическим алертом при отклонении > 0.08.

Аномалии в embedding-пространстве

Нейросетевой подход: признаки проецируются в векторное пространство, и алгоритм Isolation Forest или LOF ищет выбросы. Ловит многомерные сдвиги, которые статистические тесты по отдельности пропускают.

Корреляционные матрицы признаков

Сравнение корреляций X ↔ X между референсным и текущим окном. Резкое падение корреляции двух признаков — сигнал, что структура данных изменилась. Особенно полезно для табличных данных.

Мониторинг метрик модели

AUC, F1, precision@k в скользящем окне. Если метрики падают при стабильном распределении X — вероятен концептуальный дрейф. Если падают вместе с PSI — предиктивный.

Стратегии минимизации потерь при дрейфе

Обнаружить дрейф — это половина работы. Вторая — не потерять деньги в момент, когда модель деградирует. Ниже — проверенные паттерны, которые мы рекомендуем клиентам АймФордж.

Автоматическая калибровка порогов

Порог срабатывания классификатора подстраивается под текущее распределение. Для скоринговых моделей это снижает false positive на 15–20% без потери recall на целевом уровне.

Скользящие окна переобучения

Ретрейн на данных за последние N дней (обычно 30–90) вместо всего исторического датасета. Модель «забывает» устаревшие паттерны и адаптируется к свежей реальности.

Ансамбли с весами по времени

Вместо одной модели — несколько, обученных на разных окнах. Веса ансамбля экспоненциально затухают для старых моделей. При резком концептуальном сдвиге ансамбль переключается на свежую модель.

Человек в контуре (HITL)

При критическом PSI (> 0.25) модель переводится в режим «только рекомендация», финальное решение принимает оператор. Держит потери под контролем до следующего ретрейна.

Дублирующие модели-канарейки

Параллельно основной модели работает свежая, обученная на последних данных. Если канарейка стабильно лучше — автоматический A/B-свитч трафика с 10% до 100% за 48 часов.

Фиксация распределения на входе

Feature store с версионированием признаков гарантирует, что модель получает вход в том же виде, что и на обучении. Убирает целый класс «тихих» дрейфов из-за изменений в пайплайне.

3 дня

Среднее время детектирования критического дрейфа в АймФордж

0.08

Порог KL-дивергенции по умолчанию для алерта

−18%

Среднее снижение false positive после автокалибровки

48 ч

Полный A/B-свитч на канарейку при концептуальном сдвиге

Кейс из финтеха: как мы обнаружили дрейф за 3 дня

Один из наших клиентов — региональный банк с 2,4 млн активных клиентов — запустил скоринговую модель на основе градиентного бустинга в феврале 2024 года. К 8 марта модель начала давать аномальное число отказов. Вот хронология.

День 0 · 5 марта

АймФордж фиксирует рост PSI по признаку «средний чек за 30 дней» с 0.04 до 0.19. Метрики модели пока в норме: AUC 0.87, F1 0.79. Система помечает признак как «наблюдение».

День 1 · 6 марта

PSI по тому же признаку доходит до 0.27. Одновременно падает AUC до 0.84. Алерт уровня «высокий» уходит в Slack риск-команды. Параллельно запускается канарейка, обученная на 21 день свежих данных.

День 2 · 7 марта

Канарейка показывает AUC 0.89 против 0.83 у основной. KL-дивергенция между распределениями предсказаний — 0.11. Команда решает начать A/B-свитч: 10% трафика уходит на канарейку.

День 3 · 8 марта

Полный свитч на канарейку. False positive падает с 14.2% до 9.8%, recall на целевых мошенниках — 94%. Причина дрейфа: массовое изменение лимитов карт в рамках антикризисной программы ЦБ, изменившее распределение чеков.

Итог по деньгам

Без детектирования банк потерял бы ~42 млн рублей на неправомерных выплатах за 30 дней. С АймФордж потери ограничены ~3,1 млн за первые 72 часа. ROI платформы — 13× в первый же месяц.

Что изменили в пайплайне

Добавили признак «изменение лимита за 7 дней», включили еженедельный ретрейн на 90-дневном окне и снизили порог алерта PSI до 0.15. С тех пор модель стабильно держит AUC выше 0.88.

Рекомендации по настройке алертов в АймФордж

Алерт без контекста — шум. Алерт с правильным порогом и маршрутизацией — экономия миллионов. Ниже — конкретные значения, которые мы рекомендуем стартовать.

Порог PSI: 0.15, не 0.25

Классический порог 0.25 — это уже «поздно». Настройте предупреждение на 0.15 и критический алерт на 0.25. Для высокочастотных признаков (секундный стрим) — 0.10 и 0.20.

Скользящее окно 24–72 часа

Не считайте PSI по всей истории. Окно 24 часа для потоков, 72 часа для батчей. Сравнение — с референсным окном того же размера из периода валидации модели.

Маршрутизация по уровню

Инфо → лог. Предупреждение → Slack-канал ML-команды. Критический → телефонный звонок дежурному + автозапуск канарейки. Без этого алерты теряются в ленте.

Алерт по метрикам, не только по данным

PSI может быть в норме, а AUC падать — это концептуальный дрейф. Включите алерт на падение AUC на 0.02 за 7 дней или на рост false positive на 3 п.п. за 24 часа.

Анти-шум: минимальный объём выборки

Не гоните алерт на 500 строк. Минимум 5000 за окно, иначе статистика не значима. Для редких событий (мошенничество) — агрегируйте по 7 дням.

Еженедельный пересмотр порогов

Раз в 7 дней прогоняйте backtesting: какие алерты привели к реальным действиям, а какие были ложными. Подтягивайте пороги. В АймФордж это один клик в разделе «Аналитика алертов».

Визуализация дрейфа данных: расхождение референсного и текущего распределений признаков на временной шкале

Дрейф уже есть у вас в проде

Подключите АймФордж к одной модели за 15 минут и получите первый отчёт о PSI, KL-дивергенции и метриках за 30 дней. Бесплатно, без карты.

Попробовать бесплатно

Частые вопросы

Как часто нужно пересчитывать PSI?

Для потоковых данных — каждые 15 минут. Для батч-обучения — раз в сутки. Для редких событий (мошенничество, churn) — раз в 7 дней, чтобы накопить достаточно выборки.

Что делать, если модель деградирует, но PSI в норме?

Скорее всего, это концептуальный дрейф. Запустите канарейку на свежих данных, сравните AUC и включите HITL до полного ретрейна. В АймФордж это автоматический сценарий «Concept Drift Response».

Совместим ли АймФордж с нашими фреймворками?

Да. Поддержка PyTorch, TensorFlow, Scikit-learn, XGBoost, LightGBM и ONNX. Интеграция через SDK на Python или REST API. Для K8s-кластеров — Helm-чарт с sidecar-монитором.

Сколько стоит подключение одной модели?

Тариф «Старт» — 45 000 ₽/мес до 5 моделей и 100 млн событий. «Бизнес» — 180 000 ₽/мес до 50 моделей, неограниченные события и SLA 99.9%. Корпоративный — по запросу.