MLflow y Azure Machine Learning

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

MLflow es un marco de código abierto diseñado para gestionar el ciclo de vida completo del aprendizaje automático. Su capacidad de entrenar y atender modelos en distintas plataformas le permite usar un conjunto coherente de herramientas, independientemente de dónde se ejecuten los experimentos: localmente en el equipo, en un destino de proceso remoto, en una máquina virtual o en una instancia de proceso de Azure Machine Learning.

Las áreas de trabajo de Azure Machine Learning son compatibles con MLflow, lo que significa que es posible usar áreas de trabajo de Azure Machine Learning de la misma manera que se usa un servidor de MLflow. Esta compatibilidad tiene las siguientes ventajas:

  • Azure Machine Learning no hospeda instancias de servidor de MLflow en segundo plano. En su lugar, el área de trabajo puede hablar el lenguaje de la API de MLflow.
  • Puede usar áreas de trabajo de Azure Machine Learning como servidor de seguimiento para cualquier código de MLflow, tanto si se ejecutan en Azure Machine Learning como si no. Solo tiene que configurar MLflow para que apunte al área de trabajo donde debe producirse el seguimiento.
  • Puede ejecutar cualquier rutina de entrenamiento que use MLflow en Azure Machine Learning sin cambios.

Sugerencia

A diferencia del SDK v1 de Azure Machine Learning, no hay ninguna funcionalidad de registro en el SDK v2. Se recomienda usar MLflow para el registro, de modo que las rutinas de entrenamiento sean independientes de la nube y portables, eliminando cualquier dependencia que tenga el código en Azure Machine Learning.

Seguimiento con MLflow

Azure Machine Learning usa el seguimiento de MLflow para registrar métricas y almacenar artefactos para los experimentos. Cuando se conecta a Azure Machine Learning, todo el seguimiento realizado mediante MLflow se materializa en el área de trabajo en la que está trabajando. Para obtener más información sobre cómo configurar los experimentos para que usen MLflow para realizar el seguimiento de experimentos y rutinas de entrenamiento, consulte Registro de métricas, parámetros y archivos con MLflow. También es posible usar MLflow para consultar y comparar experimentos y ejecuciones.

MLflow en Azure Machine Learning proporciona una manera de centralizar el seguimiento. Es posible conectar MLflow a áreas de trabajo de Azure Machine Learning, incluso aunque se esté trabajando localmente o en otra nube. El área de trabajo proporciona una ubicación centralizada, segura y escalable para almacenar los modelos y las métricas de entrenamiento.

El uso de MLflow en Azure Machine Learning incluye las funcionalidades para:

Cuadernos de ejemplo

Seguimiento con MLflow en R

La compatibilidad con MLflow en R tiene las siguientes limitaciones:

  • El seguimiento de MLflow se limita a realizar el seguimiento de las métricas, parámetros y modelos del experimento en trabajos de Azure Machine Learning.
  • No se admite el entrenamiento interactivo en cuadernos de RStudio, Posit (anteriormente, RStudio Workbench) o Jupyter con kernels de R.
  • No se admite el registro y la administración de modelos mediante el SDK de R de MLflow. En su lugar, use la CLI de Azure Machine Learning o el Estudio de Azure Machine Learning para el registro y la administración de modelos.

Para obtener más información sobre el uso del cliente de seguimiento de MLflow con Azure Machine Learning, consulte los ejemplos de Entrenamiento de modelos de R mediante la CLI de Azure Machine Learning (v2).

Seguimiento con MLflow en Java

La compatibilidad de MLflow en Java tiene las siguientes limitaciones:

  • El seguimiento de MLflow se limita a realizar el seguimiento de las métricas y parámetros del experimento en trabajos de Azure Machine Learning.
  • No se puede realizar el seguimiento de artefactos y modelos mediante el SDK de Java de MLflow. En su lugar, use la carpeta Outputs en los trabajos junto con el método mlflow.save_model para guardar los modelos (o artefactos) que quiera capturar.

Para obtener más información sobre el uso del cliente de seguimiento de MLflow con Azure Machine Learning, consulte el ejemplo de Java que usa el cliente de seguimiento de MLflow con Azure Machine Learning.

Registros de modelos con MLflow

Azure Machine Learning admite MLflow para la administración de modelos. Este servicio de asistencia representa una forma práctica de admitir todo el ciclo de vida del modelo para los usuarios que están familiarizados con el cliente de MLflow.

Para más información sobre cómo administrar modelos mediante la API de MLflow en Azure Machine Learning, consulte Administración de registros de modelos en Azure Machine Learning con MLflow.

Cuaderno de ejemplo

Implementación de modelos con MLflow

Puede implementar modelos de MLflow en Azure Machine Learning y aprovechar la experiencia mejorada al usar modelos de MLflow. Azure Machine Learning admite la implementación de modelos de MLflow en puntos de conexión en tiempo real y por lotes sin tener que especificar el entorno ni un script de puntuación. La implementación se admite mediante el SDK de MLflow, la CLI de Azure Machine Learning, el SDK de Azure Machine Learning para Python o el Estudio de Azure Machine Learning.

Para obtener más información sobre la implementación de modelos de MLflow en Azure Machine Learning para la inferencia por lotes y en tiempo real, consulte Guía para la implementación de modelos de MLflow.

Cuadernos de ejemplo

Entrenamiento con proyectos de MLflow (versión preliminar)

Importante

Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Se ofrece la versión preliminar sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Puede enviar trabajos de entrenamiento a Azure Machine Learning mediante proyectos de MLflow (versión preliminar). Puede enviar trabajos localmente con el seguimiento de Azure Machine Learning o migrar las trabajos a la nube a través de un Proceso de Azure Machine Learning.

Para obtener más información sobre cómo enviar trabajos de entrenamiento con proyectos de MLflow que usan áreas de trabajo de Azure Machine Learning para realizar el seguimiento, consulte Entrenamiento de modelos de aprendizaje automático con proyectos de MLflow y Azure Machine Learning.

Cuadernos de ejemplo

SDK de MLflow, Azure Machine Learning v2 y funcionalidades de Estudio de Azure Machine Learning

En la tabla siguiente se muestran las operaciones posibles mediante cada una de las herramientas de cliente disponibles en el ciclo de vida de aprendizaje automático.

Característica MLflow SDK CLI o SDK de Azure Machine Learning Azure Machine Learning Studio
Realizar el seguimiento y registro de métricas, parámetros y modelos
Recuperar métricas, parámetros y modelos 1
Enviar los trabajos de entrenamiento 2
Envío de trabajos de entrenamiento con recursos de datos de Azure Machine Learning
Envío de trabajos de entrenamiento mediante canalizaciones de aprendizaje automático
Administración de experimentos y ejecuciones
Administrar modelos de MLflow 3
Administrar modelos distintos a MLflow
Implementación de modelos de MLflow en Azure Machine Learning (en línea y por lotes) 4
Implementar modelos distintos a MLflow en Azure Machine Learning

Nota