Meklēšana darbojas MLflow

Meklesana Darbojas Mlflow



Lai izsekotu un pārvaldītu mašīnmācīšanās eksperimentus, MLflow piedāvā plašu platformu. Iespēja meklēt palaišanu ir viena no MLflow galvenajām funkcijām. Tas ļauj identificēt izstrādātos eksperimentus un organizēt tos tā, lai būtu viegli atrast informāciju, kad vien tas ir nepieciešams. Mēs varam meklēt izpildes, izmantojot MLflow meklēšanas API, izmantojot vairākus dažādus kritērijus, tostarp:
  • 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.8

2. 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ēku

imports 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 parametrus

ar 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ērijus

define_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 mlplūsma

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.