10 · Praktyka · 4 min czytania · aktualizacja
Czym jest dryf danych i jak monitorować model na produkcji?
W skrócie
Dryf to zmiana rozkładu danych lub zależności cech od celu po wdrożeniu. Monitoring śledzi wejścia, predykcje i metryki, zanim jakość po cichu spadnie.
Co to jest
Dryf danych (data drift, dataset shift) to sytuacja, w której dane napotykane przez model po wdrożeniu różnią się od danych, na których się uczył. Monitoring modelu to ciągłe śledzenie wejść, predykcji i — gdy tylko są dostępne — rzeczywistych wyników, aby wykryć spadek jakości, zanim zauważą go użytkownicy.
Rozróżnia się kilka rodzajów zmian. Dryf cech (covariate shift): zmienia się rozkład wejść P(x), ale reguła P(y|x) zostaje. Dryf etykiet (prior shift): zmienia się częstość klas P(y). Dryf pojęcia (concept drift): zmienia się sama zależność P(y|x) — te same cechy znaczą co innego, np. wzorce oszustw po wprowadzeniu nowych zabezpieczeń.
Mechanizm — dlaczego tak działa
Model jest zdjęciem zależności z okresu, z którego pochodzą dane uczące. Uczenie nadzorowane zakłada, że przyszłe przykłady pochodzą z tego samego rozkładu. W rzeczywistości zmieniają się klienci, ceny, sezon, produkt, przepisy i sposób zbierania danych — a model o tym nie wie i z niezmienioną pewnością zwraca predykcje.
Dryf cech szkodzi najbardziej, gdy przesuwa dane w rejony, gdzie model miał mało przykładów: tam jego reguły są ekstrapolacją. Dryf etykiet psuje kalibrację i optymalny próg decyzji, nawet jeśli ranking predykcji pozostaje dobry. Dryf pojęcia jest najgorszy, bo wykrycie go wymaga prawdziwych etykiet, które często przychodzą z opóźnieniem tygodni lub miesięcy.
Stąd monitoring na trzech poziomach. Wejścia: rozkład każdej ważnej cechy, odsetek braków, nieznane kategorie — porównane z danymi uczącymi testem Kołmogorowa–Smirnowa lub wskaźnikiem PSI (population stability index): PSI = Σ (pᵢ − qᵢ)·ln(pᵢ/qᵢ) po przedziałach. Popularna, choć arbitralna reguła kciuka: poniżej 0,1 stabilnie, 0,1–0,25 do obserwacji, powyżej 0,25 istotna zmiana. Predykcje: średnia i rozkład prawdopodobieństw, odsetek decyzji pozytywnych. Wyniki: właściwe metryki, gdy tylko pojawią się etykiety.
Ważne zastrzeżenie: nie każdy wykryty dryf szkodzi. Przy dużych próbach testy statystyczne wykrywają zmiany zbyt małe, by miały znaczenie, a cechy o małym wpływie mogą dryfować bez skutków. Alarmy powinny uwzględniać ważność cechy i wielkość zmiany, nie tylko p-wartość.
Na przykładzie
Titanic jako symulacja: gradient boosting nauczony na 450 pasażerach, którzy wsiedli w Southampton, a potem „wdrożony” na pasażerach z innych portów. Na odłożonych pasażerach z Southampton ma 85,1% dokładności. Wśród 168 pasażerów z Cherbourga spada do 79,2%, wśród 77 z Queenstown do 72,7%. Dane były historycznie te same, zmieniła się tylko populacja.
Monitoring wejść wykrywa to bez etykiet. Pierwszą klasą podróżowało 16,0% odłożonych pasażerów z Southampton, ale 50,6% z Cherbourga; PSI dla klasy wynosi 0,02 dla odłożonych z Southampton, 0,44 dla Cherbourga i 1,03 dla Queenstown, gdzie 93,5% pasażerów jechało trzecią klasą. Statystyka KS dla opłaty to 0,07 (p = 0,41) dla tej samej populacji i 0,27 (p < 0,001) dla Cherbourga. Brakujący wiek: 14,0% w Southampton, 63,6% w Queenstown. Nawet bez etykiet widać też dryf predykcji: średnie przewidywane prawdopodobieństwo przeżycia rośnie z 0,32 do 0,49.
Dane: Titanic
W praktyce
- Zapisz profil danych uczących (kwantyle, odsetek braków, listy kategorii) razem z modelem — to punkt odniesienia dla monitoringu.
- Testy dryfu:
scipy.stats.ks_2sampdla cech ciągłych, chi-kwadrat lub PSI dla kategorii; licz je na oknach czasowych (dzień, tydzień). - Monitoruj predykcje: średnie prawdopodobieństwo, odsetek decyzji pozytywnych, rozkład pewności.
- Gdy etykiety przychodzą z opóźnieniem, dołączaj je i licz metryki z poślizgiem; przy dryfie etykiet sprawdzaj kalibrację i próg.
- Klasyfikator „uczące vs produkcyjne”: jeśli model odróżnia te dwa zbiory z AUC wyraźnie powyżej 0,5, rozkłady się różnią, a ważność cech pokazuje gdzie.
- Typowy błąd: przeuczanie modelu według kalendarza bez sprawdzenia, czy nowe dane nie zawierają błędu zbierania.
Najczęstsze pytania
- Czym różni się dryf danych od dryfu pojęcia?
- Dryf danych to zmiana tego, jakie przypadki widzi model (inne proporcje klientów, inne ceny). Dryf pojęcia to zmiana znaczenia: te same cechy prowadzą do innego wyniku. Pierwszy da się wykryć na samych wejściach, drugi wymaga prawdziwych etykiet.
- Jak często przeuczać model?
- Tak często, jak wymaga tego tempo zmian w danych — mierzone monitoringiem, a nie zgadywane. Dla jednych systemów to miesiące, dla innych (reklamy, oszustwa) dni. Każde przeuczenie powinno przejść tę samą walidację co pierwszy model.
- Czy wykryty dryf zawsze oznacza spadek jakości?
- Nie. Zmiana rozkładu cechy, której model prawie nie używa, albo przesunięcie w rejon, gdzie model był dobrze nauczony, może nie zmienić metryk. Dryf to sygnał do sprawdzenia, a dopiero metryki jakości lub analiza ważności cech mówią, czy trzeba działać.
Źródła
- Quiñonero-Candela J., Sugiyama M., Schwaighofer A., Lawrence N. D. (red.) „Dataset Shift in Machine Learning”, MIT Press 2009.
- Gama J., Žliobaitė I., Bifet A., Pechenizkiy M., Bouchachia A. „A survey on concept drift adaptation”, ACM Computing Surveys 46(4), 2014.
- Rabanser S., Günnemann S., Lipton Z. C. „Failing Loudly: An Empirical Study of Methods for Detecting Dataset Shift”, NeurIPS 2019.
- Huyen C. „Designing Machine Learning Systems”, O'Reilly 2022, rozdz. 8 (Data Distribution Shifts and Monitoring).