- 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.82. 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 parametrussu 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 kriterijusdefine_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 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.