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)
En este artículo se describen las funcionalidades de MLflow, un marco de código abierto diseñado para administrar el ciclo de vida completo de aprendizaje automático. MLflow usa un conjunto coherente de herramientas para entrenar y servir modelos en distintas plataformas. Puede usar MLflow si los experimentos se ejecutan localmente o en un destino de proceso remoto, una máquina virtual o una instancia de proceso de Azure Machine Learning.
Las áreas de trabajo de Azure Machine Learning son compatibles con MLflow, lo que significa que puede usar un área de trabajo de Azure Machine Learning de la misma manera que usa un servidor MLflow. Esta compatibilidad tiene las siguientes ventajas:
- Azure Machine Learning no hospeda instancias de servidor de MLflow, pero puede usar las API de MLflow directamente.
- Puede usar un área de trabajo de Azure Machine Learning como servidor de seguimiento para cualquier código de MLflow, tanto si se ejecuta 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 realizar ningún cambio.
Sugerencia
A diferencia del SDK de Azure Machine Learning v1, no hay ninguna funcionalidad de registro en el SDK de Azure Machine Learning v2. Puede usar el registro de MLflow para asegurarse de que las rutinas de entrenamiento son independientes de la nube, portátiles y no tienen ninguna dependencia en Azure Machine Learning.
¿Qué es el seguimiento?
Cuando trabaje con trabajos, Azure Machine Learning realizará un seguimiento automático de cierta información sobre los experimentos, como el código, el entorno y los datos de entrada y salida. Sin embargo, los modelos, los parámetros y las métricas son específicos del escenario, por lo que los creadores de modelos deben configurar su seguimiento.
Los metadatos de seguimiento guardados varían en función del experimento y pueden incluir:
- Código
- Detalles del entorno, como la versión del sistema operativo y los paquetes de Python
- Datos de entrada
- Configuración de parámetros
- Modelos
- Métricas de evaluación
- Visualizaciones de evaluación, como las matrices de confusión y los trazados de importancia
- Resultados de la evaluación, lo que incluye algunas predicciones de evaluación
Ventajas de los experimentos de seguimiento
Tanto si entrena modelos con trabajos en Azure Machine Learning como de forma interactiva en cuadernos, el seguimiento de experimentos le ayuda a:
- Organizar todos los experimentos de aprendizaje automático en un solo lugar. Luego, puede buscar y filtrar experimentos y explorar en profundidad para ver detalles sobre los experimentos anteriores.
- Compare experimentos, analice los resultados y depure el entrenamiento de modelos con facilidad.
- Reproducir o volver a ejecutar experimentos para validar los resultados.
- Mejore la colaboración, ya que puede ver lo que hacen otros compañeros de equipo, compartir resultados de experimentos y acceder a los datos del experimento mediante programación.
Seguimiento con MLflow
Las áreas de trabajo de Azure Machine Learning son compatibles con MLflow. Esta compatibilidad significa que puede usar MLflow para realizar un seguimiento de ejecuciones, métricas, parámetros y artefactos en áreas de trabajo sin necesidad de cambiar las rutinas de entrenamiento ni insertar ninguna sintaxis específica de la nube. Para aprender a usar MLflow para realizar el seguimiento de experimentos y ejecuciones en áreas de trabajo de Azure Machine Learning, consulte Seguimiento de experimentos y modelos con MLflow.
Azure Machine Learning usa el seguimiento de MLflow para registrar métricas y almacenar artefactos para los experimentos. Cuando está conectado a Azure Machine Learning, todo el seguimiento de MLflow se materializa en el área de trabajo en la que trabaja.
Para aprender a habilitar el registro para supervisar las métricas de ejecución en tiempo real con MLflow, consulte Métricas de registro, parámetros y archivos con MLflow. También puede consultar y comparar experimentos y ejecuciones con MLflow.
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 de Azure Machine Learning proporciona una ubicación centralizada, segura y escalable para almacenar métricas y modelos de entrenamiento.
MLflow en Azure Machine Learning puede:
- Realizar un seguimiento de los experimentos y modelos de aprendizaje automático que se ejecutan localmente o en la nube.
- Realizar un seguimiento de los experimentos de aprendizaje automático de Azure Databricks.
- Realizar un seguimiento de los experimentos de aprendizaje automático de Azure Synapse Analytics.
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 RStudio,Positiv (anteriormente RStudio Workbench) ni cuadernos de Jupyter con kernels de R.
- No se admiten la administración y el registro de modelos. Use la CLI de Azure Machine Learning o Azure Machine Learning Studio para el registro y la administración de modelos.
Para obtener ejemplos de uso del cliente de seguimiento de MLflow con modelos de R en Azure Machine Learning, consulte 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. En su lugar, use el método
mlflow.save_model
con la carpetaoutputs
en trabajos para guardar modelos o artefactos que desea capturar.
Para ver un ejemplo de Java que usa el cliente de seguimiento de MLflow con el servidor de seguimiento de Azure Machine Learning, consulte azuremlflow-java.
Cuadernos de ejemplo para el seguimiento de MLflow
- Entrenamiento y seguimiento de un clasificador XGBoost con MLflow muestra cómo usar MLflow para realizar un seguimiento de experimentos, modelos de registro y combinar varios tipos en canalizaciones.
- Entrenamiento y seguimiento de un clasificador XGBoost con MLflow mediante la autenticación de entidad de servicio muestra cómo usar MLflow para realizar un seguimiento de los experimentos de un proceso que se ejecuta fuera de Azure Machine Learning. En este ejemplo se muestra cómo autenticarse en Azure Machine Learning Service mediante una entidad de servicio.
- Optimización de hiperparámetros mediante HyperOpt y ejecuciones anidadas en MLflow muestra cómo usar ejecuciones secundarias para realizar la optimización de hiperparámetros para los modelos mediante la popular biblioteca HyperOpt. En este ejemplo se muestra cómo transferir métricas, parámetros y artefactos de ejecuciones secundarias a ejecuciones primarias.
- Registro de modelos con MLflow: muestra cómo usar el concepto de modelos en lugar de artefactos con MLflow. En el ejemplo también se muestra cómo construir modelos personalizados.
- Administración de ejecuciones y experimentos con MLflow muestra cómo usar MLflow para consultar experimentos, ejecuciones, métricas, parámetros y artefactos de Azure Machine Learning.
Registro de modelos con MLflow
Azure Machine Learning admite MLflow para la administración de modelos. Esta compatibilidad es una manera cómoda de que los usuarios que estén familiarizados con el cliente de MLflow administren todo el ciclo de vida del modelo. Para más información acerca de 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 para el registro de modelos de MLflow
La administración de modelos con MLflow muestra cómo administrar modelos en registros.
Implementación de modelos con MLflow
Puede implementar modelos de MLflow en Azure Machine Learning para aprovechar una experiencia mejorada. 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.
El SDK de MLflow, la CLI de Azure Machine Learning, el SDK de Azure Machine Learning para Python y Azure Machine Learning Studio admiten la implementación de modelos de MLflow. Para 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 MLflow.
Cuadernos de ejemplo para la implementación de modelos de MLflow
- Implementación de MLflow en puntos de conexión en línea muestra cómo implementar modelos de MLflow en puntos de conexión en línea mediante el SDK de MLflow.
- Implementación progresiva de implementaciones de MLflow muestra cómo implementar modelos de MLflow en puntos de conexión en línea mediante el SDK de MLflow con la implementación progresiva de modelos. En el ejemplo también se muestra la implementación de varias versiones de un modelo en el mismo punto de conexión.
- La implementación de modelos de MLflow en servicios web heredados muestra cómo implementar modelos de MLflow en servicios web heredados (Azure Container Instances o Azure Kubernetes Service v1) mediante el SDK de MLflow.
- Entrenar modelos en Azure Databricks e implementarlos en Azure Machine Learning muestra cómo entrenar modelos en Azure Databricks e implementarlos en Azure Machine Learning. En el ejemplo también se tratan los experimentos de seguimiento con la instancia de MLflow en Azure Databricks.
Entrenamiento con proyectos de MLflow (versión preliminar)
Advertencia
La compatibilidad con los archivos MLproject
(proyectos de MLflow) en Azure Machine Learning se retirará completamente en septiembre de 2026. MLflow sigue siendo totalmente compatible y sigue siendo la manera recomendada de realizar un seguimiento de las cargas de trabajo de aprendizaje automático en Azure Machine Learning.
A medida que siga usando MLflow, se recomienda realizar la transición de archivos MLproject
a trabajos de Azure Machine Learning mediante la CLI de Azure o el SDK de Azure Machine Learning para Python (v2). Para más información sobre los trabajos de Azure Machine Learning, consulte Seguimiento de experimentos y modelos de ML con MLflow.
Importante
Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un 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 información sobre cómo enviar trabajos de entrenamiento que usan proyectos de MLflow a áreas de trabajo de Azure Machine Learning para el seguimiento, consulte Entrenamiento con proyectos de MLflow en Azure Machine Learning (versión preliminar).
Cuadernos de ejemplo para proyectos de MLflow
- Entrenamiento de proyectos de MLflow en un proceso local.
- Entrenamiento con proyectos de MLflow en el proceso de Azure Machine Learning.
Funcionalidades de las herramientas de cliente de MLflow frente a Azure Machine Learning
En la tabla siguiente se muestran las operaciones de ciclo de vida de aprendizaje automático que son posibles con el SDK de MLflow y las herramientas cliente de Azure Machine Learning.
Característica | MLflow SDK | CLI y SDK de Azure Machine Learning v2 | Azure Machine Learning Studio |
---|---|---|---|
Realizar el seguimiento y registro de métricas, parámetros y modelos | ✓ | ||
Recuperar métricas, parámetros y modelos | ✓ | Solo se pueden descargar artefactos y modelos. | ✓ |
Enviar los trabajos de entrenamiento | Posible mediante proyectos de MLflow (versión preliminar). | ✓ | ✓ |
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 | Es posible que algunas operaciones no se admita.1 | ✓ | ✓ |
Administrar modelos distintos a MLflow | ✓ | ✓ | |
Implementación de modelos de MLflow en Azure Machine Learning (en línea y por lotes) | Actualmente no se admite la implementación de modelos de MLflow para la inferencia por lotes.2 | ✓ | ✓ |
Implementar modelos distintos a MLflow en Azure Machine Learning | ✓ | ✓ |
1 Para obtener más información, consulte Administración de registros de modelos en Azure Machine Learning con MLflow.
2 Para obtener una alternativa, consulte Implementación y ejecución de modelos de MLflow en trabajos de Spark.