Last chance! 50% off DataCamp Premium
Sale ends in
MLOps मशीन लर्निंग का एक महत्वपूर्ण हिस्सा है क्योंकि यह मशीन लर्निंग मॉडलों के प्रशिक्षण और परिनियोजन (डिप्लॉयमेंट) को स्वचालित करने में मदद करता है। यह स्वचालन मॉडल विकसित करने और तैनात करने की प्रक्रिया को तेज कर सकता है और सुनिश्चित करता है कि मॉडल सही तरीके से तैनात हों। MLOps मशीन लर्निंग मॉडलों के प्रदर्शन की निगरानी करने और प्रोडक्शन में संबोधित किए जाने वाले संभावित मुद्दों की पहले से पहचान करने में भी मदद कर सकता है।
2022 में MLOps का परिदृश्य विभिन्न टूल्स और सेवाओं से बना है जो संगठनों को मशीन लर्निंग मॉडलों के निर्माण, प्रशिक्षण और परिनियोजन को स्वचालित करने में मदद करेंगे। ये टूल और सेवाएँ एक साथ काम करने के लिए डिज़ाइन की गई हैं ताकि MLOps की प्रक्रिया अधिक कुशल और प्रबंधित करने में आसान हो सके। MLflow ऐसा ही एक महत्वपूर्ण टूल है जिसे हम इस ब्लॉग पोस्ट में तलाशेंगे।
MLflow एंड-टू-एंड मशीन लर्निंग लाइफसाइकल के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म है। यह डेटा वैज्ञानिकों को अपने प्रयोगों को ट्रैक करने, रन को पुन: उत्पन्न (रिप्रोड्यूस) करने, और अपने मॉडलों को एंडपॉइंट्स के रूप में सर्व करने की सुविधा देता है। इस लेख में, हम विस्तार से समझेंगे कि MLflow क्या है और आप अपने मशीन लर्निंग प्रयोगों को ट्रैक और डिप्लॉय करने के लिए इस शानदार ओपन-सोर्स प्लेटफ़ॉर्म का लाभ कैसे उठा सकते हैं।
यदि आप MLOps पर नज़दीकी नज़र डालना चाहते हैं, तो हमारा Machine Learning, Pipelines, Deployment, and MLOps Tutorial देखें।
MLFlow एंड-टू-एंड मशीन लर्निंग लाइफसाइकल को प्रबंधित करने के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म है। यह प्रयोगों को ट्रैक करने, कोड और मॉडलों को साझा करने, और मॉडलों को प्रोडक्शन में डिप्लॉय करने के लिए एक केंद्रीय स्थान प्रदान करता है। MLflow लोकप्रिय ML टूलकिट्स के लिए कई बिल्ट-इन एल्गोरिदम और पैकेज भी शामिल करता है। इसके चार प्राथमिक फ़ंक्शन हैं:

