Execucions de cerca a MLflow

Execucions De Cerca A Mlflow



Per fer un seguiment i gestionar els experiments d'aprenentatge automàtic, MLflow ofereix una plataforma àmplia. Tenir la capacitat de cercar tirades és una de les característiques clau de MLflow. Això permet identificar els experiments desenvolupats i organitzar-los de manera que sigui fàcil de localitzar la informació sempre que sigui necessari. Podem cercar execucions mitjançant l'API de cerca de MLflow utilitzant una sèrie de criteris diferents que poden incloure els següents:
  • ID o nom de l'experiment
  • ID d'execució
  • Paràmetres i Valors
  • Mètriques i valors
  • Etiquetes
  • Altres atributs associats a les execucions

Les execucions es poden filtrar per estat, hora d'inici, hora d'acabament i durada amb l'ús de l'API de cerca de MLflow. Fa que sigui més fàcil filtrar a través de moltes execucions i trobar execucions específiques que interessin als usuaris.

Funció de cerca MLflow

Utilitzeu la funció mlflow.search_runs() per accedir a l'API de cerca de MLflow. Aquesta funció accepta una varietat d'arguments com els següents:







  • L'identificador o el nom de l'experiment
  • Filtra cadena o text
  • El nombre màxim d'execucions a retornar s'especifica mitjançant l'argument max_results

Una variant simplificada de la clàusula SQL (Structured Query Language) WHERE és la cadena de filtre o el text. Es pot utilitzar per indicar els criteris amb els quals volem ordenar les tirades.



Sintaxi de la funció MLflow Search_Runs().

L'identificador o el nom real de l'experiment en el qual volem cercar s'ha de substituir per 'experiment_id o experiment_name' a l'exemple següent. La variable search_criteria permet introduir els criteris de cerca segons es desitgi. Aquests criteris poden estar determinats per mètriques, etiquetes, paràmetres o característiques addicionals. La sintaxi bàsica de la funció search_runs() és la següent:



# Importeu l'API de cerca mlflow per utilitzar la funció search_runs

importar flux ml

# Proporcioneu algun identificador o nom de l'experiment (és opcional; )

exp_id = 'ID de l'experiment o NAME'

# Definiu els criteris de cerca per a les tirades

cadena_de_cerca = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' I params.efficiency_rate > '80''

# Fes la cerca

carreres = flux ml. search_runs ( experiment_ids = exp_id , cadena_filtre = cadena_de_cerca )

# Mostra els resultats

imprimir ( 'Resultats de la cerca:' )

imprimir ( carreres )

Executeu una cerca utilitzant nombrosos criteris

1. Cerca per valor de mètrica

Les execucions es poden filtrar pels valors de mètriques concretes mitjançant el camp de mètriques de l'API de cerca de MLflow. Al camp de mètriques apareix una col·lecció de noms de mètriques separats per comes. Per exemple, la cadena de filtre següent localitza totes les execucions amb un valor de precisió superior a 0,9:





mètriques. precisió > 0.9

La llista completa de mètriques disponibles per al seu ús al camp de mètriques és la següent:

  • precisió
  • auc
  • f1
  • precisió
  • recordar
  • mapa
  • logloss
  • error_clasificació
  • multi_class_logloss

A més, els usuaris poden filtrar les execucions per l'interval de valors d'una mètrica mitjançant el camp de mètriques. Per exemple, la següent cadena de filtre localitza totes les tirades que tenen una mesura de precisió amb un valor entre 0,4 i 0,8:



mètriques. precisió ENTRE 0.4 I 0.8

Al camp de mètriques, els operadors AND i OR combinen les mètriques per trobar les tirades amb la precisió de les mètriques i els valors f1 superiors a 0,3 i 0,8:

mètriques. precisió > 0.3 I mètriques. f1 > 0.8

2. Cerca per valor del paràmetre

Feu servir el camp params de l'API de cerca de MLflow per fer una cerca per valor de paràmetre. Els noms i els valors dels paràmetres s'enumeren al camp de paràmetres mitjançant comes. En aquest exemple, la cadena de filtre esmentada localitza totes les execucions amb el paràmetre num_boost_round que tenen el valor de 100:

paràmetres. num_boost_round = '100'

Alguns exemples més de cadenes de cerca per als valors dels paràmetres:

  • params.num_boost_round = 900
  • paràmetres.taxa_d'aprenentatge ENTRE 0,001 I 0,01
  • params.num_boost_round=’70’ I params.learning_rate=’0,01′

3. Cerca per etiquetes

Aquí teniu un exemple d'una cerca que utilitza etiquetes:

criteris_de_cerca = 'tags.mlflow.source.type = 'diccionari''

Exemple de valors de matriu i paràmetre per dur a terme la funció Mlflow.search_runs()

Examinem un exemple de configuració d'un experiment MLflow, registre d'execucions i, després, utilitzar mlflow.search_runs() per iniciar una cerca. Per entendre completament el codi, seguiu aquests passos:

Pas 1: creeu un experiment MLflow

Comencem configurant un experiment MLflow. Obtén l'experiment existent si l'experiment ja existeix. Si no, se'n crea un de nou.

Explicació del codi:

La biblioteca MLflow s'importa a la primera línia del codi i l'experiment_name s'estableix a 'El meu primer experiment MLflow' a la línia següent. Quan el nom_experiment es passa a la funció 'mlflow.get_experiment_by_name', aquesta funció retorna 'Cap' si l'experiment no existeix i un objecte de l'experiment en cas contrari.

Comprova l'existència de l'experiment a l'enunciat condicional. Si l'experiment ja existeix, defineix experiment_id. En cas contrari, utilitzeu 'mlflow.create_experiment' per crear un experiment nou. Aquesta funció retorna l'identificador de l'experiment. Mostra l'identificador de l'experiment a la pantalla de la consola o del terminal al final de l'experiment. Copieu el codi següent al bloc de notes i deseu el fitxer amb el nom desitjat i amb l'extensió '.py':

# importa la biblioteca mlflow

importar flux ml

# Creeu o obteniu l'experiment

nom_exp = 'El meu primer experiment MLflow'

# Obteniu l'experiment pel nom mitjançant la funció mlflow get_experiment_by_name

exp = flux ml. obtenir_experiment_per_nom ( nom_exp )

# Comproveu si l'experiment encara no existeix

si exp és Cap :

# Creeu un nou experiment i passeu el nom de l'experiment a la funció mlflow.create_experiment

exp_id = flux ml. crear_experiment ( nom_exp )

# Mostra el missatge d'èxit a la pantalla

imprimir ( 'L'experiment no existeix. L'experiment s'ha creat correctament!' )

altra cosa :

# Obteniu l'experiment_id de l'experiment existent

exp_id = exp. experiment_id

imprimir ( 'L'experiment ja existeix!' )

# Mostra l'identificador de l'experiment

imprimir ( 'Identificador de l'experiment:' , exp_id )

Ara, inicieu el programa a l'indicador d'ordres o a la finestra del terminal mitjançant el compilador Python i escriviu 'Python' i després el nom del fitxer que, en aquest cas, és 'MyFirstMlflowExperiment.py'. Quan l'experiment s'executa per primera vegada, encara no existeix. Així, MLFlow en crea un i imprimeix l'ID de l'experiment a la pantalla de la consola:

Torneu a executar el codi per verificar que no està creant experiments nous i per mostrar l'identificador dels que ja existeixen. La captura de pantalla següent mostra que l'experiment ja existeix:

Pas 2: registre les execucions amb mètriques i paràmetres

Ara intentem registrar algunes execucions amb les mètriques i els paràmetres de l'experiment que s'acaba d'establir. En un escenari del món real, desenvolupem els models d'aprenentatge automàtic i registrem la informació rellevant, com ara mètriques i paràmetres, al final de cada execució. Aquí, la precisió s'utilitza com a valor matricial, i en aquest cas és 0,95. Els valors dels paràmetres per a l'aprenentatge i la taxa d'eficiència són 0,01 i 90, respectivament. Aquí teniu el codi:

# Inicieu una execució de MLflow per registrar mètriques i paràmetres

amb flux ml. start_run ( experiment_id = exp_id ) :

# El vostre codi d'aprenentatge automàtic aquí (això és només un exemple simulat)

model_exactitud = 0.95

taxa_d'aprenentatge_màquina = 0.01

taxa_eficiència = 90

# Registre mètriques i paràmetres

flux ml. log_metric ( 'exactitud' , model_exactitud )

flux ml. log_param ( 'taxa_d'aprenentatge' , taxa_d'aprenentatge_màquina )

flux ml. log_param ( 'taxa_d'eficiència' , taxa_eficiència )

El resultat, quan s'executa el codi esmentat, es veu aquí. El resultat és el mateix que abans:

Pas 3: feu una cerca amb Mlflow.search_runs()

Finalment, fem una cerca a les tirades que s'han registrat mitjançant uns quants paràmetres i mostrem els resultats a la pantalla del terminal:

# Definiu els criteris de cerca per a les tirades

definir_criteris_de_cerca = 'metrics.accuracy > 0,8 I params.learning_rate = '0,01' I params.efficiency_rate = '90''

# Fes la cerca

carreres = flux ml. search_runs ( experiment_ids = exp_id , cadena_filtre = definir_criteris_de_cerca )

# Mostra els resultats

imprimir ( 'Resultats de la cerca:' )

imprimir ( carreres )

L'execució de la funció search_runs produeix un avís relacionat amb l'eina Git:


Afegiu codi a la part superior del fitxer Python per desactivar aquest avís. Aquí teniu la secció breu del codi:

importar flux ml

importar vostè

vostè . aproximadament [ 'GIT_PYTHON_REFRESH' ] = 'tranquil'

La funció 'mlflow.search_runs' s'executa correctament un cop s'afegeixen aquestes línies de codi:

Conclusió

La funció 'mlflow.search_runs' permet als usuaris explorar i avaluar ràpidament els experiments d'aprenentatge automàtic, analitzar moltes execucions i identificar les variacions o models d'hiperparàmetres òptims que donen com a resultat els resultats desitjats. És una eina eficaç per supervisar, planificar i analitzar el flux de treball d'aprenentatge automàtic.