- Eksperiment-id eller navn
- Kør ID
- Parametre og værdier
- Metrik og værdier
- Tags
- Andre attributter, der er knyttet til kørslerne
Kørsler kan filtreres efter status, starttidspunkt, sluttidspunkt og varighed ved brug af MLflow søge-API. Det gør det nemmere at filtrere gennem mange kørsler og finde specifikke kørsler, som brugerne er interesserede i.
MLflow søgefunktion
Brug funktionen mlflow.search_runs() til at få adgang til MLflow-søge-API'en. Denne funktion accepterer en række argumenter som følgende:
- Eksperimentets ID eller navn
- Filtrer streng eller tekst
- Det maksimale antal kørsler, der skal returneres, er angivet af argumentet max_results
En forenklet variant af SQL (Structured Query Language) WHERE-sætningen er filterstrengen eller teksten. Den kan bruges til at angive de kriterier, som vi ønsker at sortere kørslerne efter.
Syntaks for MLflow Search_Runs()-funktionen
Det faktiske id eller navn på det eksperiment, som vi ønsker at søge i, skal erstattes af 'eksperiment_id eller eksperiment_navn' i det følgende eksempel. Search_criteria-variablen gør det muligt at indtaste søgekriterierne som ønsket. Disse kriterier kan bestemmes af metrics, tags, parametre eller yderligere karakteristika. Search_runs()-funktionens grundlæggende syntaks er som følger:
# Importer mlflow søge-API'et for at bruge funktionen search_runs
importere mlflow
# Angiv et eksperiment-id eller navn (det er valgfrit; )
exp_id = 'Eksperiment-id eller NAVN'
# Definer søgekriterierne for kørsler
søgestreng = 'metrics.accuracy > 0,8 OG params.learning_rate = '0,01' OG params.efficiency_rate > '80''
# Udfør søgningen
løber = mlflow. search_runs ( eksperiment_id'er = exp_id , filter_streng = søgestreng )
# Vis resultaterne
Print ( 'Søgeresultater:' )
Print ( løber )
Kør en søgning ved hjælp af adskillige kriterier
1. Søg efter metrisk værdi
Kørsler kan filtreres efter værdierne af bestemte metrics ved hjælp af metrics-feltet i MLflow Search API. En samling af metriske navne adskilt af kommaer vises i metric-feltet. For eksempel lokaliserer følgende filterstreng alle kørsler med en nøjagtighedsværdi på mere end 0,9:
målinger. nøjagtighed > 0,9
Den komplette liste over metrics, der er tilgængelige til brug i metrics-feltet, er angivet som følger:
- nøjagtighed
- auc
- f1
- præcision
- minde om
- kort
- logtab
- klassifikationsfejl
- multi_class_logloss
Derudover kan brugerne filtrere kørslerne efter en metrics række af værdier ved hjælp af metrics-feltet. For eksempel lokaliserer den næste filterstreng alle kørsler, der har et nøjagtighedsmål med en værdi mellem 0,4 og 0,8:
målinger. nøjagtighed MELLEM 0,4 OG 0,8
I metrikfeltet kombinerer AND- og OR-operatorerne metrikkerne for at finde kørslerne med metrik-nøjagtighed og f1-værdier over 0,3 og 0,8:
målinger. nøjagtighed > 0,3 OG målinger. f1 > 0,82. Søg efter parameterværdi
Benyt params-feltet i MLflow-søge-API'en til at udføre en søgning efter en parameterværdi. Parameternavnene og -værdierne er angivet i parameterfeltet ved hjælp af kommaer. I dette eksempel lokaliserer den førnævnte filterstreng alle kørsler med parameteren num_boost_round, der har værdien 100:
params. num_boost_round = '100'Nogle flere eksempler på søgestrenge for parameterværdier:
- params.num_boost_round = 900
- params.learning_rate MELLEM 0,001 OG 0,01
- params.num_boost_round='70' OG params.learning_rate='0,01′
3. Søg efter tags
Her er et eksempel på en søgning, der anvender tags:
søgekriterier = 'tags.mlflow.source.type = 'ordbog''Eksempel på matrik- og parameterværdier til at udføre funktionen Mlflow.search_runs()
Lad os gennemgå et eksempel på opsætning af et MLflow-eksperiment, logning af kørsler og derefter brug af mlflow.search_runs() til at starte en søgning. Følg disse trin for at forstå koden fuldstændigt:
Trin 1: Opret et MLflow-eksperiment
Vi starter med at opsætte et MLflow eksperiment. Den henter det eksisterende eksperiment, hvis eksperimentet allerede eksisterer. Hvis ikke, opretter det en ny.
Kodeforklaring:
MLflow-biblioteket importeres i den første linje i koden, og eksperimentnavnet er sat til 'Mit første MLflow-eksperiment' i den næste linje. Når eksperimentnavnet videregives til funktionen 'mlflow.get_experiment_by_name', returnerer denne funktion 'Ingen', hvis eksperimentet ikke eksisterer og i øvrigt et objekt af eksperimentet.
Tjek eksistensen af eksperimentet i den betingede erklæring. Hvis eksperimentet allerede eksisterer, skal du angive experiment_id. Ellers skal du bruge 'mlflow.create_experiment' til at oprette et nyt eksperiment. Eksperiment-id'et returneres af denne funktion. Vis eksperiment-id'et på konsollen eller terminalskærmen i slutningen af eksperimentet. Kopier følgende kode i notesblokken og gem filen med det ønskede navn og med filtypenavnet '.py':
# importer mlflow bibliotekimportere mlflow
# Opret eller hent eksperimentet
eksp_navn = 'Mit første MLflow-eksperiment'
# Hent eksperimentet efter navn ved hjælp af mlflow-funktionen get_experiment_by_name
eksp = mlflow. get_experiment_by_name ( eksp_navn )
# Tjek om eksperimentet ikke allerede eksisterer
hvis eksp er Ingen :
# Opret nyt eksperiment, og send eksperimentnavnet til funktionen mlflow.create_experiment
exp_id = mlflow. oprette_eksperiment ( eksp_navn )
# Vis succesmeddelelsen på skærmen
Print ( 'Eksperiment eksisterer ikke. Eksperiment oprettet med succes!' )
andet :
# Hent experiment_id for det eksisterende eksperiment
exp_id = eksp. eksperiment_id
Print ( 'Eksperimentet eksisterer allerede!' )
# Vis eksperiment-id
Print ( 'Eksperiment-id:' , exp_id )
Start nu programmet i kommandoprompten eller terminalvinduet ved hjælp af Python-kompileren og skriv 'Python' og derefter filnavnet, som i dette tilfælde er 'MyFirstMlflowExperiment.py'. Når eksperimentet køres første gang, eksisterer det endnu ikke. Således opretter MLFlow en og udskriver eksperiment-id'et på konsolskærmen:
Kør koden igen for at bekræfte, at den ikke opretter nye eksperimenter, og for at vise ID'et på dem, der allerede eksisterer. Følgende skærmbillede viser, at eksperimentet allerede eksisterer:
Trin 2: Log kørslerne med metrikker og parametre
Lad os nu forsøge at logge nogle kørsler med metrics og parametre for det netop etablerede eksperiment. I et scenarie i den virkelige verden udvikler vi maskinlæringsmodellerne og registrerer de relevante oplysninger, såsom metrikker og parametre, ved slutningen af hver kørsel. Her bruges nøjagtighed som en matrikværdi, og den er i dette tilfælde 0,95. Parameterværdierne for indlæring og effektivitetsrate er henholdsvis 0,01 og 90. Her er koden:
# Start en MLflow-kørsel for at logge metrics og parametremed mlflow. start_run ( eksperiment_id = exp_id ) :
# Din maskinlæringskode her (dette er kun et simuleret eksempel)
model_nøjagtighed = 0,95
machine_learning_rate = 0,01
effektivitetsrate = 90
# Log metrics og parametre
mlflow. log_metrisk ( 'nøjagtighed' , model_nøjagtighed )
mlflow. log_param ( 'læringsrate' , machine_learning_rate )
mlflow. log_param ( 'effektivitetsrate' , effektivitetsrate )
Resultatet, når den førnævnte kode udføres, ses her. Resultatet er det samme som før:
Trin 3: Udfør en søgning ved hjælp af Mlflow.search_runs()
Til sidst kører vi en søgning på de kørsler, der er blevet logget med nogle få parametre og viser resultaterne på terminalskærmen:
# Definer søgekriterierne for kørslerdefinere_søgekriterier = 'metrics.accuracy > 0,8 OG params.learning_rate = '0,01' OG params.efficiency_rate = '90''
# Udfør søgningen
løber = mlflow. search_runs ( eksperiment_id'er = exp_id , filter_streng = definere_søgekriterier )
# Vis resultaterne
Print ( 'Søgeresultater:' )
Print ( løber )
En advarsel, der vedrører Git-værktøjet, frembringes af search_runs-funktionens udførelse:
Tilføj noget kode øverst i Python-filen for at deaktivere denne advarsel. Her er det korte afsnit af koden:
importere du
du . rundt regnet [ 'GIT_PYTHON_REFRESH' ] = 'rolige'
Funktionen 'mlflow.search_runs' udføres med succes, når disse linjer kode er tilføjet:
Konklusion
Funktionen 'mlflow.search_runs' gør det muligt for brugerne hurtigt at udforske og evaluere maskinlæringseksperimenterne, analysere mange kørsler og udpege de optimale hyperparametervariationer eller -modeller, der resulterer i de ønskede resultater. Det er et effektivt værktøj til at overskue, planlægge og analysere maskinlærings-workflowet.