Ikaskuntza automatikoaren garapena probatu duten guztiek ulertzen dute zein zaila den. Software garapenaren arazo estandarrez gain, ikaskuntza automatikoa (ML) garapenak oztopo gehigarri ugari sartzen ditu.
Kode irekiko ehunka tresna daude eskuragarri ML bizi-zikloaren etapa guztietan laguntzeko, datuak prestatzen hasi eta ereduen prestakuntzara arte.
Softwarearen garapen tradizionala ez bezala, taldeek urrats bakoitzerako tresna bat aukeratzen dutenean, MLarekin, oro har, eskuragarri dauden tresna guztiak (adibidez, algoritmoak) arakatu nahi dituzu emaitzak hobetzen dituen ikusteko.
Ondorioz, ML garatzaileek ehunka liburutegi erabili eta ekoiztu behar dituzte.
Ikaskuntza automatikoko algoritmoek milaka parametro pertsonalizagarriak dituzte, eta zaila da esperimentu bakoitzean zein parametro, kode eta datu sartu diren identifikatzea eredu bat sortzeko, bakarrik edo taldean lan egiten duzun.
Jarraipen egokirik gabe, taldeek askotan kode bera berriro funtziona dezan borrokatzen dute. Zure prestakuntza-kodea ingeniari bati ekoizpen-erabilerako transferitzen dion datu-zientzialaria bazara, edo arazo bat diagnostikatzeko aurreko lanera itzultzen bazara, funtsezkoa da ML lan-fluxuaren urratsak atzera egitea.
Eredu bat produkziora eramatea zaila izan daiteke erabili behar diren hedapen-metodo eta ingurune ugariengatik (adibidez, REST zerbitzaria, batch inferentzia edo aplikazio mugikorretarako). Ez dago ereduak edozein liburutegitik tresna horietako edozeinetara eramateko metodo arruntik, eta, beraz, hedapen berri bakoitzak arrisku bat dakar.
Arazo horiek direla eta, bistakoa da ML garapenak nabarmen hobetu behar duela softwarearen garapen tradizionala bezain egonkor, aurreikusgarri eta oso erabilia izateko.
ML Erronkak
- Tresna ezberdin ugari daude. Ehunka software-soluzio eskuragarri daude ikaskuntza automatikoaren bizi-zikloko etapa guztietan laguntzeko, datuak prestatzen hasi eta ereduen prestakuntzaraino. Gainera, softwarearen garapen tradizionala ez bezala, taldeek urrats bakoitzerako tresna bat aukeratzen dutenean, ikaskuntza automatikoan (ML), askotan eskuragarri dauden tresna guztiak (adibidez, algoritmoak) aztertu nahi dituzu emaitzak hobetzen dituen ikusteko. Ondorioz, ML garatzaileek ehunka liburutegi erabili eta ekoiztu behar dituzte.
- Zaila da esperimentuen jarraipena egitea. Ikaskuntza automatikoko algoritmoek milaka parametro pertsonalizagarriak dituzte, eta zaila da esperimentu bakoitzean zein parametro, kode eta datu sartu diren identifikatzea eredu bat sortzeko, bakarrik edo taldean lan egiten duzun.
- Zaila da ikaskuntza automatikoa ezartzea. Eredu bat produkziora eramatea zaila izan daiteke erabili behar diren hedapen-metodo eta ingurune ugariengatik (adibidez, REST zerbitzaria, batch inferentzia edo aplikazio mugikorretarako). Ez dago ereduak edozein liburutegitik tresna hauetara eramateko metodo arruntik. Beraz, hedapen berri bakoitzak arrisku bat dakar.
Zer da MLflow?
MLflow kode irekiko plataforma bat da ikaskuntza automatikoaren bizi-ziklorako. Interfaze irekiko kontzeptu batean oinarritzen da, eta egungo azpiegiturak eta ikaskuntza automatikoko algoritmoak sisteman erraz integratzea ahalbidetzen duten funtsezko abstrakzio ugari proposatzen ditu.
Horrek esan nahi du MLflow erabili nahi duen garatzaile bat bazara, baina onartzen ez den marko bat erabiltzen ari bazara, interfaze irekiaren diseinuak nahiko erraza dela marko hori integratzea eta plataformarekin lanean hastea. Praktikan, horrek esan nahi du MLflow edozeinekin funtzionatzeko asmoa duela makina ikaskuntza liburutegia edo hizkuntza.
Gainera, MLflow-ek errepikakortasuna sustatzen du, hau da, prestakuntza- edo produkzio-makinen ikaskuntza-kode bera emaitza berdinekin exekutatu nahi da ingurunetik independentean, hodeian, tokiko lan-estazio batean edo koaderno batean.
Azkenik, MLflow eskalagarritasunerako eraikita dago, beraz, datu-zientzialari talde txiki batek zein ikasketa automatikoko ehunka praktikatzaile dituen enpresa handi batek erabil dezake.
MLflow bateragarria da ikaskuntza automatikoko edozein liburutegi, algoritmo, inplementazio tresna edo hizkuntzarekin. Gainera, abantaila hauek ditu:
- Hodeiko edozein zerbitzurekin funtzionatzeko diseinatua.
- Apache Spark-ekin datu handietara igotzen da.
- MLflow bateragarria da kode irekiko ikaskuntza automatikoko hainbat esparrurekin, Apache Spark barne, TensorFlow, eta SciKit-Learn.
Dagoeneko kodea baduzu, MLflow erabil daiteke harekin. Baliteke zure markoa eta ereduak enpresen artean parteka ditzakezulako Kode irekiko.
MLflow osagaiak: nola funtzionatzen dute?
MLflow ML bizi-zikloa kudeatzeko doako eta kode irekiko plataforma bat da, esperimentazioa, errepikagarritasuna, hedapena eta eredu-erregistro bakarra barne hartzen dituena. Gaur egun, MLflow-ek lau osagai ditu:
1. MLflow Jarraipena
MLflow Tracking-ekin hasiko naiz. MLflow-ek prestakuntza-metadatuen jarraipenaren biltegi zentralizatu bati lotutako funtsezko hainbat kontzeptu biltzen ditu. Lehenengo nozioa ereduaren errendimenduan eragina duten hiperparametro edo konfigurazio-botoi kritikoen bilduma da. MLflow-en APIak eta jarraipen-zerbitzu zentralizatua erabiltzeak hauek guztiak gorde ditzake.
Erabiltzaileek errendimendu-datuak ere graba ditzakete beren ikaskuntza automatikoko ereduen arrakasta ezagutzeko. Gainera, errepikagarritasuna lortzeko, MLflow-ek eredu bat sortzeko erabili den iturburu-kode espezifikoa eta bere bertsioa erregistratzeko aukera ematen du, Git-ekin ongi integratuz, eredu bakoitza konpromiso hash zehatz batekin lotzeko.
MLflow artefaktuak erregistratzeko erabil daiteke, hau da, prestakuntza, proba-datuak eta ereduak beraiek erreproduzigarri izateko fitxategi arbitrarioak barne.
Horrek esan nahi du eredu bat entrenatu berri duen garatzaile bat banaiz, jarraipen-zerbitzu zentralizatuan jarraitu dezakedala, eta nire lankide batek geroago karga dezakeela eta eredu hori trebatzen eta esperimentatzen edo ekoizten jarraitu dezake behar zehatz bati erantzuteko. .
Ikaskuntza automatikoko kodea exekutatzen duzunean eta ondoren emaitzak ikustean, jarraipena parametroak, kode bertsioak, neurketak eta irteerako fitxategiak erregistratzeko aukera ematen duen API bat da. Python, R eta Javan idatzita dago, besteak beste. REST API gisa ere eskuragarri dago, eta horren gainean aplikazioak eraikitzeko erabil daiteke.
Key Ezaugarriak
- Garatzaile askok MLflow erabiltzen dute tokiko ordenagailuan, non backend-ak eta artefaktuen biltegiak diskoko direktorio bat partekatzen baitute.
- Erabiltzaile askok SQLite ere erabiltzen dute, SQLAlchemy-rekin bateragarria den datu-base bat, MLflow tokiko ordenagailuetan exekutatzeko.
- MLflow-ek arkitektura banatuak ere onartzen ditu. Jarraipen-zerbitzaria, backend-denda eta artefaktuen biltegia zerbitzari desberdinetan daude ostatatuta hauetan.
- Exekuzioa MLflow proiektu batek hasi bazen, git commit hash-a erabili zen. MLflow Python, R, Java eta REST APIak erabil daitezke exekutatzeko datuak erregistratzeko.
Informazio gehiago nahi izanez gero, ofiziala ikus dezakezu dokumentazioa.
2. MLFlow Proiektuak
Jarraipenaren osagaiak aztertu ondoren, MLflow proiektuei buruz hitz egin nahiko nuke, ereduen prestakuntza-saioetarako ontziratze-egitura errepikagarria den exekuzio testuingurua edozein dela ere.
Enpresek ikaskuntza automatikoko prestakuntza-teknologia ugari erabiltzen dituzte, baina prestakuntza-tresna horiek ere hainbat testuingurutan erabiltzen dituzte. Adibidez, beren prestakuntza-kodea hodeian, tokiko ordenagailu batean edo koaderno batean exekutatzen ari dira.
Horrek arazoa dakar ikaskuntza automatikoko emaitzak errepikatzea zaila dela. Askotan, entrenamendu-kode berdin berdinak ez ditu emaitza berdinak bi tokitan exekutatzen edo ematen.
MLflow-ek emandako irtenbidea prestakuntza-kode autonomoko proiektuaren definizio bat da, ikaskuntza automatikoko prestakuntza-kode guztia barne hartzen duena, baita bere bertsio-liburutegiaren menpekotasunak, ezarpenak eta prestakuntza- eta proba-datuak ere.
MLflow-ek exekuzio testuinguruetan erreproduzigarritasuna bermatzen du, ikaskuntza automatikoko prestakuntza-prozesu baten eskakizun multzo osoa argi deskribatuz. Liburutegi horiek guztiak instalatuz eta kodea exekutatzen ari den sistemaren egoera berdina lortuz lortzen du.
MLflow proiektua direktorio bat baino ez da. Entrenamendu-kodea, liburutegiaren menpekotasun-definizioa eta prestakuntza-saiorako beharrezkoak diren beste datu batzuk biltzen dituen direktorio bat da, baita aukerako konfigurazio fitxategi hau ere.
Liburutegiaren eskakizun hauek hainbat modutan defini daitezke. Erabiltzaileek, adibidez, YAML formatuko anaconda ingurunearen zehaztapena eman dezakete beren prestakuntza-kode liburutegien eskakizunak zerrendatzeko. MLflow-ek prestakuntza-kodea exekutatuko du edukiontzi barruan. Halakoetan, Docker edukiontzi bat ere sar dezakete.
Azkenik, MLflow-ek komando-lerroko interfazea (CLI) du proiektu hauek exekutatzeko, baita Python eta Java APIak ere. Proiektu hauek erabiltzailearen tokiko sisteman exekutatu daitezke, baita urruneko hainbat ezarpenetan ere, hala nola Databricks lan-programatzailea eta Kubernetes. MLflow proiektuek datu zientzien kodea modu errepikagarrian eta berrerabilgarrian paketatzeko aukera ematen dute, gehienetan estandarretan oinarrituta.
Proiektuen osagaiak API bat eta proiektuak kudeatzeko komando-lerroko utilitateak ditu. Gaitasun hauek proiektuak elkarrekin kateatu daitezkeela bermatzen dute ikaskuntza automatikoko prozesuak osatzeko.
Key Ezaugarriak
- MLflow-ek proiektuen inguruneak onartzen ditu, Docker edukiontzien ingurunea, Conda ingurunea eta sistemaren ingurunea barne.
- Edozein Git biltegi edo direktorio lokal MLflow proiektutzat har daiteke; lehenetsiz; edozein shell erabil dezakezu edo Python gidoia direktorioan proiektuaren sarrera puntu gisa.
- Python ez diren menpekotasunak, Java liburutegiak adibidez, Docker edukiontziak erabiliz atzeman daitezke.
- MLflow Proiektu baten gaineko kontrol handiagoa lor dezakezu proiektuaren fitxategi bat gehituz proiektuaren erro-direktoriora, hau da, YAML sintaxiko testu-fitxategi bat.
Informazio gehiago nahi izanez gero, ofiziala ikus dezakezu dokumentazioa.
3. MLflow ereduak
Orain, MLflow ereduak eztabaidatu nahiko nituzke, ekoizpen-testuinguru ugari onartzen dituen helburu orokorreko eredu formatua. MLflow ereduen arrazoia proiektuen antzekoa da orain.
Berriz ere, ikusten dugu ereduak tresna ugari erabiliz sor daitezkeela, baina egoera ugaritan ere ekoiztu edo zabaldu daitezkeela, prestakuntza-inguruneetan ez bezala.
Ezarpen hauek denbora errealean zerbitzatzeko tresnak barne hartzen dituzte, hala nola Kubernetes edo Amazon SageMaker, baita streaming-a eta batch puntuazioa ere, hala nola Spark. Gainera, negozio batzuek ereduak inplementatzea aukera dezakete aldez aurretik konfiguratutako hodeiko instantzia batean exekutatzen den RESTful web zerbitzu gisa.
MLflow eredu bat, proiektu bat bezala, direktorio-egitura bat da. Konfigurazio-fitxategi bat eta, oraingoan, serializatutako modelo-artefaktu bat barne hartzen ditu entrenamendu-kodea baino. Errepikagarritasunerako menpekotasun multzo hau ere barne hartzen du proiektu gisa. Oraingoan, ebaluazio-mendekotasunak aztertuko ditugu Conda ingurune baten testuinguruan.
Horrez gain, MLflow-ek ereduak sortzeko tresnak biltzen ditu MLflow formatuan ereduak serializatzeko hainbat esparru ezagunetatik. Azkenik, MLflow-ek inplementazioak gehitzen ditu, edozein MLflow eredu ekoizteko eta zerbitzu sorta batera konektatzeko APIak, eta API hauek Python, Java, R eta CLI formatuan eskuragarri daude.
Ereduak ontziratzeko ereduetarako egitura estandar bat duten osagaiak dira, beheranzko tresnek, hala nola inferentzia zerbitzariek edo Databrikak batch inferentzia plataforma. Osagai honek neurrira egindako kodearen orduak aurrezten ditu ekoizpenerako modelo bat ontziratzean.
MLflow eredua ikaskuntza automatikoko ereduak "zapore" izenez ezagutzen diren hainbat formatan ontziratzeko estandarra da. MLflow-ek tresna asko eskaintzen ditu hainbat eredu mota zabaltzen laguntzeko. MLflow eredu bakoitza fitxategi arbitrarioak dituen direktorio gisa gordetzen da, baita ML ereduaren deskribatzaile fitxategi bat ere erabil daitekeen zaporeen zerrendarekin.
Key Ezaugarriak
- MLflow-en inplementazio-tresna guztiek "estandar" zapore anitz eskaintzen dituzte, adibidez, "Python funtzioa" zaporea, eredua Python funtzio gisa nola exekutatu azaltzen duena.
- MLflow eredu bakoitzak fitxategi arbitrarioak dituen direktorio batek osatzen du, baita ereduaren zapore ugari definitzen dituen direktorioaren erroan dagoen ML eredu fitxategi batek ere.
- Eredu bat gordetzean, MLflow-k modeloaren mendekotasunak dituen Conda inguruneko parametro bat zehaztea ahalbidetzen du. Ez bada Conda ingurunerik zehazten, ereduaren zaporean oinarritutako ingurune lehenetsi bat eraikitzen da. Horren ostean, Conda ingurunea conda.yaml-en gordetzen da.
Informazio gehiago nahi izanez gero, ofiziala ikus dezakezu dokumentazioa.
4. MLflow ereduaren erregistroa
Ereduen erregistroa ikaskuntza automatikoaren (ML) ereduen biltegi bat da. Model Registry APIek eta web-oinarritutako aplikazio batek osatzen dute, taldean hainbat fasetan ereduak mantentzeko erabiltzen dena. Model Lineage, Model Versioning, Easy Stage Transition eta Annotation Model Registry-n eskuragarri dauden gaitasunetako batzuk dira.
Ereduen erregistro batek, ereduez gain, eredua eraikitzeko erabilitako datuei eta prestakuntza-zereginei buruzko informazioa (metadatuak) dauka. Ezinbestekoa da beharrezko sarrera horien jarraipena egitea ML ereduetarako leinua sortzeko. Zentzu honetan, eredu-erregistro batek ohiko softwarearen antzera funtzionatzen du bertsioaren kontrola sistemak (adibidez, Git, SVN) eta artefaktuen biltegiak (adibidez, Artifactory, PyPI).
Model Registry datu-zientzialari eta ikaskuntza automatikoko ingeniariei beren ereduak argitaratu, probatu, kontrolatu, kudeatu eta banatzeko aukera ematen dien esparru bat da, beste talde batzuekin lankidetzan aritzeko. Funtsean, ereduaren erregistroa proba-fasea amaitutakoan erabiltzen da eta zure aurkikuntzak taldearekin eta interesdunekin partekatzeko prest zaude.
MLflow Model Registry-k API bat eta erabiltzaile-interfaze bat eskaintzen ditu zure ereduak eta haien bizi-iraupena kokapen zentral batetik kudeatzeko. Ereduen leinua, ereduaren bertsioa, oharrak eta etapa-trantsizioak eskuragarri daude erregistroaren bidez.
MLflow-en, erregistratutako eredu bat izen eta metadatu bakarrak, ereduen bertsioak, trantsizio-faseak eta eredu-leinua dituena da. Erregistratutako eredu batean eredu-bertsio bat edo gehiago aurki daitezke. Eredu berri bat 1 bertsiotzat hartzen da erregistroan erregistratzen denean. Hurrengo bertsioa izen bereko edozein modelo berriri gehitzen zaio.
Edozein unetan pauso bat esleitu diezaiokezu edozein eredu-bertsiori. Hala ere, etapak formalki zehaztutako MLflow faseetan esleitu behar dira, hala nola eszenaratzea, produkzioa eta artxibatua. Ereduzko bertsioa etapa batetik bestera pasa daiteke.
MLflow-ek markdown erabil dezakezu goi-mailako ereduari eta bertsio zehatz bakoitzari oharrak emateko. Deskribapenak eta bestelako informazio garrantzitsua sar ditzakezu, hala nola algoritmoen azalpenak, metodologia eta erabilitako datu multzoak.
Key Ezaugarriak
- Ereduen erregistrora sartzeko UI edo APIaren bidez zure MLflow zerbitzaria ostatzerakoan, datu-basean babestutako backend denda bat erabili behar duzu.
- Ereduen Erregistrora MLflow ereduaren zaporearen edo MLflow Client Tracking API interfazearen bidez ere sar daiteke. Adibidez, eredu bat erregistra dezakezu MLflow esperimentu batean zehar edo zure esperimentu guztiak exekutatu ondoren.
- Denek ez dute beren ereduak entrenatzen hasiko MLflow erabiliz. Ondorioz, baliteke eredu batzuk trebatuta izatea MLflow erabili aurretik. Ereduak berriro trebatu beharrean, gordetako ereduak Ereduen Erregistroan erregistratu nahi dituzu.
Informazio gehiago nahi izanez gero, ofiziala ikus dezakezu dokumentazioa.
Ondorioa
MLflow ML bizi-zikloko tresna bikaina eta etengabe hazten ari dena da. Zure egungo tresna eta plataformekin batera erabil dezakezu.
Hainbat programazio-lengoaia onartzen ditu, besteak beste, Python, Java eta R. Gainera, eredu-bertsio desberdinak azkar jarraitu, gorde eta konparatu ditzakezu bere diseinu atseginari esker.
Probatu MLflow eta eman zure esperientziaren berri!
Utzi erantzun bat