Allir sem hafa prófað þróun vélanáms skilja hversu erfitt það er. Fyrir utan staðlað vandamál í hugbúnaðarþróun kynnir þróun vélanáms (ML) fjölda viðbótarhindrana.
Hundruð opinna verkfæra eru tiltækar til að hjálpa á hverju stigi ML lífsferils, allt frá undirbúningi gagna til líkanaþjálfunar.
Ólíkt hefðbundinni hugbúnaðarþróun, þegar teymi velja eitt verkfæri fyrir hvert skref, með ML viltu almennt kanna öll tiltæk verkfæri (td reiknirit) til að sjá hvort það bætir útkomuna.
Þess vegna verða ML forritarar að nota og framleiða hundruð bókasöfn.
Vélræn reiknirit innihalda þúsundir sérhannaðar breytur og það er erfitt að greina hvaða færibreytur, kóða og gögn fóru inn í hverja tilraun til að búa til líkan, hvort sem þú vinnur einn eða í hópi.
Án réttrar eftirlits eiga lið oft í erfiðleikum með að fá sama kóða til að virka aftur. Hvort sem þú ert gagnafræðingur sem flytur þjálfunarkóðann þinn til verkfræðings til framleiðslunotkunar, eða þú ert að fara aftur í fyrri vinnu þína til að greina vandamál, þá er mikilvægt að draga skrefin í ML vinnuflæðinu til baka.
Það getur verið erfitt að færa líkan í framleiðslu vegna fjölda dreifingaraðferða og umhverfis sem þarf að nota (td REST þjónusta, lotuályktun eða farsímaforrit). Það er engin algeng aðferð til að færa líkön úr hvaða bókasafni sem er yfir í eitthvað af þessum verkfærum og því skapar hver ný uppsetning áhættu.
Vegna þessara mála er augljóst að ML þróun þarf að batna verulega til að verða jafn stöðug, fyrirsjáanleg og mikið notuð og hefðbundin hugbúnaðarþróun.
ML áskoranir
- Það er til ofgnótt af ólíkum verkfærum. Hundruð hugbúnaðarlausna eru tiltækar til að aðstoða við hvert stig á lífsferli vélnáms, allt frá undirbúningi gagna til líkanaþjálfunar. Ennfremur, ólíkt hefðbundinni hugbúnaðarþróun, þegar teymi velja eitt verkfæri fyrir hvert skref, í vélanámi (ML), viltu oft kanna hvert tiltækt verkfæri (td reiknirit) til að sjá hvort það bætir árangur. Þess vegna verða ML forritarar að nota og framleiða hundruð bókasöfn.
- Það er erfitt að halda utan um tilraunir. Vélræn reiknirit innihalda þúsundir sérhannaðar breytur og það er erfitt að greina hvaða færibreytur, kóða og gögn fóru inn í hverja tilraun til að búa til líkan, hvort sem þú vinnur einn eða í hópi.
- Það er erfitt að innleiða vélanám. Það getur verið erfitt að færa líkan í framleiðslu vegna fjölda dreifingaraðferða og umhverfis sem þarf að nota (td REST þjónusta, lotuályktun eða farsímaforrit). Það er engin algeng aðferð til að færa líkön úr hvaða bókasafni sem er í eitthvað af þessum verkfærum. Þannig skapar hver ný uppsetning áhættu.
Hvað er MLflow?
MLflow er opinn vettvangur fyrir lífsferil vélanáms. Það er byggt á opnu viðmótshugtaki, sem leggur til margar nauðsynlegar útdrættir sem gera kleift að samþætta núverandi innviði og vélræna reiknirit auðveldlega við kerfið.
Þetta gefur til kynna að ef þú ert verktaki sem vill nota MLflow en notar óstuddan ramma, gerir opna viðmótshönnunin það tiltölulega einfalt að samþætta þann ramma og byrja að vinna með vettvanginn. Í reynd þýðir þetta að MLflow er ætlað að virka með hvaða vél nám bókasafni eða tungumáli.
Ennfremur stuðlar MLflow að endurtekningarhæfni, sem þýðir að sama þjálfunar- eða framleiðsluvélanámskóðinn er ætlaður til að keyra með sömu niðurstöðum óháð umhverfinu, hvort sem er í skýinu, á staðbundinni vinnustöð eða í fartölvu.
Að lokum, MLflow er byggt fyrir sveigjanleika, svo það getur verið notað af litlu teymi gagnafræðinga sem og stórt fyrirtæki með hundruð vélanámsiðkenda.
MLflow er samhæft við hvaða vélanámssafn sem er, reiknirit, dreifingartæki eða tungumál. Það hefur einnig eftirfarandi kosti:
- Hannað til að starfa með hvaða skýjaþjónustu sem er.
- Stækkar í gríðarstór gögn með Apache Spark.
- MLflow er samhæft við margs konar opinn uppspretta vélanámsramma, þar á meðal Apache Spark, TensorFlowog SciKit-Learn.
Ef þú ert nú þegar með kóða er hægt að nota MLflow með honum. Þú gætir jafnvel deilt umgjörð þinni og módelum á milli fyrirtækja vegna þess að það er það opinn-uppspretta.
MLflow íhlutir: Hvernig virka þeir?
MLflow er ókeypis og opinn uppspretta vettvangur til að stjórna ML líftímanum, sem felur í sér tilraunir, endurgerðanleika, uppsetningu og eina módelskráningu. Eins og er, hefur MLflow fjóra þætti:
1. MLflow mælingar
Ég ætla að byrja með MLflow Tracking. MLflow styður söfnun ýmissa nauðsynlegra hugtaka sem tengjast miðlægri þjálfunarlýsigagnarakningargeymslu. Fyrsta hugmyndin er safn af mikilvægum ofbreytum eða stillingarhnöppum sem hafa áhrif á frammistöðu líkans. Notkun API MLflow og miðlægrar rakningarþjónustu getur varðveitt allt þetta.
Notendur gætu einnig skráð frammistöðugögn til að fá innsýn í árangur vélanámslíkana þeirra. Ennfremur, fyrir endurtekningarhæfni, gerir MLflow notendum kleift að skrá inn tiltekna frumkóðann sem var notaður til að búa til líkan sem og útgáfu þess með því að samþætta þétt við Git til að binda hvert líkan við tiltekið commit hash.
MLflow er hægt að nota til að skrá gripi, sem eru hvaða handahófskenndar skrár sem er, þar á meðal þjálfun, prófunargögn og líkön sjálf til að hægt sé að endurskapa þær.
Þetta þýðir að ef ég er þróunaraðili sem er nýbúinn að þjálfa líkan, þá get ég haldið því áfram í miðlægu rekningarþjónustuna og einn samstarfsmaður minn getur hlaðið því inn síðar og annað hvort haldið áfram að þjálfa og gera tilraunir eða framleitt líkanið til að mæta tiltekinni þörf .
Þegar þú keyrir vélanámskóðann þinn og skoðar síðan niðurstöðurnar, er rakning API sem gerir þér kleift að skrá breytur, kóðaútgáfur, mælikvarða og úttaksskrár. Það er skrifað á Python, R og Java, meðal annarra tungumála. Það er líka aðgengilegt sem REST API, sem hægt er að nota til að búa til forrit ofan á það.
Lykil atriði
- Margir forritarar nota MLflow á tölvunni sinni á staðnum, þar sem bakendinn og gripageymslan deila möppu á disknum.
- Margir notendur nota einnig SQLite, SQLAlchemy-samhæfðan gagnagrunn, til að keyra MLflow á staðbundnum tölvum sínum.
- MLflow styður einnig dreifða arkitektúr. Rakningarþjónninn, bakendaverslunin og gripaverslunin eru öll hýst á mismunandi netþjónum í þessum.
- Ef keyrslan var hafin af MLflow Project var git commit hash notað. Hægt er að nota MLflow Python, R, Java og REST API til að skrá gögn til að keyra.
Fyrir frekari upplýsingar geturðu skoðað opinbera gögn.
2. MLFlow verkefni
Eftir að við höfum farið í gegnum rakningarhlutana langar mig að tala um MLflow verkefni, sem eru endurtekin pökkunarbygging fyrir líkanaþjálfunarlotur óháð framkvæmdarsamhenginu.
Fyrirtæki nota fjölbreytt úrval af vélrænni þjálfunartækni, en þau nota einnig þessi þjálfunartæki í fjölbreyttu samhengi. Til dæmis gætu þeir verið að keyra þjálfunarkóðann sinn í skýinu, á staðbundinni tölvu eða í fartölvu.
Þetta leiðir til þess vandamáls að erfitt er að endurtaka niðurstöður vélanáms. Oft er sami eins þjálfunarkóði ekki keyrður eða skilar ekki sömu niðurstöðum á tveimur aðskildum stöðum.
Lausnin sem MLflow býður upp á er sjálfstætt skilgreining á þjálfunarkóðaverkefni sem inniheldur allan þjálfunarkóðann fyrir vélanám, svo og háð útgáfusafnsins, stillingar og þjálfunar- og prófunargögn.
MLflow tryggir endurgerðanleika þvert á framkvæmdarsamhengi með því að lýsa öllum kröfum fyrir vélanámsþjálfun á skýran hátt. Það nær þessu með því að setja upp öll þessi bókasöfn og ná sama kerfisástandi og kóðinn keyrir í.
MLflow verkefnið er ekkert annað en skráarsafn. Það er skrá sem inniheldur þjálfunarkóðann, skilgreiningu bókasafnsháðarinnar og önnur gögn sem nauðsynleg eru fyrir þjálfunarlotuna, svo og þessa valfrjálsu stillingarskrá.
Þessar kröfur bókasafnsins er hægt að skilgreina á margvíslegan hátt. Notendur geta, til dæmis, útvegað YAML-sniðið anaconda umhverfi forskrift til að skrá kröfur þeirra um þjálfunarkóðasafn. MLflow mun framkvæma þjálfunarkóðann innan ílátsins. Í slíku tilviki geta þeir einnig innihaldið Docker gám.
Að lokum hefur MLflow skipanalínuviðmót (CLI) til að keyra þessi verkefni, svo og Python og Java API. Þessi verkefni geta verið keyrð á staðbundnu kerfi notandans sem og í ýmsum fjarstillingum eins og Databricks vinnuáætlun og Kubernetes. MLflow verkefni gera þér kleift að pakka gagnavísindakóða á endurtekanlegan og endurnýtanlegan hátt, aðallega byggt á stöðlum.
Verkefnahlutinn inniheldur API sem og skipanalínutól til að stjórna verkefnum. Þessir eiginleikar tryggja að hægt sé að hlekkja verkefni saman til að mynda vélanámsferli.
Lykil atriði
- MLflow styður verkefnaumhverfi, þar á meðal Docker gámaumhverfi, Conda umhverfi og kerfisumhverfið.
- Sérhver Git geymsla eða staðbundin skrá getur talist MLflow verkefni; sjálfgefið; þú getur notað hvaða skel sem er eða Python handrit í skránni sem inngangspunktur fyrir verkefni.
- Ósjálfstæði sem ekki eru Python, eins og Java bókasöfn, er hægt að fanga með því að nota Docker gáma.
- Þú gætir öðlast meiri stjórn á MLflow verkefni með því að bæta verkefnaskrá við rótarskrá verkefnisins, sem er textaskrá í YAML setningafræði.
Fyrir frekari upplýsingar geturðu skoðað opinbera gögn.
3. MLflow módel
Nú langar mig að ræða MLflow módel, almennt líkanasnið sem styður margs konar framleiðslusamhengi. Ástæðan fyrir MLflow módelum er nú nokkuð svipuð og fyrir verkefni.
Aftur sjáum við að líkön geta verið framleidd með því að nota mikið úrval af verkfærum, en þau geta líka verið framleidd eða beitt við fjölbreyttar aðstæður, öfugt við þjálfunarumhverfi.
Þessar stillingar innihalda verkfæri til að þjóna í rauntíma, eins og Kubernetes eða Amazon SageMaker, auk streymis og lotustiga, eins og Spark. Ennfremur gætu sum fyrirtæki valið að nota líkan sem RESTful vefþjónustu sem keyrir á fyrirfram stilltu skýjatilviki.
MLflow líkan, eins og verkefni, er möppuuppbygging. Það felur í sér stillingarskrá og, að þessu sinni, serialized líkan artifact frekar en þjálfunarkóða. Það felur einnig í sér þetta sett af ósjálfstæðum fyrir endurtekningarhæfni sem verkefni. Að þessu sinni munum við skoða matsfíkn í samhengi við Conda umhverfi.
Að auki inniheldur MLflow líkanagerð verkfæri til að raðgreina líkön á MLflow sniði frá ýmsum vinsælum ramma. Að lokum bætir MLflow við útfærslum, API til að framleiða og tengja hvaða MLflow líkan sem er við ýmsar þjónustur, og þessi API eru aðgengileg á Python, Java, R og CLI sniði.
Líkön eru íhlutur með staðlaða uppbyggingu fyrir pökkunarlíkön sem hægt er að nota og skilja af verkfærum eftir á eins og ályktunarþjónum eða Gagnagrunnur lotuályktunarvettvangur. Þessi hluti sparar klukkustundir af sérsniðnum kóða þegar pakkað er líkan til framleiðslu.
MLflow líkanið er staðall til að pakka vélanámslíkönum í margs konar form sem kallast „bragðefni“. MLflow býður upp á mikið af verkfærum til að hjálpa þér við að dreifa ýmsum gerðum af gerðum. Hvert MLflow líkan er haldið sem möppu sem inniheldur handahófskenndar skrár sem og ML líkan lýsingarskrá með lista yfir bragðtegundirnar sem það má nota í.
Lykil atriði
- Öll innbyggðu dreifingartæki MLflow bjóða upp á marga „staðlaða“ bragðtegundir, svo sem „Python fall“ bragð sem útskýrir hvernig á að keyra líkanið sem Python fall.
- Hvert MLflow líkan samanstendur af möppu sem inniheldur handahófskenndar skrár, sem og ML líkan skrá í rót möppunnar sem skilgreinir fjölda bragðtegunda líkansins.
- Þegar líkan er geymt, gerir MLflow þér kleift að tilgreina Conda umhverfisbreytu sem inniheldur ósjálfstæði líkansins. Ef ekkert Conda umhverfi er tilgreint er sjálfgefið umhverfi byggt á bragði líkansins. Eftir það er Conda umhverfið geymt í conda.yaml.
Fyrir frekari upplýsingar geturðu skoðað opinbera gögn.
4. MLflow líkanaskrá
Líkanaskrá er geymsla fyrir lærð vélanám (ML) líkön. Model Registry samanstendur af API og vefforriti sem er notað til að viðhalda líkönum í ýmsum áföngum sem teymi. Módelætt, líkanaútgáfa, auðveld sviðskipti og skýring eru aðeins nokkrar af þeim möguleikum sem til eru í Model Registry.
Líkanskrá, auk líkananna sjálfra, inniheldur upplýsingar (lýsigögn) um gögnin og þjálfunarverkefni sem notuð eru til að smíða líkanið. Það er mikilvægt að fylgjast með þessum nauðsynlegu aðföngum til að búa til ætterni fyrir ML módel. Í þessu sambandi virkar líkanskráning á svipaðan hátt og hefðbundinn hugbúnaður útgáfa stjórna kerfi (td Git, SVN) og gripageymslur (td Artifactory, PyPI).
Model Registry er rammi sem gerir gagnafræðingum og vélanámsverkfræðingum kleift að birta, prófa, fylgjast með, stjórna og dreifa líkönum sínum til samvinnu við önnur teymi. Í meginatriðum er líkanskráin notuð þegar þú hefur lokið prófunarfasa þínum og ert tilbúinn til að deila niðurstöðum þínum með teyminu og hagsmunaaðilum.
MLflow Model Registry býður upp á API og notendaviðmót til að stjórna módelunum þínum og líftíma þeirra frá miðlægum stað. Fyrirmyndarætt, útgáfa gerða líkana, athugasemdir og stigaskipti eru öll fáanleg í gegnum skrásetninguna.
Í MLflow er skráð líkan það með einstöku nafni og lýsigögnum, líkanaútgáfum, bráðabirgðastigum og líkanaætt. Ein eða fleiri gerðaútgáfur má finna í skráðri gerð. Ný gerð telst útgáfa 1 þegar hún er skráð í skráningu. Eftirfarandi útgáfa er bætt við hvaða nýja gerð sem er með sama nafni.
Þú getur úthlutað einu skrefi við hvaða gerð sem er hvenær sem er. Hins vegar verður að úthluta áföngum undir MLflow stigum sem hafa verið formlega tilgreindir, svo sem sviðsetningu, framleiðslu og geymslu. Fyrirmyndarútgáfu er hægt að skipta frá einu stigi í annað.
MLflow gerir þér kleift að nota markdown til að skrifa athugasemdir við bæði efstu líkanið og hverja sérstaka útgáfu. Þú getur látið lýsingar fylgja með ásamt öðrum viðeigandi upplýsingum, svo sem útskýringum á reikniritum, aðferðafræði og gagnasöfnum sem notuð eru.
Lykil atriði
- Til að fá aðgang að líkanaskránni í gegnum notendaviðmótið eða API þegar þú hýsir þinn eigin MLflow netþjón verður þú að nota gagnagrunnsstudda bakendaverslun.
- Einnig er hægt að nálgast líkanaskrána í gegnum MLflow líkanbragðið eða MLflow Client Tracking API viðmótið. Þú getur til dæmis skráð líkan meðan á MLflow tilraunahlaupi stendur eða eftir allar tilraunakeyrslur þínar.
- Ekki munu allir byrja að þjálfa módel sín með því að nota MLflow. Fyrir vikið gætir þú fengið nokkrar gerðir þjálfaðar áður en þú notar MLflow. Í stað þess að endurþjálfa módelin, vilt þú bara skrá geymdar gerðir þínar hjá Model Registry.
Fyrir frekari upplýsingar geturðu skoðað opinbera gögn.
Niðurstaða
MLflow er frábært og stöðugt vaxandi ML lífsferilstæki. Þú gætir notað það samhliða núverandi verkfærum og kerfum.
Það styður nokkur forritunarmál, þar á meðal Python, Java og R. Þú getur líka fljótt fylgst með, vistað og borið saman mismunandi gerðaútgáfur þökk sé notendavænni hönnuninni.
Prófaðu MLflow og láttu okkur vita af reynslu þinni!
Skildu eftir skilaboð