Paieška vykdoma naudojant MLflow

Paieska Vykdoma Naudojant Mlflow



Norėdami stebėti ir valdyti mašininio mokymosi eksperimentus, MLflow siūlo plačią platformą. Galimybė ieškoti paleidimų yra viena iš pagrindinių MLflow funkcijų. Tai leidžia identifikuoti sukurtus eksperimentus ir organizuoti juos taip, kad prireikus būtų paprasta rasti informaciją. Galime ieškoti paleidimų naudodami MLflow paieškos API, naudodami daugybę skirtingų kriterijų, įskaitant šiuos:
  • Eksperimento ID arba pavadinimas
  • Vykdyti ID
  • Parametrai ir reikšmės
  • Metrika ir vertės
  • Žymos
  • Kiti atributai, susieti su paleidimais

Naudojant MLflow paieškos API, paleidimus galima filtruoti pagal būseną, pradžios laiką, pabaigos laiką ir trukmę. Tai leidžia lengviau filtruoti daugybę paleidimų ir rasti konkrečius naudotojus dominančius paleidimus.

MLflow paieškos funkcija

Naudokite funkciją mlflow.search_runs() norėdami pasiekti MLflow paieškos API. Ši funkcija priima įvairius argumentus, pavyzdžiui:







  • Eksperimento ID arba pavadinimas
  • Filtro eilutė arba tekstas
  • Maksimalus grąžintinų paleidimų skaičius nurodomas argumentu max_results

Supaprastintas SQL (struktūrinės užklausos kalbos) WHERE sąlygos variantas yra filtro eilutė arba tekstas. Jis gali būti naudojamas norint nurodyti kriterijus, pagal kuriuos norime rūšiuoti paleidimus.



Funkcijos MLflow Search_Runs() sintaksė

Šiame pavyzdyje „eksperimento_id arba eksperimento_pavadinimas“ turi būti pakeistas faktinis eksperimento, kuriame norime ieškoti, ID arba pavadinimas. Kintamasis „Search_criteria“ leidžia įvesti pageidaujamus paieškos kriterijus. Šiuos kriterijus gali nustatyti metrika, žymos, parametrai arba papildomos charakteristikos. Pagrindinė funkcijos search_runs() sintaksė yra tokia:



# Importuokite mlflow paieškos API, kad galėtumėte naudoti funkciją search_runs

importuoti ml srautas

# Pateikite eksperimento ID arba pavadinimą (tai neprivaloma; )

exp_id = „Eksperimento ID arba NAME“

# Apibrėžkite bėgimo paieškos kriterijus

paieškos_eilutė = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' IR params.efficiency_rate > '80''

# Atlikite paiešką

bėga = ml srautas. search_runs ( eksperimento_ids = exp_id , filtras_eilutė = paieškos_eilutė )

# Rodyti rezultatus

spausdinti ( 'Paieškos rezultatai:' )

spausdinti ( bėga )

Vykdykite paiešką naudodami daugybę kriterijų

1. Ieškokite pagal metrinę vertę

Vykdymai gali būti filtruojami pagal tam tikros metrikos reikšmes naudojant metrikos lauką MLflow paieškos API. Metrikos lauke rodomas kableliais atskirtų metrikų pavadinimų rinkinys. Pavyzdžiui, ši filtro eilutė nustato visus paleidimus, kurių tikslumo reikšmė didesnė nei 0,9:





metrikos. tikslumu > 0.9

Visas metrikų, kurias galima naudoti metrikos lauke, sąrašas pateikiamas taip:

  • tikslumu
  • auc
  • f1
  • tikslumas
  • prisiminti
  • žemėlapį
  • logloss
  • klasifikavimo_klaida
  • multi_class_logloss

Be to, naudotojai gali filtruoti paleidimus pagal metrikos verčių diapazoną naudodami metrikos lauką. Pavyzdžiui, kita filtro eilutė nustato visus paleidimus, kurių tikslumo matas yra nuo 0,4 iki 0,8:



metrikos. tikslumu TARP 0.4 IR 0.8

Metrikos lauke IR ir OR operatoriai sujungia metriką, kad surastų paleidimus, kurių metrikos tikslumas ir f1 reikšmės viršija 0,3 ir 0,8:

metrikos. tikslumu > 0.3 IR metrikos. f1 > 0.8

2. Ieškokite pagal parametro reikšmę

Norėdami atlikti paiešką pagal parametro reikšmę, naudokite parametrų lauką MLflow paieškos API. Parametrų pavadinimai ir reikšmės pateikiami parametrų lauke kableliais. Šiame pavyzdyje anksčiau minėta filtro eilutė nustato visus paleidimus su parametru num_boost_round, kurių reikšmė yra 100:

parametrai. num_boost_round = '100'

Dar keli parametrų reikšmių paieškos eilučių pavyzdžiai:

  • params.num_boost_round = 900
  • params.mokymosi_norma TARP 0,001 IR 0,01
  • params.num_boost_round='70' IR params.learning_rate='0,01'

3. Ieškokite pagal žymas

Štai paieškos naudojant žymas pavyzdys:

paieškos Reikalavimai = 'tags.mlflow.source.type = 'žodynas''

Matricos ir parametrų reikšmių, skirtų funkcijai Mlflow.search_runs() atlikti, pavyzdys

Panagrinėkime pavyzdį, kaip nustatyti MLflow eksperimentą, registruoti paleidimus ir naudoti mlflow.search_runs() paieškai pradėti. Norėdami visiškai suprasti kodą, atlikite šiuos veiksmus:

1 veiksmas: sukurkite MLflow eksperimentą

Pradedame nuo MLflow eksperimento nustatymo. Jis nuskaito esamą eksperimentą, jei eksperimentas jau yra. Jei ne, sukuriamas naujas.

