zisky:
- Schopnosť rozpoznať špeciálne výzvy ML súvisiace s trojicou kód-údaj-model a balíkom a prezentovať model online alebo v dávkach podľa obchodných potrieb.
- Schopnosť implementovať postupné a rollback vzory nasadenia (shadow, canary, A/B, rollback) a pridať testovaný plán návratu ku každému nasadeniu
- Schopnosť udržiavať vysledovateľnosť dátovo-kódovo-metrického prepojenia modelu uvedeného do výroby s vyhodnocovacím prahom riadeným CI/CD a registrom modelov
Získanie modelu s presnosťou 95 % v notebooku je len polovica príbehu. Druhá polovica – často ťažká časť – je dostať tento model k skutočným používateľom spoľahlivým, škálovateľným a udržiavateľným spôsobom. MLOps (Machine Learning Operations: disciplína zavádzania, prevádzkovania a údržby modelov ML do produkcie) kombinuje postupy softvérového inžinierstva DevOps s jedinečnými výzvami ML. V tejto časti sa zaoberáme krokmi presunu modelu do výroby a tým, ako v tomto procese pomáha umelá inteligencia.
Prečo sa ML líši od bežného softvéru?
V bežnom softvéri je správanie v kóde; Ak sa kód nezmení, nezmení sa ani správanie. V ML správanie závisí od kódu, údajov a modelu. Tieto tri dimenzie vytvárajú ďalšie výzvy MLOps:
- Dátový drift: Dáta vo výrobe sa časom vzďaľujú od dát v tréningu; model sa stáva zastaraným.
- Potrebujete verziu troch vecí: Kód, údaje a model – všetky tri.
- Tiché zlyhanie: Model môže zlyhať bez zlyhania, bez uvedenia chýb, jednoducho tým, že vytvorí nesprávne predpovede. Zachytenie tohto vyžaduje monitorovanie.
Preto je veľký rozdiel medzi „pracovným modelom“ a „modelom pripraveným na výrobu“.
Balenie a prezentácia modelov
Prvým krokom pri uvedení modelu do výroby je jeho zabalenie: súbor modelu, potrebné knižnice, kód na predbežné spracovanie a informácie o verzii spolu ako reprodukovateľný celok. Kontajnerizácia (napr. Docker: umiestnenie aplikácie do izolovaného boxu so všetkými jej závislosťami) je tu štandardná; Odstraňuje problém „fungovalo to na mojom počítači“.
Dva základné vzorce podávania modelu:
- Online/v reálnom čase (online): Model sedí za rozhraním API a vracia okamžitú predpoveď pre každú prichádzajúcu požiadavku. Nízka latencia je kritická.
- Dávka: Model pravidelne spracováva veľké súbory údajov (napr. generuje skóre pre všetkých zákazníkov v noci). Latencia je nepodstatná, dôležitá je efektivita.
Ktorý z nich je správny, závisí od obchodných potrieb: okamžité odporúčanie online, mesačné skóre rizika v dávke.
Tip: „Reálny čas“ je cena, nie predvolená hodnota. Dávka je oveľa lacnejšia a jednoduchšia, ak sa výsledok použije v priebehu niekoľkých hodín. Naozaj potrebujete okamžitú odpoveď? To sa najprv opýtaj.
Bezpečné distribučné stratégie
Otvorenie nového modelu priamo pre všetku dopravu je riskantné; Ak je to nesprávne, všetci sú ovplyvnení. Vzory bezpečnej distribúcie:
- Tieňové nasadenie: Nový model prijíma produkčnú prevádzku, ale jej predpovede sa používateľovi nezobrazujú, iba sa zaprotokolujú. Porovnáva sa so starým modelom, aby sa zistilo, či je bezpečný v reálnych dátach.
- Nasadenie Canary: Nový model sa najprv zavedie pre malé percento návštevnosti (napr. 5 %); Ak nie je problém, postupne sa zvyšuje.
- A/B testovanie: Súbežne sú prezentované dva modely reálnemu používateľovi a porovnávajú sa obchodné metriky (konverzia, kliknutia).
- Rollback: Schopnosť rýchlo sa vrátiť k starej verzii, ak sa ukáže, že nový model je zlý. Každé nasadenie by malo mať plán návratu.
Upozornenie: Nasadenie bez plánu vrátenia nie je dokončené. Možnosť vrátiť sa k starej verzii v priebehu niekoľkých minút chráni používateľa, keď sa nový model vo výrobe správa neočakávane. Pred nasadením to otestujte.
Slabý prístup / Silný prístup
Slabý: "Model bol pri testovaní dobrý, spustili sme ho naživo, otvorili sme ho všetkým."
Güçlü: "Model sme umiestnili do kontajnerov, označili sme ho ako verziu. Najprv sme ho spustili v tieňovom režime s produkčnou prevádzkou počas 3 dní, pričom sme predpovede porovnali so starým modelom — odchýlka bola prijateľná. Potom sme ho otvorili s 5 % kanárikom, sledovali sme metriky priepustnosti a latenciu. Keď neboli žiadne problémy, postupne sme ho zvýšili na 100 %. Predtým sme testovali príkaz na vrátenie."
Rozdiel: silný prístup je postupný, meraný a reverzibilný. Riziko je obmedzené na každom kroku.
CI/CD a automatizácia
CI/CD (Continuous Integration / Continuous Deployment: pipeline automatického testovania a uvoľňovania zmien kódu) v ML pokrýva nielen kód, ale aj údaje a kroky modelu. Dobrý kanál ML CI/CD: spúšťa testy, keď sa kód zmení, vykonáva overenie údajov, preškolí model (ak je to potrebné), kontroluje prahy hodnotenia a posúva nasadenie iba vtedy, ak prahy platia. Princíp „tréning je automatický, nasadenie je založené na prahových hodnotách“ zabraňuje tichému úniku zlého modelu do výroby.
AI je veľmi užitočná pri nastavovaní týchto kanálov: písanie konceptov konfiguračného súboru (YAML), testovacie prípady, skripty nasadenia. Vy však určujete prahové hodnoty distribúcie (akákoľvek metrika presahuje publikovanú hodnotu) a politiku vrátenia; toto sú rozhodnutia o podnikateľskom riziku.
Infraštruktúra reprodukovateľnosti
Aby bolo možné reprodukovať správanie modelu vo výrobe, register modelov: záznam, ktorý uchováva, ktorý model bol trénovaný s akými údajmi a kódom a ktoré metriky dostal. Pre každý produkčný model by malo byť možné sledovať nasledovné: verzia tréningových údajov, verzia kódu (git commit), hyperparametre, skóre hodnotenia a dátum nasadenia. Keď sa vyskytne problém, mali by ste byť schopní odpovedať na otázku „ktorý model vytvoril túto predpoveď, s akými údajmi?“ v priebehu niekoľkých minút. Prehĺbime to v jednotke 11.
tri mini prípady
Prípad 1 – Problém zachytený distribúciou tieňov. Model odporúčaní porazil starý v testovaní. Zistilo sa, že jeho spustenie s produkčnou prevádzkou v tieňovom režime vytvára veľmi slabé odporúčania pre konkrétny segment používateľov (noví používatelia) – testovacie údaje nedostatočne reprezentovali tento segment. Model bol opravený bez toho, aby sa zobrazil používateľovi. Ak by bol otvorený priamo, nová používateľská skúsenosť by bola narušená.
Prípad 2 – Neodvolateľná distribúcia. Tím zaviedol nový cenový model pre všetku návštevnosť bez plánov vrátenia. Model nečakane nacenil niektoré produkty veľmi lacno. Návrat k starej verzii trval hodiny, pretože proces nebol pripravený. Došlo k vážnemu výpadku príjmu. Potom bolo do každého nasadenia pridané povinné testovanie vrátenia.
Prípad 3 – Tichý posun údajov. Vzorec podvodu sa objavoval mesiace bez akýchkoľvek chýb. Ale taktika podvodníkov sa zmenila (únos údajov) a odvolanie modelu potichu kleslo. Nikto si to nevšimol, pretože nebolo žiadne monitorovanie. Akonáhle bol zriadený panel na monitorovanie prognózy distribúcie, posun sa stal viditeľným čoskoro. Budeme pokrývať monitorovanie v bloku 8.
Kopírovateľné šablóny
Napíšte návrh plánu nasadenia pre tento model. Model: [čo robí], použitie: [online alebo dávkové?] Mal by zahŕňať: 1) Balenie (kontajner, vytváranie verzií)2) Stratégia postupného nasadzovania (tieň/kanárik/A-B) a prečo3) Metriky na sledovanie (obchodné + technické + latencia) 4) Plán vrátenia a spôsob testovania5) Prahové hodnoty nasadenia (ktorá hodnota) metrika by mala prekročiť akú hodnotu
Skontrolujte tento kanál ML CI/CD:1) Je v riadku overenie údajov?2) Môže nasadenie pokračovať bez podržania prahu hodnotenia (nemalo by to tak byť)?3) Je vrátenie automatické?4) Sledujú sa údaje+kód+metriky v registri modelu?Konfigurácia Pline: [config]
Pomôžte mi rozhodnúť sa, či je pre tento model vhodná online alebo dávková prezentácia. Ako dlho sa bude výsledok používať: [okamžite / minúta / hodina / deň] Očakávaný objem požiadavky: [číslo] Existuje obmedzenie oneskorenia: [ms]Ktorý by ste odporučili z hľadiska nákladov a zložitosti a prečo?
Napíšte postup vrátenia pre tento model.- Aká metrika/prahová hodnota spúšťa slabý výkon?- Aké sú kroky vrátenia späť?- Ako dlho by malo vrátenie trvať (cieľ)?- Ako otestujem tento postup pred výrobou?
Tabuľka vzorov prezentácie
kritérium
Online (v reálnom čase)
Dávka
meškanie
kritické (ms)
bezvýznamný
Použitie
Vyžaduje sa okamžitá odpoveď
Periodické skóre
náklady
vysoká
nízka
zložitosť
vysoká
nízka
príklad
Živé odporúčanie, podvod
Mesačné skóre rizika
Časté chyby
- Distribuujte bez plánu získavania. Nesprávny model zasiahne celého používateľa.
- Otváranie priamo pre 100% prevádzku. Obmedzte riziko pomocou postupnej distribúcie.
- Nezavádza sa monitorovanie. Model produkuje chyby ticho, bez chyby.
- Nadbytočná prezentácia v reálnom čase. Aj keď je dávkovanie dostatočné, náklady a zložitosť stúpajú.
- Neprepájajú sa verzie kódu s údajmi modelu. Problém nemôžete reprodukovať.
- Automatické uvoľnenie bez prahu distribúcie. Zlá modelka sa potichu prikradne.
V súhrne
Presun modelu do výroby je iná a často ťažšia inžinierska úloha ako jeho výcvik. ML si vyžaduje osobitnú disciplínu, pretože závisí od trojice kód-údaje-model: balenie a verzovanie, spôsob doručenia (online/dávka), ktorý vyhovuje potrebám podniku, postupné a reverzibilné nasadenie, prahová kontrola CI/CD a registrácia modelu. Umelá inteligencia je silným pomocníkom pri generovaní kódu a konfigurácii tejto infraštruktúry; ale distribučné prahy, politika spätného získavania a rozhodnutia o riziku sú na vás. Distribúcia bez plánu vrátenia nie je dokončená.
Aplikačná úloha
Kontajnerujte (Docker) model a označte jeho verziu. Rozhodnite sa, či budete ponúkať online alebo hromadne na základe vašich obchodných potrieb a napíšte svoje odôvodnenie. Zdokumentujte plán fázového nasadenia (tieňový alebo kanársky) a testovaný postup vrátenia. Nezabudnite zaznamenať verziu údajov, odovzdanie kódu a skóre hodnotenia v registri modelov.
kontrolný zoznam
- [ ] Model je zabalený a verzovaný (nádoba + štítok).
- [ ] Vzor prezentácie (online/dávka) bol zvolený podľa obchodných potrieb.
- [ ] Implementovaná stratégia postupného zavádzania (tieň/kanárik).
- [ ] Postup vrátenia napísaný a otestovaný.
- [ ] CI/CD nepokročí v nasadení skôr, ako sa dosiahne prah hodnotenia.
- [ ] Modelový register obsahuje prepojenie údaje+kód+metrika.