- 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,82. 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 mlflowuvoz 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 parametrovz 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 zagonedoloč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 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.