Pretraživanje radi u MLflowu

Pretrazivanje Radi U Mlflowu



Za praćenje i upravljanje eksperimentima strojnog učenja, MLflow nudi opsežnu platformu. Mogućnost pretraživanja pokreta jedna je od ključnih značajki MLflowa. To omogućuje identifikaciju razvijenih eksperimenata i njihovo organiziranje na način koji olakšava lociranje informacija kad god su potrebne. Možemo pretraživati ​​izvođenja pomoću API-ja za pretraživanje MLflow koristeći niz različitih kriterija koji mogu uključivati ​​sljedeće:
  • 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.8

2. 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 biblioteke

uvoz 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 parametara

s 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čanja

definirati_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 mlflow

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.