# Diagnostyka i eliminacja przesunięcia rozkładu w ML w produkcji
Nagłe spadki metryk jakości modelu w produkcji często wynikają z przesunięcia rozkładu danych. Dzieje się tak, gdy statystyczne właściwości danych wejściowych w warunkach eksploatacyjnych różnią się od tych, na których model był trenowany. Omawiamy typy przesunięć, metody monitoringu oraz strategie adaptacji modeli.
Istota problemu: jak przesunięcie rozkładu psuje model
Distribution shift występuje, gdy dane w środowisku produkcyjnym przestają odpowiadać próbce treningowej. Klasyczny przykład: model regresji liniowej ekstrapoluje trend poza zakres treningowy, podczas gdy metody nieparametryczne (Random Forest, KNN) wydają stałe predykcje. Dzieje się tak, ponieważ modele nieparametryczne nie uogólniają danych poza obserwowanym rozkładem. W rzeczywistych systemach takie scenariusze prowadzą do katastrofalnego spadku accuracy, nawet jeśli model osiągał świetne wyniki na etapie development.
Kluczowa kwestia: przesunięcie rozkładu nie zawsze wynika z błędów w kodzie. Często problem tkwi w zmianie logiki biznesowej, zachowań użytkowników lub czynników zewnętrznych. Na przykład, aktualizacja katalogu kategorii w systemie e-commerce sprawia, że część cech modelu staje się nieznana, co natychmiast odbija się na metrykach.
Klasyfikacja przesunięć: trzy kluczowe typy
Istnieją trzy fundamentalne rodzaje distribution shift, wymagające różnych podejść do diagnostyki:
- Przesunięcie kowariatów — zmiana rozkładu cech wejściowych. Na przykład, dodanie nowych kategorii do katalogu, na którym model nie był trenowany.
- Przesunięcie etykiet — zmiana rozkładu zmiennej docelowej. Typowy przypadek: model diagnostyki rzadkiej choroby, wytrenowany w okresie epidemii, wydaje fałszywie pozytywne wyniki w okresie międzysesonowym.
- Przesunięcie konceptu — zmiana relacji między cechami a zmienną docelową. Na przykład, zmiana preferencji użytkowników w mediach społecznościowych, gdy wcześniej popularna treść przestaje zbierać lajki.
W praktyce te typy często się łączą. Przesunięcie kowariatów może wywołać przesunięcie konceptu, jeśli reguły biznesowe zmieniają się jednocześnie z zachowaniami użytkowników. To komplikuje izolację przyczyny głównej i wymaga monitoringu wielopoziomowego.
Dlaczego dane "odpływają": główne przyczyny
Dryf danych arises z czterech głównych powodów:
- Dryf czasowy — naturalna ewolucja zachowań użytkowników lub warunków zewnętrznych (np. sezonowe wahania popytu).
- Zmiana metod zbierania danych — wymiana sensorów, aktualizacja formatu logów lub zmiana UI wpływająca na metryki behawioralne.
- Przesunięta próba — trenowanie na niewystarczająco reprezentatywnych danych (np. rozpoznawanie obiektów tylko na tle zoo).
- Transfer międzydomenowy — stosowanie modelu w środowisku o innych warunkach (np. system nawigacyjny dla europejskich dróg w warunkach indyjskiego ruchu).
Szczególne zagrożenie stanowi kombinacja dryfu czasowego i zmian w zbieraniu danych. Przejście na nową wersję aplikacji mobilnej może jednocześnie zmienić wzorce interakcji użytkowników i format logowania, tworząc efekt kaskadowy.
Narzędzia monitoringu: od PSI do klasyfikatorów domenowych
Skuteczny monitoring wymaga podejścia wielopoziomowego. Jeśli dostępny jest target online, śledź główną metrykę jakości (np. ROC-AUC). Przy opóźnionym targetcie skup się na metrykach proxy i rozkładach cech.
Kluczowe narzędzie — Population Stability Index (PSI). Metryka porównuje rozkład cechy między okresem referencyjnym a bieżącym:
PSI = sum((A_i - E_i) * ln((A_i + ε) / (E_i + ε)))
gdzie E_i — udział obserwacji w i-tym binie okresu referencyjnego, A_i — bieżący udział, ε — stała wygładzająca (1e-6).
Interpretacja wartości:
- PSI < 0.1 — nieznaczne zmiany (stabilność)
- 0.1 ≤ PSI < 0.25 — umiarkowany shift (wymaga analizy)
- PSI ≥ 0.25 — krytyczny dryf (konieczne interwencja)
Dla cech kategorycznych stosuj test chi-kwadrat, dla numerycznych — odległość Wassershteina lub test Kolmogorowa-Smirnowa. Dla modeli głębokich analizuj embeddingi za pomocą PCA/t-SNE lub użyj klasyfikatora domenowego: wytrenuj binarny klasyfikator do rozróżniania danych z próbki treningowej i produkcji. AUC > 0.7 sygnalizuje znaczący shift.
Strategie adaptacji: jak przywrócić model do działania
Po wykryciu shiftu zastosuj jedną ze strategii:
Planowe i wyzwalane retrenowanie
Łącz regularne aktualizacje modelu (np. co tydzień) z natychmiastowym retrenowaniem po przekroczeniu progu PSI. Krytycznie ważne, by nowa próbka treningowa odzwierciedlała aktualny rozkład danych — sprawdzaj to za pomocą testów statystycznych.
Transfer learning
Dla sieci neuronowych użyj fine-tuningu:
- Pełne dokończenie treningu (odmrożenie wszystkich warstw) — skuteczne przy wystarczającej ilości nowych danych
- Head tuning (trenowanie tylko warstwy klasyfikującej) — odporne na szum przy małych próbkach
Dla boostingów stosuj rozbudowę ensemble za pomocą parametru init_model, dodając nowe drzewa na świeżych danych. Główne ograniczenie — ryzyko przeuczenia na szumie przy niewystarczającej ilości danych.
Adaptacja bez retrenowania
W niektórych przypadkach pomaga kalibracja predykcji lub wprowadzenie wag podczas treningu, kompensujących shift rozkładu. Jednak te metody są mniej niezawodne niż aktualizacja modelu.
Co ważne
- Przesunięcie kowariatów — najczęstsza przyczyna spadku metryk, wymagająca monitoringu rozkładu cech wejściowych
- PSI ≥ 0.25 — krytyczny próg, wymagający natychmiastowej interwencji
- Łącz planowe retrenowanie z wyzwalanym na podstawie monitoringu
- Dla sieci neuronowych head tuning zmniejsza ryzyko przeuczenia przy adaptacji do nowych danych
- Klasyfikator domenowy pomaga nie tylko wykryć shift, ale i zidentyfikować problematyczne cechy
— Editorial Team
Brak komentarzy.