Realización de un seguimiento de métricas con MLflow
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.