![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
MLOps, skraćeno od Machine Learning Operations, skup je praksi i alata usmjerenih na rješavanje specifičnih potreba inženjera koji grade modele i prebacuju ih u proizvodnju. Neke organizacije započinju s nekoliko domaćih alata koji verziraju skupove podataka nakon svakog eksperimenta i modele kontrolnih točaka nakon svake epohe obuke. S druge strane, mnoge su organizacije odlučile usvojiti formalni alat koji ima praćenje eksperimenta, značajke suradnje, mogućnosti posluživanja modela, pa čak i značajke cjevovoda za obradu podataka i modele obuke.
Da biste napravili najbolji izbor za svoju organizaciju, trebali biste razumjeti sve mogućnosti dostupne od vodećih MLOps alata u industriji. Ako idete domaćim putem, trebali biste razumjeti sposobnosti kojih se odričete. Domaći pristup dobar je za male timove koji se moraju brzo kretati i možda nemaju vremena za procjenu novog alata. Ako odlučite implementirati alat treće strane, tada ćete morati odabrati alat koji najbolje odgovara tijeku inženjerskog rada vaše organizacije. To bi moglo biti nezgodno jer se vrhunski alati danas značajno razlikuju u pristupu i mogućnostima. Bez obzira na vaš izbor, trebat će vam podatkovna infrastruktura koja može obraditi velike količine podataka i služiti skupovima za obuku na učinkovit način. Modeli kontrolnih točaka i verzioniranje velikih skupova podataka zahtijevaju skalabilni kapacitet, a ako koristite skupe GPU-ove, trebat će vam učinkovita infrastruktura kako biste maksimalno iskoristili svoje ulaganje.
U ovom postu predstavit ću popis značajki koje bi arhitekti trebali uzeti u obzir bez obzira na pristup ili alate koje odaberu. Ovaj popis značajki dolazi iz mog istraživanja i eksperimenata s tri najbolja MLOps dobavljača danas -
Prije nego što se upustimo u značajke i infrastrukturne zahtjeve, bolje shvatimo važnost MLOps-a. Da biste to učinili, korisno je usporediti stvaranje modela s konvencionalnim razvojem aplikacija.
Konvencionalni razvoj aplikacija, poput implementacije nove mikrousluge koja aplikaciji dodaje novu značajku, počinje pregledom specifikacije. Prvo se dizajniraju nove strukture podataka ili promjene postojećih struktura podataka. Dizajn podataka ne bi se trebao mijenjati nakon početka kodiranja. Usluga se zatim implementira, a kodiranje je glavna aktivnost u tom procesu. Jedinični testovi i end-to-end testovi također su kodirani. Ovi testovi dokazuju da kod nije pogrešan i da ispravno implementira specifikaciju. Mogu se pokrenuti automatski putem CI/CD cjevovoda prije postavljanja cijele aplikacije.
Stvaranje modela i njegovo treniranje su različiti. Prvi korak je razumijevanje sirovih podataka i potrebnog predviđanja. ML inženjeri moraju napisati neki kod za implementaciju svojih neuronskih mreža ili postaviti algoritam, ali kodiranje nije dominantna aktivnost. Glavna aktivnost je ponovljeno eksperimentiranje. Tijekom eksperimentiranja promijenit će se dizajn podataka, dizajn modela i korišteni parametri. Nakon svakog eksperimenta stvaraju se mjerni podaci koji pokazuju kako je model radio dok je treniran. Mjerni podaci se također generiraju za određivanje performansi modela u odnosu na skup za provjeru valjanosti i skup za testiranje. Ove se metrike koriste za dokazivanje kvalitete modela. Trebali biste spremiti model nakon svakog eksperimenta, a svaki put kada promijenite svoje skupove podataka, trebali biste ih također spremiti. Nakon što je model spreman za ugradnju u aplikaciju, mora se zapakirati i implementirati.
Ukratko, MLOps je za strojno učenje ono što je DevOps za tradicionalni razvoj softvera. Oba su skup praksi i načela usmjerenih na poboljšanje suradnje između inženjerskih timova (Dev ili ML) i timova za IT operacije (Ops). Cilj je pojednostaviti životni ciklus razvoja, od planiranja i razvoja do implementacije i operacija, korištenjem automatizacije. Jedna od primarnih prednosti ovih pristupa je kontinuirano poboljšanje.
Idemo malo dublje u MLOps i pogledajmo specifične značajke koje treba uzeti u obzir.
Praćenje eksperimenta i suradnja značajke su koje se najviše povezuju s MLOps-om, ali današnji moderniji MLOps alati mogu učiniti puno više. Na primjer, neki mogu pružiti okruženje za izvođenje za vaše eksperimente. Drugi mogu pakirati i implementirati modele nakon što budu spremni za integraciju u aplikaciju.
Ispod je nadskup značajki koje se danas nalaze u MLOps alatima. Ovaj popis također uključuje druge stvari koje treba uzeti u obzir, kao što su podrška i integracija podataka.
Podrška velikog igrača - MLOps tehnike i značajke neprestano se razvijaju. Želite alat iza kojeg stoji veliki igrač (Google, Databricks ili McKinsey i tvrtka podupiru Kubeflow, MLflow i MLRun, respektivno), osiguravajući stalni razvoj i poboljšanje. Kao konkretan primjer, mnogi popularni alati danas su stvoreni prije velikih jezičnih modela (LLM); posljedično, mnogi dodaju nove značajke za podršku generativnoj umjetnoj inteligenciji.
Moderna integracija podatkovnog jezera - Eksperimenti generiraju mnogo strukturiranih i nestrukturiranih podataka. MLOps alat koji je savršeno integriran s modernim Datalakeom (ili Data Lakehouseom) pohranjivao bi nestrukturirane podatke u Data Lake (ovo je izravno MinIO), a strukturirani podaci išli bi u Data Warehouse. Nažalost, mnogi MLOps alati postojali su prije otvorenih tabličnih formata koji su doveli do modernog Datalakea, tako da će većina imati zasebno rješenje za svoje strukturirane podatke. To je obično relacijska baza podataka otvorenog koda koju će vaša podatkovna infrastruktura morati podržavati. S obzirom na nestrukturirane podatke (skupovi podataka i kontrolne točke modela), svi glavni alati u industriji koriste MinIO otkako postojimo od 2014. godine.
Praćenje eksperimenta - vjerojatno najvažnija značajka MLOps alata je praćenje skupova podataka, modela, hiperparametara i metrika za svaki eksperiment. Praćenje eksperimenata također bi trebalo olakšati ponovljivost - ako ste dobili željeni rezultat prije pet eksperimenata i eksperimenti nakon toga su degradirali izvedbu vašeg modela, tada biste trebali moći koristiti svoj MLOps alat da se vratite i dobijete točne hiperparametre i korištene značajke skupa podataka koji daju željeni rezultat.
Olakšajte suradnju — Važna komponenta MLOps alata je portal ili korisničko sučelje koje se koristi za predstavljanje rezultata svakog eksperimenta. Ovaj bi portal trebao biti dostupan svim članovima tima kako bi mogli međusobno vidjeti eksperimente i dati preporuke. Neki MLOps alati imaju otmjene grafičke značajke koje omogućuju izradu prilagođenih grafikona koji uspoređuju rezultate eksperimenata.
Pakiranje modela - Ova mogućnost pakira model tako da mu se može pristupiti iz drugih programskih okruženja - obično kao mikroservis. Ovo je zgodna značajka. Uvježbani model nije ništa više od serijaliziranog objekta. Mnoge su organizacije to već shvatile.
Posluživanje modela - nakon što se model zapakira kao usluga, ova će značajka omogućiti automatiziranu implementaciju usluge koja sadrži model u formalnim okruženjima organizacije. Ova značajka vam neće trebati ako imate
Registar modela - Registar modela pruža pregled svih modela kojima trenutno upravlja vaš MLOps alat. Uostalom, stvaranje modela proizvodne kvalitete cilj je svih MLO-ova. Ovaj prikaz trebao bi prikazati modele koji su implementirani u proizvodnju, kao i modele koji nikada nisu stigli u proizvodnju. Modeli koji su ušli u proizvodnju trebali bi biti označeni na takav način da također možete odrediti verziju aplikacije ili usluge u koju su implementirani.
Funkcije bez poslužitelja - neki alati pružaju značajke koje omogućuju označavanje koda tako da se funkcija ili modul mogu implementirati kao kontejnerska usluga za izvođenje eksperimenata u klasteru. Ako odlučite koristiti ovu značajku, pobrinite se da svi vaši inženjeri razumiju ovu tehniku. To može biti pomalo krivulja učenja - inženjerima s DevOps pozadinom bit će lakše, dok će se inženjerima koji su prethodno proučavali strojno učenje s malo iskustva u kodiranju mučiti.
Mogućnosti cjevovoda podataka - Cilj nekih MLOps alata je pružanje kompletnih mogućnosti od početka do kraja i imaju značajke specifične za izgradnju cjevovoda podataka za dohvaćanje neobrađenih podataka, njihovu obradu i pohranu čistih podataka. Cjevovodi se obično navode kao
Mogućnosti cjevovoda za obuku - ovo je slično cjevovodima podataka, ali cjevovod za obuku nastavlja tamo gdje cjevovodi podataka prestaju. Cjevovod obuke vam omogućuje pozivanje vašeg koda za pristup podacima, slanje podataka vašoj logici obuke i označavanje artefakata podataka i modela tako da se automatski spremaju. Slično podatkovnim cjevovodima, ova se značajka može koristiti u kombinaciji s funkcijama bez poslužitelja za izradu DAG-ova i planiranje eksperimenata. Ako već koristite distribuirani alat za obuku, možda vam ova značajka neće trebati. Moguće je pokrenuti distribuiranu obuku iz cjevovoda obuke, ali to bi moglo biti previše složeno.
Nakon što smo pogledali razlike između tradicionalnog razvoja aplikacija i strojnog učenja, trebalo bi biti jasno da vam je za uspjeh sa strojnim učenjem potreban neki oblik MLO-a i podatkovna infrastruktura sposobna za performanse i skalabilni kapacitet.
Domaća rješenja dobra su ako morate brzo pokrenuti projekt i nemate vremena za procjenu formalnog MLOps alata. Ako odaberete ovaj pristup, dobra vijest je da je sve što trebate za svoju podatkovnu infrastrukturu MinIO. MinIO je kompatibilan sa S3, pa ako ste započeli s drugim alatom i koristili S3 sučelje za pristup svojim skupovima podataka, tada će vaš kod jednostavno raditi. Ako tek počinjete, možete koristiti naš
Usvajanje MLOps alata treće strane najbolji je način za velike organizacije s nekoliko AI/ML timova koji stvaraju modele različitih vrsta. Alat MLOps s najviše značajki nije nužno i najbolji alat. Pogledajte gornje značajke i zabilježite značajke koje su vam potrebne, značajke koje trenutno imate kao dio postojećeg CI/CD cjevovoda i na kraju značajke koje ne želite, to će vam pomoći da pronađete ono što najbolje odgovara. MLOps alati imaju golem apetit za velikim petabajtima pohrane objekata. Mnogi od njih automatski verziraju vaše skupove podataka sa svakim eksperimentom i automatski provjeravaju vaše modele nakon svake epohe. I ovdje MinIO može pomoći jer kapacitet nije problem. Slično domaćem rješenju, razmislite o upotrebi izdanja MinIO za poduzeća. Značajke predmemoriranja rade automatski nakon što su konfigurirane za kantu, pa iako MLOps alat ne zahtijeva korištenje predmemorije - MinIO će automatski predmemorirati objekte kojima se često pristupa poput skupa za obuku.
Mnogi MLOps alati na današnjem tržištu koriste relacijsku bazu podataka otvorenog koda za pohranjivanje strukturiranih podataka generiranih tijekom učenja modela koji su obično metrike i hiperparametri. Nažalost, ovo će biti nova baza podataka koju vaša organizacija mora podržati. Osim toga, ako se organizacija kreće prema modernom jezeru podataka (ili jezeru podataka), tada dodatna relacijska baza podataka nije potrebna. Ono što bi bilo dobro da glavni dobavljači MLOps-a razmotre korištenje skladišta podataka temeljenog na OTF-u za pohranu svojih strukturiranih podataka.
Svi glavni MLOps dobavljači koriste MinIO ispod haube za pohranu nestrukturiranih podataka. Nažalost, ovo se općenito postavlja kao zasebna mala instanca koja se instalira kao dio ukupne veće instalacije alata MLOps. Osim toga, to je obično starija verzija MinIO-a, što je u suprotnosti s našim etosom uvijek pokretanja
U ovom sam postu predstavio arhitektski vodič za MLOps istražujući MLOps značajke i podatkovnu infrastrukturu potrebnu za podršku tim značajkama. Na visokoj razini, organizacije mogu izgraditi vlastito rješenje ili mogu implementirati rješenje treće strane. Bez obzira na odabrani smjer, važno je razumjeti sve značajke dostupne u današnjoj industriji. Domaća rješenja omogućuju vam da brzo započnete projekt, ali možete uskoro prerasti svoje rješenje. Također je važno razumjeti vaše specifične potrebe i kako će MLO funkcionirati s postojećim CI/CD cjevovodom. Mnogi MLOps alati bogati su značajkama i sadrže značajke koje možda nikada nećete koristiti ili koje već imate kao dio svoje CI/CD linije.
Da biste uspješno implementirali MLOps, potrebna vam je podatkovna infrastruktura koja to može podržati. U ovom sam postu predstavio jednostavno rješenje za one koji su odabrali domaće rješenje i opisao što mogu očekivati od alata trećih strana i resurse koji su im potrebni.
Zaključio sam s popisom želja za daljnjim razvojem MLOps alata koji bi im pomogli da se bolje integriraju u Modern Datalake.
Za više informacija o korištenju modernog podatkovnog jezera za podršku AI/ML radnih opterećenja, pogledajte
Ako imate bilo kakvih pitanja, svakako nam se obratite na