Предиктивный дрейф (Data Drift)
Входные данные меняются, но функция f(X) → Y остаётся той же. Пример: сезонный рост трафика в ритейле. Модель формально «правильная», но попадает в незнакомое распределение и начинает выдать зашумленные предсказания.
Почему модель, которая идеально работала на валидации, начинает ошибаться через 30 дней после продакшена — и как остановить процесс до того, как он сожрёт вашу прибыль.
В среднем 70% моделей машинного обучения деградируют в течение первых 90 дней после деплоя. Причин много, но главная — дрейф данных. Мы разберём, что это такое, как его обнаружить и какие стратегии помогают минимизировать потери.
Дрейф данных — это изменение распределения входных признаков или связи между признаками и целевой переменной со временем. Он делится на два типа, и путать их — дорогая ошибка.
Входные данные меняются, но функция f(X) → Y остаётся той же. Пример: сезонный рост трафика в ритейле. Модель формально «правильная», но попадает в незнакомое распределение и начинает выдать зашумленные предсказания.
Связь X → Y меняется. Пример: после пандемии поведение клиентов финтеха изменилось — прежние паттерны мошенничества больше не работают. Здесь нужна не просто калибровка, а переобучение модели на новых данных.
Для предиктивного дрейфа достаточно автоматической калибровки порогов и ретрейна на свежей выборке. Концептуальный дрейф требует пересмотра самой формулировки задачи. АймФордж детектирует оба типа и выдаёт рекомендацию в дашборде.
Существует два больших семейства методов. Статистические — быстрые и интерпретируемые, ML-подходы — чувствительнее к сложным зависимостям. В продакшене их почти всегда используют в паре.
Сравнивает эмпирические распределения двух выборок. Порог значимости 0.05, для дискретных признаков — тест хи-квадрат. Хорошо ловит сдвиги в медиане и хвостах, но не чувствителен к изменениям дисперсии.
Стандарт индустрии финтеха. Значения PSI < 0.1 — стабильность, 0.1–0.25 — умеренный дрейф, > 0.25 — критический. Работает с бинаризованными признаками, легко интерпретируется риск-командами.
Измеряет расхождение между распределением предсказаний и истинных меток. Эффективна, когда есть доступ к ground truth. В АймФордж считается на скользящем окне 7 дней с автоматическим алертом при отклонении > 0.08.
Нейросетевой подход: признаки проецируются в векторное пространство, и алгоритм Isolation Forest или LOF ищет выбросы. Ловит многомерные сдвиги, которые статистические тесты по отдельности пропускают.
Сравнение корреляций X ↔ X между референсным и текущим окном. Резкое падение корреляции двух признаков — сигнал, что структура данных изменилась. Особенно полезно для табличных данных.
AUC, F1, precision@k в скользящем окне. Если метрики падают при стабильном распределении X — вероятен концептуальный дрейф. Если падают вместе с PSI — предиктивный.
Обнаружить дрейф — это половина работы. Вторая — не потерять деньги в момент, когда модель деградирует. Ниже — проверенные паттерны, которые мы рекомендуем клиентам АймФордж.
Порог срабатывания классификатора подстраивается под текущее распределение. Для скоринговых моделей это снижает false positive на 15–20% без потери recall на целевом уровне.
Ретрейн на данных за последние N дней (обычно 30–90) вместо всего исторического датасета. Модель «забывает» устаревшие паттерны и адаптируется к свежей реальности.
Вместо одной модели — несколько, обученных на разных окнах. Веса ансамбля экспоненциально затухают для старых моделей. При резком концептуальном сдвиге ансамбль переключается на свежую модель.
При критическом PSI (> 0.25) модель переводится в режим «только рекомендация», финальное решение принимает оператор. Держит потери под контролем до следующего ретрейна.
Параллельно основной модели работает свежая, обученная на последних данных. Если канарейка стабильно лучше — автоматический A/B-свитч трафика с 10% до 100% за 48 часов.
Feature store с версионированием признаков гарантирует, что модель получает вход в том же виде, что и на обучении. Убирает целый класс «тихих» дрейфов из-за изменений в пайплайне.
Среднее время детектирования критического дрейфа в АймФордж
Порог KL-дивергенции по умолчанию для алерта
Среднее снижение false positive после автокалибровки
Полный A/B-свитч на канарейку при концептуальном сдвиге
Один из наших клиентов — региональный банк с 2,4 млн активных клиентов — запустил скоринговую модель на основе градиентного бустинга в феврале 2024 года. К 8 марта модель начала давать аномальное число отказов. Вот хронология.
АймФордж фиксирует рост PSI по признаку «средний чек за 30 дней» с 0.04 до 0.19. Метрики модели пока в норме: AUC 0.87, F1 0.79. Система помечает признак как «наблюдение».
PSI по тому же признаку доходит до 0.27. Одновременно падает AUC до 0.84. Алерт уровня «высокий» уходит в Slack риск-команды. Параллельно запускается канарейка, обученная на 21 день свежих данных.
Канарейка показывает AUC 0.89 против 0.83 у основной. KL-дивергенция между распределениями предсказаний — 0.11. Команда решает начать A/B-свитч: 10% трафика уходит на канарейку.
Полный свитч на канарейку. False positive падает с 14.2% до 9.8%, recall на целевых мошенниках — 94%. Причина дрейфа: массовое изменение лимитов карт в рамках антикризисной программы ЦБ, изменившее распределение чеков.
Без детектирования банк потерял бы ~42 млн рублей на неправомерных выплатах за 30 дней. С АймФордж потери ограничены ~3,1 млн за первые 72 часа. ROI платформы — 13× в первый же месяц.
Добавили признак «изменение лимита за 7 дней», включили еженедельный ретрейн на 90-дневном окне и снизили порог алерта PSI до 0.15. С тех пор модель стабильно держит AUC выше 0.88.
Алерт без контекста — шум. Алерт с правильным порогом и маршрутизацией — экономия миллионов. Ниже — конкретные значения, которые мы рекомендуем стартовать.
Классический порог 0.25 — это уже «поздно». Настройте предупреждение на 0.15 и критический алерт на 0.25. Для высокочастотных признаков (секундный стрим) — 0.10 и 0.20.
Не считайте PSI по всей истории. Окно 24 часа для потоков, 72 часа для батчей. Сравнение — с референсным окном того же размера из периода валидации модели.
Инфо → лог. Предупреждение → Slack-канал ML-команды. Критический → телефонный звонок дежурному + автозапуск канарейки. Без этого алерты теряются в ленте.
PSI может быть в норме, а AUC падать — это концептуальный дрейф. Включите алерт на падение AUC на 0.02 за 7 дней или на рост false positive на 3 п.п. за 24 часа.
Не гоните алерт на 500 строк. Минимум 5000 за окно, иначе статистика не значима. Для редких событий (мошенничество) — агрегируйте по 7 дням.
Раз в 7 дней прогоняйте backtesting: какие алерты привели к реальным действиям, а какие были ложными. Подтягивайте пороги. В АймФордж это один клик в разделе «Аналитика алертов».
Подключите АймФордж к одной модели за 15 минут и получите первый отчёт о PSI, KL-дивергенции и метриках за 30 дней. Бесплатно, без карты.
Попробовать бесплатноДля потоковых данных — каждые 15 минут. Для батч-обучения — раз в сутки. Для редких событий (мошенничество, churn) — раз в 7 дней, чтобы накопить достаточно выборки.
Скорее всего, это концептуальный дрейф. Запустите канарейку на свежих данных, сравните 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%. Корпоративный — по запросу.