Nagsisimula nang mamuhunan ang ilang pandaigdigang sektor sa machine learning (ML).
Ang mga modelo ng ML ay maaaring paunang ilunsad at patakbuhin ng mga pangkat ng mga espesyalista, ngunit ang isa sa pinakamalaking hadlang ay ang paglilipat ng kaalaman na nakuha sa susunod na modelo upang ang mga proseso ay mapalawak.
Upang pahusayin at i-standardize ang mga prosesong kasangkot sa pamamahala ng lifecycle ng modelo, ang mga diskarte sa MLOps ay lalong ginagamit ng mga team na gumagawa ng mga modelo ng machine learning.
Magpatuloy sa pagbabasa para malaman ang higit pa tungkol sa ilan sa mga pinakamahusay na tool at platform ng MLOps na available ngayon at kung paano nila mapapadali ang machine learning mula sa isang tool, developer, at procedural standpoint.
Ano ang MLOps?
Ang isang pamamaraan para sa paggawa ng mga patakaran, pamantayan, at pinakamahuhusay na kagawian para sa mga modelo ng machine learning ay kilala bilang “machine learning operations,” o “MLOps.”
Nilalayon ng MLOps na garantiya ang buong lifecycle ng ML development — mula sa conception hanggang deployment — ay masusing naidokumento at pinamamahalaan para sa pinakamahusay na mga resulta sa halip na mag-invest ng maraming oras at mapagkukunan dito nang walang diskarte.
Ang layunin ng MLOps ay i-codify ang pinakamahuhusay na kagawian sa paraang ginagawang mas nasusukat ang pag-develop ng machine learning para sa mga operator at developer ng ML, gayundin para mapahusay ang kalidad at seguridad ng mga modelo ng ML.
Tinutukoy ng ilan ang MLOps bilang "DevOps para sa machine learning" dahil matagumpay nitong nailapat ang mga prinsipyo ng DevOps sa isang mas espesyal na larangan ng teknolohikal na pag-unlad.
Ito ay isang kapaki-pakinabang na paraan upang mag-isip tungkol sa mga MLOps dahil, tulad ng DevOps, binibigyang-diin nito ang pagbabahagi ng kaalaman, pakikipagtulungan, at pinakamahusay na kasanayan sa mga koponan at tool.
Nagbibigay ang MLOps sa mga developer, data scientist, at operations team ng isang framework para sa pagtutulungan at, bilang resulta, paggawa ng pinakamakapangyarihang mga modelo ng ML.
Bakit Gumamit ng MLOps Tools?
Ang mga tool ng MLOps ay maaaring magsagawa ng malawak na hanay ng mga tungkulin para sa isang ML team, gayunpaman, madalas silang nahahati sa dalawang grupo: pangangasiwa ng platform at pamamahala ng indibidwal na bahagi.
Bagama't ang ilang produkto ng MLOps ay nakatuon lamang sa isang pangunahing function, gaya ng pamamahala ng data o metadata, ang iba pang mga tool ay gumagamit ng mas malawak na diskarte at nagbibigay ng isang platform ng MLOps upang makontrol ang ilang aspeto ng ML lifecycle.
Maghanap ng mga solusyon sa MLOps na tumutulong sa iyong koponan sa pamamahala sa mga lugar na ito sa pagpapaunlad ng ML, naghahanap ka man ng isang espesyalista o mas malawak na tool:
- Pangangasiwa ng datos
- Disenyo at pagmomodelo
- Pamamahala ng mga proyekto at lugar ng trabaho
- Pag-deploy ng modelo ng ML at patuloy na pangangalaga
- Pamamahala ng lifecycle mula simula hanggang katapusan, na karaniwang inaalok ng mga full-service na platform ng MLOps.
MLOps Tools
1. MLFlow
Ang lifecycle ng machine learning ay kinokontrol ng open-source na platform na MLflow at may kasamang central model registration, deployment, at experimentation.
Ang MLflow ay maaaring gamitin ng anumang laki ng koponan, parehong indibidwal at sama-sama. Walang kinalaman ang mga aklatan sa tool.
Magagamit ito ng anumang programming language at machine learning library.
Upang gawing mas simple ang pagsasanay, pag-deploy, at pamamahala ng mga application ng machine learning, nakikipag-ugnayan ang MLFlow sa ilang mga framework ng machine learning, kabilang ang TensorFlow at Pytorch.
Bukod pa rito, ang MLflow ay nagbibigay ng madaling gamitin na mga API na maaaring isama sa anumang kasalukuyang machine learning program o library.
Ang MLflow ay may apat na pangunahing tampok na nagpapadali sa pagsubaybay at pagpaplano ng mga eksperimento:
- Pagsubaybay sa MLflow – isang API at UI para sa pag-log ng mga parameter ng machine learning code, bersyon, sukatan, at artifact pati na rin para sa kasunod na pagpapakita at paghahambing ng mga resulta
- Mga Proyekto ng MLflow – packaging machine learning code sa isang magagamit muli, maaaring kopyahin na format para sa paglipat sa produksyon o pagbabahagi sa iba pang data scientist
- Mga Modelo ng MLflow – pagpapanatili at pag-deploy ng mga modelo sa isang hanay ng paghahatid ng modelo at mga sistema ng inference mula sa iba't ibang mga library ng ML
- MLflow Model Registry – isang sentral na tindahan ng modelo na nagbibigay-daan sa kooperatiba na pamamahala ng buong buhay ng isang modelo ng MLflow, kabilang ang pag-bersyon ng modelo, mga pagbabago sa yugto, at mga anotasyon.
2. KubeFlow
Ang ML toolbox para sa Kubernetes ay tinatawag na Kubeflow. Ang pag-iimpake at pamamahala ng mga container ng Docker, ay tumutulong sa pagpapanatili ng machine learning system.
Sa pamamagitan ng pagpapasimple ng run orchestration at pag-deploy ng mga workflow ng machine learning, itinataguyod nito ang scalability ng mga modelo ng machine learning.
Ito ay isang open-source na proyekto na kinabibilangan ng maingat na piniling pangkat ng mga pantulong na tool at framework na iniakma sa iba't ibang pangangailangan ng ML.
Mahabang gawain sa pagsasanay sa ML, manu-manong pag-eeksperimento, pag-uulit, at mga hamon sa DevOps ay maaaring hawakan gamit ang Kubeflow Pipelines.
Para sa ilang yugto ng machine learning, kabilang ang pagsasanay, pagbuo ng pipeline, at pagpapanatili ng Mga notebook ng jupyter, nag-aalok ang Kubeflow ng mga espesyal na serbisyo at pagsasama.
Pinapasimple nitong pamahalaan at subaybayan ang buhay ng iyong mga workload ng AI pati na rin ang pag-deploy ng mga modelo ng machine learning (ML) at mga pipeline ng data sa mga cluster ng Kubernetes.
Nag-aalok ito:
- Mga Notebook para sa paggamit ng SDK upang makipag-ugnayan sa system
- isang user interface (UI) para sa pagkontrol at pagsubaybay sa mga pagtakbo, trabaho, at mga eksperimento
- Upang mabilis na magdisenyo ng mga end-to-end na solusyon nang hindi kinakailangang muling buuin sa bawat oras, at muling gumamit ng mga bahagi at pipeline.
- Bilang pangunahing bahagi ng Kubeflow o bilang isang standalone na pag-install, inaalok ang Kubeflow Pipelines.
3. Kontrol sa Bersyon ng Data
Ang isang open-source na solusyon sa pagkontrol ng bersyon para sa mga proyekto ng machine learning ay tinatawag na DVC, o Data Version Control.
Anumang wika ang pipiliin mo, isa itong pang-eksperimentong tool na tumutulong sa kahulugan ng pipeline.
Ang DVC ay gumagamit ng code, data versioning, at reproducibility para tulungan kang makatipid ng oras kapag nakatuklas ka ng isyu sa mas naunang bersyon ng iyong ML model.
Bukod pa rito, maaari mong gamitin ang mga pipeline ng DVC upang sanayin ang iyong modelo at ipamahagi ito sa mga miyembro ng iyong koponan. Ang organisasyon at pag-bersyon ng malaking data ay maaaring pangasiwaan ng DVC, at ang data ay maaaring maimbak sa isang madaling ma-access na paraan.
Bagama't may kasama itong ilang (limitadong) feature sa pagsubaybay sa eksperimento, kadalasang nakatuon ito sa data at pipeline na bersyon at pamamahala.
Nag-aalok ito:
- Ito ay agnostic ng imbakan, samakatuwid posible na gumamit ng iba't ibang uri ng imbakan.
- Nagbibigay din ito ng mga istatistika ng pagsubaybay.
- isang pre-built na paraan ng pagsali sa mga yugto ng ML sa isang DAG at pagpapatakbo ng buong pipeline mula simula hanggang matapos
- Ang buong pag-unlad ng bawat modelo ng ML ay maaaring sundin gamit ang buong code at pinagmulan ng data nito.
- Reproducibility sa pamamagitan ng matapat na pagpapanatili ng paunang configuration, input data, at program code para sa isang eksperimento.
4. Pachyderm
Ang Pachyderm ay isang version-control program para sa machine learning at data science, katulad ng DVC.
Bukod pa rito, dahil nilikha ito gamit ang Docker at Kubernetes, maaari itong magsagawa at mag-deploy ng mga application ng Machine Learning sa anumang cloud platform.
Ginagawang garantiya ng Pachyderm na ang bawat piraso ng data na nagamit sa isang machine learning model ay masusubaybayan pabalik at ma-bersyon.
Ginagamit ito para gumawa, mamahagi, pamahalaan, at bantayan ang mga modelo ng machine learning. Ang isang pagpapatala ng modelo, isang sistema ng pamamahala ng modelo, at isang CLI toolbox ay kasama lahat.
Maaaring i-automate at palawakin ng mga developer ang kanilang lifecycle ng machine learning gamit ang data foundation ng Pachyderm, na nagsisiguro rin ng repeatability.
Sinusuportahan nito ang mahigpit na mga pamantayan sa pamamahala ng data, binabawasan ang mga gastos sa pagproseso at pag-iimbak ng data, at tinutulungan ang mga negosyo sa pagdadala ng kanilang mga inisyatiba sa agham ng data sa mas mabilis na merkado.
5. Polyaxon
Gamit ang Polyaxon platform, ang mga machine learning project at deep learning application ay maaaring kopyahin at pamahalaan sa kanilang buong ikot ng buhay.
Nagagawang i-host at pangasiwaan ng Polyaxon ang tool, at maaari itong ilagay sa anumang data center o cloud provider. Gaya ng Torch, Tensorflow, at MXNet, na sumusuporta sa lahat ng pinakasikat na deep learning frameworks.
Pagdating sa orkestrasyon, binibigyang-daan ka ng Polyaxon na sulitin ang iyong cluster sa pamamagitan ng pag-iskedyul ng mga gawain at pagsubok sa pamamagitan ng kanilang CLI, dashboard, SDK, o REST API.
Nag-aalok ito:
- Maaari mong gamitin ang open-source na bersyon sa ngayon, ngunit kasama rin dito ang mga pagpipilian para sa corporate.
- Bagama't sinasaklaw nito ang kumpletong lifecycle, kabilang ang run orchestration, ito ay may kakayahang higit pa.
- Gamit ang mga teknikal na sangguniang dokumento, mga patnubay sa pagsisimula, mga materyales sa pag-aaral, mga manual, mga tutorial, changelog, at higit pa, ito ay isang napakahusay na dokumentado na platform.
- Gamit ang dashboard ng mga insight sa eksperimento, posibleng bantayan, subaybayan, at suriin ang bawat eksperimento sa pag-optimize.
6. kometa
Ang Comet ay isang platform para sa meta machine learning na sumusubaybay, nagko-contrast, nagpapaliwanag, at nagpapahusay sa mga eksperimento at modelo.
Ang lahat ng iyong mga eksperimento ay makikita at maihahambing sa isang lokasyon.
Gumagana ito para sa anumang gawain sa pag-aaral ng makina, saanman isagawa ang iyong code, at sa anumang library ng pag-aaral ng makina.
Ang kometa ay angkop para sa mga grupo, indibidwal, institusyong pang-akademiko, negosyo, at sinumang gustong mabilis na mailarawan ang mga eksperimento, i-streamline ang trabaho, at magsagawa ng mga eksperimento.
Maaaring subaybayan, linawin, pagbutihin, at paghambingin ng mga data scientist at team ang mga eksperimento at modelo gamit ang self-hosted at cloud-based na meta-machine learning platform na Comet.
Nag-aalok ito:
- Maraming mga kakayahan ang umiiral para sa mga miyembro ng koponan na magbahagi ng mga gawain.
- Ito ay may ilang mga integrasyon na ginagawang simple upang maiugnay ito sa iba pang mga teknolohiya
- Gumagana nang maayos sa mga kasalukuyang ML library
- Nangangalaga sa pamamahala ng gumagamit
- Pinagana ang paghahambing ng mga eksperimento, kabilang ang paghahambing ng code, hyperparameter, sukatan, hula, dependency, at sukatan ng system.
- Nagbibigay ng mga natatanging module para sa vision, audio, text, at tabular na data na nagbibigay-daan sa iyong makita ang mga sample.
7. Optuna
Ang Optuna ay isang sistema para sa autonomous hyperparameter optimization na maaaring ilapat sa parehong machine learning at deep learning pati na rin sa iba pang mga field.
Naglalaman ito ng iba't ibang mga cutting-edge na algorithm kung saan maaari mong piliin (o i-link), ginagawang napakasimpleng ipamahagi ang pagsasanay sa maraming mga computer, at nag-aalok ng kaakit-akit na visualization ng mga resulta.
Ang mga sikat na library ng machine learning tulad ng PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM, at XGBoost ay isinama lahat dito.
Nagbibigay ito ng mga cutting-edge na algorithm na nagbibigay-daan sa mga customer na makakuha ng mga resulta nang mas mabilis sa pamamagitan ng mabilis na pagbabawas ng mga sample na mukhang hindi maganda.
Gamit ang mga algorithm na nakabatay sa Python, awtomatiko itong naghahanap ng mga ideal na hyperparameter. Hinihikayat ng Optuna ang mga parallelized hyperparameter na paghahanap sa maraming mga thread nang hindi binabago ang orihinal na code.
Nag-aalok ito:
- Sinusuportahan nito ang ipinamahagi na pagsasanay sa isang kumpol pati na rin ang isang solong computer (multi-process) (multi-node)
- Sinusuportahan nito ang ilang mga diskarte sa pag-trim para mapabilis ang convergence (at gumamit ng mas kaunting compute)
- Mayroon itong iba't ibang makapangyarihang visualization, tulad ng slice plot, contour plot, at parallel coordinates.
8. Kedro
Ang Kedro ay isang libreng Python framework para sa pagsusulat ng code na maaaring i-update at mapanatili para sa mga proyekto ng data science.
Nagdadala ito ng mga ideya mula sa pinakamahuhusay na kagawian sa software engineering hanggang sa machine learning code. Ang Python ang pundasyon ng tool sa pag-orkestra ng workflow na ito.
Para gawing mas simple at mas tumpak ang iyong mga proseso sa ML, maaari kang bumuo ng mga reproducible, maintainable, at modular na daloy ng trabaho.
Isinasama ng Kedro ang mga prinsipyo ng software engineering tulad ng modularity, paghihiwalay ng mga responsibilidad, at pag-bersyon sa isang kapaligiran sa pag-aaral ng makina.
Batay sa Cookiecutter Data Science, nagbibigay ito ng isang karaniwan, naaangkop na balangkas ng proyekto.
Ang isang bilang ng mga simpleng data connector na ginagamit upang mag-imbak at mag-load ng data sa ilang mga file system at mga format ng file, ay pinamamahalaan ng data catalog. Ginagawa nitong mas epektibo ang mga proyekto sa pag-aaral ng makina at ginagawang mas simple ang pagbuo ng pipeline ng data.
Nag-aalok ito:
- Ang Kedro ay nagbibigay-daan para sa alinman sa dispersed o solitary machine deployment.
- Maaari mong i-automate ang mga dependency sa pagitan ng Python code at workflow visualization gamit ang pipeline abstraction.
- Sa pamamagitan ng paggamit ng modular, magagamit muli na code, pinapadali ng teknolohiyang ito ang pakikipagtulungan ng koponan sa iba't ibang antas at pinapabuti ang pagiging produktibo sa kapaligiran ng coding.
- Ang pangunahing layunin ay upang madaig ang mga disbentaha ng Jupyter notebook, one-off na script, at glue-code sa pamamagitan ng pagsulat ng maintainable na data science programming.
9. BentoML
Ang pagbuo ng mga endpoint ng machine learning API ay ginagawang mas madali gamit ang BentoML.
Nagbibigay ito ng tipikal ngunit maiksing imprastraktura upang ilipat ang mga natutunang modelo ng machine learning sa produksyon.
Binibigyang-daan ka nitong mag-package ng mga natutunang modelo para magamit sa isang setting ng produksyon, na binibigyang-kahulugan ang mga ito gamit ang anumang ML framework. Parehong sinusuportahan ang offline na batch serving at online na API.
Ang isang high-performance model server at isang flexible workflow ay mga feature ng BentoML.
Bilang karagdagan, nag-aalok ang server ng adaptive micro-batching. Ang isang pinag-isang diskarte para sa pag-aayos ng mga modelo at pagsubaybay sa mga pamamaraan ng pag-deploy ay ibinibigay ng dashboard ng UI.
Walang magiging downtime ng server dahil modular ang operating mechanism at magagamit muli ang configuration. Ito ay isang flexible na platform para sa pagbibigay, pag-aayos, at pag-deploy ng mga modelo ng ML.
Nag-aalok ito:
- Mayroon itong modular na disenyo na madaling ibagay.
- Nagbibigay-daan ito sa pag-deploy sa maraming platform.
- Hindi nito awtomatikong mahawakan ang pahalang na pag-scale.
- Nagbibigay-daan ito sa iisang format ng modelo, pamamahala ng modelo, packaging ng modelo, at paghahatid ng modelong may mataas na pagganap.
10. Seldon
Ang mga data scientist ay maaaring gumawa, mag-deploy, at mamahala ng mga modelo ng machine learning at mga eksperimento nang malawakan sa Kubernetes gamit ang open-source na Seldon Core na framework.
Ang TensorFlow, sci-kit-learn, Spark, R, Java, at H2O ay ilan lamang sa mga toolkit na sinusuportahan nito.
Nakikipag-interface din ito sa Kubeflow at OpenShift ng RedHat. Binabago ng Seldon core ang mga modelo ng machine learning (mga modelo ng ML) o mga wrapper ng wika (mga wika tulad ng Python, Java, atbp.) sa mga production na REST/GRPC microservice.
Isa sa mga pinakamahusay na tool ng MLOps para sa pagpapabuti ng mga proseso ng machine learning ay ang isang ito.
Ito ay simple upang lalagyan ng mga modelo ng ML at subukan para sa kakayahang magamit at seguridad gamit ang Seldon Core.
Nag-aalok ito:
- Ang pag-deploy ng modelo ay maaaring gawing mas simple gamit ang ilang mga alternatibo, tulad ng pag-deploy ng canary.
- Upang maunawaan kung bakit ginawa ang mga partikular na hula, gumamit ng mga tagapagpaliwanag ng modelo.
- Kapag lumitaw ang mga isyu, bantayan ang mga modelo ng produksyon gamit ang alerting system.
Konklusyon
Makakatulong ang mga MLO na gawing mas mahusay ang mga pagpapatakbo ng machine learning. Maaaring pabilisin ng mga MLO ang pag-deploy, gawing mas simple ang pagkolekta at pag-debug ng data, at pagbutihin ang pakikipagtulungan sa pagitan ng mga inhinyero at data scientist.
Upang mapili mo ang tool ng MLOps na pinakaangkop sa iyong mga pangangailangan, sinuri ng post na ito ang 10 sikat na solusyon sa MLOps, karamihan sa mga ito ay open-source.
Mag-iwan ng Sagot