ML Atlas

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_2samp dla 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).

Zobacz też