Sökning körs i MLflow

Sokning Kors I Mlflow



För att spåra och hantera maskininlärningsexperimenten erbjuder MLflow en omfattande plattform. Att ha möjligheten att söka körningar är en av MLflows nyckelfunktioner. Detta gör det möjligt att identifiera de utvecklade experimenten och organisera dem på ett sätt som gör det enkelt att lokalisera informationen när det behövs. Vi kan söka körningar med hjälp av MLflow sök API med ett antal olika kriterier som kan inkludera följande:
  • Experimentets ID eller namn
  • Kör ID
  • Parametrar och värden
  • Mätvärden och värden
  • Taggar
  • Andra attribut som är associerade med körningarna

Körningar kan filtreras efter status, starttid, sluttid och varaktighet med hjälp av MLflow sök-API. Det gör det lättare att filtrera igenom många körningar och hitta specifika körningar som användarna är intresserade av.

MLflow sökfunktion

Använd funktionen mlflow.search_runs() för att komma åt MLflow sök-API. Den här funktionen accepterar en mängd olika argument som följande:







  • Experimentets ID eller namn
  • Filtrera sträng eller text
  • Det maximala antalet körningar som ska returneras anges av argumentet max_results

En förenklad variant av SQL (Structured Query Language) WHERE-satsen är filtersträngen eller texten. Den kan användas för att ange de kriterier som vi vill sortera körningarna efter.



Syntax för MLflow Search_Runs()-funktionen

Det faktiska ID eller namn på experimentet som vi vill söka inom måste ersättas med 'experiment_id eller experiment_name' i följande exempel. Variabeln search_criteria tillåter inmatning av sökkriterier efter önskemål. Dessa kriterier kan bestämmas av mätvärden, taggar, parametrar eller ytterligare egenskaper. Search_runs()-funktionens grundläggande syntax är följande:



# Importera mlflow sök-API för att använda funktionen search_runs

importera mlflöde

# Ange något experiment-id eller namn (det är valfritt; )

exp_id = 'Experiment-ID eller NAMN'

# Definiera sökkriterierna för körningar

söksträng = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' OCH params.efficiency_rate > '80''

# Utför sökningen

springer = mlflöde. sök_kör ( experiment_id = exp_id , filtersträng = söksträng )

# Visa resultaten

skriva ut ( 'Sökresultat:' )

skriva ut ( springer )

Kör en sökning med hjälp av många kriterier

1. Sök efter metriskt värde

Körningar kan filtreras efter värdena för vissa mätvärden med hjälp av mätvärdesfältet i MLflow sök-API. En samling mätvärdesnamn separerade med kommatecken visas i måttenhetsfältet. Till exempel lokaliserar följande filtersträng alla körningar med ett noggrannhetsvärde som är större än 0,9:





metrik. noggrannhet > 0,9

Den fullständiga listan över mätvärden som är tillgängliga för användning i måttenhetsfältet ges enligt följande:

  • noggrannhet
  • auc
  • f1
  • precision
  • återkallelse
  • Karta
  • logbortfall
  • classification_error
  • multi_class_logloss

Dessutom kan användarna filtrera körningarna efter ett mätvärdes intervall med hjälp av mätvärdesfältet. Till exempel lokaliserar nästa filtersträng alla körningar som har ett noggrannhetsmått med ett värde mellan 0,4 och 0,8:



metrik. noggrannhet MELLAN 0,4 OCH 0,8

I måttenhetsfältet kombinerar AND- och ELLER-operatorerna måtten för att hitta körningarna med mätnoggrannhet och f1-värden över 0,3 och 0,8:

metrik. noggrannhet > 0,3 OCH mätvärden. f1 > 0,8

2. Sök efter parametervärde

Använd paramsfältet i MLflow sök-API för att utföra en sökning med ett parametervärde. Parameternamnen och -värdena listas i parametrarnas fält med kommatecken. I det här exemplet lokaliserar den tidigare nämnda filtersträngen alla körningar med parametern num_boost_round som har värdet 100:

params. num_boost_round = '100'

Några fler exempel på söksträngar för parametervärden:

  • params.num_boost_round = 900
  • params.learning_rate MELLAN 0,001 OCH 0,01
  • params.num_boost_round=’70’ OCH params.learning_rate=’0.01′

3. Sök efter taggar

Här är ett exempel på en sökning som använder taggar:

sökkriterier = 'tags.mlflow.source.type = 'ordbok''

Exempel på matris- och parametervärden för att utföra funktionen Mlflow.search_runs()

Låt oss gå igenom ett exempel på att ställa in ett MLflow-experiment, logga körningar och sedan använda mlflow.search_runs() för att starta en sökning. Följ dessa steg för att helt förstå koden:

Steg 1: Skapa ett MLflow-experiment

