MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना
शिक्षार्थी mlflow.log_param और mlflow.log_metric से प्रशिक्षण स्क्रिप्ट में लॉगिंग जोड़ेंगे, MLflow UI शुरू करेंगे और अलग-अलग हाइपरपैरामीटर सेटिंग वाले रन की तुलना करेंगे।
MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना, CoddyKit पर Machine Learning Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Machine Learning Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Machine Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
प्रयोग ट्रैक करना क्यों महत्वपूर्ण है
जब आप अलग-अलग हाइपरपैरामीटर के साथ कई मॉडल प्रशिक्षित करते हैं, तो यह भूलना आसान होता है कि किस रन ने सबसे अच्छा परिणाम दिया। प्रयोग ट्रैकिंग हर प्रशिक्षण रन के पैरामीटर, मेट्रिक्स और कोड संस्करण को खोजे जा सकने वाले डेटाबेस में अपने-आप दर्ज करती है। इसके बिना टीमें अव्यवस्थित स्प्रेडशीट पर निर्भर हो जाती हैं या simplesmente भूल जाती हैं कि क्या काम किया। MLflow ML प्रयोगों को ट्रैक करने और मॉडल के जीवनचक्र को प्रबंधित करने का उद्योग-मानक ओपन-सोर्स टूल है।
MLflow इंस्टॉल करना और शुरू करना
MLflow एक शुद्ध Python पैकेज है, जिसे शुरू करने के लिए किसी बाहरी डेटाबेस की आवश्यकता नहीं होती—यह रन को स्थानीय रूप से mlruns/ डायरेक्टरी में सहेजता है। pip से इंस्टॉल करें, फिर ब्राउज़र में रन देखने के लिए ट्रैकिंग UI शुरू करें। UI सभी प्रयोग, प्रत्येक रन के पैरामीटर और मेट्रिक्स दिखाता है तथा इंटरैक्टिव चार्ट के साथ रन की अगल-बगल तुलना करने देता है।
# Install MLflow
# pip install mlflow scikit-learn
import mlflow
import mlflow.sklearn
# Start the tracking UI (run this in a terminal):
# mlflow ui --host 0.0.0.0 --port 5000
# Then open http://localhost:5000
# Check MLflow version
print('MLflow version:', mlflow.__version__)
# Default tracking URI stores to ./mlruns
print('Tracking URI:', mlflow.get_tracking_uri())प्रयोग बनाना
MLflow रन को प्रयोगों में व्यवस्थित करता है—ये संबंधित रन के तार्किक समूह होते हैं। mlflow.set_experiment से नामित प्रयोग बनाएँ। इसके बाद के सभी रन इसी प्रयोग का हिस्सा होंगे। ऐसे वर्णनात्मक नामों का उपयोग करें जिनसे प्रोजेक्ट और तारीख की पहचान हो सके, जैसे 'random_forest_imdb_2024'। किसी प्रयोग के प्रत्येक रन को एक विशिष्ट ID, मनुष्य द्वारा पढ़ा जा सकने वाला नाम और अपना पैरामीटर/मेट्रिक/आर्टिफैक्ट स्टोर मिलता है।
import mlflow
# Create or switch to an experiment
experiment_name = 'sentiment_classification'
mlflow.set_experiment(experiment_name)
# List all experiments
for exp in mlflow.search_experiments():
print(f'ID: {exp.experiment_id} Name: {exp.name}')
# Get current experiment info
experiment = mlflow.get_experiment_by_name(experiment_name)
print('Artifact location:', experiment.artifact_location)mlflow.log_param से पैरामीटर लॉग करना
पैरामीटर प्रशिक्षण शुरू होने से पहले किए गए कॉन्फ़िगरेशन विकल्प होते हैं: लर्निंग रेट, एस्टिमेटरों की संख्या और नियमितीकरण की शक्ति जैसे हाइपरपैरामीटर। सक्रिय रन संदर्भ के भीतर mlflow.log_param(key, value) से उन्हें लॉग करें। लॉग किए जाने के बाद पैरामीटर अपरिवर्तनीय होते हैं—वे प्रयोग का सेटअप निर्धारित करते हैं और आपको रन को फ़िल्टर करके सबसे अच्छी तरह काम करने वाली कॉन्फ़िगरेशन खोजने में मदद करते हैं।
import mlflow
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
with mlflow.start_run(run_name='rf_baseline'):
n_estimators = 100
max_depth = 5
mlflow.log_param('n_estimators', n_estimators)
mlflow.log_param('max_depth', max_depth)
mlflow.log_param('random_state', 42)
clf = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth, random_state=42)
clf.fit(X_train, y_train)
print('Params logged.')mlflow.log_metric से मेट्रिक्स लॉग करना
मेट्रिक्स प्रशिक्षण के दौरान और उसके बाद प्राप्त मात्रात्मक परिणाम होते हैं: सटीकता, F1 और लॉस मान। उन्हें mlflow.log_metric(key, value) से लॉग करें, या युगों के दौरान प्रगति ट्रैक करने के लिए mlflow.log_metric(key, value, step=i) का उपयोग करें। प्रत्येक युग पर मेट्रिक्स लॉग करने से MLflow UI में सीखने के वक्र बना सकता है, जिससे विभिन्न रन की अभिसरण गति की तुलना करना आसान हो जाता है।
import mlflow
from sklearn.metrics import accuracy_score, f1_score
with mlflow.start_run(run_name='rf_run_1'):
mlflow.log_param('n_estimators', 100)
mlflow.log_param('max_depth', 5)
# Train model (abbreviated)
clf = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=42)
clf.fit(X_train, y_train)
preds = clf.predict(X_test)
acc = accuracy_score(y_test, preds)
f1 = f1_score(y_test, preds)
mlflow.log_metric('test_accuracy', acc)
mlflow.log_metric('test_f1', f1)
print(f'Logged accuracy={acc:.4f}, f1={f1:.4f}')आर्टिफैक्ट लॉग करना
आर्टिफैक्ट किसी रन से जुड़ी फ़ाइलें होती हैं: प्रशिक्षित मॉडल के वेट, प्लॉट, कन्फ्यूज़न मैट्रिक्स या फ़ीचर महत्त्व के चार्ट। इन्हें mlflow.log_artifact(local_path) से लॉग करें। MLflow फ़ाइल को रन की आर्टिफैक्ट डायरेक्टरी में संग्रहीत करता है और UI से डाउनलोड करने योग्य बनाता है। मेट्रिक्स के साथ कन्फ्यूज़न मैट्रिक्स की इमेज लॉग करने पर समीक्षकों को कोड में जाए बिना पूरी तस्वीर मिल जाती है।
import mlflow
import matplotlib.pyplot as plt
from sklearn.metrics import ConfusionMatrixDisplay
import numpy as np
with mlflow.start_run():
clf.fit(X_train, y_train)
preds = clf.predict(X_test)
# Save confusion matrix as an artifact
fig, ax = plt.subplots(figsize=(5, 4))
ConfusionMatrixDisplay.from_predictions(y_test, preds, ax=ax)
plt.tight_layout()
plt.savefig('/tmp/confusion_matrix.png')
plt.close()
mlflow.log_artifact('/tmp/confusion_matrix.png')
print('Artifact logged.')mlflow.sklearn.autolog के साथ स्वचालित लॉगिंग
scikit-learn के लिए MLflow स्वचालित लॉगिंग उपलब्ध कराता है, जो बिना किसी मैन्युअल लॉग कॉल के सभी पैरामीटर, मेट्रिक्स और प्रशिक्षित मॉडल को अपने-आप दर्ज कर लेती है। फ़िट करने से पहले बस mlflow.sklearn.autolog() कॉल करें। स्वचालित लॉगिंग XGBoost, LightGBM, PyTorch, TensorFlow और अन्य प्रणालियों के लिए भी इसी तरह एक-पंक्ति सक्रियण के साथ उपलब्ध है। मौजूदा प्रशिक्षण कोड में बदलाव किए बिना ट्रैकिंग शुरू करने का यह सबसे तेज़ तरीका है।
import mlflow
import mlflow.sklearn
from sklearn.ensemble import GradientBoostingClassifier
# Enable auto-logging -- no manual log calls needed
mlflow.sklearn.autolog()
with mlflow.start_run(run_name='gb_autolog'):
clf = GradientBoostingClassifier(n_estimators=200, max_depth=3, learning_rate=0.05)
clf.fit(X_train, y_train)
# MLflow automatically logs:
# - All constructor params
# - Training accuracy
# - Model artifact
print('Auto-logged run complete.')MLflow UI में रन की तुलना
अलग-अलग हाइपरपैरामीटर के साथ कई रन करने के बाद MLflow UI को http://localhost:5000 पर खोलें। चेकबॉक्स से कई रन चुनें और उन्हें अगल-बगल देखने के लिए तुलना करें पर क्लिक करें। तुलना पृष्ठ पर समानांतर निर्देशांक वाला प्लॉट दिखता है, जिसमें प्रत्येक अक्ष एक पैरामीटर या मेट्रिक होता है। इससे यह पहचानना आसान हो जाता है कि किस पैरामीटर संयोजन से सबसे अधिक सटीकता मिली। आप रन तालिका को किसी भी मेट्रिक कॉलम के आधार पर क्रमबद्ध भी कर सकते हैं।
import mlflow
# Search runs programmatically (useful in CI/CD pipelines)
runs = mlflow.search_runs(
experiment_names=['sentiment_classification'],
order_by=['metrics.test_accuracy DESC']
)
if not runs.empty:
best_run = runs.iloc[0]
print('Best run ID:', best_run['run_id'])
print('Best accuracy:', best_run['metrics.test_accuracy'])
print('n_estimators:', best_run['params.n_estimators'])
print('max_depth:', best_run['params.max_depth'])mlflow.sklearn.log_model के साथ मॉडल लॉग करना
मॉडल फ़ाइलों को सामान्य आर्टिफैक्ट के रूप में लॉग करने के अलावा, मॉडल को MLflow के मानकीकृत प्रारूप में लॉग करने के लिए mlflow.sklearn.log_model का उपयोग करें। इस प्रारूप में मॉडल ऑब्जेक्ट, उसका फ़्लेवर मेटाडेटा और अपने-आप बनाई गई MLmodel कॉन्फ़िगरेशन फ़ाइल शामिल होती है। मानकीकृत प्रारूप से स्थानीय REST सर्वर (mlflow models serve) और Azure ML तथा AWS SageMaker जैसे क्लाउड प्लेटफ़ॉर्म पर एक-क्लिक परिनियोजन संभव होता है।
import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
with mlflow.start_run(run_name='rf_logged_model'):
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
mlflow.log_metric('accuracy', accuracy_score(y_test, clf.predict(X_test)))
# Log in sklearn flavour -- enables mlflow models serve
mlflow.sklearn.log_model(
sk_model=clf,
artifact_path='random_forest',
registered_model_name='SentimentRF'
)
print('Model registered in Model Registry.')संगठन के लिए रन को टैग करना
MLflow रन में टैग हो सकते हैं: ऐसे कुंजी-मान मेटाडेटा जो संरचित पैरामीटर और मेट्रिक्स से आगे की जानकारी देते हैं। डेटासेट संस्करण, कोड कमिट हैश, प्रयोगकर्ता का नाम या किए गए बदलावों से जुड़े नोट संग्रहीत करने के लिए टैग का उपयोग करें। UI में टैग खोजे और फ़िल्टर किए जा सकते हैं। टैग करने की अच्छी परंपरा — जैसे हमेशा dataset_version और git_sha लॉग करना — यह सुनिश्चित करती है कि हर रन महीनों बाद भी दोहराने योग्य और ऑडिट योग्य रहे।
import mlflow
import subprocess
def get_git_sha():
try:
return subprocess.check_output(
['git', 'rev-parse', 'HEAD'], text=True
).strip()
except Exception:
return 'unknown'
with mlflow.start_run():
mlflow.set_tag('dataset_version', 'imdb_v2')
mlflow.set_tag('git_sha', get_git_sha())
mlflow.set_tag('author', 'mehmet.canker')
mlflow.set_tag('notes', 'Testing higher max_depth after previous plateau')
mlflow.log_param('max_depth', 8)
print('Run tagged.')दूरस्थ ट्रैकिंग सर्वर का सेटअप
टीम के सहयोग के लिए MLflow को स्थानीय mlruns/ फ़ोल्डर के बजाय किसी दूरस्थ ट्रैकिंग सर्वर से जोड़ें। किसी भी MLflow कॉल से पहले ट्रैकिंग URI को अपने सर्वर के URL पर सेट करें। टीम के सभी सदस्य एक ही सर्वर पर लॉग करते हैं, एक-दूसरे के रन देखते हैं और साझा आर्टिफैक्ट तक पहुँचते हैं। सर्वर का बैकएंड मेटाडेटा के लिए PostgreSQL डेटाबेस और आर्टिफैक्ट संग्रहण के लिए S3/GCS का उपयोग कर सकता है, जिससे उच्च स्तर की टिकाऊपन और पहुँच नियंत्रण मिलता है।
import mlflow
import os
# Point to a remote MLflow tracking server
os.environ['MLFLOW_TRACKING_URI'] = 'http://mlflow.yourcompany.com:5000'
os.environ['MLFLOW_TRACKING_USERNAME'] = 'data_team'
os.environ['MLFLOW_TRACKING_PASSWORD'] = 'secret'
mlflow.set_tracking_uri(os.environ['MLFLOW_TRACKING_URI'])
# All subsequent mlflow calls go to the remote server
mlflow.set_experiment('shared_team_experiment')
with mlflow.start_run():
mlflow.log_param('model_type', 'xgboost')
mlflow.log_metric('auc', 0.94)
print('Logged to remote server.')त्वरित जाँच
इस पाठ में दिए गए Python के साथ मशीन लर्निंग संबंधी अवधारणाओं की अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस पाठ में आपने सीखा: MLflow खोजे जा सकने वाले डेटाबेस में हर प्रशिक्षण रन के पैरामीटर, मेट्रिक्स और आर्टिफैक्ट ट्रैक करता है, mlflow.sklearn.autolog() बिना मैन्युअल लॉग कॉल के सब कुछ अपने-आप दर्ज करता है, और sklearn फ़्लेवर में लॉग किए गए मॉडल REST API के रूप में उपलब्ध कराए जा सकते हैं या Model Registry के माध्यम से आगे बढ़ाए जा सकते हैं। आगे हम ML प्रशिक्षण के लिए दोहराने योग्य Docker कंटेनर बनाएँगे, ताकि मशीनों के बीच वातावरण के अंतर समाप्त किए जा सकें।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना” पाठ निःशुल्क है?
हाँ—“MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Machine Learning Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Machine Learning Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना” में मैं क्या सीखूँगा?
शिक्षार्थी mlflow.log_param और mlflow.log_metric से प्रशिक्षण स्क्रिप्ट में लॉगिंग जोड़ेंगे, MLflow UI शुरू करेंगे और अलग-अलग हाइपरपैरामीटर सेटिंग वाले रन की तुलना करेंगे। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Machine Learning Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Machine Learning Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Machine Learning Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Machine Learning Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Machine Learning Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- MLflow के साथ प्रयोग ट्रैकिंग: पैरामीटर, मेट्रिक और आर्टिफैक्ट लॉग करना
- मशीन लर्निंग के लिए Docker से पुनरुत्पाद्य वातावरण
- मॉडल रजिस्ट्री: स्टेजिंग, प्रोडक्शन और संग्रहण
- GitHub Actions के साथ स्वचालित पुनर्प्रशिक्षण पाइपलाइन