Haku suoritetaan MLflow:ssa

Haku Suoritetaan Mlflow Ssa



Koneoppimiskokeiden seurantaa ja hallintaa varten MLflow tarjoaa laajan alustan. Mahdollisuus etsiä suorituksia on yksi MLflow:n tärkeimmistä ominaisuuksista. Näin kehitetyt kokeet voidaan tunnistaa ja organisoida siten, että tiedot on helppo paikantaa aina tarvittaessa. Voimme etsiä suorituksia käyttämällä MLflow-hakusovellusliittymää useilla eri kriteereillä, joita voivat olla seuraavat:
  • Kokeilun tunnus tai nimi
  • Suorita ID
  • Parametrit ja arvot
  • Mittarit ja arvot
  • Tunnisteet
  • Muut ajoihin liittyvät attribuutit

Ajot voidaan suodattaa tilan, aloitusajan, lopetusajan ja keston mukaan MLflow-hakusovellusliittymän avulla. Sen avulla on helpompi suodattaa useita ajoja ja löytää tiettyjä ajoja, joista käyttäjät ovat kiinnostuneita.

MLflow-hakutoiminto

Käytä mlflow.search_runs()-funktiota päästäksesi MLflow-hakusovellusliittymään. Tämä funktio hyväksyy useita argumentteja, kuten seuraavat:







  • Kokeilun tunnus tai nimi
  • Suodatinmerkkijono tai teksti
  • Palautettavien ajojen enimmäismäärä määritetään argumentilla max_results

Yksinkertaistettu muunnelma SQL (Structured Query Language) WHERE-lauseesta on suodatinmerkkijono tai teksti. Sitä voidaan käyttää osoittamaan kriteerit, joiden mukaan ajot halutaan lajitella.



MLflow Search_Runs() -funktion syntaksi

Kokeilun todellinen tunnus tai nimi, josta haluamme hakea, on korvattava 'kokeilutunnus tai kokeilun_nimi' seuraavassa esimerkissä. Search_criteria-muuttuja mahdollistaa hakuehtojen syöttämisen haluamallasi tavalla. Nämä kriteerit voidaan määrittää mittareilla, tunnisteilla, parametreilla tai lisäominaisuuksilla. Search_runs()-funktion perussyntaksi on seuraava:



# Tuo mlflow-hakusovellusliittymä käyttääksesi search_runs-funktiota

tuonti mlflow

# Anna jokin kokeilun tunnus tai nimi (se on valinnainen; )

exp_id = 'Kokeilutunnus tai NIMI'

# Määritä ajojen hakukriteerit

hakumerkkijono = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' JA params.efficiency_rate > '80''

# Suorita haku

juoksee = mlflow. search_runs ( kokeilun_tunnukset = exp_id , suodatinmerkkijono = hakumerkkijono )

# Näytä tulokset

Tulosta ( 'Hakutulokset:' )

Tulosta ( juoksee )

Suorita haku useilla kriteereillä

1. Hae mittarin arvon mukaan

Ajot voidaan suodattaa tiettyjen mittareiden arvojen mukaan käyttämällä MLflow-hakusovellusliittymän mittakenttää. Mittarikentässä näkyy kokoelma pilkuilla erotettuja tietonimiä. Esimerkiksi seuraava suodatinmerkkijono paikantaa kaikki ajot, joiden tarkkuusarvo on suurempi kuin 0,9:





mittareita. tarkkuus > 0.9

Täydellinen luettelo mittarikentässä käytettävissä olevista mittareista on seuraava:

  • tarkkuus
  • auc
  • f1
  • tarkkuutta
  • palauttaa mieleen
  • kartta
  • logloss
  • luokitus_virhe
  • multi_class_logloss

Lisäksi käyttäjät voivat suodattaa suorituksia mittarin arvoalueen mukaan käyttämällä mittarikenttää. Esimerkiksi seuraava suodatinmerkkijono paikantaa kaikki ajot, joiden tarkkuusmitta on välillä 0,4–0,8:



mittareita. tarkkuus VÄLILLÄ 0.4 JA 0.8

Mittarikentässä AND- ja OR-operaattorit yhdistävät mittarit löytääkseen ajot, joiden mittatarkkuus ja f1-arvot ovat yli 0,3 ja 0,8:

mittareita. tarkkuus > 0.3 JA mittarit. f1 > 0.8

2. Hae parametrin arvon mukaan

Käytä parametrikenttää MLflow-hakusovellusliittymässä suorittaaksesi haun parametriarvon perusteella. Parametrien nimet ja arvot luetellaan parametrikentässä pilkuilla. Tässä esimerkissä edellä mainittu suodatinmerkkijono paikantaa kaikki ajot parametrilla num_boost_round, joiden arvo on 100:

parametrit. num_boost_round = '100'

Muita esimerkkejä parametriarvojen hakumerkkijonoista:

  • params.num_boost_round = 900
  • params.learning_rate 0,001 JA 0,01 VÄLILLÄ
  • params.num_boost_round=’70’ JA params.learning_rate=’0.01′

3. Hae tunnisteiden mukaan

Tässä on esimerkki hausta, jossa käytetään tunnisteita:

hakukriteerit = 'tags.mlflow.source.type = 'sanakirja''

Esimerkki matriisien ja parametrien arvoista Mlflow.search_runs()-funktion suorittamiseen

Käydään läpi esimerkki MLflow-kokeilun määrittämisestä, ajojen kirjaamisesta ja sitten mlflow.search_runs():n käyttämisestä haun aloittamiseen. Ymmärtääksesi koodin täydellisesti, noudata näitä ohjeita:

Vaihe 1: Luo MLflow-kokeilu

