![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
MLOps, trumpinys „Mašininio mokymosi operacijos“, yra praktikos ir įrankių rinkinys, skirtas konkrečiams inžinierių, kuriančių modelius ir perkeliant juos į gamybą, poreikius. Kai kurios organizacijos pradeda su keletu namuose sukurtų įrankių, kurie versijos duomenų rinkinius po kiekvieno eksperimento ir kontrolinių taškų modelius po kiekvieno mokymo epochos. Kita vertus, daugelis organizacijų pasirinko naudoti formalų įrankį, turintį eksperimento stebėjimo, bendradarbiavimo funkcijų, modelio aptarnavimo galimybes ir netgi duomenų apdorojimo ir mokymo modelių konvejerines funkcijas.
Norėdami pasirinkti geriausią savo organizaciją, turėtumėte suprasti visas pirmaujančių MLOps įrankių galimybes. Jei einate vietiniu keliu, turėtumėte suprasti, kokių galimybių atsisakote. Vietinis požiūris tinka mažoms komandoms, kurioms reikia greitai judėti ir kurios gali neturėti laiko įvertinti naujo įrankio. Jei nuspręsite įdiegti trečiosios šalies įrankį, turėsite pasirinkti įrankį, kuris geriausiai atitinka jūsų organizacijos inžinerinę darbo eigą. Tai gali būti sudėtinga, nes šiandien populiariausi įrankiai labai skiriasi savo požiūriu ir galimybėmis. Nepriklausomai nuo jūsų pasirinkimo, jums reikės duomenų infrastruktūros, kuri gali apdoroti didelius duomenų kiekius ir efektyviai aptarnauti mokymo rinkinius. Kontrolinių taškų modeliams ir didelių duomenų rinkinių versijoms sukurti reikalingas keičiamo dydžio pajėgumas, o jei naudojate brangius GPU, jums reikės našios infrastruktūros, kad galėtumėte kuo geriau išnaudoti savo investicijas.
Šiame įraše pateiksiu funkcijų sąrašą, į kurį architektai turėtų atsižvelgti, nepaisant pasirinkto požiūrio ar įrankių. Šis funkcijų sąrašas sudarytas iš mano tyrimų ir eksperimentų su trimis geriausiais MLOps pardavėjais šiandien –
Prieš pasinerdami į funkcijas ir infrastruktūros reikalavimus, geriau supraskime MLO svarbą. Norėdami tai padaryti, modelio kūrimą naudinga palyginti su įprastų programų kūrimu.
Įprastas programų kūrimas, pavyzdžiui, naujos mikropaslaugos, kuri prideda programą nauja funkcija, diegimas, prasideda nuo specifikacijos peržiūros. Pirmiausia kuriamos naujos duomenų struktūros arba esamų duomenų struktūrų pakeitimai. Pradėjus kodavimą, duomenų dizainas neturėtų keistis. Tada paslauga yra įdiegta, o kodavimas yra pagrindinė šio proceso veikla. Vienetiniai testai ir galutiniai testai taip pat yra koduojami. Šie testai įrodo, kad kodas nėra klaidingas ir tinkamai įgyvendina specifikaciją. Prieš įdiegiant visą programą, juos galima automatiškai paleisti CI / CD konvejeriu.
Modelio kūrimas ir jo mokymas skiriasi. Pirmas žingsnis – suprasti neapdorotus duomenis ir reikiamą prognozę. ML inžinieriai turi parašyti tam tikrą kodą, kad įdiegtų savo neuroninius tinklus arba nustatytų algoritmą, tačiau kodavimas nėra dominuojanti veikla. Pagrindinė veikla – pakartotinis eksperimentavimas. Eksperimento metu pasikeis duomenų dizainas, modelio dizainas ir naudojami parametrai. Po kiekvieno eksperimento sukuriama metrika, rodanti, kaip modelis veikė taip, kaip buvo išmokytas. Taip pat generuojama metrika, siekiant nustatyti modelio našumą pagal patvirtinimo rinkinį ir bandymo rinkinį. Šie rodikliai naudojami modelio kokybei įrodyti. Turėtumėte išsaugoti modelį po kiekvieno eksperimento, o kiekvieną kartą keisdami duomenų rinkinius taip pat turėtumėte juos išsaugoti. Kai modelis yra paruoštas įtraukti į programą, jis turi būti supakuotas ir įdiegtas.
Apibendrinant galima pasakyti, kad MLOps yra mašininis mokymasis, ką DevOps yra tradicinei programinės įrangos kūrimui. Abi yra praktikos ir principų rinkinys, skirtas pagerinti bendradarbiavimą tarp inžinierių komandų (Dev arba ML) ir IT operacijų (Ops) komandų. Tikslas yra supaprastinti kūrimo gyvavimo ciklą nuo planavimo ir kūrimo iki diegimo ir operacijų naudojant automatizavimą. Vienas iš pagrindinių šių metodų privalumų yra nuolatinis tobulėjimas.
Pažvelkime į MLOs ir pažvelkime į konkrečias funkcijas, į kurias reikia atsižvelgti.
Eksperimentų stebėjimas ir bendradarbiavimas yra funkcijos, kurios labiausiai siejamos su MLOps, tačiau šiuolaikiniai modernesni MLOps įrankiai gali padaryti daug daugiau. Pavyzdžiui, kai kurie gali suteikti jūsų eksperimentų vykdymo aplinką. Kiti gali supakuoti ir įdiegti modelius, kai yra pasirengę integruoti į programą.
Žemiau pateikiamas šiandien MLOps įrankių funkcijų superrinkinys. Šiame sąraše taip pat yra kitų dalykų, į kuriuos reikia atsižvelgti, pavyzdžiui, palaikymas ir duomenų integravimas.
Pagrindinio žaidėjo palaikymas – MLOps technikos ir funkcijos nuolat tobulėja. Norite įrankio, kurį palaiko pagrindinis žaidėjas (atitinkamai Google, Databricks arba McKinsey ir Company palaiko Kubeflow, MLflow ir MLRun), užtikrinant nuolatinį vystymąsi ir tobulėjimą. Konkretus pavyzdys – daugelis šiandien populiarių įrankių buvo sukurti prieš didelius kalbų modelius (LLM); todėl daugelis prideda naujų funkcijų, kad palaikytų generatyvųjį AI.
Šiuolaikinė Datalake integracija – Eksperimentai generuoja daug struktūrizuotų ir nestruktūruotų duomenų. MLOps įrankis, puikiai integruotas su Modern Datalake (arba Data Lakehouse), saugotų nestruktūruotus duomenis duomenų ežere (tai yra tiesiogiai MinIO), o struktūriniai duomenys patektų į duomenų saugyklą. Deja, daugelis MLOps įrankių buvo naudojami prieš atidarant atviros lentelės formatus, dėl kurių buvo sukurtas Modern Datalake, todėl dauguma jų turės atskirą sprendimą savo struktūriniams duomenims. Paprastai tai yra atvirojo kodo reliacinė duomenų bazė, kurią jūsų duomenų infrastruktūra turės palaikyti. Kalbant apie nestruktūrizuotus duomenis (duomenų rinkinius ir modelio kontrolinius taškus), visos pagrindinės pramonės priemonės naudoja MinIO, nes veikiame nuo 2014 m.
Eksperimento stebėjimas – turbūt svarbiausia MLOps įrankio savybė yra kiekvieno eksperimento duomenų rinkinių, modelių, hiperparametrų ir metrikos stebėjimas. Eksperimento stebėjimas taip pat turėtų palengvinti pakartojamumą – jei prieš penkis eksperimentus gavote pageidaujamą rezultatą, o vėliau eksperimentai pablogino modelio našumą, turėtumėte turėti galimybę naudoti MLOps įrankį, kad galėtumėte grįžti ir gauti tikslius naudojamus hiperparametrus bei duomenų rinkinio funkcijas. kurie duoda norimą rezultatą.
Palengvinkite bendradarbiavimą – svarbus MLOps įrankio komponentas yra portalas arba vartotojo sąsaja, naudojama kiekvieno eksperimento rezultatams pateikti. Šis portalas turėtų būti prieinamas visiems komandos nariams, kad jie galėtų matyti vieni kitų eksperimentus ir teikti rekomendacijas. Kai kurie MLOps įrankiai turi įmantrių grafinių ypatybių, leidžiančių kurti pasirinktines diagramas lyginant eksperimentų rezultatus.
Modelių paketas – ši galimybė supakuoja modelį taip, kad jį būtų galima pasiekti iš kitų programavimo aplinkų – paprastai kaip mikropaslauga. Tai puiki savybė. Išmokytas modelis yra ne kas kita, kaip serijinis objektas. Daugelis organizacijų jau gali tai suprasti.
Modelio aptarnavimas – kai modelis bus supakuotas kaip paslauga, ši funkcija leis automatiškai įdiegti paslaugą, kurioje yra modelis, oficialioje organizacijos aplinkoje. Šios funkcijos jums nereikės, jei turite a
Modelių registras – modelių registre pateikiamas visų modelių, šiuo metu valdomų MLOps įrankiu, vaizdas. Juk gamybinio lygio modelių kūrimas yra visų MLOp tikslas. Šiame rodinyje turėtų būti rodomi modeliai, kurie buvo pradėti gaminti, ir modeliai, kurie niekada nebuvo pradėti gaminti. Modeliai, kurie buvo pradėti gaminti, turėtų būti pažymėti taip, kad taip pat galėtumėte nustatyti programos ar paslaugos, kuriai jie buvo įdiegti, versiją.
Funkcijos be serverio – kai kuriuose įrankiuose yra funkcijų, leidžiančių kodą komentuoti, kad funkciją arba modulį būtų galima panaudoti kaip konteinerinę paslaugą eksperimentams klasteryje vykdyti. Jei nuspręsite naudoti šią funkciją, įsitikinkite, kad visi jūsų inžinieriai yra patenkinti šia technika. Tai gali būti šiek tiek mokymosi kreivė – inžinieriams, turintiems „DevOps“ pagrindą, bus lengviau, o inžinieriams, kurie anksčiau mokėsi mašininio mokymosi ir neturėdami daug kodavimo patirties, bus sunku.
Duomenų vamzdyno galimybės – kai kurių MLOps įrankių tikslas yra teikti visas „end-to-end“ galimybes ir turėti ypatybių, būdingų duomenų vamzdynų kūrimui neapdorotiems duomenims gauti, juos apdoroti ir švariems duomenims saugoti. Vamzdynai paprastai nurodomi kaip
Mokymo dujotiekio galimybės – tai panašu į duomenų konvejerius, tačiau mokymo vamzdynas tęsiasi ten, kur baigiasi duomenų vamzdynai. Mokymo vamzdynas leidžia iškviesti duomenų prieigos kodą, siųsti duomenis į mokymo logiką ir komentuoti duomenų artefaktus bei modelius, kad jie būtų automatiškai išsaugoti. Panašiai kaip duomenų konvejeriai, ši funkcija gali būti naudojama kartu su funkcijomis be serverių kuriant DAG ir planuojant eksperimentus. Jei jau naudojate paskirstytą mokymo įrankį, šios funkcijos jums gali neprireikti. Galima pradėti paskirstytą mokymą iš mokymo vamzdyno, tačiau tai gali būti per daug sudėtinga.
Išnagrinėjus skirtumus tarp tradicinių programų kūrimo ir mašininio mokymosi, turėtų būti aišku, kad norint sėkmingai naudotis mašininiu mokymusi, reikia tam tikros formos MLOps ir duomenų infrastruktūros, galinčios veikti ir keičiamo dydžio.
Namų sprendimai yra puikūs, jei reikia greitai pradėti projektą ir neturite laiko įvertinti formalaus MLOps įrankio. Jei laikysitės šio požiūrio, gera žinia ta, kad jūsų duomenų infrastruktūrai jums reikia tik „MinIO“. MinIO yra suderinamas su S3, taigi, jei pradėjote naudodami kitą įrankį ir naudojote S3 sąsają, kad pasiektumėte duomenų rinkinius, jūsų kodas veiks. Jei pradedate, galite pasinaudoti mūsų
Trečiosios šalies MLOps įrankio pritaikymas yra geriausias būdas didelėms organizacijoms, turinčioms keletą AI / ML komandų, kuriančių skirtingų tipų modelius. Daugiausiai funkcijų turintis MLOps įrankis nebūtinai yra geriausias įrankis. Peržiūrėkite aukščiau pateiktas funkcijas ir atkreipkite dėmesį į jums reikalingas funkcijas, funkcijas, kurias šiuo metu turite kaip esamo CI / CD konvejerio dalį, ir galiausiai, funkcijas, kurių nenorite, tai padės rasti tinkamiausią. MLOps įrankiai labai mėgsta didelių petabaitų objektų saugojimo vietos. Daugelis jų automatiškai versijos duomenų rinkinius su kiekvienu eksperimentu ir automatiškai tikrina modelius po kiekvienos epochos. Vėlgi, MinIO gali padėti, nes talpa nėra problema. Panašiai kaip ir namuose sukurtas sprendimas, apsvarstykite galimybę naudoti įmonės MinIO leidimą. Talpyklos funkcijos veikia automatiškai, kai sukonfigūruojamos segmentui, todėl net jei MLOps įrankis neprašo naudoti talpyklos, MinIO automatiškai talpins dažnai pasiekiamus objektus, pvz., mokymo rinkinį.
Daugelis šiandien rinkoje esančių MLOps įrankių naudoja atvirojo kodo reliacinę duomenų bazę, kad saugotų struktūrinius duomenis, sugeneruotus modelio mokymo metu, o tai paprastai yra metrika ir hiperparametrai. Deja, tai bus nauja duomenų bazė, kurią turi palaikyti jūsų organizacija. Be to, jei organizacija pereina prie Modern Datalake (arba Data Lakehouse), papildomos reliacinės duomenų bazės nereikia. Būtų malonu, kad pagrindiniai MLOps pardavėjai galėtų naudoti OTF duomenų saugyklą savo struktūriniams duomenims saugoti.
Visi pagrindiniai MLOps pardavėjai naudoja MinIO po gaubtu, kad saugotų nestruktūrizuotus duomenis. Deja, tai paprastai yra įdiegta kaip atskiras mažas egzempliorius, kuris įdiegiamas kaip bendro didesnio MLOps įrankio diegimo dalis. Be to, paprastai tai yra senesnė MinIO versija, kuri prieštarauja mūsų etosui, kad visada paleidžiame
Šiame įraše pateikiau MLOps architekto vadovą, nagrinėdamas tiek MLOps funkcijas, tiek duomenų infrastruktūrą, reikalingą šioms funkcijoms palaikyti. Aukšto lygio organizacijos gali sukurti savo pačių sukurtą sprendimą arba įdiegti trečiosios šalies sprendimą. Nepriklausomai nuo pasirinktos krypties, svarbu suprasti visas šiandieninėje pramonėje prieinamas funkcijas. Namų sprendimai leidžia greitai pradėti projektą, tačiau netrukus galite peraugti savo sprendimą. Taip pat svarbu suprasti savo specifinius poreikius ir tai, kaip MLOps veiks su esamu CI/CD konvejeriu. Daugelyje MLOps įrankių yra daug funkcijų ir juose yra funkcijų, kurių galbūt niekada nenaudosite arba kurias jau turite kaip savo CI / CD konvejerio dalį.
Norint sėkmingai įdiegti MLOps, reikia duomenų infrastruktūros, kuri galėtų ją palaikyti. Šiame įraše pristačiau paprastą sprendimą tiems, kurie pasirinko namuose sukurtą sprendimą, ir aprašiau, ko tikėtis iš trečiųjų šalių įrankių ir jiems reikalingų išteklių.
Baigiau norų sąrašu dėl tolesnio MLOps įrankių kūrimo, kurie padėtų jiems geriau integruotis su Modern Datalake.
Norėdami gauti daugiau informacijos apie „Modern Datalake“ naudojimą AI / ML darbo krūviams palaikyti, žr
Jei turite klausimų, būtinai susisiekite su mumis el