# Diagnostika a řešení posunu distribuce v ML produkci
Náhlý pokles metrik kvality modelu v produkci je často spojen s posunem distribuce dat. To se stává, když statistické vlastnosti vstupních dat v provozu se liší od těch, na kterých se model učil. Probereme typy posunů, metody monitoringu a strategie adaptace modelů.
Příčina problému: jak posun distribuce ničí model
Distribution shift nastává, když data v provozním prostředí přestanou odpovídat trénovací vzorke. Klasický příklad: model lineární regrese extrapoluje trend mimo rozsah trénovacích dat, zatímco neparametrické metody (Random Forest, KNN) vracejí konstantní predikce. Děje se tak proto, že neparametrické modely neobecnují data mimo pozorované rozložení. V reálných systémech tyto scénáře vedou k katastrofickému poklesu accuracy, i když model ukazoval vynikající výsledky ve fázi vývoje.
Klíčový bod: posun distribuce není vždy spojen s chybami v kódu. Často se problém skrývá ve změně business logiky, chování uživatelů nebo externích faktorů. Například aktualizace katalogu kategorií v e-commerce systému činí část příznaků pro model neznámými, což se okamžitě projeví na metrikách.
Klasifikace posunů: tři klíčové typy
Existují tři zásadní druhy distribution shift, které vyžadují odlišné přístupy k diagnostice:
- Posun kovariátů — změna distribuce vstupních příznaků. Například přidání nových kategorií do katalogu, na kterém se model neučil.
- Posun štítků — změna distribuce cílové proměnné. Typický případ: model diagnostiky vzácného onemocnění, natrénovaný během epidemie, vrací falešně pozitivní výsledky v meziobdobí.
- Posun konceptu — změna vztahu mezi příznaky a cílovou proměnnou. Například změna uživatelských preferencí na sociálních sítích, kdy obsah, který byl dříve populární, přestává sbírat lajky.
V praxi se tyto typy často kombinují. Posun kovariátů může vyvolat posun konceptu, pokud se business pravidla mění současně s chováním uživatelů. To ztěžuje izolaci primární příčiny a vyžaduje víceúrovňový monitoring.
Proč data „odplouvají“: hlavní příčiny
Ddrift dat vzniká ze čtyř hlavních důvodů:
- Časový ddrift — přirozená evoluce chování uživatelů nebo externích podmínek (např. sezónní výkyvy poptávky).
- Změna metod sběru dat — výměna senzorů, aktualizace formátu logů nebo změna UI ovlivňující behaviorální metriky.
- Posunuté vzorky — trénování na nedostatečně reprezentativních datech (např. rozpoznávání objektů pouze na pozadí zoo).
- Cross-domain transfer — použití modelu v prostředí s jinými podmínkami (např. navigační systém pro evropské silnice v podmínkách indického provozu).
Nejväčším rizikem je kombinace časového ddriftu a změn v sběru dat. Přechod na novou verzi mobilní aplikace tak může současně změnit vzorce interakce uživatelů a formát logování, což vytváří kaskádový efekt.
Nástroje monitoringu: od PSI po doménové klasifikátory
Efektivní monitoring vyžaduje víceúrovňový přístup. Při dostupnosti online cíle sledujte hlavní metriku kvality (např. ROC-AUC). Při zpoždění cíle se soustřeďte na proxy metriky a distribuce příznaků.
Klíčový nástroj — Population Stability Index (PSI). Metrika porovnává distribuci příznaku mezi referenčním a aktuálním obdobím:
PSI = sum((A_i - E_i) * ln((A_i + ε) / (E_i + ε)))
kde E_i — podíl pozorování v i-tém binu referenčního období, A_i — aktuální podíl, ε — vyhlazovací konstanta (1e-6).
Interpretace hodnot:
- PSI < 0.1 — zanedbatelné změny (stabilita)
- 0.1 ≤ PSI < 0.25 — střední posun (vyžaduje analýzu)
- PSI ≥ 0.25 — kritický ddrift (nutný zásah)
Pro kategorické příznaky používejte chi-kvadrát test, pro číselné — Wassersteinovu vzdálenost nebo Kolmogorov-Smirnovův kritérium. Pro hluboké modely analyzujte embeddingy prostřednictvím PCA/t-SNE nebo použijte doménový klasifikátor: natrénujte binární klasifikátor na rozlišení dat z trénovací vzorky a produkce. AUC > 0.7 signalizuje významný posun.
Strategie adaptace: jak vrátit model do chodu
Po zjištění posunu aplikujte jednu ze strategií:
Plánované a triggerové přeučení
Kombinujte pravidelné aktualizace modelu (např. jednou týdně) s okamžitým přeučením při překročení prahu PSI. Kriticky důležité je, aby nová trénovací vzorka odrážela aktuální distribuci dat — ověřte to statistickými kritérii.
Transfer learning
Pro neuronové sítě použijte fine-tuning:
- Plné do-trénování (odmrazení všech vrstev) — efektivní při dostatečném objemu nových dat
- Head tuning (trénování pouze klasifikační vrstvy) — odolné vůči šumu při malých vzorcích
Pro boostingy použijte rozšíření ansamblu prostřednictvím parametru init_model, přidáním nových stromů na čerstvých datech. Klíčové omezení — riziko přeučení na šum při nedostatečném objemu dat.
Adaptace bez přeučení
V některých případech pomůže kalibrace predikcí nebo zavedení vah při trénování, které kompenzují posun distribuce. Tyto metody jsou však méně spolehlivé než aktualizace modelu.
Co je důležité
- Posun kovariátů — nejběžnější příčina poklesu metrik, vyžadující monitoring distribuce vstupních příznaků
- PSI ≥ 0.25 — kritický práh, vyžadující okamžitý zásah
- Kombinujte plánované přeučení s triggerovým na základě monitoringu
- Pro neuronové sítě head tuning snižuje riziko přeučení při adaptaci na nová data
- Doménový klasifikátor pomáhá nejen odhalit posun, ale i identifikovat problematické příznaky
— Editorial Team
Zatím žádné komentáře.