Iskanje poteka v MLflow

Iskanje Poteka V Mlflow



Za sledenje in upravljanje poskusov strojnega učenja MLflow ponuja obsežno platformo. Ena od ključnih funkcij MLflow je možnost iskanja. To omogoča prepoznavanje razvitih poskusov in njihovo organizacijo na način, ki omogoča preprosto iskanje informacij, kadar koli jih potrebujete. Iščemo lahko izvajanja z API-jem za iskanje MLflow z uporabo številnih različnih kriterijev, ki lahko vključujejo naslednje:
  • ID ali ime poskusa
  • Run ID
  • Parametri in vrednosti
  • Meritve in vrednosti
  • Oznake
  • Drugi atributi, ki so povezani s teki

Teke je mogoče filtrirati po statusu, začetnem času, končnem času in trajanju z uporabo iskalnega API-ja MLflow. Omogoča lažje filtriranje med številnimi izvedbami in iskanje določenih izvedb, ki zanimajo uporabnike.

Funkcija iskanja MLflow

Za dostop do iskalnega API-ja MLflow uporabite funkcijo mlflow.search_runs(). Ta funkcija sprejema različne argumente, kot so naslednji:







  • ID ali ime preizkusa
  • Filtrirajte niz ali besedilo
  • Največje število izvajanj za vrnitev je določeno z argumentom max_results

Poenostavljena različica klavzule WHERE SQL (Structured Query Language) je filtrirni niz ali besedilo. Lahko se uporablja za označevanje kriterijev, po katerih želimo razvrstiti izvedbe.



Sintaksa funkcije MLflow Search_Runs().

Dejanski ID ali ime eksperimenta, v katerem želimo iskati, je treba v naslednjem primeru nadomestiti z »experiment_id ali experiment_name«. Spremenljivka search_criteria omogoča vnos iskalnih kriterijev po želji. Ta merila so lahko določena z meritvami, oznakami, parametri ali dodatnimi značilnostmi. Osnovna sintaksa funkcije search_runs() je naslednja:



# Uvozite iskalni API mlflow za uporabo funkcije search_runs

uvoz mlflow

# Navedite ID ali ime eksperimenta (ni obvezno; )

exp_id = 'ID poskusa ali IME'

# Določite iskalne kriterije za zagone

iskalni_niz = 'metrics.accuracy > 0,8 IN params.learning_rate = '0,01' IN params.efficiency_rate > '80''

# Izvedite iskanje

teče = mlflow. search_runs ( eksperiment_ids = exp_id , filter_niz = iskalni_niz )

# Prikažite rezultate

tiskanje ( 'Rezultati iskanja:' )

tiskanje ( teče )

Zaženite iskanje po številnih merilih

1. Iskanje po metrični vrednosti

Poteke je mogoče filtrirati po vrednostih določenih meritev z uporabo polja meritev v iskalnem API-ju MLflow. Zbirka imen meritev, ločenih z vejicami, se prikaže v polju meritev. Naslednji filtrski niz na primer najde vse pogone z vrednostjo natančnosti, večjo od 0,9:





meritve. natančnost > 0,9

Celoten seznam metrik, ki so na voljo za uporabo v polju metrike, je podan takole:

  • natančnost
  • auc
  • f1
  • natančnost
  • odpoklicati
  • zemljevid
  • logloss
  • classification_error
  • multi_class_logloss

Poleg tega lahko uporabniki s poljem metrike filtrirajo izvajanja glede na obseg vrednosti metrike. Naslednji niz filtra na primer najde vse izvedbe, ki imajo merilo natančnosti z vrednostjo med 0,4 in 0,8:



meritve. natančnost MED 0,4 IN 0,8

V polju metrike operatorja IN in ALI združita metriki, da poiščeta izvedbe z natančnostjo metrike in vrednostmi f1 nad 0,3 in 0,8:

meritve. natančnost > 0,3 IN meritve. f1 > 0,8

2. Iskanje po vrednosti parametra

Za izvedbo iskanja po vrednosti parametra uporabite polje params v iskalnem API-ju MLflow. Imena in vrednosti parametrov so navedena v polju params z vejicami. V tem primeru prej omenjeni filtrirni niz najde vse zagone s parametrom num_boost_round, ki imajo vrednost 100:

params. num_boost_round = '100'

Še nekaj primerov iskalnih nizov za vrednosti parametrov:

  • params.num_boost_round = 900
  • params.learning_rate MED 0,001 IN 0,01
  • params.num_boost_round='70' IN params.learning_rate='0,01'

3. Iskanje po oznakah

Tukaj je primer iskanja z uporabo oznak:

iskalni_kriteriji = 'tags.mlflow.source.type = 'slovar''

Primer matrice in vrednosti parametrov za izvajanje funkcije Mlflow.search_runs()

Oglejmo si primer nastavitve eksperimenta MLflow, zagonov beleženja in nato uporabe mlflow.search_runs() za začetek iskanja. Če želite popolnoma razumeti kodo, sledite tem korakom:

1. korak: Ustvarite poskus MLflow

Začnemo z nastavitvijo eksperimenta MLflow. Pridobi obstoječi poskus, če poskus že obstaja. Če ne, ustvari novo.