छवि स्रोत: https://www.databricks.com/wp-content/uploads/2021/02/mlflow-components2.png
MLflow किसी एक लाइब्रेरी से बंधा नहीं है। चूंकि सभी फ़ंक्शंस को REST API और कमांड लाइन इंटरफ़ेस के माध्यम से एक्सेस किया जा सकता है, आप इसे किसी भी मशीन लर्निंग लाइब्रेरी और किसी भी प्रोग्रामिंग भाषा के साथ उपयोग कर सकते हैं। आपकी सुविधा के लिए प्रोजेक्ट में एक Python API, एक R API, और एक Java API शामिल हैं।
जब आप मशीन लर्निंग कोड चलाते हैं, तो MLflow Tracking कंपोनेंट पैरामीटर्स, कोड वर्ज़न, मेट्रिक्स और आउटपुट फ़ाइलों को लॉग करने के लिए एक API और एक ग्राफिकल यूज़र इंटरफ़ेस (UI) प्रदान करता है। बाद में, आप लॉगिंग के परिणामों का विज़ुअलाइज़ेशन कर सकते हैं। MLflow Tracking की बदौलत आप Python, REST, R API और Java API का उपयोग करके प्रयोगों को लॉग और क्वेरी भी कर सकते हैं।
MLflow Tracking का संगठन रन के कॉन्सेप्ट के इर्द-गिर्द होता है। प्रत्येक रन प्रमुख जानकारी और मेटाडेटा रिकॉर्ड करता है, जैसे आरंभ और समाप्ति समय, सोर्स फ़ाइल, पैरामीटर्स, आर्टिफैक्ट्स, मेट्रिक्स, टैग्स आदि।
आप कहीं से भी, चाहे आपका कोड जहाँ भी चल रहा हो, MLflow के Python, R, या Java APIs का उपयोग करके रन रिकॉर्ड कर सकते हैं। उदाहरण के लिए, आप उन्हें एक स्टैंडअलोन प्रोग्राम में, किसी रिमोट क्लाउड मशीन पर, या किसी इंटरैक्टिव नोटबुक में रिकॉर्ड कर सकते हैं।
इसी प्रकार, आप व्यक्तिगत रन को एक्सपेरिमेंट्स में व्यवस्थित कर सकते हैं, जो किसी विशेष उद्देश्य के लिए एक साथ समूहित रन का संग्रह होते हैं। किसी एक्सपेरिमेंट को बनाने के लिए कमांड-लाइन इंटरफ़ेस (CLI), mlflow.create experiment() मेथड या REST API जैसी कुछ विधियाँ हैं। उपयोगकर्ता MLflow UI का उपयोग करके भी एक्सपेरिमेंट बना सकते हैं।
यदि आपको आवश्यकता हो, तो आप MLflow रन की रिकॉर्डिंग्स को लोकली फ़ाइलों में सहेज सकते हैं, उन्हें SQLAlchemy के साथ संगत डेटाबेस में अपलोड कर सकते हैं, या उन्हें किसी रिमोट ट्रैकिंग सर्वर पर अपलोड कर सकते हैं। MLflow Python API डिफ़ॉल्ट रूप से आपके प्रोग्राम के चलने वाले स्थान की mlruns डायरेक्टरी में लोकली फ़ाइलों में रन लॉग करता है। उसके बाद, आप mlflow ui एप्लिकेशन शुरू करके लॉग किए गए रनों को देख सकते हैं।

छवि स्रोत: https://mlflow.org/docs/latest/_images/scenario_1.png
MLflow Projects आपके मशीन लर्निंग कोड को एक पुन: प्रयोज्य और पुनरुत्पाद्य (रीप्रोड्यूसिबल) तरीके से स्ट्रक्चर करने का एक तरीका है। आप प्रोजेक्ट्स को किसी भी मशीन लर्निंग लाइब्रेरी और डेवलपमेंट वातावरण के साथ उपयोग कर सकते हैं। प्रत्येक प्रोजेक्ट एक डायरेक्टरी से बना होता है जिसमें एक MLproject फ़ाइल होती है, जो प्रोजेक्ट के वातावरण और पैरामीटर्स का वर्णन करती है, और मशीन लर्निंग कोड वाली फ़ाइलों का सेट होता है।
MLflow फिलहाल निम्न प्रकार के प्रोजेक्ट वातावरणों का समर्थन करता है:
MLProject फ़ाइल जोड़कर, जो कि एक साधारण YAML फ़ाइल है, आप MLflow प्रोजेक्ट पर और अधिक सूक्ष्म नियंत्रण प्राप्त कर सकते हैं। नीचे MLProject फ़ाइल का उदाहरण दिया गया है:

स्रोत: https://mlflow.org/docs/latest/projects.html#overview
जब प्रोजेक्ट में MLproject फ़ाइल नहीं होती, तो कुछ डिफ़ॉल्ट परंपराएँ होती हैं जिन्हें MLflow मान लेता है, जैसे:

