ایم فلو میں رن تلاش کرنا

Aym Flw My Rn Tlash Krna



مشین لرننگ کے تجربات کو ٹریک کرنے اور ان کا نظم کرنے کے لیے، MLflow ایک وسیع پلیٹ فارم پیش کرتا ہے۔ رنز کو تلاش کرنے کی صلاحیت کا ہونا MLflow کی اہم خصوصیات میں سے ایک ہے۔ اس سے ترقی یافتہ تجربات کی شناخت اور انہیں اس طرح ترتیب دینا ممکن ہو جاتا ہے کہ جب بھی ضرورت ہو معلومات کو تلاش کرنا آسان ہو جائے۔ ہم MLflow سرچ API کا استعمال کرتے ہوئے کئی مختلف معیارات کا استعمال کرتے ہوئے رنز تلاش کر سکتے ہیں جس میں درج ذیل شامل ہو سکتے ہیں:
  • تجربہ ID یا نام
  • آئی ڈی چلائیں۔
  • پیرامیٹرز اور اقدار
  • میٹرکس اور ویلیوز
  • ٹیگز
  • دیگر صفات جو رنز کے ساتھ وابستہ ہیں۔

ایم ایل فلو سرچ API کے استعمال سے رن کو سٹیٹس، اسٹارٹ ٹائم، فینش ٹائم، اور دورانیہ کے حساب سے فلٹر کیا جا سکتا ہے۔ یہ بہت سے رنز کے ذریعے فلٹر کرنا اور مخصوص رنز کو تلاش کرنا آسان بناتا ہے جس میں صارفین دلچسپی رکھتے ہیں۔

ایم ایل فلو سرچ فنکشن

MLflow تلاش API تک رسائی کے لیے mlflow.search_runs() فنکشن استعمال کریں۔ یہ فنکشن مختلف قسم کے دلائل کو قبول کرتا ہے جیسے کہ درج ذیل:







  • تجربہ ID یا نام
  • سٹرنگ یا ٹیکسٹ کو فلٹر کریں۔
  • واپسی کے لیے رنز کی زیادہ سے زیادہ تعداد کا تعین max_results دلیل سے کیا جاتا ہے۔

ایس کیو ایل (سٹرکچرڈ کوئوری لینگویج) کا ایک آسان شکل جہاں شق فلٹر سٹرنگ یا ٹیکسٹ ہے۔ اس کا استعمال اس معیار کی نشاندہی کرنے کے لیے کیا جا سکتا ہے جس کے ذریعے ہم رنز کو ترتیب دینا چاہتے ہیں۔



MLflow Search_Runs() فنکشن کا نحو

ہم جس تجربے کے اندر تلاش کرنا چاہتے ہیں اس کی اصل ID یا نام کو درج ذیل مثال میں 'experiment_id یا experiment_name' کا متبادل ہونا چاہیے۔ search_criteria متغیر مطلوبہ تلاش کے معیار کو داخل کرنے کی اجازت دیتا ہے۔ ان معیارات کا تعین میٹرکس، ٹیگز، پیرامیٹرز یا اضافی خصوصیات سے کیا جا سکتا ہے۔ search_runs() فنکشن کا بنیادی نحو درج ذیل ہے:



# search_runs فنکشن استعمال کرنے کے لیے mlflow سرچ API درآمد کریں۔

درآمد ایم ایل فلو

# کچھ تجربہ کی شناخت یا نام فراہم کریں (یہ اختیاری ہے؛)

exp_id = 'تجربہ ID یا NAME'

# رنز کے لیے تلاش کے معیار کی وضاحت کریں۔

سرچ_سٹرنگ = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' اور params.efficiency_rate > '80''

# تلاش کریں۔

چلتا ہے = ایم ایل فلو تلاش_رن ( experiment_ids = exp_id , فلٹر_سٹرنگ = سرچ_سٹرنگ )

# نتائج دکھائیں۔

پرنٹ کریں ( 'تلاش کے نتائج:' )

