एमएलफ्लो में रन खोज रहे हैं

Ema Elaphlo Mem Rana Khoja Rahe Haim



मशीन लर्निंग प्रयोगों को ट्रैक और प्रबंधित करने के लिए, एमएलफ्लो एक व्यापक मंच प्रदान करता है। रन खोजने की क्षमता होना MLflow की प्रमुख विशेषताओं में से एक है। इससे विकसित प्रयोगों की पहचान करना और उन्हें इस तरह से व्यवस्थित करना संभव हो जाता है जिससे जरूरत पड़ने पर जानकारी का पता लगाना आसान हो जाता है। हम कई अलग-अलग मानदंडों का उपयोग करके एमएलफ़्लो खोज एपीआई का उपयोग करके रन खोज सकते हैं जिनमें निम्नलिखित शामिल हो सकते हैं:
  • प्रयोग आईडी या नाम
  • आईडी चलाएँ
  • पैरामीटर और मान
  • मेट्रिक्स और मान
  • टैग
  • अन्य विशेषताएँ जो रनों से जुड़ी हैं

एमएलफ्लो सर्च एपीआई के उपयोग से रन को स्थिति, प्रारंभ समय, समाप्ति समय और अवधि के आधार पर फ़िल्टर किया जा सकता है। इससे कई रनों को फ़िल्टर करना और उन विशिष्ट रनों को ढूंढना आसान हो जाता है जिनमें उपयोगकर्ता रुचि रखते हैं।

एमएलफ़्लो खोज फ़ंक्शन

एमएलफ्लो सर्च एपीआई तक पहुंचने के लिए mlflow.search_runs() फ़ंक्शन का उपयोग करें। यह फ़ंक्शन निम्नलिखित जैसे विभिन्न तर्कों को स्वीकार करता है:







  • प्रयोग आईडी या नाम
  • स्ट्रिंग या टेक्स्ट फ़िल्टर करें
  • लौटने के लिए रनों की अधिकतम संख्या max_results तर्क द्वारा निर्दिष्ट की जाती है

SQL (संरचित क्वेरी भाषा) का एक सरलीकृत संस्करण जहां क्लॉज फ़िल्टर स्ट्रिंग या टेक्स्ट है। इसका उपयोग उन मानदंडों को इंगित करने के लिए किया जा सकता है जिनके द्वारा हम रनों को क्रमबद्ध करना चाहते हैं।



MLflow Search_Runs() फ़ंक्शन का सिंटैक्स

प्रयोग की वास्तविक आईडी या नाम जिसे हम खोजना चाहते हैं उसे निम्नलिखित उदाहरण में 'प्रयोग_आईडी या प्रयोग_नाम' के स्थान पर प्रतिस्थापित किया जाना चाहिए। search_criteria वैरिएबल इच्छानुसार खोज मानदंड इनपुट करने की अनुमति देता है। ये मानदंड मेट्रिक्स, टैग, पैरामीटर या अतिरिक्त विशेषताओं द्वारा निर्धारित किए जा सकते हैं। search_runs() फ़ंक्शन का मूल सिंटैक्स इस प्रकार है:



# search_runs फ़ंक्शन का उपयोग करने के लिए mlflow search API आयात करें

आयात mlflow

# कुछ प्रयोग आईडी या नाम प्रदान करें (यह वैकल्पिक है;)

exp_id = 'प्रयोग आईडी या नाम'

# रनों के लिए खोज मानदंड परिभाषित करें

खोज स्ट्रिंग = 'मेट्रिक्स.सटीकता > 0.8 और पैरामीटर्स.लर्निंग_रेट = '0.01' और पैरामीटर्स.दक्षता_रेट > '80''

# खोज करें

रन = mlflow. search_runs ( प्रयोग आईडी = exp_id , फ़िल्टर_स्ट्रिंग = खोज स्ट्रिंग )

# परिणाम प्रदर्शित करें

छपाई ( 'खोज के परिणाम:' )

छपाई ( रन )

अनेक मानदंडों का उपयोग करके एक खोज चलाएँ

1. मीट्रिक मान के आधार पर खोजें

एमएलफ़्लो सर्च एपीआई में मेट्रिक्स फ़ील्ड का उपयोग करके रन को विशेष मेट्रिक्स के मानों द्वारा फ़िल्टर किया जा सकता है। अल्पविराम से अलग किए गए मीट्रिक नामों का एक संग्रह मीट्रिक फ़ील्ड में दिखाई देता है। उदाहरण के लिए, निम्न फ़िल्टर स्ट्रिंग 0.9 से अधिक सटीकता के मान वाले सभी रन का पता लगाती है:





मेट्रिक्स. शुद्धता > 0.9

मेट्रिक्स क्षेत्र में उपयोग के लिए उपलब्ध मेट्रिक्स की पूरी सूची इस प्रकार दी गई है:

  • शुद्धता
  • एयूसी
  • एफ1
  • शुद्धता
  • याद करना
  • नक्शा
  • लॉगलॉस
  • वर्गीकरण_त्रुटि
  • मल्टी_क्लास_लॉगलॉस