MLflow Model मशीन लर्निंग मॉडलों को पैकेज करने का एक मानकीकृत फ़ॉर्मेट है, जिसे आगे पाइपलाइन में विभिन्न टूल्स में उपयोग किया जा सकता है। इसमें REST API के माध्यम से रीयल-टाइम सर्विंग या बैच इन्फरेंस प्रक्रिया शामिल हो सकती है। MLflow Model, MLflow के प्रमुख कंपोनेंट्स में से एक है। यह एक प्रोटोकॉल निर्दिष्ट करता है जो मॉडल को कई विशिष्ट "फ्लेवर" में सहेजने में सक्षम बनाता है, जिनमें से प्रत्येक को अलग-अलग डाउनस्ट्रीम टूल्स का एक सेट समझ सकता है।
प्रत्येक MLflow Model वास्तव में एक डायरेक्टरी होती है जो मनमानी फ़ाइलों को MLmodel फ़ाइल के साथ संग्रहीत करती है, जो डायरेक्टरी के आधार पर स्थित होती है और उन कई फ्लेवर्स को परिभाषित कर सकती है जिनमें मॉडल को देखा जा सकता है। इन फ़ाइलों को सामूहिक रूप से MLflow Model कहा जाता है।
MLflow Models की ताकत के पीछे का मूल विचार उनके द्वारा फ्लेवर्स का उपयोग है, जो डिप्लॉयमेंट टूल्स के लिए मॉडल को समझने का एक मानक का काम करते हैं। इससे डेवलपर्स ऐसे टूल बना सकते हैं जो किसी भी ML लाइब्रेरी के मॉडलों के साथ इंटरैक्ट कर सकें, बिना प्रत्येक टूल को प्रत्येक लाइब्रेरी के साथ एकीकृत किए। MLflow के सभी बिल्ट-इन डिप्लॉयमेंट टूल्स द्वारा समर्थित एक "मानक" फ्लेवर "Python Function" है, जो यह बताता है कि मॉडल को Python फ़ंक्शन के रूप में कैसे चलाना है।
Scikit-learn फ्लेवर का उपयोग करने वाले MLflow Models डायरेक्टरी का उदाहरण:

छवि स्रोत: https://mlflow.org/docs/latest/models.html
MLflow निम्नलिखित लाइब्रेरीज़ (मॉडल फ्लेवर्स के रूप में) का आउट-ऑफ-द-बॉक्स समर्थन करता है:
MLflow Model Registry ML मॉडलों को स्टोर और वर्ज़न करने के लिए एक केंद्रीय रिपॉज़िटरी है। यह मॉडलों की वंशावली (लाइनएज) ट्रैक करने, मॉडलों की तुलना करने और उन्हें डिप्लॉय करने का तरीका प्रदान करता है।
MLflow Model Registry कंपोनेंट APIs और एक यूज़र इंटरफ़ेस का सेट है जो किसी MLflow Model के पूरे लाइफसाइकल को सहयोगात्मक रूप से प्रबंधित करता है।
मॉडल रजिस्ट्री का उपयोग यूज़र इंटरफ़ेस (UI) या एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (API) के माध्यम से करने के लिए, Model Registry उपयोग में एक डेटाबेस-समर्थित बैकएंड स्टोर की आवश्यकता होती है।
MLflow UI का उपयोग करके मॉडल रजिस्टर करना:

