MLflowలో పరుగులు శోధిస్తోంది

Mlflowlo Parugulu Sodhistondi



మెషిన్ లెర్నింగ్ ప్రయోగాలను ట్రాక్ చేయడానికి మరియు నిర్వహించడానికి, MLflow విస్తృతమైన ప్లాట్‌ఫారమ్‌ను అందిస్తుంది. పరుగులను శోధించే సామర్థ్యాన్ని కలిగి ఉండటం MLflow యొక్క ముఖ్య లక్షణాలలో ఒకటి. ఇది అభివృద్ధి చెందిన ప్రయోగాలను గుర్తించడం మరియు అవసరమైనప్పుడు సమాచారాన్ని గుర్తించడం సులభం చేసే విధంగా వాటిని నిర్వహించడం సాధ్యపడుతుంది. మేము MLflow శోధన APIని ఉపయోగించి అనేక విభిన్న ప్రమాణాలను ఉపయోగించి రన్‌లను శోధించవచ్చు, వీటిలో కిందివాటిని కలిగి ఉండవచ్చు:
  • ప్రయోగ ID లేదా పేరు
  • IDని అమలు చేయండి
  • పారామితులు మరియు విలువలు
  • కొలమానాలు మరియు విలువలు
  • టాగ్లు
  • పరుగులతో అనుబంధించబడిన ఇతర లక్షణాలు

MLflow శోధన APIని ఉపయోగించి రన్‌లను స్థితి, ప్రారంభ సమయం, ముగింపు సమయం మరియు వ్యవధి ద్వారా ఫిల్టర్ చేయవచ్చు. ఇది అనేక పరుగుల ద్వారా ఫిల్టర్ చేయడాన్ని సులభతరం చేస్తుంది మరియు వినియోగదారులు ఆసక్తిని కలిగి ఉన్న నిర్దిష్ట పరుగులను కనుగొనవచ్చు.

MLflow శోధన ఫంక్షన్

MLflow శోధన APIని యాక్సెస్ చేయడానికి mlflow.search_runs() ఫంక్షన్‌ని ఉపయోగించండి. ఈ ఫంక్షన్ కింది వాటి వంటి విభిన్న వాదనలను అంగీకరిస్తుంది:







  • ప్రయోగం ID లేదా పేరు
  • ఫిల్టర్ స్ట్రింగ్ లేదా టెక్స్ట్
  • గరిష్ట_ఫలితాల ఆర్గ్యుమెంట్ ద్వారా తిరిగి రావాల్సిన పరుగుల గరిష్ట సంఖ్య పేర్కొనబడింది

SQL (స్ట్రక్చర్డ్ క్వెరీ లాంగ్వేజ్) యొక్క సరళీకృత రూపాంతరం ఎక్కడ క్లాజ్ అనేది ఫిల్టర్ స్ట్రింగ్ లేదా టెక్స్ట్. ఇది మనం పరుగులను క్రమబద్ధీకరించాలనుకుంటున్న ప్రమాణాలను సూచించడానికి ఉపయోగించవచ్చు.



MLflow Search_Runs() ఫంక్షన్ యొక్క సింటాక్స్

మేము శోధించాలనుకుంటున్న ప్రయోగం యొక్క అసలు ID లేదా పేరు తప్పనిసరిగా కింది ఉదాహరణలో “experiment_id లేదా experiment_name”కి ప్రత్యామ్నాయంగా ఉండాలి. శోధన_క్రైటీరియా వేరియబుల్ శోధన ప్రమాణాలను కావలసిన విధంగా ఇన్‌పుట్ చేయడానికి అనుమతిస్తుంది. ఈ ప్రమాణాలు కొలమానాలు, ట్యాగ్‌లు, పారామితులు లేదా అదనపు లక్షణాల ద్వారా నిర్ణయించబడతాయి. search_runs() ఫంక్షన్ యొక్క ప్రాథమిక వాక్యనిర్మాణం క్రింది విధంగా ఉంది:



# search_runs ఫంక్షన్‌ని ఉపయోగించడానికి mlflow శోధన APIని దిగుమతి చేయండి

దిగుమతి mlflow

# కొంత ప్రయోగ ఐడి లేదా పేరును అందించండి (ఇది ఐచ్ఛికం; )

exp_id = 'ప్రయోగం ID లేదా NAME'

# పరుగుల కోసం శోధన ప్రమాణాలను నిర్వచించండి

శోధన_స్ట్రింగ్ = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate > '80''

# శోధనను జరుపుము

నడుస్తుంది = mlflow. శోధన_రన్లు ( ప్రయోగం_ఐడిలు = 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లోని పారామ్స్ ఫీల్డ్‌ని ఉపయోగించండి. పరామితి పేర్లు మరియు విలువలు కామాలను ఉపయోగించి పారామ్స్ ఫీల్డ్‌లో జాబితా చేయబడ్డాయి. ఈ ఉదాహరణలో, పైన పేర్కొన్న ఫిల్టర్ స్ట్రింగ్ 100 విలువ కలిగిన num_boost_round పరామితితో అన్ని పరుగులను గుర్తిస్తుంది:

పారాములు. 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 = 'dictionary''

Mlflow.search_runs() ఫంక్షన్‌ని నిర్వహించడానికి మెట్రిక్ మరియు పారామీటర్ విలువలకు ఉదాహరణ

MLflow ప్రయోగాన్ని సెటప్ చేయడం, పరుగులను లాగింగ్ చేయడం, ఆపై శోధనను ప్రారంభించడానికి mlflow.search_runs()ని ఉపయోగించడం వంటి ఉదాహరణ ద్వారా పని చేద్దాం. కోడ్‌ను పూర్తిగా అర్థం చేసుకోవడానికి, ఈ దశలను అనుసరించండి:

దశ 1: MLflow ప్రయోగాన్ని సృష్టించండి

మేము MLflow ప్రయోగాన్ని సెటప్ చేయడం ద్వారా ప్రారంభిస్తాము. ప్రయోగం ఇప్పటికే ఉన్నట్లయితే ఇది ఇప్పటికే ఉన్న ప్రయోగాన్ని పొందుతుంది. కాకపోతే, అది కొత్తదాన్ని సృష్టిస్తుంది.

కోడ్ వివరణ:

MLflow లైబ్రరీ కోడ్ యొక్క మొదటి పంక్తిలో దిగుమతి చేయబడింది మరియు ప్రయోగం_పేరు తదుపరి లైన్‌లో “నా మొదటి MLflow ప్రయోగం”కి సెట్ చేయబడింది. ప్రయోగం_పేరు 'mlflow.get_experiment_by_name' ఫంక్షన్‌కి పంపబడినప్పుడు, ప్రయోగం ఉనికిలో లేకుంటే మరియు ప్రయోగం యొక్క వస్తువు లేకపోతే ఆ ఫంక్షన్ 'ఏదీ లేదు'ని అందిస్తుంది.

షరతులతో కూడిన ప్రకటనలో ప్రయోగం ఉనికిని తనిఖీ చేయండి. ప్రయోగం ఇప్పటికే ఉన్నట్లయితే, ప్రయోగం_ఐడిని సెట్ చేయండి. లేకపోతే, కొత్త ప్రయోగాన్ని సృష్టించడానికి “mlflow.create_experiment”ని ఉపయోగించండి. ఈ ఫంక్షన్ ద్వారా ప్రయోగం ID తిరిగి ఇవ్వబడుతుంది. ప్రయోగం చివరిలో కన్సోల్ లేదా టెర్మినల్ స్క్రీన్‌పై ప్రయోగం IDని ప్రదర్శించండి. కింది కోడ్‌ను నోట్‌ప్యాడ్‌లో కాపీ చేసి, ఫైల్‌ను కావలసిన పేరుతో మరియు “.py” పొడిగింపుతో సేవ్ చేయండి:

# mlflow లైబ్రరీని దిగుమతి చేయండి

దిగుమతి mlflow

# ప్రయోగాన్ని సృష్టించండి లేదా పొందండి

exp_name = 'నా మొదటి MLflow ప్రయోగం'

# mlflow ఫంక్షన్‌ని ఉపయోగించి పేరుతో ప్రయోగాన్ని పొందండి

ఎక్స్ = mlflow. పేరు ద్వారా_ప్రయోగాన్ని_పొందండి ( exp_name )

# ప్రయోగం ఇప్పటికే ఉనికిలో లేకుంటే తనిఖీ చేయండి

ఉంటే ఎక్స్ ఉంది ఏదీ లేదు :

# కొత్త ప్రయోగాన్ని సృష్టించండి మరియు ప్రయోగం పేరును mlflow.create_experiment ఫంక్షన్‌కి పాస్ చేయండి

exp_id = mlflow. సృష్టించు_ ప్రయోగం ( exp_name )

# విజయ సందేశాన్ని తెరపై ప్రదర్శించండి

ముద్రణ ( 'ప్రయోగం ఉనికిలో లేదు. ప్రయోగం విజయవంతంగా సృష్టించబడింది!' )

లేకపోతే :

# ఇప్పటికే ఉన్న ప్రయోగం యొక్క ప్రయోగం_ఐడిని పొందండి

exp_id = ఎక్స్. ప్రయోగం_ఐడి

ముద్రణ ( 'ప్రయోగం ఇప్పటికే ఉంది!' )

# ప్రదర్శన ID

ముద్రణ ( 'ప్రయోగం ID:' , exp_id )

ఇప్పుడు, పైథాన్ కంపైలర్‌ని ఉపయోగించి ప్రోగ్రామ్‌ను కమాండ్ ప్రాంప్ట్ లేదా టెర్మినల్ విండోలో ప్రారంభించండి మరియు “పైథాన్” అని టైప్ చేసి ఆపై ఫైల్ పేరు, ఈ సందర్భంలో, “MyFirstMlflowExperiment.py”. ప్రయోగం మొదట అమలు చేయబడినప్పుడు, అది ఇంకా ఉనికిలో లేదు. అందువలన, MLFlow ఒకదాన్ని సృష్టించి, కన్సోల్ స్క్రీన్‌పై ప్రయోగం IDని ప్రింట్ చేస్తుంది:

ఇది కొత్త ప్రయోగాలను సృష్టించడం లేదని ధృవీకరించడానికి మరియు ఇప్పటికే ఉన్న వాటి IDని ప్రదర్శించడానికి కోడ్‌ని మళ్లీ అమలు చేయండి. ప్రయోగం ఇప్పటికే ఉందని క్రింది స్క్రీన్‌షాట్ చూపిస్తుంది:

దశ 2: మెట్రిక్‌లు మరియు పారామితులతో పరుగులను లాగ్ చేయండి

ఇప్పుడే స్థాపించబడిన ప్రయోగం కోసం కొలమానాలు మరియు పారామితులతో కొన్ని పరుగులను లాగ్ చేయడానికి ప్రయత్నిద్దాం. వాస్తవ-ప్రపంచ దృష్టాంతంలో, మేము మెషీన్ లెర్నింగ్ మోడల్‌లను అభివృద్ధి చేస్తాము మరియు ప్రతి రన్ ముగింపులో కొలమానాలు మరియు పారామీటర్‌ల వంటి సంబంధిత సమాచారాన్ని రికార్డ్ చేస్తాము. ఇక్కడ, ఖచ్చితత్వం మెట్రిక్ విలువగా ఉపయోగించబడుతుంది మరియు ఈ సందర్భంలో ఇది 0.95. అభ్యాసం మరియు సమర్థత రేటు కోసం పరామితి విలువలు వరుసగా 0.01 మరియు 90. ఇక్కడ కోడ్ ఉంది:

# మెట్రిక్‌లు మరియు పారామితులను లాగ్ చేయడానికి MLflow రన్‌ను ప్రారంభించండి

తో mlflow. ప్రారంభం_పరుగు ( ప్రయోగం_ఐడి = exp_id ) :

# మీ మెషీన్ లెర్నింగ్ కోడ్ ఇక్కడ ఉంది (ఇది కేవలం అనుకరణ ఉదాహరణ)

మోడల్_ఖచ్చితత్వం = 0.95

మెషిన్_లెర్నింగ్_రేట్ = 0.01

సమర్థత_రేటు = 90

# లాగ్ కొలమానాలు మరియు పారామితులు

mlflow. లాగ్_మెట్రిక్ ( 'ఖచ్చితత్వం' , మోడల్_ఖచ్చితత్వం )

mlflow. లాగ్_పరం ( 'లెర్నింగ్_రేట్' , మెషిన్_లెర్నింగ్_రేట్ )

mlflow. లాగ్_పరం ( 'సమర్థత_రేటు' , సమర్థత_రేటు )

పైన పేర్కొన్న కోడ్ అమలు చేయబడినప్పుడు ఫలితం ఇక్కడ కనిపిస్తుంది. ఫలితం మునుపటి మాదిరిగానే ఉంటుంది:

దశ 3: Mlflow.search_runs()ని ఉపయోగించి శోధనను నిర్వహించండి

చివరగా, మేము కొన్ని పారామితులను ఉపయోగించి లాగిన్ చేయబడిన పరుగులపై శోధనను అమలు చేస్తాము మరియు టెర్మినల్ స్క్రీన్‌పై ఫలితాలను చూపుతాము:

# పరుగుల కోసం శోధన ప్రమాణాలను నిర్వచించండి

define_search_criteria = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate = '90''

# శోధనను జరుపుము

నడుస్తుంది = mlflow. శోధన_రన్లు ( ప్రయోగం_ఐడిలు = exp_id , ఫిల్టర్_స్ట్రింగ్ = define_search_criteria )

# ఫలితాలను ప్రదర్శించండి

ముద్రణ ( 'శోధన ఫలితాలు:' )

ముద్రణ ( నడుస్తుంది )

శోధన_రన్ ఫంక్షన్ యొక్క అమలు ద్వారా Git సాధనానికి సంబంధించిన హెచ్చరిక ఉత్పత్తి చేయబడింది:


ఈ హెచ్చరికను నిలిపివేయడానికి పైథాన్ ఫైల్ ఎగువన కొంత కోడ్‌ను జోడించండి. కోడ్ యొక్క చిన్న విభాగం ఇక్కడ ఉంది:

దిగుమతి mlflow

దిగుమతి మీరు

మీరు . సుమారు [ 'GIT_PYTHON_REFRESH' ] = 'నిశ్శబ్ద'

ఈ కోడ్ లైన్‌లను జోడించిన తర్వాత “mlflow.search_runs” ఫంక్షన్ విజయవంతంగా అమలు చేయబడుతుంది:

ముగింపు

“mlflow.search_runs” ఫంక్షన్ మెషిన్ లెర్నింగ్ ప్రయోగాలను త్వరగా అన్వేషించడానికి మరియు మూల్యాంకనం చేయడానికి, అనేక పరుగులను విశ్లేషించడానికి మరియు కావలసిన ఫలితాలకు దారితీసే సరైన హైపర్‌పారామీటర్ వైవిధ్యాలు లేదా నమూనాలను గుర్తించడానికి వినియోగదారులను అనుమతిస్తుంది. ఇది మెషిన్ లెర్నింగ్ వర్క్‌ఫ్లోను పర్యవేక్షించడానికి, ప్లాన్ చేయడానికి మరియు విశ్లేషించడానికి సమర్థవంతమైన సాధనం.