Kodo paaiškinimas:

MLflow biblioteka importuojama pirmoje kodo eilutėje, o kitoje eilutėje eksperimento_pavadinimas nustatomas kaip „Mano pirmasis MLflow eksperimentas“. Kai eksperimento_pavadinimas perduodamas funkcijai „mlflow.get_experiment_by_name“, ši funkcija grąžina „Nėra“, jei eksperimento nėra, o kitu atveju – eksperimento objektą.

Patikrinkite, ar sąlyginiame sakinyje nėra eksperimento. Jei eksperimentas jau yra, nustatykite eksperimento_id. Kitu atveju naudokite „mlflow.create_experiment“, kad sukurtumėte naują eksperimentą. Ši funkcija grąžina eksperimento ID. Eksperimento pabaigoje konsolės arba terminalo ekrane parodykite eksperimento ID. Nukopijuokite šį kodą bloknote ir išsaugokite failą norimu pavadinimu ir plėtiniu „.py“:

# importuoti mlflow biblioteką

importuoti ml srautas

# Sukurkite arba gaukite eksperimentą

exp_name = „Mano pirmasis MLflow eksperimentas“

# Gaukite eksperimentą pagal pavadinimą naudodami mlflow funkciją get_experiment_by_name

exp = ml srautas. gauti_eksperimentą_pagal_pavadinimą ( exp_name )

# Patikrinkite, ar eksperimentas dar neegzistuoja

jeigu exp yra Nė vienas :

# Sukurkite naują eksperimentą ir perduokite eksperimento pavadinimą funkcijai mlflow.create_experiment

exp_id = ml srautas. sukurti_eksperimentą ( exp_name )

# Parodykite sėkmės pranešimą ekrane

spausdinti ( 'Eksperimentas neegzistuoja. Eksperimentas sėkmingai sukurtas!' )

Kitas :

# Gaukite esamo eksperimento eksperimento_id

exp_id = exp. eksperimento_id

spausdinti ( 'Eksperimentas jau yra!' )

# Vaizdinės reklamos tinklo eksperimento ID

spausdinti ( 'Eksperimento ID:' , exp_id )

Dabar paleiskite programą komandų eilutėje arba terminalo lange naudodami Python kompiliatorių ir įveskite „Python“, tada failo pavadinimą, kuris šiuo atveju yra „MyFirstMlflowExperiment.py“. Kai eksperimentas pirmą kartą vykdomas, jo dar nėra. Taigi, MLFlow sukuria jį ir konsolės ekrane išspausdina eksperimento ID:

Iš naujo paleiskite kodą, kad patikrintumėte, ar jis nekuria naujų eksperimentų, ir kad būtų rodomi jau esamų eksperimentų ID. Šioje ekrano kopijoje parodyta, kad eksperimentas jau yra:

2 veiksmas: užregistruokite paleidimus naudodami metriką ir parametrus

Dabar pabandykime užregistruoti kai kuriuos paleidimus naudodami ką tik sukurto eksperimento metriką ir parametrus. Realiame scenarijuje kuriame mašininio mokymosi modelius ir kiekvieno paleidimo pabaigoje įrašome atitinkamą informaciją, pvz., metriką ir parametrus. Čia kaip matricos reikšmė naudojamas tikslumas, šiuo atveju jis yra 0,95. Mokymosi ir efektyvumo rodiklio parametrų reikšmės yra atitinkamai 0,01 ir 90. Štai kodas:

# Pradėkite MLflow paleidimą, kad registruotumėte metriką ir parametrus

su ml srautas. start_run ( eksperimento_id = exp_id ) :

# Čia jūsų mašininio mokymosi kodas (tai tik imituotas pavyzdys)

modelio_tikslumas = 0,95

mašininio_mokymosi_norma = 0,01

efektyvumo_norma = 90

# Registruokite metriką ir parametrus

ml srautas. log_metrika ( 'tikslumas' , modelio_tikslumas )

ml srautas. log_param ( 'mokymosi_norma' , mašininio_mokymosi_norma )

ml srautas. log_param ( 'efektyvumo_norma' , efektyvumo_norma )

Rezultatas, kai vykdomas minėtas kodas, matomas čia. Rezultatas toks pat kaip ir anksčiau:

3 veiksmas: atlikite paiešką naudodami Mlflow.search_runs()

Galiausiai atliekame paleidimų, užregistruotų naudojant kelis parametrus, paiešką ir rodome rezultatus terminalo ekrane:

# Apibrėžkite bėgimo paieškos kriterijus

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

# Atlikite paiešką

bėga = ml srautas. search_runs ( eksperimento_ids = exp_id , filtras_eilutė = define_search_criteria )

# Rodyti rezultatus

spausdinti ( 'Paieškos rezultatai:' )

spausdinti ( bėga )

Įspėjimas, susijęs su „Git“ įrankiu, sukuriamas vykdant funkciją search_runs:


Pridėkite kodą Python failo viršuje, kad išjungtumėte šį įspėjimą. Štai trumpa kodo dalis:

importuoti ml srautas

importuoti tu

tu . maždaug [ „GIT_PYTHON_REFRESH“ ] = 'tylus'

Funkcija „mlflow.search_runs“ sėkmingai vykdoma, kai pridedamos šios kodo eilutės:

Išvada

Funkcija „mlflow.search_runs“ leidžia vartotojams greitai ištirti ir įvertinti mašininio mokymosi eksperimentus, analizuoti daugybę paleidimų ir tiksliai nustatyti optimalius hiperparametrų variantus ar modelius, kurie duoda norimus rezultatus. Tai veiksminga priemonė mašininio mokymosi darbo eigai prižiūrėti, planuoti ir analizuoti.