छवि स्रोत: https://mlflow.org/docs/latest/model-registry.html#concepts
MLflow Pipelines एक नई क्षमता है और अभी भी प्रायोगिक मोड में है।
MLflow Pipelines, जो MLOps वर्कफ़्लोज़ को संरचित करने के लिए एक ओपिनिएटेड फ्रेमवर्क है, मशीन लर्निंग अनुप्रयोगों के विकास और प्रोडक्शनाइजेशन को आसान और अधिक मानकीकृत बनाता है। MLflow Pipelines की बदौलत डेटा वैज्ञानिकों के पास उच्च-गुणवत्ता वाले मॉडल बनाने पर ध्यान केंद्रित करने के लिए अधिक समय होता है, क्योंकि यह प्रोडक्शन-रेडी ML डिलीवेरेबल्स बनाते समय उद्योग मानकों का पालन करना आसान बना देता है।
MLflow Pipelines मशीन लर्निंग इंजीनियरों और DevOps टीमों के लिए इन मॉडलों को ऐप्स में एम्बेड करना और उन्हें निर्बाध रूप से प्रोडक्शन में जारी करना भी संभव बनाता है।
MLflow Pipelines सामान्य मशीन लर्निंग समस्या प्रकारों (जैसे रिग्रेशन और क्लासिफिकेशन) और MLOps ऑपरेशंस (जैसे बैच स्कोरिंग) के लिए प्रोडक्शन-क्वालिटी पाइपलाइन टेम्प्लेट प्रदान करता है। पाइपलाइन्स को YAML-आधारित कॉन्फ़िगरेशन फ़ाइलों और Python कोड के साथ git रिपॉज़िटरीज़ के रूप में संरचित किया जाता है। यह डेवलपर्स को ML अनुप्रयोगों के निर्माण के लिए एक डिक्लेरेटिव दृष्टिकोण प्रदान करता है, जो बोयलरप्लेट कोड की मात्रा को कम करता है।
MLflow Pipelines पाइपलाइन स्टेप्स के लिए एक कैश-अवेयर एग्ज़ीक्यूटर भी लागू करता है। यह सुनिश्चित करता है कि केवल तभी स्टेप्स चलाए जाएँ जब संबंधित कोड या कॉन्फ़िगरेशन में बदलाव हुआ हो। इसकी वजह से डेटा वैज्ञानिक, मशीन लर्निंग इंजीनियर और DevOps टीमें अपने-अपने विशेषज्ञ क्षेत्रों में बहुत तेज़ी से इटरेट कर सकती हैं। इसके अलावा, पाइपलाइन्स को चलाना और उनके आउटपुट की जाँच करना MLflow द्वारा प्रदान किए गए APIs और कमांड लाइन इंटरफ़ेस (CLI) के माध्यम से किया जा सकता है।
|
आधुनिक टूल्स के साथ प्रोडक्शन में मशीन लर्निंग मॉडलों को डिप्लॉय करना आसान लगता है, लेकिन अक्सर निराशा होती है क्योंकि मॉडल प्रोडक्शन में डेवलपमेंट की तुलना में खराब प्रदर्शन करता है। यदि आप सीखना चाहते हैं कि Python में ऐसे मशीन लर्निंग वर्कफ़्लो कैसे डिज़ाइन करें जो समय की कसौटी पर खरे उतरें, तो हमारा Designing Machine Learning Workflows in Python कोर्स देखें। |
अब जब आप समझ गए हैं कि MLflow क्या है, तो इस क्षेत्र में एक बहुत सामान्य प्रश्न उठता है; MLflow और Kubeflow में क्या अंतर है?
पहले, Kubeflow क्या है?
Kubeflow एक ओपन-सोर्स प्रोजेक्ट है जिसमें सावधानीपूर्वक चुने गए टूल्स और फ्रेमवर्क्स का सेट शामिल है। Kubeflow का प्राथमिक लक्ष्य पोर्टेबल, स्केलेबल मशीन लर्निंग वर्कफ़्लोज़ को विकसित, डिप्लॉय और प्रबंधित करना आसान बनाना है।
Kubeflow, Kubernetes पर आधारित है, जो कंटेनरों को चलाने और ऑर्केस्ट्रेट करने के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म है। Kubernetes अलग-अलग वातावरणों में लगातार चलने के लिए बनाया गया है, जो Kubeflow के काम करने के तरीके की कुंजी है।
Kubeflow के बारे में अधिक जानने के लिए हमारा विस्तृत Kubeflow ट्यूटोरियल पढ़ें।
जब MLflow और Kubeflow की तुलना की जाती है, तो इन दोनों प्रोजेक्ट्स के बीच एकमात्र समानता यह है कि दोनों ओपन-सोर्स हैं, पर ये पूरी तरह अलग ज़रूरतों की पूर्ति करते हैं। Kubeflow, Kubernetes पर मशीन लर्निंग अनुप्रयोगों को विकसित, डिप्लॉय और प्रबंधित करने के लिए एक ओपन-सोर्स कंटेनर ऑर्केस्ट्रेशन सिस्टम है। दूसरी ओर, MLflow एक Python लाइब्रेरी है जो ऑर्केस्ट्रेशन वातावरण की परवाह किए बिना प्रयोगों के ट्रैकिंग और मॉडल वर्ज़निंग/डिप्लॉयमेंट के लिए है।
MLflow का उपयोग करना बेहद आसान है। आपके मौजूदा कोड में MLflow लॉगिंग को एकीकृत करने के लिए केवल कुछ पंक्तियों के कोड की आवश्यकता होती है। लेकिन पहले, आपको pip का उपयोग करके MLflow इंस्टॉल करना होगा।
# install mlflow
pip install mlflow
आइए एक साधारण Python स्क्रिप्ट बनाते हैं जो लॉजिस्टिक रिग्रेशन मॉडल को ट्रेन करे और MLflow का उपयोग करके मेट्रिक और मॉडल को लॉग करे। यह MLflow का आधिकारिक उदाहरण है, यहाँ से पुनरुत्पादित।
import numpy as np
from sklearn.linear_model import LogisticRegression
import mlflow
import mlflow.sklearn
if __name__ == "__main__":
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr = LogisticRegression()
lr.fit(X, y)
score = lr.score(X, y)
print("Score: %s" % score)
mlflow.log_metric("score", score)
mlflow.sklearn.log_model(lr, "model")
print("Model saved in run %s" % mlflow.active_run().info.run_uuid)
आउटपुट:
>>> Score: 0.6666666666666666
>>> Model saved in run 9def2bd1c55b4f0985aa5c050b8f71cd
आप अपने Python फ़ाइल वाली उसी डायरेक्टरी में कमांड लाइन टर्मिनल पर `mlflow ui` टाइप करके MLflow UI शुरू कर सकते हैं।
mlflow ui
फिर https://localhost:5000 पर जाएँ, और आपको यह पेज दिखाई देगा:

