Dobički:
- Sposobnost prepoznavanja posebnih izzivov ML, povezanih s triom in paketom modela koda-podatki-model, ter predstavitve modela na spletu ali v paketu glede na poslovne potrebe.
- Sposobnost izvajanja vzorcev postopnega uvajanja in povratnega uvajanja (senca, kanarček, A/B, povrnitev) in dodajanja preizkušenega načrta uvajanja vsaki uvedbi
- Sposobnost ohranjanja sledljivosti povezave podatkov-kode-metrike modela, danega v proizvodnjo, s CI/CD, nadzorovanim s pragom vrednotenja, in registrom modelov
Pridobiti model, ki v prenosnem računalniku doseže 95-odstotno natančnost, je le polovica zgodbe. Druga polovica – pogosto težji del – je prenos tega modela resničnim uporabnikom na zanesljiv, razširljiv in vzdrževan način. MLOps (Operacije strojnega učenja: disciplina uvajanja, delovanja in vzdrževanja modelov ML v produkcijo) združuje prakse programskega inženiringa DevOps z edinstvenimi izzivi ML. V tej enoti obravnavamo korake prenosa modela v proizvodnjo in kako umetna inteligenca pomaga pri tem procesu.
Zakaj se ML razlikuje od običajne programske opreme?
V navadni programski opremi je vedenje v kodi; Če se koda ne spremeni, se vedenje ne spremeni. V ML je vedenje odvisno od kode, podatkov in modela. Te tri razsežnosti ustvarjajo dodatne izzive MLO:
- Premik podatkov: podatki v proizvodnji se sčasoma odmikajo od podatkov v usposabljanju; model postane zastarel.
- Različiti morate tri stvari: kodo, podatke in model – vse tri.
- Tiha napaka: Model lahko odpove, ne da bi se zrušil, ne da bi povzročil napake, preprosto z ustvarjanjem napačnih napovedi. Ulov tega zahteva spremljanje.
Zato obstaja velika razlika med "delujočim modelom" in "modelom, pripravljenim za proizvodnjo".
Pakiranje in predstavitev modela
Prvi korak pri postavitvi modela v proizvodnjo je njegovo pakiranje: datoteka modela, potrebne knjižnice, koda za predprocesiranje in informacije o različici skupaj v ponovljivo celoto. Kontejnerizacija (npr. Docker: namestitev aplikacije v izolirano škatlo z vsemi njenimi odvisnostmi) je tu standardna; Odpravlja problem "deloval je na moji napravi".
Dva osnovna vzorca serviranja modela:
- Na spletu/v realnem času (na spletu): Model stoji za API-jem in vrne takojšnjo napoved za vsako dohodno zahtevo. Nizka zakasnitev je kritična.
- Paket: model občasno obdeluje velike nabore podatkov (npr. ustvarja rezultate za vse stranke ponoči). Zakasnitev ni pomembna, pomembna je učinkovitost.
Kateri je pravi, je odvisno od poslovne potrebe: takojšnje spletno priporočilo, mesečna ocena tveganja v seriji.
Nasvet: »V realnem času« je cena, ne privzeta. Serija je veliko cenejša in preprostejša, če bo rezultat uporabljen v nekaj urah. Ali res potrebujete takojšen odgovor? Najprej to vprašaj.
Strategije varne distribucije
Odpiranje novega modela neposredno za ves promet je tvegano; Če je narobe, so prizadeti vsi. Varni vzorci distribucije:
- Senčna uvedba: novi model prejema produkcijski promet, vendar njegove napovedi niso prikazane uporabniku, temveč le zabeležene. Primerjajo ga s starim modelom, da bi ugotovili, ali je varen v resničnih podatkih.
- Uvedba Canary: novi model je najprej uveden za majhen odstotek prometa (npr. 5 %); Če ni težav, se postopoma povečuje.
- A/B testiranje: Dejanskemu uporabniku se vzporedno predstavita dva modela in primerjata poslovne metrike (konverzija, kliki).
- Povrnitev nazaj: Možnost hitre vrnitve na staro različico, če se novi model izkaže za slabega. Vsaka uvedba mora imeti načrt za povrnitev.
Pozor: Razmestitev brez načrta za povrnitev ni dokončana. Možnost vrnitve na staro različico v nekaj minutah ščiti uporabnika, ko se novi model v proizvodnji nepričakovano obnaša. Preizkusite to pred uvedbo.
Šibek pristop / Močan pristop
Slab: "Model je bil dober pri testiranju, šli smo v živo, odprli smo ga vsem."
Güçlü: "Model smo pospravili v kontejnerje, ga označili kot različico. Najprej smo ga 3 dni izvajali v senčnem načinu s produkcijskim prometom in primerjali napovedi s starim modelom - odstopanje je bilo sprejemljivo. Nato smo ga odprli s 5-odstotnim kanarčkom, spremljali metriko pretoka in zakasnitev. Ko ni bilo težav, smo ga postopoma povečali na 100%. Pred tem smo preizkusili ukaz za povrnitev."
Razlika: močan pristop je postopen, odmerjen in reverzibilen. Tveganje je omejeno na vsakem koraku.
CI/CD in avtomatizacija
CI/CD (Continuous Integration/Continuous Deployment: cevovod samodejnega testiranja in objavljanja sprememb kode) v ML ne zajema samo kode, ampak tudi podatke in korake modela. Dober cevovod ML CI/CD: zažene preizkuse, ko se koda spremeni, izvede validacijo podatkov, ponovno usposobi model (če je potrebno), preveri pragove ocenjevanja in napreduje pri uvajanju samo, če pragovi držijo. Načelo »usposabljanje je samodejno, uvajanje temelji na pragu« preprečuje, da bi slab model tiho ušel v proizvodnjo.
AI je zelo koristen pri nastavljanju teh cevovodov: pisanje osnutkov konfiguracijske datoteke (YAML), testnih primerov, skriptov za uvajanje. Toda vi določite pragove distribucije (katera koli metrika presega tisto, kar je objavljena vrednost) in politiko povrnitve; to so odločitve o poslovnem tveganju.
Infrastruktura ponovljivosti
Za reprodukcijo obnašanja modela v proizvodnji, register modelov: zapis, ki hrani, kateri model je bil usposobljen s katerimi podatki in kodo ter katere metrike je prejel. Za vsak produkcijski model mora biti sledljivo naslednje: različica podatkov o usposabljanju, različica kode (git commit), hiperparametri, rezultati ocenjevanja in datum uvedbe. Ko se pojavi težava, bi morali biti sposobni odgovoriti na vprašanje "kateri model je ustvaril to napoved, s katerimi podatki?" v nekaj minutah. To bomo poglobili v 11. enoti.
trije mini kovčki
Primer 1 – Težava je nastala zaradi porazdelitve senc. Priporočeni model je pri testiranju premagal starega. Ugotovljeno je bilo, da je izvajanje s produkcijskim prometom v senčnem načinu ustvarilo zelo slaba priporočila za določen segment uporabnikov (novi uporabniki) – testni podatki so bili premalo reprezentativni za ta segment. Model je bil popravljen, ne da bi bil sploh prikazan uporabniku. Če bi ga odprli neposredno, bi bila nova uporabniška izkušnja motena.
Primer 2 - Nepreklicna razdelitev. Ekipa je uvedla nov cenovni model za ves promet, brez načrtov za povrnitev. Model je nekatere izdelke nepričakovano postavil zelo poceni. Vrnitev na staro različico je trajala ure, ker postopek ni bil pripravljen. Prišlo je do resne izgube dohodka. Kasneje je bilo vsaki uvedbi dodano obvezno testiranje povrnitve nazaj.
Primer 3 – Tiho premikanje podatkov. Vzorec goljufije se je pojavljal mesece brez napak. Toda taktika prevarantov se je spremenila (odmik podatkov) in odpoklic modela je tiho padel. Nihče ni opazil, ker ni bilo nadzora. Ko je bila vzpostavljena plošča za spremljanje porazdelitve napovedi, je premik postal viden zgodaj. Spremljanje bomo obravnavali v 8. enoti.
Kopirane predloge
Napišite osnutek načrta uvedbe za ta model. Model: [kaj počne], uporaba: [na spletu ali paketno?] Moral bi vsebovati: 1) Embalažo (vsebnik, različice) 2) Strategijo postopnega uvajanja (shadow/canary/A-B) in zakaj 3) Meritve za sledenje (poslovna + tehnična + zakasnitev) 4) Načrt za povrnitev in kako preizkusiti 5) Pragove uvajanja (katera metrika mora preseči katero vrednost)
Preverite ta cevovod ML CI/CD: 1) Ali je preverjanje veljavnosti podatkov v vrsti? 2) Ali se uvajanje lahko nadaljuje brez zadrževanja praga vrednotenja (ali ne bi smelo)? 3) Ali je povrnitev samodejna? 4) Ali se podatki+koda+metrike spremljajo v registru modela?Konfiguracija Pline: [config]
Pomagajte mi odločiti, ali je spletna ali paketna predstavitev primerna za ta model. Kako dolgo se bo uporabljal rezultat: [trenutek / minuta / ura / dan] Pričakovana količina zahtevka: [število] Ali obstaja omejitev zakasnitve: [ms] Katerega bi priporočili glede stroškov in kompleksnosti in zakaj?
Napišite postopek povrnitve za ta model.– Katera metrika/prag sproži slabo delovanje?– Kakšni so koraki povrnitve?– Kako dolgo naj traja povrnitev (cilj)?– Kako preizkusim ta postopek pred proizvodnjo?
Tabela predstavitvenih vzorcev
merilo
Na spletu (v realnem času)
Serija
zamuda
Kritično (ms)
nepomemben
Uporaba
Potreben je takojšen odziv
Periodični rezultat
Stroški
visoka
nizka
kompleksnost
visoka
nizka
primer
Priporočilo v živo, prevara
Mesečna ocena tveganja
Pogoste napake
- Distribuirajte brez načrta iskanja. Napačen model prizadene celotnega uporabnika.
- Odpiranje neposredno na 100% promet. Omejite tveganje z razporejeno porazdelitvijo.
- Brez vzpostavitve nadzora. Model proizvaja napake tiho, brez napak.
- Redundantna predstavitev v realnem času. Čeprav je serijsko zbiranje dovolj, stroški in kompleksnost naraščajo.
- Brez povezovanja različic model-podatki-koda. Težave ne morete reproducirati.
- Samodejna sprostitev brez distribucijskega praga. Slab model se neslišno prikrade.
Če povzamem
Premik modela v proizvodnjo je drugačna in pogosto težja inženirska naloga kot njegovo usposabljanje. ML zahteva dodatno disciplino, ker je odvisen od tria koda-podatki-model: pakiranje in različice, vzorec dostave (online/paket), ki ustreza poslovnim potrebam, postopna in reverzibilna uvedba, CI/CD z nadzorovanim pragom in registracija modela. Umetna inteligenca je močna pomoč pri ustvarjanju kode in konfiguracije te infrastrukture; ampak delitveni pragovi, politika povračila in odločitve o tveganju so vaše. Distribucija brez načrta povrnitve ni popolna.
Aplikacijska naloga
Kontejnerite (Docker) model in ga označite kot različico. Glede na vaše poslovne potrebe se odločite, ali boste ponujali spletno ali serijsko, in napišite svojo utemeljitev. Dokumentirajte načrt postopnega uvajanja (senčni ali kanarček) in preizkušen postopek povrnitve. Zabeležite različico podatkov, potrditev kode in ocene ocenjevanja v registru modela.
kontrolni seznam
- [ ] Model je zapakiran in verziran (vsebnik + nalepka).
- [ ] Predstavitveni vzorec (online/paket) je bil izbran glede na poslovne potrebe.
- [ ] Izvedena strategija postopnega uvajanja (senca/kanarček).
- [ ] Postopek povrnitve nazaj napisan in preizkušen.
- [ ] CI/CD ne pospeši uvajanja, dokler ni dosežen ocenjevalni prag.
- [ ] Register modela vsebuje povezavo podatki+koda+metrika.