इसके अतिरिक्त, उपयोगकर्ता मेट्रिक्स फ़ील्ड का उपयोग करके मेट्रिक के मानों की श्रेणी के आधार पर रन को फ़िल्टर कर सकते हैं। उदाहरण के लिए, अगली फ़िल्टर स्ट्रिंग उन सभी रनों का पता लगाती है जिनकी सटीकता माप 0.4 और 0.8 के बीच है:



मेट्रिक्स. शुद्धता बीच में 0.4 और 0.8

मेट्रिक्स फ़ील्ड में, AND और OR ऑपरेटर मेट्रिक्स सटीकता और 0.3 और 0.8 से ऊपर f1 मान के साथ रन खोजने के लिए मेट्रिक्स को जोड़ते हैं:

मेट्रिक्स. शुद्धता > 0.3 और मेट्रिक्स. एफ1 > 0.8

2. पैरामीटर मान द्वारा खोजें

पैरामीटर मान द्वारा खोज करने के लिए एमएलफ्लो सर्च एपीआई में पैराम्स फ़ील्ड का उपयोग करें। पैरामीटर नाम और मान अल्पविराम का उपयोग करके पैरामीटर फ़ील्ड में सूचीबद्ध होते हैं। इस उदाहरण में, उपरोक्त फ़िल्टर स्ट्रिंग num_boost_round पैरामीटर के साथ सभी रन का पता लगाती है जिनका मान 100 है:

पैरामीटर. num_boost_round = '100'

पैरामीटर मानों के लिए खोज स्ट्रिंग के कुछ और उदाहरण:

  • पैराम्स.नम_बूस्ट_राउंड = 900
  • पैरामीटर्स.लर्निंग_रेट 0.001 और 0.01 के बीच
  • पैराम्स.नम_बूस्ट_राउंड='70' और पैराम्स.लर्निंग_रेट='0.01′

3. टैग द्वारा खोजें

यहां टैग नियोजित खोज का एक उदाहरण दिया गया है:

खोज मापदंड = 'tags.mlflow.source.type = 'शब्दकोश''

Mlflow.search_runs() फ़ंक्शन निष्पादित करने के लिए मैट्रिक और पैरामीटर मानों का उदाहरण

आइए एक एमएलफ़्लो प्रयोग स्थापित करने, रन लॉगिंग करने और फिर खोज शुरू करने के लिए mlflow.search_runs() का उपयोग करने के एक उदाहरण के माध्यम से काम करें। कोड को पूरी तरह से समझने के लिए, इन चरणों का पालन करें:

चरण 1: एक एमएलफ्लो प्रयोग बनाएं

हम एक एमएलफ्लो प्रयोग स्थापित करके शुरुआत करते हैं। यदि प्रयोग पहले से मौजूद है तो यह मौजूदा प्रयोग को लाता है। यदि नहीं, तो यह एक नया बनाता है।

कोड स्पष्टीकरण:

एमएलफ्लो लाइब्रेरी को कोड की पहली पंक्ति में आयात किया जाता है, और प्रयोग_नाम अगली पंक्ति में 'मेरा पहला एमएलफ्लो प्रयोग' पर सेट किया जाता है। जब प्रयोग_नाम को 'mlflow.get_experiment_by_name' फ़ंक्शन में पास किया जाता है, तो यदि प्रयोग मौजूद नहीं है और अन्यथा प्रयोग का एक ऑब्जेक्ट है तो वह फ़ंक्शन 'कोई नहीं' लौटाता है।

सशर्त कथन में प्रयोग के अस्तित्व की जाँच करें। यदि प्रयोग पहले से मौजूद है, तो प्रयोग_आईडी सेट करें। अन्यथा, एक नया प्रयोग बनाने के लिए 'mlflow.create_experiment' का उपयोग करें। इस फ़ंक्शन द्वारा प्रयोग आईडी लौटा दी जाती है. प्रयोग के अंत में कंसोल या टर्मिनल स्क्रीन पर प्रयोग आईडी प्रदर्शित करें। निम्नलिखित कोड को नोटपैड में कॉपी करें और फ़ाइल को वांछित नाम और '.py' एक्सटेंशन के साथ सहेजें:

# एमएलफ्लो लाइब्रेरी आयात करें

आयात mlflow

# प्रयोग बनाएं या लाएं

exp_name = 'मेरा पहला एमएलफ्लो प्रयोग'

# mlflow फ़ंक्शन get_experiment_by_name का उपयोग करके नाम से प्रयोग प्राप्त करें

ऍक्स्प = mlflow. नाम_द्वारा_प्रयोग_प्राप्त करें ( exp_name )

# जांचें कि क्या प्रयोग पहले से मौजूद नहीं है

अगर ऍक्स्प है कोई नहीं :

# नया प्रयोग बनाएं और प्रयोग का नाम mlflow.create_experiment फ़ंक्शन में पास करें

exp_id = mlflow. create_experiment ( exp_name )

# स्क्रीन पर सफलता संदेश प्रदर्शित करें

छपाई ( 'प्रयोग मौजूद नहीं है। प्रयोग सफलतापूर्वक बनाया गया!' )

अन्य :