پرنٹ کریں ( چلتا ہے )

متعدد معیارات کا استعمال کرتے ہوئے ایک تلاش چلائیں۔

1. میٹرک ویلیو کے لحاظ سے تلاش کریں۔

MLflow سرچ API میں میٹرکس فیلڈ کا استعمال کرتے ہوئے مخصوص میٹرکس کی قدروں سے رنز کو فلٹر کیا جا سکتا ہے۔ کوما سے الگ کیے گئے میٹرک ناموں کا مجموعہ میٹرکس فیلڈ میں ظاہر ہوتا ہے۔ مثال کے طور پر، درج ذیل فلٹر سٹرنگ 0.9 سے زیادہ درستگی کی قدر کے ساتھ تمام رنز کا پتہ لگاتی ہے:





میٹرکس درستگی > 0.9

میٹرکس فیلڈ میں استعمال کے لیے دستیاب میٹرکس کی مکمل فہرست درج ذیل ہے:

  • درستگی
  • auc
  • f1
  • صحت سے متعلق
  • یاد کرنا
  • نقشہ
  • لاگلاس
  • درجہ بندی_غلطی
  • ملٹی_کلاس_لوگلوس

مزید برآں، صارفین میٹرکس فیلڈ کا استعمال کرتے ہوئے میٹرک کی قدروں کی حد سے رنز کو فلٹر کر سکتے ہیں۔ مثال کے طور پر، اگلی فلٹر سٹرنگ ان تمام رنز کو تلاش کرتی ہے جن کی درستگی کی پیمائش 0.4 اور 0.8 کے درمیان ہوتی ہے:



میٹرکس درستگی کے درمیان 0.4 اور 0.8

میٹرکس فیلڈ میں، AND اور OR آپریٹرز میٹرکس کو یکجا کرتے ہیں تاکہ میٹرکس کی درستگی اور 0.3 اور 0.8 سے اوپر کی f1 اقدار کے ساتھ رنز تلاش کریں:

میٹرکس درستگی > 0.3 اور میٹرکس۔ f1 > 0.8

2. پیرامیٹر ویلیو کے لحاظ سے تلاش کریں۔

پیرامیٹر ویلیو کے ذریعے تلاش کرنے کے لیے MLflow سرچ API میں params فیلڈ کا استعمال کریں۔ پیرامیٹر کے نام اور اقدار کوما کا استعمال کرتے ہوئے پیرام فیلڈ میں درج ہیں۔ اس مثال میں، مذکورہ فلٹر سٹرنگ num_boost_round پیرامیٹر کے ساتھ تمام رنز کا پتہ لگاتی ہے جس کی قدر 100 ہے:

پیرامز num_boost_round = '100'

پیرامیٹر کی قدروں کے لیے تلاش کے تار کی کچھ اور مثالیں:

  • params.num_boost_round = 900
  • params.learning_rate 0.001 اور 0.01 کے درمیان
  • params.num_boost_round='70' اور params.learning_rate='0.01′

3. ٹیگز کے ذریعے تلاش کریں۔

تلاش ملازمت والے ٹیگز کی ایک مثال یہ ہے:

تلاش_معیار = 'tags.mlflow.source.type = 'لغت''

Mlflow.search_runs() فنکشن کو انجام دینے کے لیے میٹرک اور پیرامیٹر ویلیوز کی مثال

آئیے ایک MLflow تجربہ ترتیب دینے، لاگنگ رنز، اور پھر تلاش شروع کرنے کے لیے mlflow.search_runs() کا استعمال کرنے کی ایک مثال کے ذریعے کام کریں۔ کوڈ کو مکمل طور پر سمجھنے کے لیے، ان مراحل پر عمل کریں:

مرحلہ 1: ایک MLflow تجربہ بنائیں

ہم ایک MLflow تجربہ ترتیب دے کر شروع کرتے ہیں۔ اگر تجربہ پہلے سے موجود ہے تو یہ موجودہ تجربہ حاصل کرتا ہے۔ اگر نہیں، تو یہ ایک نیا بناتا ہے۔

