Jedinica 7 / 11

MLOps i implementacija: Premještanje modela iz laboratorija u proizvodnju

Dobici:

  • Sposobnost prepoznavanja posebnih izazova ML-a koji se odnose na trio i paket kod-podaci-model i predstavljanje modela online ili u paketu prema poslovnim potrebama.
  • Sposobnost implementacije postupnih i povratnih obrazaca implementacije (sjena, kanarinac, A/B, vraćanje) i dodavanja testiranog plana vraćanja unatrag svakoj implementaciji
  • Sposobnost da se veza podataka-kod-metrika modela stavljena u proizvodnju može pratiti pomoću CI/CD-a kontroliranog pragom evaluacije i registra modela

Nabaviti model za postizanje 95% tačnosti u notebook računaru je samo pola priče. Druga polovina – često najteži dio – je da se taj model dovede do stvarnih korisnika na pouzdan, skalabilan i održiv način. MLOps (Operacije mašinskog učenja: disciplina stavljanja, rada i održavanja ML modela u proizvodnju) kombinuje DevOps prakse softverskog inženjeringa sa jedinstvenim izazovima ML. U ovoj jedinici pokrivamo korake premještanja modela u proizvodnju i kako umjetna inteligencija pomaže u ovom procesu.

Zašto se ML razlikuje od običnog softvera?

U običnom softveru, ponašanje je u kodu; Ako se kod ne promijeni, ponašanje se ne mijenja. U ML-u, ponašanje zavisi i od koda, i od podataka i od modela. Ove tri dimenzije stvaraju dodatne izazove MLOps-a:

  • Pomeranje podataka: podaci u proizvodnji se vremenom udaljavaju od podataka u obuci; model postaje zastareo.
  • Trebate verziju tri stvari: kod, podatke i model—sve tri.
  • Tihi neuspjeh: model može propasti bez pada, bez davanja grešaka, jednostavnim stvaranjem pogrešnih predviđanja. Uhvatiti ovo zahtijeva praćenje.

Zato postoji velika razlika između "radnog modela" i "modela spremnog za proizvodnju".

Pakovanje i prezentacija modela

Prvi korak u puštanju modela u proizvodnju je njegovo pakovanje: fajl modela, potrebne biblioteke, kod za prethodnu obradu i informacije o verziji zajedno kao reproducibilna celina. Kontejnerizacija (npr. Docker: stavljanje aplikacije u izolovanu kutiju sa svim njenim zavisnostima) je ovde standardna; To eliminiše problem "radio je na mojoj mašini".

Dva osnovna obrasca posluživanja modela:

  • Online/u realnom vremenu (online): Model se nalazi iza API-ja, vraćajući trenutno predviđanje za svaki dolazni zahtjev. Mala latencija je kritična.
  • Grupa: Model periodično obrađuje velike skupove podataka (npr. generiše rezultate za sve kupce noću). Latencija je nebitna, bitna je efikasnost.

Koji je pravi zavisi od poslovne potrebe: trenutna preporuka na mreži, mesečna ocena rizika u grupi.

Savjet: "U realnom vremenu" je trošak, a ne zadana vrijednost. Batch je mnogo jeftiniji i jednostavniji ako se rezultat iskoristi u roku od nekoliko sati. Da li vam je zaista potreban trenutni odgovor? Prvo to pitaj.

Sigurne strategije distribucije

Otvaranje novog modela direktno za sav saobraćaj je rizično; Ako nije u redu, svi su pogođeni. Sigurni obrasci distribucije:

  • Primjena u sjeni: Novi model prima proizvodni promet, ali njegova predviđanja se ne prikazuju korisniku, već se samo evidentiraju. Upoređuje se sa starim modelom da se vidi da li je siguran u stvarnim podacima.
  • Canary implementacija: Novi model se prvo uvodi na mali postotak prometa (npr. 5%); Ako nema problema, povećava se postepeno.
  • A/B testiranje: dva modela se paralelno predstavljaju stvarnom korisniku i uspoređuju se poslovne metrike (konverzija, klikovi).
  • Vraćanje: Mogućnost brzog vraćanja na staru verziju ako se pokaže da je novi model loš. Svaka implementacija treba da ima plan vraćanja.