आप देख सकते हैं कि हमारे पास केवल एक रिकॉर्ड है, यानी वह मॉडल जिसे हमने ऊपर दी गई स्क्रिप्ट में ट्रेन और लॉग किया था। नाम पर क्लिक करें, और आपको एक विस्तृत पेज दिखाई देगा:

|
अभी अपने कौशल को बढ़ाएँ! आज ही नामांकन करें: Machine Learning Scientist with Python मशीन लर्निंग वैज्ञानिक की नौकरी पाने के लिए आवश्यक कौशल में महारत हासिल करें। आप अपने Python प्रोग्रामिंग कौशल सेट को सुपरवाइज़्ड, अनसुपरवाइज़्ड और डीप लर्निंग करने के टूलबॉक्स के साथ समृद्ध करेंगे। आप सीखेंगे:
|
MLflow एक ओपन-सोर्स प्लेटफ़ॉर्म और एंड-टू-एंड मशीन लर्निंग लाइफसाइकल को प्रबंधित करने के लिए एक बेहतरीन टूल है। इसे Databricks ने बनाया है, जो लोकप्रिय Apache Spark प्लेटफ़ॉर्म के पीछे की कंपनी है, और इसे किसी भी मशीन लर्निंग लाइब्रेरी, एल्गोरिदम, या भाषा के साथ काम करने के लिए डिज़ाइन किया गया है।
MLflow मशीन लर्निंग डेवलपर्स और डेटा वैज्ञानिकों के लिए कई फायदे प्रदान करता है। यह प्रयोगों को ट्रैक करने और मशीन लर्निंग प्रोजेक्ट्स को प्रबंधित करने के लिए एक केंद्रीय स्थान प्रदान करता है। यह सहयोग के लिए एक मूल्यवान टूल हो सकता है, क्योंकि यह विभिन्न टीम सदस्यों को यह देखने की अनुमति देता है कि अन्य लोग क्या कर रहे हैं और परिणामों की तुलना करने देता है।
MLflow डेटा प्रीप्रोसेसिंग से लेकर मॉडल ट्रेनिंग और डिप्लॉयमेंट तक, मशीन लर्निंग वर्कफ़्लो को स्वचालित कर सकता है। इससे समय और मेहनत बच सकती है और परिणामों को पुन: उत्पन्न करना आसान हो सकता है।
कुल मिलाकर, MLflow मशीन लर्निंग प्रोजेक्ट्स के प्रबंधन के लिए एक मूल्यवान टूल है। यह आपको प्रयोगों को ट्रैक करने, वर्कफ़्लो को स्वचालित करने और मॉडलों को ऑप्टिमाइज़ करने में मदद कर सकता है। यदि आप मशीन लर्निंग प्रोजेक्ट्स पर काम कर रहे हैं, तो आपको निश्चित रूप से MLflow को देखना चाहिए।
|
यदि आप अपने कौशल को निखारना चाहते हैं और व्यवसाय जगत में मशीन लर्निंग की बुनियाद और उसके अनुप्रयोग को समझना चाहते हैं, तो DataCamp पर हमारा Machine Learning for Business कोर्स देखें। |
मशीन लर्निंग कोर्स
कोर्स
कोर्स