Ang tanan nga misulay sa pagpalambo sa pagkat-on sa makina nakasabut kung unsa kini ka lisud. Gawas sa standard nga mga problema sa software development, machine learning (ML) development nagpaila sa daghang dugang nga mga babag.
Gatusan nga open source nga mga himan ang magamit aron makatabang sa matag yugto sa ML lifecycle, gikan sa pag-andam sa datos hangtod sa pagbansay sa modelo.
Dili sama sa tradisyonal nga software development, kung ang mga team mopili og usa ka himan alang sa matag lakang, uban sa ML kasagaran gusto nimo nga tukion ang matag magamit nga himan (pananglitan, algorithm) aron makita kung kini makapauswag sa mga resulta.
Ingon usa ka sangputanan, ang mga developer sa ML kinahanglan mogamit ug maghimo gatusan nga mga librarya.
Ang mga algorithm sa pagkat-on sa makina adunay libu-libo nga napasadya nga mga parameter, ug lisud ang pag-ila kung unsang mga parameter, code, ug data ang naadto sa matag eksperimento aron makamugna usa ka modelo, nagtrabaho ka nga nag-inusara o sa usa ka team.
Kung wala’y husto nga pag-monitor, ang mga koponan kanunay nga naglisud aron makuha ang parehas nga code aron molihok pag-usab. Kung ikaw usa ka data scientist nga nagbalhin sa imong code sa pagbansay ngadto sa usa ka inhenyero alang sa paggamit sa produksiyon, o mobalik ka sa imong miaging trabaho aron masusi ang usa ka problema, ang pag-atras sa mga lakang sa ML workflow hinungdanon.
Mahimong lisud ang pagbalhin sa usa ka modelo sa produksiyon tungod sa daghang mga pamaagi sa pag-deploy ug mga palibot nga kinahanglan gamiton (pananglitan, pagserbisyo sa REST, batch inference, o mga mobile app). Walay komon nga pamaagi sa pagbalhin sa mga modelo gikan sa bisan unsang librarya ngadto sa bisan hain niini nga mga himan, ug sa ingon ang matag bag-ong deployment nagpaila sa usa ka risgo.
Tungod sa kini nga mga isyu, klaro nga ang pag-uswag sa ML kinahanglan nga molambo aron mahimong lig-on, matag-an, ug kaylap nga gigamit sama sa tradisyonal nga pagpalambo sa software.
Mga hagit sa ML
- Adunay usa ka plethora sa lain-laing mga himan. Gatusan nga mga solusyon sa software ang magamit aron makatabang sa matag yugto sa siklo sa kinabuhi sa pagkat-on sa makina, gikan sa pag-andam sa datos hangtod sa pagbansay sa modelo. Dugang pa, dili sama sa tradisyonal nga pag-uswag sa software, kung ang mga koponan mopili usa ka himan alang sa matag lakang, sa pagkat-on sa makina (ML), kanunay nimo gusto nga susihon ang matag magamit nga himan (pananglitan, algorithm) aron makita kung kini nagpauswag sa mga sangputanan. Ingon usa ka sangputanan, ang mga developer sa ML kinahanglan mogamit ug maghimo gatusan nga mga librarya.
- Lisud ang pagsubay sa mga eksperimento. Ang mga algorithm sa pagkat-on sa makina adunay libu-libo nga napasadya nga mga parameter, ug lisud ang pag-ila kung unsang mga parameter, code, ug data ang naadto sa matag eksperimento aron makamugna usa ka modelo, nagtrabaho ka nga nag-inusara o sa usa ka team.
- Lisud ang pagpatuman sa pagkat-on sa makina. Mahimong lisud ang pagbalhin sa usa ka modelo sa produksiyon tungod sa daghang mga pamaagi sa pag-deploy ug mga palibot nga kinahanglan gamiton (pananglitan, pagserbisyo sa REST, batch inference, o mga mobile app). Walay komon nga paagi sa pagbalhin sa mga modelo gikan sa bisan unsang librarya ngadto sa bisan hain niini nga mga himan. Busa, ang matag bag-ong deployment nagpaila sa usa ka peligro.
Unsa ang MLflow?
Ang MLflow usa ka bukas nga gigikanan nga plataporma alang sa siklo sa kinabuhi sa pagkat-on sa makina. Gibase kini sa usa ka bukas nga konsepto sa interface, nga nagsugyot sa daghang mga importanteng abstraction nga nagtugot sa kasamtangan nga imprastraktura ug mga algorithm sa pagkat-on sa makina nga daling mahiusa sa sistema.
Kini nagpasabot nga kung ikaw usa ka developer nga gustong mogamit sa MLflow apan naggamit ug dili suportadong balangkas, ang bukas nga disenyo sa interface naghimo niini nga medyo sayon nga i-integrate ang maong balangkas ug magsugod sa pagtrabaho uban sa plataporma. Sa praktis, kini nagpasabot nga ang MLflow gituyo nga molihok uban sa bisan unsa pagkat-on sa makina librarya o pinulongan.
Dugang pa, gipasiugda sa MLflow ang repeatability, nga nagpasabut nga ang parehas nga pagbansay o code sa pagkat-on sa makina sa produksiyon gituyo nga modagan nga adunay parehas nga mga resulta nga independente sa palibot, bisan sa panganod, sa usa ka lokal nga workstation, o sa usa ka notebook.
Sa katapusan, ang MLflow gitukod alang sa scalability, aron magamit kini sa usa ka gamay nga grupo sa mga data scientist ingon man usa ka dako nga kompanya nga adunay gatusan nga mga practitioner sa pagkat-on sa makina.
Ang MLflow kay compatible sa bisan unsang machine learning library, algorithm, deployment tool, o lengguwahe. Kini usab adunay mosunod nga mga bentaha:
- Gidisenyo aron magamit sa bisan unsang serbisyo sa panganod.
- Mga timbangan sa dako nga datos gamit ang Apache Spark.
- Ang MLflow nahiuyon sa lainlaing mga open-source machine learning frameworks, lakip ang Apache Spark, TensorFlow, Ug SciKit-Pagkat-on.
Kung aduna ka'y code, ang MLflow mahimong magamit niini. Mahimo nimong ipaambit ang imong balangkas ug mga modelo tali sa mga negosyo tungod kay mao kini Open-source.
Mga sangkap sa MLflow: Giunsa kini pagtrabaho?
Ang MLflow kay libre ug open-source nga plataporma para sa pagdumala sa ML lifecycle, nga naglakip sa eksperimento, reproducibility, deployment, ug usa ka modelo nga rehistro. Sa pagkakaron, ang MLflow adunay upat ka mga sangkap:
1. Pagsubay sa MLflow
Magsugod ko sa Pagsubay sa MLflow. Gisuportahan sa MLflow ang koleksyon sa lainlaing hinungdanon nga mga konsepto nga nalambigit sa usa ka sentralisado nga tipiganan sa pagsubay sa metadata sa pagbansay. Ang una nga ideya mao ang usa ka koleksyon sa mga kritikal nga hyperparameter o configuration knobs nga nag-impluwensya sa performance sa modelo. Ang paggamit sa mga API sa MLflow ug usa ka sentralisadong serbisyo sa pagsubay mahimong magpreserbar niining tanan.
Ang mga tiggamit mahimo usab nga magrekord sa datos sa pasundayag aron makakuha og panabut sa kalampusan sa ilang mga modelo sa pagkat-on sa makina. Dugang pa, alang sa pagbalik-balik, ang MLflow nagtugot sa mga tiggamit sa pag-log sa piho nga source code nga gigamit sa paghimo sa usa ka modelo ingon man sa bersyon niini pinaagi sa hugot nga pag-integrate sa Git aron ihigot ang matag modelo sa usa ka piho nga commit hash.
Ang MLflow mahimong magamit sa pag-log sa mga artifact, nga bisan unsang arbitraryong mga file lakip ang pagbansay, datos sa pagsulay, ug mga modelo sa ilang kaugalingon alang sa pag-reproducibility.
Kini nagpasabut nga kung ako usa ka developer nga bag-o lang nagbansay sa usa ka modelo, mahimo nako kini ipadayon sa sentralisadong serbisyo sa pagsubay, ug ang usa sa akong mga kauban mahimo’g i-load kini sa ulahi ug mahimo’g magpadayon sa pagbansay ug pag-eksperimento o paghimo sa modelo aron matubag ang usa ka piho nga panginahanglan. .
Kung gipatuman ang imong code sa pagkat-on sa makina ug pagkahuman nagtan-aw sa mga resulta, ang pagsubay usa ka API nga nagtugot kanimo sa pag-log sa mga parameter, bersyon sa code, sukatan, ug mga file sa output. Gisulat kini sa Python, R, ug Java, ug uban pang mga pinulongan. Ma-access usab kini ingon usa ka REST API, nga mahimong magamit sa paghimo og mga app sa ibabaw niini.
Mga Key Features
- Daghang mga developer ang naggamit sa MLflow sa ilang lokal nga PC, diin ang backend ug artifact storage nag-ambit sa usa ka direktoryo sa disc.
- Daghang mga tiggamit usab naggamit sa SQLite, usa ka database nga katugma sa SQLAlchemy, aron mapadagan ang MLflow sa ilang lokal nga mga PC.
- Gisuportahan usab sa MLflow ang gipang-apod-apod nga mga arkitektura. Ang tracking server, backend store, ug artifact store tanan gi-host sa lain-laing mga server niini.
- Kung ang run gisugdan sa usa ka MLflow Project, ang git commit hash gigamit. Ang MLflow Python, R, Java, ug REST APIs mahimong gamiton sa pag-log sa datos aron modagan.
Alang sa dugang nga kasayuran, mahimo nimong susihon ang opisyal dokumentasyon.
2. Mga Proyekto sa MLFlow
Pagkahuman namong naagian ang mga sangkap sa pagsubay, gusto nako maghisgot bahin sa mga proyekto sa MLflow, nga usa ka gibalikbalik nga istruktura sa pagputos alang sa mga sesyon sa pagbansay sa modelo bisan unsa pa ang konteksto sa pagpatuman.
Gigamit sa mga negosyo ang usa ka halapad nga mga teknolohiya sa pagbansay sa pagkat-on sa makina, apan gigamit usab nila kini nga mga himan sa pagbansay sa lainlaing hugpong sa mga konteksto. Pananglitan, mahimo nilang ipatuman ang ilang code sa pagbansay sa panganod, sa lokal nga PC, o sa notebook.
Nagdala kini sa problema nga ang mga sangputanan sa pagkat-on sa makina lisud nga kopyahon. Kasagaran, ang parehas nga parehas nga code sa pagbansay wala magpatuman o maghatag parehas nga mga sangputanan sa duha nga magkabulag nga lokasyon.
Ang solusyon nga gihatag sa MLflow kay usa ka self-contained nga training code project definition nga naglakip sa tanang machine learning training code, ingon man ang version niini nga mga dependency sa library, setting, ug training ug test data.
Gisiguro sa MLflow ang reproducibility sa tibuok konteksto sa pagpatuman pinaagi sa tin-aw nga paghulagway sa tibuok hugpong sa mga kinahanglanon alang sa proseso sa pagbansay sa pagkat-on sa makina. Nahimo kini pinaagi sa pag-install sa tanan nga mga librarya ug paghimo sa parehas nga estado sa sistema nga nagdagan ang code.
Ang proyekto sa MLflow walay lain kondili usa ka direktoryo. Kini usa ka direktoryo nga naglakip sa code sa pagbansay, ang kahulugan sa dependency sa librarya, ug uban pang datos nga gikinahanglan sa sesyon sa pagbansay, ingon man kini nga opsyonal nga configuration file.
Kini nga mga kinahanglanon sa librarya mahimong mahubit sa lainlaing mga paagi. Ang mga tiggamit, pananglitan, makahatag ug YAML-formatted anaconda environment specification aron ilista ang ilang training code nga mga kinahanglanon sa library. Ipatuman sa MLflow ang code sa pagbansay sulod sa sudlanan. Sa ingon nga kaso, mahimo usab nila ilakip ang usa ka sudlanan sa Docker.
Sa katapusan, ang MLflow adunay command-line interface (CLI) alang sa pagpadagan niini nga mga proyekto, ingon man sa Python, ug Java APIs. Kini nga mga proyekto mahimong ipadagan sa lokal nga sistema sa user ingon man sa lain-laing mga hilit nga setting sama sa Databricks job scheduler ug Kubernetes. Gitugotan ka sa mga proyekto sa MLflow nga mag-package sa code sa siyensya sa datos sa usa ka mabalik-balik ug magamit pag-usab, kasagaran gibase sa mga sumbanan.
Ang component sa proyekto naglakip sa API ingon man command-line utilities alang sa pagdumala sa mga proyekto. Kini nga mga kapabilidad naggarantiya nga ang mga proyekto mahimong magkadena aron maporma ang mga proseso sa pagkat-on sa makina.
Mga Key Features
- Gisuportahan sa MLflow ang mga palibot sa proyekto, lakip ang Docker container environment, Conda environment, ug ang system environment.
- Ang bisan unsang Git repository o lokal nga direktoryo mahimong isipon nga usa ka proyekto sa MLflow; pinaagi sa default; mahimo nimong gamiton ang bisan unsang kabhang o script sa Python sa direktoryo isip usa ka entry point sa proyekto.
- Ang dili-Python nga mga dependency, sama sa Java library, mahimong makuha gamit ang mga sudlanan sa Docker.
- Mahimo kang makakuha ug mas dakong kontrol sa usa ka MLflow Project pinaagi sa pagdugang ug project file sa root directory sa proyekto, nga usa ka text file sa YAML syntax.
Alang sa dugang nga kasayuran, mahimo nimong susihon ang opisyal dokumentasyon.
3. Mga Modelo sa MLflow
Karon, gusto nakong hisgutan ang mga modelo sa MLflow, usa ka format nga modelo sa kinatibuk-ang katuyoan nga nagsuporta sa usa ka halapad nga mga konteksto sa produksiyon. Ang hinungdan sa mga modelo sa MLflow karon parehas nga parehas sa alang sa mga proyekto.
Pag-usab, atong nakita nga ang mga modelo mahimong mamugna gamit ang usa ka halapad nga mga himan, apan mahimo usab kini nga himoon o ipakatap sa daghang mga sitwasyon, sukwahi sa mga palibot sa pagbansay.
Kini nga mga setting naglakip sa mga himan alang sa real-time nga pagserbisyo, sama sa Kubernetes o Amazon SageMaker, ingon man sa streaming ug batch scoring, sama sa Spark. Dugang pa, ang ubang mga negosyo mahimong mopili sa pag-deploy sa mga modelo isip usa ka RESTful nga serbisyo sa web nga nagdagan sa usa ka pre-configured cloud nga pananglitan.
Ang usa ka modelo sa MLflow, sama sa usa ka proyekto, usa ka istruktura sa direktoryo. Naglakip kini og configuration file ug, niining higayona, usa ka serialized model artifact kay sa training code. Naglakip usab kini sa kini nga hugpong sa mga dependency alang sa pagbalik-balik ingon usa ka proyekto. Niining higayona, atong tan-awon ang mga dependency sa ebalwasyon sa konteksto sa usa ka palibot sa Conda.
Dugang pa, ang MLflow naglakip sa mga galamiton sa paghimo og modelo alang sa pag-serialize sa mga modelo sa MLflow format gikan sa lain-laing mga sikat nga frameworks. Sa katapusan, ang MLflow nagdugang sa mga deploy, mga API alang sa paghimo ug pagkonektar sa bisan unsang modelo sa MLflow sa lainlaing mga serbisyo, ug kini nga mga API ma-access sa Python, Java, R, ug usa ka CLI nga format.
Ang mga modelo usa ka sangkap nga adunay sukaranan nga istruktura para sa mga modelo sa pagputos nga mahimong magamit ug masabtan sa mga gamit sa ubos sama sa mga inferencing server o ang Mga Databricks batch inferencing plataporma. Kini nga sangkap makatipig mga oras sa bespoke code kung nagputos sa usa ka modelo alang sa produksiyon.
Ang MLflow Model usa ka sumbanan alang sa pag-pack sa mga modelo sa pagkat-on sa makina sa lainlaing mga porma nga nailhan nga "mga lami." Naghatag ang MLflow og daghang mga himan aron matabangan ka sa pag-deploy sa lainlaing klase sa mga modelo. Ang matag MLflow Model gitipigan isip usa ka direktoryo nga adunay arbitraryong mga file ingon man usa ka ML model descriptor file nga adunay lista sa mga lami diin kini mahimong gamiton.
Mga Key Features
- Ang tanan nga built-in nga deployment tool sa MLflow nagtanyag daghang "standard" nga lami, sama sa usa ka "Python function" nga lami nga nagpatin-aw kung giunsa ang pagpadagan sa modelo ingon usa ka function sa Python.
- Ang matag MLflow Model naglangkob sa usa ka direktoryo nga adunay arbitraryong mga file, ingon man usa ka ML nga modelo nga file sa punoan sa direktoryo nga naghubit sa daghang mga lami sa modelo.
- Kung gitipigan ang usa ka modelo, gitugotan ka sa MLflow nga ipiho ang usa ka parameter sa palibot sa Conda nga adunay mga dependency sa modelo. Kung walay Conda environment ang gipiho, usa ka default environment base sa lami sa modelo ang matukod. Human niana, ang palibot sa Conda gitipigan sa conda.yaml.
Alang sa dugang nga kasayuran, mahimo nimong susihon ang opisyal dokumentasyon.
4. Registry sa Modelo sa MLflow
Ang usa ka modelo nga rehistro usa ka tipiganan alang sa nakat-unan nga mga modelo sa pagkat-on sa makina (ML). Ang Model Registry gilangkuban sa mga API ug usa ka aplikasyon nga nakabase sa web nga gigamit aron mapadayon ang mga modelo sa lainlaing mga hugna ingon usa ka team. Model Lineage, Model Versioning, Easy Stage Transition, ug Annotation maoy pipila lang sa mga kapabilidad nga anaa sa Model Registry.
Ang usa ka rehistro sa modelo, dugang sa mga modelo mismo, adunay kasayuran (metadata) bahin sa datos ug mga buluhaton sa pagbansay nga gigamit sa paghimo sa modelo. Importante nga bantayan kining gikinahanglan nga mga input aron makamugna og linya sa mga modelo sa ML. Niining bahina, ang usa ka modelo nga rehistro naglihok parehas sa naandan nga software kontrol sa bersyon sistema (eg, Git, SVN) ug mga artifact repository (eg, Artifactory, PyPI).
Ang Model Registry usa ka framework nga nagtugot sa mga data scientist ug machine learning engineer sa pagmantala, pagsulay, pagmonitor, pagdumala, ug pag-apod-apod sa ilang mga modelo alang sa kooperasyon sa ubang mga team. Sa esensya, ang modelo nga rehistro gigamit kung nahuman na nimo ang imong yugto sa pagsulay ug andam nga ipaambit ang imong mga nahibal-an sa team ug mga stakeholder.
Ang MLflow Model Registry naghatag ug API ug user interface para sa pagdumala sa imong mga modelo ug sa ilang lifespan gikan sa sentro nga lokasyon. Model lineage, model versioning, annotation, ug stage transition available tanan pinaagi sa registry.
Sa MLflow, ang usa ka narehistro nga modelo mao ang usa nga adunay usa ka talagsaon nga ngalan ug metadata, mga bersyon sa modelo, mga yugto sa transisyon, ug usa ka linya sa modelo. Usa o daghan pa nga mga bersyon sa modelo ang makit-an sa usa ka rehistradong modelo. Ang usa ka bag-ong modelo gikonsiderar nga bersyon 1 kung kini narehistro sa rehistro. Ang mosunud nga bersyon gidugang sa bisan unsang bag-ong modelo nga adunay parehas nga ngalan.
Mahimo nimong itudlo ang usa ka lakang sa bisan unsang bersyon sa modelo bisan unsang orasa. Bisan pa, ang mga yugto kinahanglan nga itudlo sa ilawom sa mga hugna sa MLflow nga pormal nga gitakda, sama sa dula, paghimo, ug pag-archive. Ang usa ka modelo nga bersyon mahimong mabalhin gikan sa usa ka yugto ngadto sa lain.
Gitugotan ka sa MLflow nga magamit ang markdown aron i-annotate ang parehas nga modelo sa taas nga lebel ug matag piho nga bersyon. Mahimo nimong ilakip ang mga paghubit ingon man ang uban pang hinungdanon nga kasayuran, sama sa pagpatin-aw sa algorithm, pamaagi, ug mga datos nga gigamit.
Mga Key Features
- Aron ma-access ang modelo nga rehistro pinaagi sa UI o API kung nag-host sa imong kaugalingon nga MLflow server, kinahanglan nimo nga mogamit usa ka backend store nga gipaluyohan sa database.
- Ang Model Registry mahimo usab nga ma-access pinaagi sa MLflow model flavor o sa MLflow Client Tracking API interface. Mahimo ka, pananglitan, magparehistro og usa ka modelo sa panahon sa usa ka eksperimento sa MLflow run o pagkahuman sa tanan nimong eksperimento.
- Dili tanan magsugod sa pagbansay sa ilang mga modelo gamit ang MLflow. Ingon usa ka sangputanan, mahimo ka adunay pipila nga mga modelo nga gibansay sa wala pa gamiton ang MLflow. Imbis nga magbansay pag-usab sa mga modelo, gusto nimo nga irehistro ang imong gitipigan nga mga modelo sa Model Registry.
Alang sa dugang nga kasayuran, mahimo nimong susihon ang opisyal dokumentasyon.
Panapos
Ang MLflow usa ka maayo ug padayon nga nagtubo nga ML lifecycle nga himan. Mahimo nimong gamiton kini kauban sa imong kasamtangan nga mga himan ug plataporma.
Gisuportahan niini ang daghang mga programming language, lakip ang Python, Java, ug R. Mahimo usab nimo nga dali nga masubay, matipig, ug itandi ang lainlaing mga bersyon sa modelo salamat sa disenyo nga mahigalaon sa user.
Sulayi ang MLflow ug ipahibalo kanamo ang imong kasinatian!
Leave sa usa ka Reply