Oprez: Postavljanje bez plana vraćanja nije dovršeno. Mogućnost vraćanja na staru verziju u roku od nekoliko minuta štiti korisnika kada se novi model neočekivano ponaša u proizvodnji. Testirajte ovo prije implementacije.

Slab pristup / Snažan pristup

Slab: "Model je bio dobar u testiranju, izašli smo uživo, otvorili smo ga svima."

Güçlü: "Spremili smo model u kontejner, označili ga kao verziju. Prvo smo ga 3 dana pokretali u sjenčanom modu sa proizvodnim prometom, upoređujući predviđanja sa starim modelom — odstupanje je bilo prihvatljivo. Zatim smo ga otvorili sa 5% kanarinca, pratili metriku propusnosti i kašnjenje. Kada nije bilo problema, postepeno smo ga povećali na 100%.

Razlika: jak pristup je postepen, odmeren i reverzibilan. Rizik je ograničen na svakom koraku.

CI/CD i automatizacija

CI/CD (Kontinuirana integracija / Kontinuirana implementacija: cijev za automatsko testiranje i puštanje promjena koda) u ML-u pokriva ne samo kod već i podatke i korake modela. Dobar ML CI/CD cjevovod: pokreće testove kada se kod promijeni, vrši provjeru valjanosti podataka, ponovo obučava model (ako je potrebno), provjerava pragove evaluacije i samo unapređuje implementaciju ako se pragovi drže. Princip „obuka je automatska, implementacija je bazirana na pragu“ sprečava da loš model tiho procuri u proizvodnju.

AI je od velike pomoći pri postavljanju ovih cjevovoda: pisanje nacrta konfiguracijskih datoteka (YAML), test slučajeva, skripti za implementaciju. Ali vi određujete pragove distribucije (koji god pokazatelj premašuje objavljenu vrijednost) i politiku vraćanja; ovo su odluke o poslovnom riziku.

Infrastruktura reproduktivnosti

Da bi se reproduciralo ponašanje modela u proizvodnji, registar modela: zapis koji čuva koji model je obučen s kojim podacima i kodom i koje metrike je primio. Za svaki proizvodni model, sljedeće bi trebalo biti praćeno: verzija podataka obuke, verzija koda (git urezivanje), hiperparametri, rezultati evaluacije i datum implementacije. Kada se pojavi problem, trebali biste moći odgovoriti na pitanje "koji je model proizveo ovo predviđanje, s kojim podacima?" u roku od nekoliko minuta. Ovo ćemo produbiti u jedinici 11.

tri mini kofera

Slučaj 1 - Problem uhvaćen distribucijom senke. Preporučeni model je nadmašio stari u testiranju. Utvrđeno je da je pokretanje sa proizvodnim prometom u sjeno modu dalo vrlo loše preporuke za određeni segment korisnika (novi korisnici) — podaci testa su bili nedovoljno reprezentativni za ovaj segment. Model je popravljen, a da nije bio prikazan korisniku. Da se otvori direktno, novo korisničko iskustvo bi bilo poremećeno.

Slučaj 2 - Neopoziva distribucija. Tim je uveo novi model cijena za sav promet, bez planova za vraćanje. Model je neke proizvode neočekivano cijenio vrlo jeftino. Vraćanje na staru verziju trajalo je satima jer proces nije bio spreman. Došlo je do ozbiljnog gubitka prihoda. Nakon toga, obavezno testiranje vraćanja je dodano svakoj implementaciji.

Slučaj 3 - Tihi drift podataka. Obrazac prijevare se javljao mjesecima bez ikakvih grešaka. Ali taktika prevaranta se promijenila (odnos podataka) i opoziv modela je tiho opao. Niko nije primijetio jer nije bilo nadzora. Nakon što je uspostavljen panel za praćenje distribucije prognoze, pomak je postao vidljiv rano. Praćenje ćemo pokriti u jedinici 8.

