Realización de un seguimiento de métricas con MLflow

Completado

Al entrenar un modelo con un script, puede incluir MLflow en los scripts para realizar un seguimiento de los parámetros, las métricas y los artefactos. Al ejecutar el script como un trabajo en Azure Machine Learning, podrá revisar todos los parámetros de entrada y las salidas de cada ejecución.

Información sobre MLflow

MLflow es una plataforma de código abierto diseñada para administrar el ciclo de vida completo del aprendizaje automático. Como es de código abierto, se puede usar al entrenar modelos en distintas plataformas. Aquí, exploramos cómo podemos integrar MLflow con trabajos de Azure Machine Learning.

Hay dos opciones para realizar un seguimiento de los trabajos de aprendizaje automático con MLflow:

  • Habilitación del registro automático mediante mlflow.autolog()
  • Uso de funciones de registro para realizar un seguimiento de las métricas personalizadas mediante mlflow.log_*

Para poder usar cualquiera de estas opciones, debe configurar el entorno para usar MLflow.

Incluir MLflow en el entorno

Para usar MLflow durante el trabajo de entrenamiento, los paquetes pip mlflow y azureml-mlflow deben instalarse en el proceso que ejecuta el script. Por lo tanto, debe incluir estos dos paquetes en el entorno. Puede crear un entorno haciendo referencia a un archivo YAML que describe el entorno de Conda. Como parte del entorno de Conda, puede incluir estos dos paquetes.

Por ejemplo, en este entorno personalizado mlflow y azureml-mlflow se instalan mediante pip:

name: mlflow-env
channels:
  - conda-forge
dependencies:
  - python=3.8
  - pip
  - pip:
    - numpy
    - pandas
    - scikit-learn
    - matplotlib
    - mlflow
    - azureml-mlflow

Una vez definido y registrado el entorno, asegúrese de hacer referencia a él al enviar un trabajo.

Habilitación del registro automático

Al trabajar con una de las bibliotecas comunes de aprendizaje automático, puede habilitar el registro automático en MLflow. El registro automático anota parámetros, métricas y artefactos de modelo sin que nadie tenga que especificar lo que se debe registrar.

El registro automático es compatible con las bibliotecas siguientes:

  • Scikit-learn
  • TensorFlow y Keras
  • XGBoost
  • LightGBM
  • Spark
  • Fastai
  • Pytorch

Para habilitar el registro automático, agregue el código siguiente al script de entrenamiento:

import mlflow

mlflow.autolog()

Registro de métricas con MLflow

En el script de entrenamiento, puede decidir qué métrica personalizada desea registrar con MLflow.

En función del tipo de valor que quiera registrar, use el comando MLflow para almacenar la métrica con la ejecución del experimento:

  • mlflow.log_param(): Registre el parámetro de clave-valor único. Use esta función para un parámetro de entrada que desee registrar.
  • mlflow.log_metric(): Registre una métrica de clave-valor única. El valor debe ser un número. Use esta función para cualquier salida que desee almacenar con la ejecución.
  • mlflow.log_artifact(): Registre un archivo. Use esta función para cualquier trazado que desee registrar y guárdelo primero como archivo de imagen.

Para agregar MLflow a un script de entrenamiento existente, puede agregar el código siguiente:

import mlflow

reg_rate = 0.1
mlflow.log_param("Regularization rate", reg_rate)

Sugerencia

Para obtener información general completa sobre cómo usar el seguimiento de MLflow, lea la documentación de MLflow.

Enviar el archivo

Por último, debe enviar el script de entrenamiento como un trabajo en Azure Machine Learning. Cuando se usa MLflow en un script de entrenamiento y se ejecuta como un trabajo, todos los parámetros, métricas y artefactos a los que se realiza un seguimiento se almacenan con la ejecución del trabajo.

El trabajo se configura como de costumbre. Solo tiene que asegurarse de que el entorno al que hace referencia en el trabajo incluye los paquetes necesarios y el script describe las métricas que desea registrar.