Model drift (posun modelu)

Čo je model drift?

Model drift (v slovenskom preklade posun modelu) je jav, pri ktorom sa presnosť predikcií nasadeného modelu strojového učenia postupne zhoršuje v čase. Príčinou je odklon reálnych produkčných dát od dát, na ktorých sa model trénoval – model tak stráca schopnosť spoľahlivo predikovať, hoci jeho kód ostáva nezmenený. Nejde o softvérovú chybu, ale o štatistický dôsledok toho, že sa prostredie okolo modelu mení. Od driftu sa oddeľujú problémy s kvalitou dát či zmeny schémy – tie ho síce napodobňujú, no monitorujú a riešia sa samostatne.

Typickým príkladom je model na detekciu spamu: podoba a definícia spamovej správy sa vyvíja, takže model natrénovaný pred rokmi postupne prestáva zachytávať nové taktiky útočníkov. Podobne stráca presnosť napríklad model na odhaľovanie podvodov s platobnými kartami, keď páchatelia menia svoje postupy. V produkčnej praxi sa preto na model nehľadí ako na jednorazový výstup, ale ako na systém, ktorý si vyžaduje priebežnú údržbu.

Typy model driftu

Model drift má dva hlavné typy, ktoré sa líšia tým, čo sa mení a ako sa problém rieši: 

  • Data drift (niekedy označovaný aj ako covariate shift či feature drift) označuje zmenu v distribúcii vstupných dát – model dostáva iné hodnoty príznakov, než na aké bol zvyknutý, napríklad pre sezónnosť alebo zmenu populácie používateľov. Vzťah medzi vstupmi a výstupom pritom ostáva rovnaký.
  • Concept drift, naopak, nastáva vtedy, keď sa mení samotný vzťah medzi vstupnými príznakmi a cieľovou premennou – to, čo sa model snaží predikovať, sa v čase posunulo. Podľa dynamiky sa concept drift ďalej rozlišuje na náhly, postupný, inkrementálny a opakujúci sa. 

Data drift častejšie súvisí so zberom a spracovaním dát, concept drift so zmenami v reálnom svete, hoci hranica nie je striktná a oba typy sa v praxi nezriedka vyskytujú súčasne.

Vieš, že
Vieš, že…

 

…s pojmom model drift sa neformálne spájajú aj názvy model decay či model staleness? Používajú sa čiastočne zameniteľne, hoci decay a staleness zdôrazňujú skôr samotný pokles výkonu modelu.  

 

Ako sa model drift deteguje a rieši

Keďže drift je v produkčných systémoch prakticky nevyhnutný, jeho zvládanie patrí medzi kľúčové úlohy MLOps. Základom je priebežné monitorovanie – porovnávanie distribúcií a metrík výkonu modelu voči referenčným dátam z trénovania. Na detekciu distribučných zmien sa používajú štatistické testy ako Kolmogorov-Smirnov, na sekvenčné zmeny metódy typu Page-Hinkley. Nebezpečenstvo driftu spočíva v tichom zlyhaní: systém sa navonok tvári funkčný, no jeho predikcie sú čoraz menej presné, čo môže dlho ostať nepovšimnuté.

Po zistení driftu nad stanovený prah nasleduje najčastejšie pretrénovanie modelu na novších dátach, v pokročilých pipeline aj automaticky. V praxi sa nová verzia často najprv nasadzuje paralelne so súčasnou (champion – challenger), aby sa jej prínos overil pred plným nahradením. Samotné nastavenie citlivosti detekcie je pritom kompromis – príliš citlivý prah spúšťa falošné poplachy a únavu z alertov, príliš voľný nechá reálne zhoršenie ujsť.

Zdroje k téme:

  • Arize AI – Model Drift & Machine Learning: Concept Drift, Feature Drift, Etc.: https://arize.com/model-drift/
  • Encord – Model Drift: Best Practices to Improve ML Model Performance: https://encord.com/blog/model-drift-best-practices/
  • Deepchecks – Data Drift vs. Concept Drift: https://deepchecks.com/data-drift-vs-concept-drift-what-are-the-main-differences/

Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.