# मौजूदा प्रयोग की प्रयोग_आईडी प्राप्त करें

exp_id = ऍक्स्प. प्रयोग_आईडी

छपाई ( 'प्रयोग पहले से मौजूद है!' )

# प्रयोग आईडी प्रदर्शित करें

छपाई ( 'प्रयोग आईडी:' , exp_id )

अब, पायथन कंपाइलर का उपयोग करके कमांड प्रॉम्प्ट या टर्मिनल विंडो में प्रोग्राम लॉन्च करें और 'पायथन' टाइप करें और फिर फ़ाइल नाम, जो इस मामले में, 'MyFirstMlflowExperiment.py' है। जब प्रयोग पहली बार चलाया जाता है, तो यह अभी तक अस्तित्व में नहीं है। इस प्रकार, एमएलफ्लो एक बनाता है और कंसोल स्क्रीन पर प्रयोग आईडी प्रिंट करता है:

यह सत्यापित करने के लिए कि यह नए प्रयोग नहीं बना रहा है और जो पहले से मौजूद हैं उनकी आईडी प्रदर्शित करने के लिए कोड को दोबारा चलाएँ। निम्नलिखित स्क्रीनशॉट दिखाता है कि प्रयोग पहले से मौजूद है:

चरण 2: मेट्रिक्स और पैरामीटर्स के साथ रन लॉग करें

आइए अब हाल ही में स्थापित प्रयोग के लिए मेट्रिक्स और मापदंडों के साथ कुछ रन लॉग करने का प्रयास करें। वास्तविक दुनिया के परिदृश्य में, हम मशीन लर्निंग मॉडल विकसित करते हैं और प्रत्येक रन के अंत में प्रासंगिक जानकारी, जैसे मेट्रिक्स और पैरामीटर, रिकॉर्ड करते हैं। यहां, सटीकता का उपयोग मैट्रिक मान के रूप में किया जाता है, और इस मामले में यह 0.95 है। सीखने और दक्षता दर के लिए पैरामीटर मान क्रमशः 0.01 और 90 हैं। यहाँ कोड है:

# मेट्रिक्स और पैरामीटर लॉग करने के लिए एमएलफ़्लो रन प्रारंभ करें

साथ mlflow. दौड़ना शुरू करें ( प्रयोग_आईडी = exp_id ) :

# आपका मशीन लर्निंग कोड यहां है (यह सिर्फ एक सिम्युलेटेड उदाहरण है)

मॉडल_सटीकता = 0.95

मशीन_लर्निंग_रेट = 0.01

दक्षता_दर = 90

# मेट्रिक्स और पैरामीटर लॉग करें

mlflow. log_metric ( 'शुद्धता' , मॉडल_सटीकता )

mlflow. log_param ( 'सीखने की दर' , मशीन_लर्निंग_रेट )

mlflow. log_param ( 'दक्षता_दर' , दक्षता_दर )

जब उपरोक्त कोड निष्पादित किया जाता है, तो परिणाम यहां देखा जाता है। परिणाम पहले जैसा ही है:

चरण 3: Mlflow.search_runs() का उपयोग करके एक खोज करें

अंत में, हम कुछ मापदंडों का उपयोग करके लॉग किए गए रन पर एक खोज चलाते हैं और टर्मिनल स्क्रीन पर परिणाम दिखाते हैं:

# रनों के लिए खोज मानदंड परिभाषित करें

परिभाषित_खोज_मानदंड = 'मेट्रिक्स.सटीकता > 0.8 और पैरामीटर्स.लर्निंग_रेट = '0.01' और पैरामीटर्स.दक्षता_रेट = '90''

# खोज करें

रन = mlflow. search_runs ( प्रयोग आईडी = exp_id , फ़िल्टर_स्ट्रिंग = परिभाषित_खोज_मानदंड )

# परिणाम प्रदर्शित करें

छपाई ( 'खोज के परिणाम:' )

छपाई ( रन )

Git टूल से संबंधित एक चेतावनी search_runs फ़ंक्शन के निष्पादन द्वारा निर्मित होती है:


इस चेतावनी को अक्षम करने के लिए पायथन फ़ाइल के शीर्ष पर कुछ कोड जोड़ें। यहाँ कोड का संक्षिप्त भाग है:

आयात mlflow

आयात आप

आप . लगभग [ 'GIT_PYTHON_REFRESH' ] = 'शांत'

कोड की इन पंक्तियों को जोड़ने के बाद 'mlflow.search_runs' फ़ंक्शन सफलतापूर्वक निष्पादित हो जाता है:

निष्कर्ष

'mlflow.search_runs' फ़ंक्शन उपयोगकर्ताओं को मशीन लर्निंग प्रयोगों का त्वरित रूप से पता लगाने और मूल्यांकन करने, कई रनों का विश्लेषण करने और वांछित परिणामों में परिणाम देने वाले इष्टतम हाइपरपैरामीटर विविधताओं या मॉडल को इंगित करने में सक्षम बनाता है। यह मशीन लर्निंग वर्कफ़्लो की देखरेख, योजना और विश्लेषण के लिए एक प्रभावी उपकरण है।