Entrenamiento con proyectos de MLflow en Azure Machine Learning (versión preliminar)
En este artículo, obtendrá información sobre cómo enviar trabajos de entrenamiento con proyectos de MLflow que usan áreas de trabajo de Azure Machine Learning para el seguimiento. Puede enviar trabajos y únicamente realizar un seguimiento de ellos con Azure Machine Learning o migrar las ejecuciones a la nube para que se ejecuten completamente en Proceso de Azure Machine Learning.
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.
Los proyectos de MLflow permiten organizar y describir el código para permitir que otros científicos de datos (o herramientas automatizadas) lo ejecuten. Los proyectos de MLflow con Azure Machine Learning le permiten realizar un seguimiento de las ejecuciones de entrenamiento y administrarlas en el área de trabajo.
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.
Obtenga más información sobre la integración de MLflow y Azure Machine Learning.
Requisitos previos
Instale el paquete
mlflow
del SDK de MLflow y el complementoazureml-mlflow
de Azure Machine Learning para MLflow:pip install mlflow azureml-mlflow
Sugerencia
Puede usar el paquete de
mlflow-skinny
, que es un paquete MLflow ligero sin dependencias de ciencia de datos, interfaz de usuario, servidor o almacenamiento de SQL.mlflow-skinny
se recomienda para los usuarios que necesitan principalmente las funcionalidades de seguimiento y registro de MLflow sin importar el conjunto completo de características, incluidas las implementaciones.Un área de trabajo de Azure Machine Learning. Para crear un área de trabajo, consulte el tutorial Creación de recursos de aprendizaje automático. Revise los permisos de acceso que necesita para realizar las operaciones de MLflow en el área de trabajo.
Si realiza el seguimiento remoto (es decir, realiza un seguimiento de los experimentos que se ejecutan fuera de Azure Machine Learning), configure MLflow para que apunte al URI de seguimiento del área de trabajo de Azure Machine Learning. Para más información sobre cómo conectar MLflow al área de trabajo, consulte Configuración de MLflow para Azure Machine Learning.
El uso de Azure Machine Learning como back-end para proyectos de MLflow requiere el paquete
azureml-core
:pip install azureml-core
Conexión con su área de trabajo
Si va a trabajar fuera de Azure Machine Learning, debe configurar MLflow para que apunte al identificador URI de seguimiento del área de trabajo de Azure Machine Learning. Puede encontrar las instrucciones en Configuración de MLflow para Azure Machine Learning.
Seguimiento de proyectos de MLflow en áreas de trabajo de Azure Machine Learning
En este ejemplo, se muestra cómo enviar proyectos de MLflow y hacer un seguimiento de ellos con Azure Machine Learning.
Agregue el paquete
azureml-mlflow
como dependencia pip al archivo de configuración del entorno para realizar el seguimiento de las métricas y los artefactos clave en el área de trabajo.conda.yaml
name: mlflow-example channels: - defaults dependencies: - numpy>=1.14.3 - pandas>=1.0.0 - scikit-learn - pip: - mlflow - azureml-mlflow
Envíe la ejecución local y asegúrese de establecer el parámetro
backend = "azureml"
, que agrega compatibilidad con el seguimiento automático, la captura del modelo, los archivos de registro, las instantáneas y los errores impresos en el área de trabajo. En este ejemplo, se da por supuesto que el proyecto de MLflow que intenta ejecutar está en la misma carpeta en la que se encuentra actualmente,uri="."
.mlflow run . --experiment-name --backend azureml --env-manager=local -P alpha=0.3
Vea las ejecuciones y métricas en Azure Machine Learning Studio.
Entrenamiento de proyectos de MLflow en trabajos de Azure Machine Learning
En este ejemplo, se muestra cómo enviar proyectos de MLflow como un trabajo que se ejecuta en el proceso de Azure Machine Learning.
Cree el objeto de configuración de back-end; en este caso, vamos a indicar
COMPUTE
. Este parámetro hace referencia al nombre del clúster de proceso remoto que desea usar para ejecutar el proyecto. SiCOMPUTE
está presente, el proyecto se enviará automáticamente como un trabajo de Azure Machine Learning al proceso indicado.backend_config.json
{ "COMPUTE": "cpu-cluster" }
Agregue el paquete
azureml-mlflow
como dependencia pip al archivo de configuración del entorno para realizar el seguimiento de las métricas y los artefactos clave en el área de trabajo.conda.yaml
name: mlflow-example channels: - defaults dependencies: - numpy>=1.14.3 - pandas>=1.0.0 - scikit-learn - pip: - mlflow - azureml-mlflow
Envíe la ejecución local y asegúrese de establecer el parámetro
backend = "azureml"
, que agrega compatibilidad con el seguimiento automático, la captura del modelo, los archivos de registro, las instantáneas y los errores impresos en el área de trabajo. En este ejemplo, se da por supuesto que el proyecto de MLflow que intenta ejecutar está en la misma carpeta en la que se encuentra actualmente,uri="."
.mlflow run . --backend azureml --backend-config backend_config.json -P alpha=0.3
Nota
Dado que los trabajos de Azure Machine Learning siempre se ejecutan en el contexto de los entornos, se omite el parámetro
env_manager
.Vea las ejecuciones y métricas en Azure Machine Learning Studio.
Limpieza de recursos
Si no tiene pensado usar los artefactos o las métricas registradas en el área de trabajo, la funcionalidad para eliminarlos de forma individual no está disponible actualmente. Por ello, deberá eliminar el grupo de recursos que contiene la cuenta de almacenamiento y el área de trabajo para no incurrir en cargos:
En Azure Portal, seleccione Grupos de recursos a la izquierda del todo.
En la lista, seleccione el grupo de recursos que creó.
Seleccione Eliminar grupo de recursos.
Escriba el nombre del grupo de recursos. A continuación, seleccione Eliminar.
Cuadernos de ejemplo
En MLflow con cuadernos de Azure Machine Learning se demuestran y se analizan con mayor profundidad los conceptos presentados en este artículo.
- Entrenamiento de un proyecto de MLflow en un proceso local
- Entrenamiento de un proyecto de MLflow en un proceso remoto
Nota
Puede encontrar un repositorio de ejemplos administrado por la comunidad mediante mlflow en https://github.com/Azure/azureml-examples.