Predlošci koji se mogu kopirati

Napišite nacrt plana implementacije za ovaj model. Model: [šta radi], upotreba: [online ili batch?] Trebalo bi uključiti:1) Pakovanje (kontejner, verzija)2) Strategiju inkrementalne implementacije (senka/kanarinac/A-B) i zašto3) metrike za praćenje (poslovni + tehnički + kašnjenje)4) Plan vraćanja i kako testirati5) metrička vrijednost koja bi trebala premašiti vrijednost implementacije whth

Provjerite ovaj ML CI/CD cjevovod: 1) Da li je validacija podataka u redu? 2) Može li se implementacija nastaviti bez zadržavanja praga evaluacije (zar ne bi)? 3) Je li vraćanje automatski? 4) Da li se podaci+kod+metrika prate u registru modela? Konfiguracija linije: [config]

Pomozite mi da odlučim da li je online ili grupna prezentacija pogodna za ovaj model. Koliko dugo će se koristiti rezultat: [trenutak / minuta / sat / dan]Očekivani obim zahtjeva: [broj]Postoji li ograničenje kašnjenja: [ms]Koje biste preporučili u smislu cijene i složenosti i zašto?

Napišite proceduru vraćanja za ovaj model.- Koja metrika/prag pokreće loše performanse?- Koji su koraci vraćanja?- Koliko dugo treba da traje vraćanje (cilj)?- Kako da testiram ovu proceduru prije proizvodnje?

Tablica uzoraka prezentacije

kriterijum

Online (u realnom vremenu)

Batch

kašnjenje

kritično (ms)

beznačajan

Upotreba

Potreban je trenutni odgovor

Periodični rezultat

Troškovi

visoko

nisko

složenost

visoko

nisko

primjer

Preporuka uživo, prevara

Mjesečni rezultat rizika

Uobičajene greške

  • Distribuirajte bez plana preuzimanja. Pogrešan model pogađa cijelog korisnika.
  • Otvara se direktno za 100% promet. Ograničite rizik sa stepenastom distribucijom.
  • Neuspostavljanje monitoringa. Model proizvodi greške tiho, bez greške.
  • Redundantna prezentacija u realnom vremenu. Dok je batching dovoljan, troškovi i složenost rastu.
  • Ne povezuje verzije kodova podataka modela. Ne možete reproducirati problem.
  • Automatsko otpuštanje bez praga distribucije. Loš model se tiho ušulja.

Ukratko

Premještanje modela u proizvodnju je drugačiji i često teži inženjerski zadatak od obuke. ML zahtijeva dodatnu disciplinu jer ovisi o trojcu kod-podaci-model: pakovanje i verzija, obrazac isporuke (online/batch) koji odgovara poslovnim potrebama, postepeno i reverzibilno postavljanje, CI/CD kontrolirani pragom i registracija modela. Umjetna inteligencija je moćna pomoć u generiranju koda i konfiguracije ove infrastrukture; ali pragovi distribucije, politika povrata i odluke o riziku su vaši. Distribucija bez plana vraćanja nije potpuna.

Zadatak aplikacije

Kontejnerizirajte (Docker) model i označite ga verzijom. Odlučite hoćete li nuditi online ili grupno na osnovu vaših poslovnih potreba i napišite svoje obrazloženje. Dokumentirajte fazni plan implementacije (senka ili kanarinac) i testiranu proceduru vraćanja. Obavezno zabilježite verziju podataka, urezivanje koda i rezultate evaluacije u registru modela.

kontrolna lista

  • [ ] Model je upakovan i verzionisan (kontejner + etiketa).
  • [ ] Obrazac prezentacije (online/batch) odabran je prema poslovnim potrebama.
  • [ ] Strategija postepene implementacije (senka/kanarinac) implementirana.
  • [ ] Procedura povratka napisana i testirana.
  • [ ] CI/CD ne napreduje u implementaciji prije nego se dostigne prag evaluacije.
  • [ ] Model registra sadrži vezu podaci+kod+metrički.