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 complemento azureml-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.

  1. 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
    
  2. 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.

  1. 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. Si COMPUTE está presente, el proyecto se enviará automáticamente como un trabajo de Azure Machine Learning al proceso indicado.

    backend_config.json

    {
        "COMPUTE": "cpu-cluster"
    }
    
    
  2. 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
    
  3. 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:

  1. En Azure Portal, seleccione Grupos de recursos a la izquierda del todo.

    Imagen que muestra cómo eliminar un grupo de recursos de Azure

  2. En la lista, seleccione el grupo de recursos que creó.

  3. Seleccione Eliminar grupo de recursos.

  4. 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.

Nota

Puede encontrar un repositorio de ejemplos administrado por la comunidad mediante mlflow en https://github.com/Azure/azureml-examples.

Pasos siguientes