Aloitamme perustamalla MLflow-kokeen. Se hakee olemassa olevan kokeilun, jos kokeilu on jo olemassa. Jos ei, se luo uuden.

Koodin selitys:

MLflow-kirjasto tuodaan koodin ensimmäiselle riville, ja seuraavalla rivillä kokeen_nimi asetetaan 'My First MLflow Experiment'. Kun kokeilun_nimi välitetään funktiolle 'mlflow.get_experiment_by_name', tämä funktio palauttaa 'Ei mitään', jos kokeilua ei ole, ja muutoin kokeilun kohteen.

Tarkista kokeen olemassaolo ehdollisesta lauseesta. Jos kokeilu on jo olemassa, aseta kokeilun_tunnus. Muussa tapauksessa käytä 'mlflow.create_experiment' luodaksesi uuden kokeilun. Tämä funktio palauttaa kokeilun tunnuksen. Näytä kokeilun tunnus konsoli- tai päätenäytössä kokeen lopussa. Kopioi seuraava koodi muistilehtiöön ja tallenna tiedosto halutulla nimellä ja '.py'-tunnisteella:

# tuo mlflow-kirjasto

tuonti mlflow

# Luo tai nouda kokeilu

exp_name = 'Ensimmäinen MLflow-kokeiluni'

# Hae kokeilu nimellä käyttämällä mlflow-funktiota get_experiment_by_name

exp = mlflow. get_experiment_by_name ( exp_name )

# Tarkista, ettei kokeilua ole jo olemassa

jos exp On Ei mitään :

# Luo uusi kokeilu ja välitä kokeilun nimi mlflow.create_experiment-funktiolle

exp_id = mlflow. luo_koe ( exp_name )

# Näytä onnistumisviesti näytöllä

Tulosta ( 'Kokeilua ei ole olemassa. Kokeilu luotiin onnistuneesti!' )

muu :

# Hae olemassa olevan kokeilun experiment_id

exp_id = exp. kokeilun_tunnus

Tulosta ( 'Kokeilu on jo olemassa!' )

# Näytä kokeilun tunnus

Tulosta ( 'Kokeilutunnus:' , exp_id )

Käynnistä nyt ohjelma komentokehotteessa tai pääteikkunassa Python-kääntäjällä ja kirjoita 'Python' ja sitten tiedostonimi, joka tässä tapauksessa on 'MyFirstMlflowExperiment.py'. Kun kokeilua ajetaan ensimmäisen kerran, sitä ei ole vielä olemassa. Siten MLFlow luo sellaisen ja tulostaa kokeilun tunnuksen konsolin näytölle:

Suorita koodi uudelleen varmistaaksesi, ettei se luo uusia kokeiluja, ja näyttää jo olemassa olevien kokeilujen tunnukset. Seuraava kuvakaappaus näyttää, että kokeilu on jo olemassa:

Vaihe 2: Kirjaa ajot mittareilla ja parametreilla

Yritetään nyt kirjata joitakin ajoja juuri perustetun kokeilun mittareilla ja parametreilla. Todellisessa skenaariossa kehitämme koneoppimismalleja ja tallennamme tarvittavat tiedot, kuten mittarit ja parametrit, jokaisen ajon lopussa. Tässä matriisina arvona käytetään tarkkuutta, ja se on tässä tapauksessa 0,95. Oppimis- ja tehokkuusasteen parametriarvot ovat 0,01 ja 90. Tässä on koodi:

# Aloita MLflow-ajo mittareiden ja parametrien kirjaamiseksi

kanssa mlflow. start_run ( kokeilun_tunnus = exp_id ) :

# Koneoppimiskoodisi tässä (tämä on vain simuloitu esimerkki)

mallin_tarkkuus = 0,95

koneoppimisnopeus = 0,01

tehokkuus = 90

# Kirjaa mittarit ja parametrit

mlflow. log_metriikka ( 'tarkkuus' , mallin_tarkkuus )

mlflow. log_param ( 'oppimisnopeus' , koneoppimisnopeus )

mlflow. log_param ( 'tehokkuusaste' , tehokkuus )

Tulos, kun edellä mainittu koodi suoritetaan, näkyy tässä. Tulos on sama kuin ennen:

Vaihe 3: Suorita haku käyttämällä Mlflow.search_runs()

Lopuksi suoritamme haun ajoille, jotka on kirjattu muutamalla parametrilla ja näytämme tulokset päätenäytöllä:

# Määritä ajojen hakukriteerit

define_search_criteria = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' JA params.efficiency_rate = '90''

# Suorita haku

juoksee = mlflow. search_runs ( kokeilun_tunnukset = exp_id , suodatinmerkkijono = define_search_criteria )

# Näytä tulokset

Tulosta ( 'Hakutulokset:' )

Tulosta ( juoksee )

Git-työkalua koskevan varoituksen tuottaa search_runs-funktion suoritus:


Lisää koodi Python-tiedoston yläosaan tämän varoituksen poistamiseksi käytöstä. Tässä koodin lyhyt osa:

tuonti mlflow

tuonti sinä

sinä . suunnilleen [ 'GIT_PYTHON_REFRESH' ] = 'hiljainen'

Funktio 'mlflow.search_runs' suoritetaan onnistuneesti, kun nämä koodirivit on lisätty:

Johtopäätös

'mlflow.search_runs'-toiminnon avulla käyttäjät voivat nopeasti tutkia ja arvioida koneoppimiskokeita, analysoida monia ajoja ja määrittää optimaaliset hyperparametrien muunnelmat tai mallit, jotka johtavat haluttuihin tuloksiin. Se on tehokas työkalu koneoppimisen työnkulun valvontaan, suunnitteluun ja analysointiin.