- ID ili naziv eksperimenta
- Pokreni ID
- Parametri i vrijednosti
- Mjerni podaci i vrijednosti
- Oznake
- Ostali atributi koji su povezani s trčanjima
Trčanja se mogu filtrirati prema statusu, vremenu početka, vremenu završetka i trajanju uz korištenje API-ja za pretraživanje MLflow. Olakšava filtriranje kroz mnoga izvođenja i pronalaženje određenih izvođenja za koje su korisnici zainteresirani.
MLflow funkcija pretraživanja
Upotrijebite funkciju mlflow.search_runs() za pristup API-ju pretraživanja MLflow. Ova funkcija prihvaća razne argumente kao što su sljedeći:
- ID ili naziv eksperimenta
- Filtrirajte niz ili tekst
- Maksimalni broj pokretanja za vraćanje određen je argumentom max_results
Pojednostavljena varijanta klauzule SQL (Structured Query Language) WHERE je filtarski niz ili tekst. Može se koristiti za označavanje kriterija po kojima želimo sortirati izvođenja.
Sintaksa funkcije MLflow Search_Runs().
Stvarni ID ili naziv eksperimenta unutar kojeg želimo pretraživati mora se zamijeniti s 'experiment_id ili experiment_name' u sljedećem primjeru. Varijabla search_criteria omogućuje unos kriterija pretraživanja po želji. Ovi kriteriji mogu biti određeni metrikama, oznakama, parametrima ili dodatnim karakteristikama. Osnovna sintaksa funkcije search_runs() je sljedeća:
# Uvezite mlflow API za pretraživanje da biste koristili funkciju search_runs
uvoz mlflow
# Navedite neki ID ili naziv eksperimenta (nije obavezno; )
exp_id = 'ID ili NAZIV eksperimenta'
# Definirajte kriterije pretraživanja za trčanja
pretraženi niz = 'metrics.accuracy > 0,8 I params.learning_rate = '0,01' I params.efficiency_rate > '80''
# Izvršite pretragu
trči = mlflow. search_runs ( eksperiment_ids = exp_id , filtarski niz = pretraženi niz )
# Prikaz rezultata
ispisati ( 'Rezultati pretraživanja:' )
ispisati ( trči )
Pokrenite pretragu pomoću brojnih kriterija
1. Pretraživanje prema metričkoj vrijednosti
Pokretanja se mogu filtrirati prema vrijednostima određenih metrika pomoću polja metrike u API-ju za pretraživanje MLflow. Zbirka naziva metrike odvojenih zarezima pojavljuje se u polju metrike. Na primjer, sljedeći filtarski niz locira sva izvođenja s vrijednošću točnosti većom od 0,9:
metrika. točnost > 0.9
Potpuni popis metrika dostupnih za korištenje u polju metrike dan je kako slijedi:
- točnost
- auc
- f1
- preciznost
- podsjetiti
- karta
- logloss
- pogreška_klasifikacije
- multi_class_logloss
Osim toga, korisnici mogu filtrirati izvođenja prema rasponu vrijednosti metrike pomoću polja metrike. Na primjer, sljedeći filtarski niz locira sva izvođenja koja imaju mjeru točnosti s vrijednošću između 0,4 i 0,8:
metrika. točnost IZMEĐU 0.4 I 0.8
U polju metrike, operatori AND i OR kombiniraju metrike kako bi pronašli nizove s točnošću metrike i f1 vrijednostima iznad 0,3 i 0,8:
metrika. točnost > 0.3 I metrika. f1 > 0.82. Pretraživanje po vrijednosti parametra
Upotrijebite polje params u API-ju za pretraživanje MLflow za izvođenje pretraživanja prema vrijednosti parametra. Nazivi i vrijednosti parametara navedeni su u polju params koristeći zareze. U ovom primjeru, gore spomenuti niz filtera locira sva izvođenja s parametrom num_boost_round koji imaju vrijednost 100:
parametri num_boost_round = '100'Još nekoliko primjera nizova pretraživanja za vrijednosti parametara:
- params.num_boost_round = 900
- params.learning_rate IZMEĐU 0,001 I 0,01
- params.num_boost_round=’70’ I params.learning_rate=’0,01′
3. Pretraživanje po oznakama
Evo primjera pretraživanja pomoću oznaka:
kriterij pretrage = 'tags.mlflow.source.type = 'rječnik''Primjer matrice i vrijednosti parametra za izvođenje funkcije Mlflow.search_runs()
Proradimo kroz primjer postavljanja MLflow eksperimenta, bilježenja izvođenja i zatim upotrebe mlflow.search_runs() za pokretanje pretraživanja. Da biste u potpunosti razumjeli kod, slijedite ove korake:
Korak 1: Napravite MLflow eksperiment
Počinjemo postavljanjem MLflow eksperimenta. Dohvaća postojeći eksperiment ako eksperiment već postoji. Ako nije, stvara novi.
Objašnjenje koda:
Biblioteka MLflow uvezena je u prvi redak koda, a experiment_name postavljen je na 'My First MLflow Experiment' u sljedećem retku. Kada se eksperiment_naziv proslijedi funkciji 'mlflow.get_experiment_by_name', ta funkcija vraća 'Ništa' ako eksperiment ne postoji, a u suprotnom objekt eksperimenta.
Provjerite postojanje pokusa u uvjetnoj izjavi. Ako eksperiment već postoji, postavite experiment_id. U suprotnom, upotrijebite 'mlflow.create_experiment' za izradu novog eksperimenta. Ova funkcija vraća ID eksperimenta. Prikažite ID eksperimenta na konzoli ili zaslonu terminala na kraju eksperimenta. Kopirajte sljedeći kod u notepad i spremite datoteku sa željenim nazivom i ekstenzijom “.py”:
# import mlflow bibliotekeuvoz mlflow
# Kreirajte ili dohvatite eksperiment
exp_name = 'Moj prvi MLflow eksperiment'
# Dohvaćanje eksperimenta po imenu pomoću mlflow funkcije get_experiment_by_name
eksp = mlflow. get_experiment_by_name ( exp_name )
# Provjerite postoji li eksperiment već
ako eksp je Nijedan :
# Stvorite novi eksperiment i proslijedite naziv eksperimenta funkciji mlflow.create_experiment
exp_id = mlflow. stvoriti_eksperiment ( exp_name )
# Prikažite poruku o uspjehu na zaslonu
ispisati ( 'Eksperiment ne postoji. Eksperiment je uspješno kreiran!' )
drugo :
# Dohvati experiment_id postojećeg eksperimenta
exp_id = eksp. eksperiment_id
ispisati ( 'Eksperiment već postoji!' )
# Prikaži ID eksperimenta
ispisati ( 'ID eksperimenta:' , exp_id )
Sada pokrenite program u naredbenom retku ili prozoru terminala pomoću Python prevoditelja i upišite 'Python', a zatim naziv datoteke koji je u ovom slučaju 'MyFirstMlflowExperiment.py'. Kada se eksperiment prvi put izvodi, on još ne postoji. Stoga MLFlow stvara jedan i ispisuje ID eksperimenta na zaslonu konzole:
Ponovno pokrenite kôd kako biste potvrdili da ne stvara nove eksperimente i da biste prikazali ID onih koji već postoje. Sljedeća snimka zaslona pokazuje da eksperiment već postoji:
Korak 2: Zabilježite izvođenja s metrikom i parametrima
Pokušajmo sada zabilježiti neka izvođenja s metrikama i parametrima za upravo uspostavljeni eksperiment. U scenariju stvarnog svijeta, razvijamo modele strojnog učenja i bilježimo relevantne informacije, kao što su metrika i parametri, na kraju svakog pokretanja. Ovdje se točnost koristi kao matrička vrijednost, a ona u ovom slučaju iznosi 0,95. Vrijednosti parametra za učenje i stopu učinkovitosti su 0,01 odnosno 90. Evo koda:
# Pokrenite izvođenje MLflowa za bilježenje metrike i parametaras mlflow. pokrenuti_trčanje ( eksperiment_id = exp_id ) :
# Vaš kod strojnog učenja ovdje (ovo je samo simulirani primjer)
model_točnost = 0,95
stopa_strojnog_učenja = 0,01
stopa_učinkovitosti = 90
# Bilježite metrike i parametre
mlflow. log_metric ( 'točnost' , model_točnost )
mlflow. log_param ( 'stopa_učenja' , stopa_strojnog_učenja )
mlflow. log_param ( 'stopa_učinkovitosti' , stopa_učinkovitosti )
Rezultat, kada se gore spomenuti kod izvrši, vidi se ovdje. Rezultat je isti kao i prije:
Korak 3: Izvršite pretraživanje pomoću Mlflow.search_runs()
Na kraju, pokrećemo pretragu na izvođenjima koja su zabilježena pomoću nekoliko parametara i prikazujemo rezultate na zaslonu terminala:
# Definirajte kriterije pretraživanja za trčanjadefinirati_kriterije_pretrage = 'metrics.accuracy > 0,8 I params.learning_rate = '0,01' I params.efficiency_rate = '90''
# Izvršite pretragu
trči = mlflow. search_runs ( eksperiment_ids = exp_id , filtarski niz = definirati_kriterije_pretrage )
# Prikaz rezultata
ispisati ( 'Rezultati pretraživanja:' )
ispisati ( trči )
Upozorenje koje se odnosi na alat Git proizvodi se izvođenjem funkcije search_runs:
Dodajte neki kod na vrh Python datoteke da biste onemogućili ovo upozorenje. Evo kratkog dijela koda:
uvoz vas
vas . približno [ 'GIT_PYTHON_REFRESH' ] = 'miran'
Funkcija 'mlflow.search_runs' uspješno se izvršava kada se dodaju ove linije koda:
Zaključak
Funkcija 'mlflow.search_runs' omogućuje korisnicima brzo istraživanje i procjenu eksperimenata strojnog učenja, analizu mnogih pokreta i precizno određivanje optimalnih varijacija hiperparametara ili modela koji rezultiraju željenim rezultatima. To je učinkovit alat za nadgledanje, planiranje i analizu tijeka rada strojnog učenja.