Razlaga kode:

Knjižnica MLflow je uvožena v prvi vrstici kode, eksperiment_name pa je v naslednji vrstici nastavljen na »Moj prvi poskus MLflow«. Ko se eksperiment_name posreduje funkciji »mlflow.get_experiment_by_name«, ta funkcija vrne »Brez«, če poskus ne obstaja, v nasprotnem primeru pa predmet poskusa.

Preverite obstoj poskusa v pogojnem stavku. Če poskus že obstaja, nastavite eksperiment_id. V nasprotnem primeru uporabite »mlflow.create_experiment«, da ustvarite nov poskus. Ta funkcija vrne ID poskusa. Na koncu preizkusa na konzoli ali zaslonu terminala prikažite ID poskusa. Kopirajte naslednjo kodo v beležnico in shranite datoteko z želenim imenom in s pripono “.py”:

# uvozite knjižnico mlflow

uvoz mlflow

# Ustvarite ali pridobite poskus

exp_name = 'Moj prvi poskus MLflow'

# Pridobite eksperiment po imenu s funkcijo mlflow get_experiment_by_name

exp = mlflow. get_experiment_by_name ( exp_name )

# Preverite, ali poskus še ne obstaja

če exp je Noben :

# Ustvarite nov eksperiment in posredujte ime eksperimenta funkciji mlflow.create_experiment

exp_id = mlflow. create_experiment ( exp_name )

# Prikažite sporočilo o uspehu na zaslonu

tiskanje ( 'Poskus ne obstaja. Poskus je bil uspešno ustvarjen!' )

drugače :

# Pridobi eksperiment_id obstoječega eksperimenta

exp_id = exp. eksperiment_id

tiskanje ( 'Poskus že obstaja!' )

# Prikažite ID poskusa

tiskanje ( 'ID poskusa:' , exp_id )

Zdaj zaženite program v ukaznem pozivu ali terminalskem oknu s prevajalnikom Python in vnesite »Python« ter nato ime datoteke, ki je v tem primeru »MyFirstMlflowExperiment.py«. Ko se poskus prvič izvede, še ne obstaja. Tako MLFlow ustvari enega in natisne ID poskusa na zaslon konzole:

Znova zaženite kodo, da preverite, ali ne ustvarja novih poskusov, in da prikažete ID tistih, ki že obstajajo. Naslednji posnetek zaslona prikazuje, da poskus že obstaja:

2. korak: zabeležite zagone z meritvami in parametri

Poskusimo zdaj zabeležiti nekaj izvajanj z metrikami in parametri za pravkar vzpostavljen poskus. V resničnem scenariju razvijamo modele strojnega učenja in beležimo ustrezne informacije, kot so metrike in parametri, na koncu vsakega zagona. Tukaj je natančnost uporabljena kot matrična vrednost in je v tem primeru 0,95. Vrednosti parametrov za učenje in stopnjo učinkovitosti so 0,01 oziroma 90. Tukaj je koda:

# Zaženite zagon MLflow za beleženje meritev in parametrov

z mlflow. start_run ( eksperiment_id = exp_id ) :

# Vaša koda za strojno učenje tukaj (to je samo simulirani primer)

model_accuracy = 0,95

stopnja_strojnega_učenja = 0,01

stopnja_učinkovitosti = 90

# Beležite meritve in parametre

mlflow. log_metric ( 'natančnost' , model_accuracy )

mlflow. log_param ( 'stopnja_učenja' , stopnja_strojnega_učenja )

mlflow. log_param ( 'stopnja_učinkovitosti' , stopnja_učinkovitosti )

Rezultat, ko se izvede prej omenjena koda, je viden tukaj. Rezultat je enak kot prej:

3. korak: Izvedite iskanje z Mlflow.search_runs()

Nazadnje izvedemo iskanje po izvedbah, ki so bile zabeležene z uporabo nekaj parametrov, in prikažemo rezultate na zaslonu terminala:

# Določite iskalne kriterije za zagone

določite_iskalne_merila = 'metrics.accuracy > 0,8 IN params.learning_rate = '0,01' IN params.efficiency_rate = '90''

# Izvedite iskanje

teče = mlflow. search_runs ( eksperiment_ids = exp_id , filter_niz = določite_iskalne_merila )

# Prikažite rezultate

tiskanje ( 'Rezultati iskanja:' )

tiskanje ( teče )

Opozorilo, ki se nanaša na orodje Git, nastane z izvajanjem funkcije search_runs:


Dodajte kodo na vrh datoteke Python, da onemogočite to opozorilo. Tukaj je kratek del kode:

uvoz mlflow

uvoz ti

ti . približno [ 'GIT_PYTHON_REFRESH' ] = 'tih'

Funkcija »mlflow.search_runs« se uspešno izvede, ko so dodane te vrstice kode:

Zaključek

Funkcija »mlflow.search_runs« omogoča uporabnikom, da hitro raziščejo in ocenijo poskuse strojnega učenja, analizirajo številne izvedbe in natančno določijo optimalne variacije hiperparametrov ali modele, ki povzročijo želene rezultate. Je učinkovito orodje za nadzor, načrtovanje in analizo poteka dela strojnega učenja.