کوڈ کی وضاحت:

MLflow لائبریری کوڈ کی پہلی لائن میں درآمد کی گئی ہے، اور experiment_name کو اگلی لائن میں 'My First MLflow Experiment' پر سیٹ کیا گیا ہے۔ جب experiment_name کو 'mlflow.get_experiment_by_name' فنکشن میں منتقل کیا جاتا ہے، تو وہ فنکشن 'کوئی نہیں' لوٹاتا ہے اگر تجربہ موجود نہ ہو اور بصورت دیگر تجربے کا کوئی شے۔

مشروط بیان میں تجربے کے وجود کی جانچ کریں۔ اگر تجربہ پہلے سے موجود ہے تو experiment_id سیٹ کریں۔ بصورت دیگر، ایک نیا تجربہ بنانے کے لیے 'mlflow.create_experiment' استعمال کریں۔ تجربہ ID اس فنکشن کے ذریعہ واپس کیا جاتا ہے۔ تجربے کے اختتام پر کنسول یا ٹرمینل اسکرین پر تجربہ ID ڈسپلے کریں۔ نوٹ پیڈ میں درج ذیل کوڈ کو کاپی کریں اور فائل کو مطلوبہ نام اور '.py' ایکسٹینشن کے ساتھ محفوظ کریں۔

# ایم ایل فلو لائبریری درآمد کریں۔

درآمد ایم ایل فلو

# تجربہ بنائیں یا بازیافت کریں۔

exp_name = 'میرا پہلا ایم ایل فلو تجربہ'

# mlflow فنکشن get_experiment_by_name کا استعمال کرتے ہوئے نام سے تجربہ حاصل کریں۔

exp = ایم ایل فلو نام سے_تجربہ حاصل کریں۔ ( exp_name )

# چیک کریں کہ آیا تجربہ پہلے سے موجود نہیں ہے۔

اگر exp ہے کوئی نہیں۔ :

# نیا تجربہ بنائیں اور تجربے کا نام mlflow.create_experiment فنکشن میں منتقل کریں۔

exp_id = ایم ایل فلو تخلیق_تجربہ ( exp_name )

# اسکرین پر کامیابی کا پیغام دکھائیں۔

پرنٹ کریں ( 'تجربہ موجود نہیں ہے۔ تجربہ کامیابی سے بنایا گیا!' )

اور :

# موجودہ تجربے کا تجربہ_id حاصل کریں۔

exp_id = exp. experiment_id

پرنٹ کریں ( 'تجربہ پہلے سے موجود ہے!' )

# ڈسپلے تجربہ ID

پرنٹ کریں ( 'تجربہ ID:' , exp_id )

اب، Python کمپائلر کا استعمال کرتے ہوئے کمانڈ پرامپٹ یا ٹرمینل ونڈو میں پروگرام شروع کریں اور 'Python' ٹائپ کریں اور پھر فائل کا نام جو کہ اس معاملے میں، 'MyFirstMlflowExperiment.py' ہے۔ جب تجربہ پہلی بار چلایا جاتا ہے، یہ ابھی تک موجود نہیں ہے۔ اس طرح، MLFlow ایک تخلیق کرتا ہے اور کنسول اسکرین پر تجربہ ID پرنٹ کرتا ہے:

کوڈ کو دوبارہ چلائیں اس بات کی تصدیق کرنے کے لیے کہ یہ نئے تجربات نہیں کر رہا ہے اور پہلے سے موجود کی شناخت ظاہر کرنے کے لیے۔ درج ذیل اسکرین شاٹ سے پتہ چلتا ہے کہ تجربہ پہلے سے موجود ہے:

مرحلہ 2: میٹرکس اور پیرامیٹرز کے ساتھ رنز کو لاگ ان کریں۔