Vi börjar med att sätta upp ett MLflow-experiment. Den hämtar det befintliga experimentet om experimentet redan finns. Om inte skapar det en ny.

Kodförklaring:

MLflow-biblioteket importeras på den första raden i koden, och experiment_name ställs in på 'Mitt första MLflow-experiment' på nästa rad. När experiment_name skickas till funktionen 'mlflow.get_experiment_by_name' returnerar den funktionen 'None' om experimentet inte existerar och annars är ett objekt i experimentet.

Kontrollera om experimentet finns i det villkorliga uttalandet. Om experimentet redan finns, ställ in experiment_id. Annars använder du 'mlflow.create_experiment' för att skapa ett nytt experiment. Experimentets ID returneras av den här funktionen. Visa experimentets ID på konsolen eller terminalskärmen i slutet av experimentet. Kopiera följande kod i anteckningsblocket och spara filen med önskat namn och med tillägget '.py':

# importera mlflow-bibliotek

importera mlflöde

# Skapa eller hämta experimentet

exp_name = 'Mitt första MLflow-experiment'

# Hämta experimentet efter namn med hjälp av mlflow-funktionen get_experiment_by_name

exp = mlflöde. get_experiment_by_name ( exp_name )

# Kontrollera om experimentet inte redan finns

om exp är Ingen :

# Skapa nytt experiment och skicka experimentnamnet till funktionen mlflow.create_experiment

exp_id = mlflöde. skapa_experiment ( exp_name )

# Visa framgångsmeddelandet på skärmen

skriva ut ( 'Experimentet finns inte. Experimentet har skapats framgångsrikt!' )

annan :

# Hämta experiment_id för det befintliga experimentet

exp_id = exp. experiment_id

skriva ut ( 'Experimentet finns redan!' )

# Visa experiment-ID

skriva ut ( 'Experiment-ID:' , exp_id )

Starta nu programmet i kommandotolken eller terminalfönstret med hjälp av Python-kompilatorn och skriv 'Python' och sedan filnamnet som i det här fallet är 'MyFirstMlflowExperiment.py'. När experimentet körs första gången finns det inte ännu. Således skapar MLFlow en och skriver ut experiment-ID:t på konsolskärmen:

Kör koden igen för att verifiera att den inte skapar nya experiment och för att visa ID för de som redan finns. Följande skärmdump visar att experimentet redan existerar:

Steg 2: Logga körningarna med mätvärden och parametrar

Låt oss nu försöka logga några körningar med mätvärdena och parametrarna för det just etablerade experimentet. I ett verkligt scenario utvecklar vi maskininlärningsmodellerna och registrerar relevant information, såsom mätvärden och parametrar, i slutet av varje körning. Här används noggrannhet som ett matriskt värde, och det är 0,95 i detta fall. Parametervärdena för inlärning och effektivitetsgrad är 0,01 respektive 90. Här är koden:

# Starta en MLflow-körning för att logga mätvärden och parametrar

med mlflöde. start_run ( experiment_id = exp_id ) :

# Din maskininlärningskod här (detta är bara ett simulerat exempel)

modell_noggrannhet = 0,95

machine_learning_rate = 0,01

effektivitetshastighet = 90

# Logga mätvärden och parametrar

mlflöde. log_metrisk ( 'noggrannhet' , modell_noggrannhet )

mlflöde. log_param ( 'inlärningstakt' , machine_learning_rate )

mlflöde. log_param ( 'effektivitetsgrad' , effektivitetshastighet )

Resultatet, när ovannämnda kod exekveras, ses här. Resultatet är detsamma som tidigare:

Steg 3: Utför en sökning med Mlflow.search_runs()

Slutligen kör vi en sökning på de körningar som har loggats med några parametrar och visar resultaten på terminalskärmen:

# Definiera sökkriterierna för körningar

definiera_sökkriterier = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' OCH params.efficiency_rate = '90''

# Utför sökningen

springer = mlflöde. sök_kör ( experiment_id = exp_id , filtersträng = definiera_sökkriterier )

# Visa resultaten

skriva ut ( 'Sökresultat:' )

skriva ut ( springer )

En varning som hänför sig till Git-verktyget produceras av search_runs-funktionens exekvering:


Lägg till lite kod överst i Python-filen för att inaktivera denna varning. Här är den korta delen av koden:

importera mlflöde

importera du

du . ungefär [ 'GIT_PYTHON_REFRESH' ] = 'tyst'

Funktionen 'mlflow.search_runs' exekveras framgångsrikt när dessa kodrader har lagts till:

Slutsats

Funktionen 'mlflow.search_runs' gör det möjligt för användarna att snabbt utforska och utvärdera maskininlärningsexperimenten, analysera många körningar och lokalisera de optimala hyperparametervariationerna eller -modellerna som resulterar i de önskade resultaten. Det är ett effektivt verktyg för att övervaka, planera och analysera arbetsflödet för maskininlärning.