- Eksperimenta ID vai nosaukums
- Palaist ID
- Parametri un vērtības
- Metrika un vērtības
- Tagi
- Citi atribūti, kas ir saistīti ar palaišanu
Darbības var filtrēt pēc statusa, sākuma laika, beigu laika un ilguma, izmantojot MLflow meklēšanas API. Tas ļauj vieglāk filtrēt daudzas darbības un atrast konkrētus lietotājus interesējošos izpildes posmus.
MLflow meklēšanas funkcija
Izmantojiet funkciju mlflow.search_runs(), lai piekļūtu MLflow meklēšanas API. Šī funkcija pieņem dažādus argumentus, piemēram:
- Eksperimenta ID vai nosaukums
- Filtra virkne vai teksts
- Maksimālo atgriežamo darbību skaitu nosaka arguments max_results
Vienkāršots SQL (strukturētās vaicājumu valodas) WHERE klauzulas variants ir filtra virkne vai teksts. To var izmantot, lai norādītu kritērijus, pēc kuriem mēs vēlamies kārtot ieskrējienus.
Funkcijas MLflow Search_Runs() sintakse
Tālāk esošajā piemērā ir jāaizstāj ar “eksperimenta_id vai eksperimenta_nosaukums” ar tā eksperimenta faktisko ID vai nosaukumu, kurā vēlamies meklēt. Mainīgais search_criteria ļauj ievadīt meklēšanas kritērijus pēc vēlēšanās. Šos kritērijus var noteikt metrika, tagi, parametri vai papildu raksturlielumi. Funkcijas search_runs() pamata sintakse ir šāda:
# Importējiet mlflow meklēšanas API, lai izmantotu funkciju search_runs
imports mlplūsma
# Norādiet kādu eksperimenta ID vai nosaukumu (tas nav obligāti; )
exp_id = “Eksperimenta ID vai NAME”
# Definējiet skrējienu meklēšanas kritērijus
meklēšanas_virkne = 'metrics.accuracy > 0,8 UN params.learning_rate = '0,01' UN params.efficiency_rate > '80''
# Veiciet meklēšanu
skrien = mlplūsma. search_runs ( eksperimenta_ids = exp_id , filtra_virkne = meklēšanas_virkne )
# Parādiet rezultātus
drukāt ( 'Meklēšanas rezultāti:' )
drukāt ( skrien )
Veiciet meklēšanu, izmantojot daudzus kritērijus
1. Meklēt pēc metrikas vērtības
Darbības var filtrēt pēc noteiktas metrikas vērtībām, izmantojot metrikas lauku MLflow meklēšanas API. Metrikas laukā tiek parādīta metrikas nosaukumu kolekcija, kas atdalīta ar komatiem. Piemēram, šī filtra virkne atrod visas darbības, kuru precizitātes vērtība ir lielāka par 0,9:
metriku. precizitāte > 0.9
Pilns metrikas saraksts, kas pieejams metrikas laukā, ir norādīts šādi:
- precizitāte
- auc
- f1
- precizitāte
- atgādināt
- karte
- logloss
- klasifikācijas_kļūda
- multi_class_logloss
Turklāt lietotāji var filtrēt izpildes pēc metrikas vērtību diapazona, izmantojot metrikas lauku. Piemēram, nākamā filtra virkne atrod visas darbības, kurām ir precizitātes mērs ar vērtību no 0,4 līdz 0,8:
metriku. precizitāte STARP 0.4 UN 0.8
Metrikas laukā operatori UN un VAI apvieno metriku, lai atrastu darbības ar metrikas precizitāti un f1 vērtībām virs 0,3 un 0,8.
metriku. precizitāte > 0.3 UN metriku. f1 > 0.82. Meklēt pēc parametra vērtības
Izmantojiet parametru lauku MLflow meklēšanas API, lai veiktu meklēšanu pēc parametra vērtības. Parametru nosaukumi un vērtības ir norādīti parametru laukā, izmantojot komatus. Šajā piemērā iepriekš minētā filtra virkne atrod visas darbības ar parametru num_boost_round, kuru vērtība ir 100:
parametri. num_boost_round = '100'Vēl daži parametru vērtību meklēšanas virkņu piemēri:
- params.num_boost_round = 900
- params.learning_rate NO 0,001 UN 0,01
- params.num_boost_round=’70’ UN params.learning_rate=’0,01′
3. Meklēt pēc tagiem
Šeit ir piemērs meklēšanai, kurā tiek izmantoti tagi:
meklēšanas_kritēriji = 'tags.mlflow.source.type = 'vārdnīca''Matricas un parametru vērtību piemērs, lai veiktu funkciju Mlflow.search_runs()
Apskatīsim piemēru par MLflow eksperimenta iestatīšanu, reģistrēšanas palaišanu un pēc tam, izmantojot mlflow.search_runs(), lai sāktu meklēšanu. Lai pilnībā izprastu kodu, rīkojieties šādi:
1. darbība. Izveidojiet MLflow eksperimentu
Mēs sākam ar MLflow eksperimenta iestatīšanu. Tas ienes esošo eksperimentu, ja eksperiments jau pastāv. Ja nē, tas izveido jaunu.
Koda skaidrojums:
MLflow bibliotēka tiek importēta koda pirmajā rindā, un nākamajā rindā eksperimenta_nosaukums ir iestatīts uz “Mans pirmais MLflow eksperiments”. Kad eksperimenta_nosaukums tiek nodots funkcijai “mlflow.get_experiment_by_name”, šī funkcija atgriež vērtību “Nav”, ja eksperiments neeksistē un eksperimenta objekts pretējā gadījumā.
Pārbaudiet eksperimenta esamību nosacījuma priekšrakstā. Ja eksperiments jau pastāv, iestatiet eksperimenta_id. Pretējā gadījumā izmantojiet “mlflow.create_experiment”, lai izveidotu jaunu eksperimentu. Šī funkcija atgriež eksperimenta ID. Eksperimenta beigās parādiet eksperimenta ID konsoles vai termināļa ekrānā. Nokopējiet šo kodu piezīmju grāmatiņā un saglabājiet failu ar vajadzīgo nosaukumu un ar paplašinājumu “.py”:
# importēt mlflow bibliotēkuimports mlplūsma
# Izveidojiet vai ienesiet eksperimentu
exp_name = 'Mans pirmais MLflow eksperiments'
# Iegūstiet eksperimentu pēc nosaukuma, izmantojot funkciju mlflow get_experiment_by_name
exp = mlplūsma. get_experiment_by_name ( exp_name )
# Pārbaudiet, vai eksperiments jau nepastāv
ja exp ir Nav :
# Izveidojiet jaunu eksperimentu un nododiet eksperimenta nosaukumu funkcijai mlflow.create_experiment
exp_id = mlplūsma. izveidot_eksperimentu ( exp_name )
# Parādiet veiksmes ziņojumu ekrānā
drukāt ( 'Eksperiments neeksistē. Eksperiments ir veiksmīgi izveidots!' )
cits :
# Iegūstiet esošā eksperimenta eksperimenta_id
exp_id = exp. eksperimenta_id
drukāt ( 'Eksperiments jau pastāv!' )
# Attēlojuma eksperimenta ID
drukāt ( 'Eksperimenta ID:' , exp_id )
Tagad palaidiet programmu komandu uzvednē vai termināļa logā, izmantojot Python kompilatoru, un ierakstiet “Python” un pēc tam faila nosaukumu, kas šajā gadījumā ir “MyFirstMlflowExperiment.py”. Kad eksperiments tiek palaists pirmo reizi, tas vēl nepastāv. Tādējādi MLFlow izveido vienu un konsoles ekrānā izdrukā eksperimenta ID:
Atkārtoti palaidiet kodu, lai pārbaudītu, vai tas nerada jaunus eksperimentus, un parādītu jau esošo eksperimentu ID. Šis ekrānuzņēmums parāda, ka eksperiments jau pastāv:
2. darbība. Reģistrējiet izpildes ar metriku un parametriem
Tagad mēģināsim reģistrēt dažus darbības, izmantojot tikko izveidotā eksperimenta metriku un parametrus. Reālā scenārijā mēs izstrādājam mašīnmācīšanās modeļus un katras darbības beigās ierakstām attiecīgo informāciju, piemēram, metriku un parametrus. Šeit precizitāte tiek izmantota kā matricas vērtība, un šajā gadījumā tā ir 0,95. Mācīšanās un efektivitātes rādītāja parametru vērtības ir attiecīgi 0,01 un 90. Šeit ir kods:
# Sāciet MLflow palaišanu, lai reģistrētu metriku un parametrusar mlplūsma. start_run ( eksperimenta_id = exp_id ) :
# Jūsu mašīnmācīšanās kods šeit (šis ir tikai simulēts piemērs)
modeļa_precizitāte = 0,95
mašīnmācības_likmi = 0,01
efektivitātes_likme = 90
# Reģistrējiet metriku un parametrus
mlplūsma. log_metric ( 'precizitāte' , modeļa_precizitāte )
mlplūsma. log_param ( 'mācību_likme' , mašīnmācības_likmi )
mlplūsma. log_param ( 'efektivitātes_likme' , efektivitātes_likme )
Rezultāts, kad tiek izpildīts iepriekš minētais kods, ir redzams šeit. Rezultāts ir tāds pats kā iepriekš:
3. darbība. Veiciet meklēšanu, izmantojot Mlflow.search_runs()
Visbeidzot, mēs veicam meklēšanu palaijumos, kas ir reģistrēti, izmantojot dažus parametrus, un parādām rezultātus termināļa ekrānā:
# Definējiet skrējienu meklēšanas kritērijusdefine_search_criteria = 'metrics.accuracy > 0,8 UN params.learning_rate = '0,01' UN params.efficiency_rate = '90''
# Veiciet meklēšanu
skrien = mlplūsma. search_runs ( eksperimenta_ids = exp_id , filtra_virkne = define_search_criteria )
# Parādiet rezultātus
drukāt ( 'Meklēšanas rezultāti:' )
drukāt ( skrien )
Brīdinājums, kas attiecas uz Git rīku, tiek radīts, izpildot funkciju search_runs:
Pievienojiet kodu Python faila augšpusē, lai atspējotu šo brīdinājumu. Šeit ir īsa koda sadaļa:
imports tu
tu . aptuveni [ 'GIT_PYTHON_REFRESH' ] = 'kluss'
Funkcija “mlflow.search_runs” tiek veiksmīgi izpildīta, kad ir pievienotas šīs koda rindas:
Secinājums
Funkcija “mlflow.search_runs” ļauj lietotājiem ātri izpētīt un novērtēt mašīnmācīšanās eksperimentus, analizēt daudzas darbības un precīzi noteikt optimālās hiperparametru variācijas vai modeļus, kas rada vēlamos rezultātus. Tas ir efektīvs rīks mašīnmācīšanās darbplūsmas pārraudzībai, plānošanai un analīzei.