آئیے اب ابھی قائم کیے گئے تجربے کے لیے میٹرکس اور پیرامیٹرز کے ساتھ کچھ رنز لاگ کرنے کی کوشش کرتے ہیں۔ حقیقی دنیا کے منظر نامے میں، ہم مشین لرننگ کے ماڈلز تیار کرتے ہیں اور ہر رن کے اختتام پر متعلقہ معلومات، جیسے میٹرکس اور پیرامیٹرز کو ریکارڈ کرتے ہیں۔ یہاں، درستگی کو میٹرک ویلیو کے طور پر استعمال کیا جاتا ہے، اور اس معاملے میں یہ 0.95 ہے۔ سیکھنے اور کارکردگی کی شرح کے لیے پیرامیٹر کی قدریں بالترتیب 0.01 اور 90 ہیں۔ یہاں کوڈ ہے:

# لاگ میٹرکس اور پیرامیٹرز کے لیے ایم ایل فلو رن شروع کریں۔

کے ساتھ ایم ایل فلو start_run ( experiment_id = exp_id ) :

# آپ کا مشین لرننگ کوڈ یہاں (یہ صرف ایک نقلی مثال ہے)

ماڈل_درستگی = 0.95

مشین_لرننگ_ریٹ = 0.01

کارکردگی_کی شرح = 90

# لاگ میٹرکس اور پیرامیٹرز

ایم ایل فلو log_metric ( 'درستگی' , ماڈل_درستگی )

ایم ایل فلو log_param ( 'سیکھنے کی_ شرح' , مشین_لرننگ_ریٹ )

ایم ایل فلو log_param ( 'افادیت_شرح' , کارکردگی_کی شرح )

نتیجہ، جب مذکورہ کوڈ پر عمل درآمد ہوتا ہے، یہاں دیکھا جاتا ہے۔ نتیجہ وہی ہے جو پہلے تھا:

مرحلہ 3: mlflow.search_runs() کا استعمال کرتے ہوئے تلاش کریں

آخر میں، ہم چند پیرامیٹرز کا استعمال کرتے ہوئے لاگ ان رنز پر تلاش کرتے ہیں اور ٹرمینل اسکرین پر نتائج دکھاتے ہیں:

# رنز کے لیے تلاش کے معیار کی وضاحت کریں۔

تلاش_کی_معیار کی وضاحت کریں۔ = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' اور params.efficiency_rate = '90''

# تلاش کریں۔

چلتا ہے = ایم ایل فلو تلاش_رن ( experiment_ids = exp_id , فلٹر_سٹرنگ = تلاش_کی_معیار کی وضاحت کریں۔ )

# نتائج دکھائیں۔

پرنٹ کریں ( 'تلاش کے نتائج:' )

پرنٹ کریں ( چلتا ہے )

ایک انتباہ جو Git ٹول سے متعلق ہے search_runs فنکشن کے عمل سے تیار کیا گیا ہے:


اس انتباہ کو غیر فعال کرنے کے لیے Python فائل کے اوپری حصے میں کچھ کوڈ شامل کریں۔ یہاں کوڈ کا مختصر حصہ ہے:

درآمد ایم ایل فلو

درآمد تم

تم . تقریباً [ 'GIT_PYTHON_REFRESH' ] = 'خاموش'

'mlflow.search_runs' فنکشن کو کوڈ کی ان لائنوں کو شامل کرنے کے بعد کامیابی سے عمل میں لایا جاتا ہے:

نتیجہ

'mlflow.search_runs' فنکشن صارفین کو مشین لرننگ کے تجربات کو تیزی سے دریافت کرنے اور ان کا جائزہ لینے، بہت سے رنز کا تجزیہ کرنے، اور مطلوبہ نتائج کے نتیجے میں بہترین ہائپر پیرامیٹر تغیرات یا ماڈلز کی نشاندہی کرنے کے قابل بناتا ہے۔ مشین لرننگ ورک فلو کی نگرانی، منصوبہ بندی اور تجزیہ کرنے کے لیے یہ ایک موثر ٹول ہے۔