Model Deployment je proces integrace modelu strojového učení do stávajícího produkčního prostředí. Zatímco trénování modelu je zaměřeno na přesnost, nasazení se soustředí na dostupnost, rychlost (latenci), stabilitu a škálovatelnost.
Podle toho, jakým způsobem aplikace potřebuje výsledky, volíme různé architektury:
Model běží jako služba (často v kontejneru) a odpovídá na požadavky přes API (REST nebo gRPC).
Model zpracovává velké balíky dat najednou v pravidelných intervalech (např. jednou za noc). Výsledky se uloží do databáze.
Model běží přímo na zařízení uživatele (mobil, IoT senzor, auto).
Při nasazování nové verze modelu musíme minimalizovat riziko chyby:
| Strategie | Popis |
|---|---|
| Blue-Green | Máte dvě identická prostředí. Nový model (Green) se otestuje a pak se na něj naráz přepne veškerý provoz z Blue. |
| Canary Deployment | Nový model dostane nejdříve jen malé procento provozu (např. 5 %). Pokud jsou výsledky dobré, podíl se postupně zvyšuje. |
| Shadow Mode | Nový model běží na pozadí, dostává reálná data, ale jeho predikce se uživateli neukazují. Pouze se porovnávají s produkčním modelem. |
| A/B Testing | Část uživatelů vidí výsledky modelu A, část modelu B. Sleduje se, který model má lepší obchodní výsledky (např. vyšší prodeje). |
Dnes se k nasazení využívají technologie, které zajišťují stabilitu:
Nasazením práce nekončí. Je nutné sledovat:
Při přechodu z vývoje do produkce se modely často převádějí do formátů optimalizovaných pro rychlost:
Zajímavost: Existuje pojem „Model Decay“ (rozklad modelu). Je to jev, kdy model v produkci postupně ztrácí svou přesnost jednoduše proto, že se mění okolní svět. Průměrný model pro predikci chování uživatelů na webu může začít zastarávat již po několika týdnech bez aktualizace.