Več svetovnih sektorjev začenja vlagati v strojno učenje (ML).
Modele ML lahko na začetku zaženejo in upravljajo skupine strokovnjakov, vendar je ena največjih ovir prenos pridobljenega znanja na naslednji model, da se procesi lahko razširijo.
Za izboljšanje in standardizacijo procesov, vključenih v upravljanje življenjskega cikla modela, ekipe, ki ustvarjajo modele strojnega učenja, vedno pogosteje uporabljajo tehnike MLOps.
Nadaljujte z branjem, če želite izvedeti več o nekaterih najboljših orodjih in platformah MLOps, ki so danes na voljo, in o tem, kako lahko olajšajo strojno učenje z vidika orodja, razvijalca in postopkov.
Kaj je MLOps?
Tehnika za ustvarjanje pravilnikov, norm in najboljših praks za modele strojnega učenja je znana kot »operacije strojnega učenja« ali »MLOps«.
Cilj MLOps je zagotoviti, da je celoten življenjski cikel razvoja ML – od zasnove do uvajanja – natančno dokumentiran in upravljan za najboljše rezultate, namesto da bi vanj vložili veliko časa in virov brez strategije.
Cilj MLOps je kodificirati najboljše prakse na način, ki naredi razvoj strojnega učenja bolj razširljiv za operaterje in razvijalce ML, ter izboljšati kakovost in varnost modelov ML.
Nekateri MLOps imenujejo "DevOps za strojno učenje", saj uspešno uporablja načela DevOps na bolj specializiranem področju tehnološkega razvoja.
To je koristen način za razmišljanje o MLOps, ker tako kot DevOps poudarja izmenjavo znanja, sodelovanje in najboljše prakse med ekipami in orodji.
MLOps razvijalcem, podatkovnim znanstvenikom in operativnim ekipam zagotavlja okvir za sodelovanje in posledično ustvarjanje najzmogljivejših modelov ML.
Zakaj uporabljati orodja MLOps?
Orodja MLOps lahko izvajajo širok nabor nalog za ekipo ML, vendar so pogosto razdeljena v dve skupini: administracija platforme in upravljanje posameznih komponent.
Medtem ko se nekateri izdelki MLOps osredotočajo le na eno samo osnovno funkcijo, kot je upravljanje podatkov ali metapodatkov, druga orodja sprejmejo bolj vseobsegajočo strategijo in zagotavljajo platformo MLOps za nadzor več vidikov življenjskega cikla ML.
Poiščite rešitve MLOps, ki vaši ekipi pomagajo pri upravljanju teh področij razvoja ML, ne glede na to, ali iščete strokovnjaka ali širše orodje:
- Ravnanje s podatki
- Oblikovanje in modeliranje
- Vodenje projektov in delovnega mesta
- Uvajanje in stalno vzdrževanje modela ML
- Upravljanje življenjskega cikla od začetka do konca, ki ga običajno ponujajo platforme MLOps s polno storitvijo.
Orodja MLOps
1. MLFlow
Življenjski cikel strojnega učenja nadzira odprtokodna platforma MLflow in vključuje centralno registracijo modela, uvajanje in eksperimentiranje.
MLflow lahko uporablja ekipa katere koli velikosti, tako individualno kot kolektivno. Knjižnice nimajo vpliva na orodje.
Uporabi ga lahko kateri koli programski jezik in knjižnica strojnega učenja.
Za poenostavitev usposabljanja, uvajanja in upravljanja aplikacij strojnega učenja MLFlow sodeluje s številnimi okviri strojnega učenja, vključno z TensorFlow in Pytorch.
Poleg tega MLflow ponuja preproste API-je, ki jih je mogoče vključiti v vse obstoječe programe ali knjižnice za strojno učenje.
MLflow ima štiri ključne funkcije, ki olajšajo sledenje in načrtovanje poskusov:
- MLflow Tracking – API in uporabniški vmesnik za beleženje parametrov kode strojnega učenja, različic, meritev in artefaktov ter za kasnejši prikaz in primerjavo rezultatov
- Projekti MLflow – pakiranje kode za strojno učenje v večkratno uporabno, ponovljivo obliko za prenos v proizvodnjo ali deljenje z drugimi podatkovnimi znanstveniki
- Modeli MLflow – vzdrževanje in uvajanje modelov v vrsto sistemov za streženje in sklepanje modelov iz različnih knjižnic ML
- Register modelov MLflow – osrednja shramba modelov, ki omogoča kooperativno upravljanje celotne življenjske dobe modela MLflow, vključno z različicami modela, prehodi stopenj in opombami.
2. KubeFlow
Orodja ML za Kubernetes se imenuje Kubeflow. Pakiranje in upravljanje Docker kontejnerjev, pomoč pri vzdrževanju sistemi strojnega učenja.
S poenostavitvijo orkestracije izvajanja in uvajanja delovnih tokov strojnega učenja spodbuja razširljivost modelov strojnega učenja.
Je odprtokodni projekt, ki vključuje skrbno izbrano skupino komplementarnih orodij in ogrodij, prilagojenih različnim potrebam ML.
Dolge naloge usposabljanja ML, ročno eksperimentiranje, ponovljivost in izzive DevOps je mogoče obravnavati s Kubeflow Pipelines.
Za več stopenj strojnega učenja, vključno z usposabljanjem, razvojem cevovoda in vzdrževanjem Jupyterjeve zvezke, Kubeflow ponuja specializirane storitve in integracijo.
Omogoča preprosto upravljanje in sledenje življenjski dobi vaših delovnih obremenitev AI ter uvajanje modelov strojnega učenja (ML) in podatkovnih cevovodov v gruče Kubernetes.
Ponuja:
- Prenosni računalniki za uporabo SDK za interakcijo s sistemom
- uporabniški vmesnik (UI) za nadzor in spremljanje izvajanj, opravil in poskusov
- Za hitro načrtovanje rešitev od konca do konca, ne da bi morali vsakič znova zgraditi in ponovno uporabiti komponente in cevovode.
- Kot ključna komponenta Kubeflowa ali kot samostojna namestitev so na voljo Kubeflow Pipelines.
3. Nadzor različic podatkov
Odprtokodna rešitev za nadzor različic za projekte strojnega učenja se imenuje DVC ali Data Version Control.
Ne glede na jezik, ki ga izberete, je to poskusno orodje, ki pomaga pri definiciji cevovoda.
DVC uporablja kodo, različice podatkov in ponovljivost, da vam pomaga prihraniti čas, ko odkrijete težavo s starejšo različico vašega modela ML.
Poleg tega lahko uporabite cevovode DVC, da usposobite svoj model in ga razdelite članom svoje ekipe. DVC lahko upravlja z organizacijo velikih podatkov in različicami, podatke pa je mogoče shraniti na lahko dostopen način.
Čeprav vključuje nekatere (omejene) funkcije sledenja poskusom, se večinoma osredotoča na različice in upravljanje podatkov in cevovoda.
Ponuja:
- Je agnostičen pri shranjevanju, zato je mogoče uporabiti različne vrste shranjevanja.
- Zagotavlja tudi statistiko sledenja.
- vnaprej vgrajeno sredstvo za združevanje stopenj ML v DAG in izvajanje celotnega cevovoda od začetka do konca
- Celoten razvoj vsakega modela ML je mogoče spremljati z njegovo celotno kodo in poreklom podatkov.
- Ponovljivost z zvestim ohranjanjem začetne konfiguracije, vhodnih podatkov in programske kode za poskus.
4. Pachyderm
Pachyderm je program za nadzor različic za strojno učenje in podatkovno znanost, podoben DVC.
Poleg tega, ker je bil ustvarjen z uporabo Docker in Kubernetes, lahko izvaja in uvaja aplikacije strojnega učenja na kateri koli platformi v oblaku.
Pachyderm jamči, da je vsakemu podatku, ki se porabi v modelu strojnega učenja, mogoče slediti nazaj in različico.
Uporablja se za ustvarjanje, distribucijo, upravljanje in spremljanje modelov strojnega učenja. Vključeni so register modelov, sistem za upravljanje modelov in orodjarna CLI.
Razvijalci lahko avtomatizirajo in razširijo svoj življenjski cikel strojnega učenja z uporabo podatkovne podlage Pachyderm, ki prav tako zagotavlja ponovljivost.
Podpira stroge standarde upravljanja podatkov, znižuje stroške obdelave in shranjevanja podatkov ter pomaga podjetjem pri hitrejšem uvajanju njihovih pobud podatkovne znanosti na trg.
5. Poliakson
Z uporabo platforme Polyaxon je mogoče projekte strojnega učenja in aplikacije za globoko učenje posnemati in upravljati skozi njihov celoten življenjski cikel.
Polyaxon lahko gosti in upravlja orodje in ga je mogoče postaviti v kateri koli podatkovni center ali ponudnika oblakov. Kot so Torch, Tensorflow in MXNet, ki podpirajo vsa najbolj priljubljena ogrodja globokega učenja.
Ko gre za orkestracijo, vam Polyaxon omogoča, da kar najbolje izkoristite svojo gručo z razporejanjem nalog in testov prek njihovega CLI, nadzorne plošče, SDK-jev ali REST API-ja.
Ponuja:
- Trenutno lahko uporabljate odprtokodno različico, vendar vključuje tudi izbire za podjetja.
- Čeprav pokriva celoten življenjski cikel, vključno z orkestracijo teka, je zmožen veliko več.
- S tehničnimi referenčnimi dokumenti, smernicami za začetek, učnim gradivom, priročniki, vadnicami, dnevniki sprememb in še več, je zelo dobro dokumentirana platforma.
- Z nadzorno ploščo z vpogledi v poskuse je mogoče spremljati, slediti in oceniti vsak poskus optimizacije.
6. Comet
Comet je platforma za meta strojno učenje, ki sledi, primerja, razlaga in izboljšuje poskuse in modele.
Vse vaše poskuse je mogoče videti in primerjati na enem mestu.
Deluje za vsako nalogo strojnega učenja, kjer koli se izvaja vaša koda in s katero koli knjižnico strojnega učenja.
Comet je primeren za skupine, posameznike, akademske ustanove, podjetja in vse, ki želijo hitro vizualizirati eksperimente, racionalizirati delo in izvajati eksperimente.
Podatkovni znanstveniki in ekipe lahko sledijo, razjasnijo, izboljšajo in primerjajo eksperimente in modele z uporabo platforme za metastrojno učenje Comet, ki jo gostijo sami in temelji na oblaku.
Ponuja:
- Za člane skupine obstajajo številne zmogljivosti za delitev nalog.
- Ima več integracij, ki omogočajo preprosto povezovanje z drugimi tehnologijami
- Dobro deluje s trenutnimi knjižnicami ML
- Skrbi za upravljanje uporabnikov
- Omogočena je primerjava eksperimentov, vključno s primerjavo kode, hiperparametrov, metrik, napovedi, odvisnosti in sistemskih metrik.
- Zagotavlja različne module za vizualne, zvočne, besedilne in tabelarične podatke, ki vam omogočajo vizualizacijo vzorcev.
7. Optuna
Optuna je sistem za avtonomno optimizacijo hiperparametrov, ki se lahko uporablja tako za strojno in globoko učenje kot tudi za druga področja.
Vsebuje vrsto najsodobnejših algoritmov, med katerimi lahko izbirate (ali povezujete), omogoča zelo preprosto distribucijo usposabljanja na številne računalnike in ponuja privlačno vizualizacijo rezultatov.
Priljubljene knjižnice strojnega učenja, kot so PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM in XGBoost, so integrirane z njim.
Zagotavlja vrhunske algoritme, ki strankam omogočajo hitrejše doseganje rezultatov s hitrim zmanjšanjem vzorcev, ki ne izgledajo obetavno.
Z uporabo algoritmov, ki temeljijo na Pythonu, samodejno išče idealne hiperparametre. Optuna spodbuja vzporedna iskanja hiperparametrov v številnih nitih brez spreminjanja izvirne kode.
Ponuja:
- Podpira porazdeljeno usposabljanje v gruči kot tudi na enem računalniku (večprocesno) (večvozlišče)
- Podpira več tehnik obrezovanja, da pospeši konvergenco (in porabi manj računalništva)
- Ima vrsto močnih vizualizacij, kot so rezinski izris, konturni izris in vzporedne koordinate.
8. Kedro
Kedro je brezplačno ogrodje Python za pisanje kode, ki jo je mogoče posodobiti in vzdrževati za projekte podatkovne znanosti.
Prinaša ideje od najboljših praks na področju programskega inženiringa do kode strojnega učenja. Python je temelj tega orodja za orkestracijo poteka dela.
Da bodo vaši procesi ML enostavnejši in natančnejši, lahko razvijete ponovljive, vzdržljive in modularne poteke dela.
Kedro vključuje načela programskega inženiringa, kot so modularnost, ločevanje odgovornosti in različice v okolje strojnega učenja.
Na podlagi Cookiecutter Data Science zagotavlja skupen, prilagodljiv projektni okvir.
Številne preproste podatkovne konektorje, ki se uporabljajo za shranjevanje in nalaganje podatkov v več datotečnih sistemih in formatih datotek, upravlja katalog podatkov. Projekte strojnega učenja naredi učinkovitejše in poenostavi gradnjo podatkovnega cevovoda.
Ponuja:
- Kedro omogoča razpršeno ali samostojno namestitev stroja.
- Z abstrakcijo cevovoda lahko avtomatizirate odvisnosti med kodo Python in vizualizacijo poteka dela.
- Z uporabo modularne kode za večkratno uporabo ta tehnologija olajša timsko sodelovanje na različnih ravneh in izboljša produktivnost v okolju kodiranja.
- Primarni cilj je premagati pomanjkljivosti Jupyterjevih zvezkov, enkratnih skriptov in lepilne kode s pisanjem vzdržljivega podatkovno-znanstvenega programiranja.
9. BentoML
Izdelava končnih točk API za strojno učenje je z BentoML lažja.
Zagotavlja tipično, a zgoščeno infrastrukturo za prenos naučenih modelov strojnega učenja v proizvodnjo.
Omogoča vam, da zapakirate naučene modele za uporabo v produkcijskem okolju in jih interpretirate s katerim koli okvirom ML. Podprto je tako paketno streženje brez povezave kot spletno streženje API-ja.
Visokozmogljiv strežnik modelov in prilagodljiv potek dela sta značilnosti BentoML.
Poleg tega strežnik ponuja prilagodljivo mikro-patching. Nadzorna plošča uporabniškega vmesnika zagotavlja enoten pristop za organiziranje modelov in spremljanje postopkov uvajanja.
Ne bo izpadov strežnika, ker je operacijski mehanizem modularen, konfiguracijo pa je mogoče ponovno uporabiti. Je prilagodljiva platforma za zagotavljanje, organiziranje in uvajanje modelov ML.
Ponuja:
- Ima modularno zasnovo, ki je prilagodljiva.
- Omogoča uvajanje na več platformah.
- Ne more samodejno obravnavati vodoravnega skaliranja.
- Omogoča enoten format modela, upravljanje modela, pakiranje modela in visoko zmogljivo strežbo modela.
10. Seldon
Podatkovni znanstveniki lahko ustvarijo, uvedejo in upravljajo modele in eksperimente strojnega učenja v velikem obsegu v Kubernetesu z uporabo odprtokodnega ogrodja Seldon Core.
TensorFlow, sci-kit-learn, Spark, R, Java in H2O je le nekaj kompletov orodij, ki jih podpira.
Povezuje se tudi s programoma Kubeflow in RedHat OpenShift. Jedro Seldon preoblikuje modele strojnega učenja (modeli ML) ali jezikovne ovoje (jeziki, kot so Python, Java itd.) v proizvodne mikrostoritve REST/GRPC.
To je eno najboljših orodij MLOps za izboljšanje procesov strojnega učenja.
Preprosto je pospraviti modele ML in preizkusiti uporabnost in varnost z uporabo Seldon Core.
Ponuja:
- Uvedbo modela je mogoče poenostaviti z več alternativami, kot je uvedba kanarčka.
- Če želite razumeti, zakaj so bile določene določene napovedi, uporabite razlagalce modelov.
- Ko se pojavijo težave, bodite pozorni na proizvodne modele z uporabo sistema za opozarjanje.
zaključek
MLO lahko pomaga izboljšati operacije strojnega učenja. MLO lahko pospešijo uvajanje, poenostavijo zbiranje podatkov in odpravljanje napak ter izboljšajo sodelovanje med inženirji in podatkovnimi znanstveniki.
Da bi lahko izbrali orodje MLOps, ki najbolj ustreza vašim potrebam, je ta objava pregledala 10 priljubljenih rešitev MLOps, od katerih je večina odprtokodnih.
Pustite Odgovori