Registro automático de Databricks

El registro automático de Databricks es una solución sin código que amplía el registro automático de MLflow a fin de proporcionar seguimiento automático de experimentos para sesiones de entrenamiento de aprendizaje automático en Azure Databricks.

Con el registro automático de Databricks, los parámetros del modelo, las métricas, los archivos y la información de linaje se capturan automáticamente al entrenar modelos a partir de una serie de bibliotecas populares de aprendizaje automático. Las sesiones de entrenamiento se registran como ejecuciones de seguimiento de MLflow. También se realiza un seguimiento de los archivos de modelo para poder registrarlos fácilmente en el registro de modelos de MLflow e implementarlos para realizar una puntuación en tiempo real, con el servicio de modelos.

En el vídeo siguiente se muestra el registro automático de Databricks con una sesión de entrenamiento de modelos scikit-learn en un cuaderno interactivo de Python. La información de seguimiento se captura y muestra automáticamente en la barra lateral de ejecuciones de experimento y en la interfaz de usuario de MLflow.

Ejemplo de registro automático

Requisitos

  • El registro automático de Databricks está disponible con carácter general en todas las regiones con Databricks Runtime 10.4 LTS ML o versiones posteriores.
  • El registro automático de Databricks está disponible en las regiones seleccionadas para la versión preliminar con Databricks Runtime 9.1 LTS ML o versiones posteriores.

Funcionamiento

Al adjuntar un cuaderno de Python interactivo a un clúster de Azure Databricks, el registro automático de Databricks llama a mlflow.autolog() para configurar el seguimiento de las sesiones de entrenamiento del modelo. Al entrenar modelos en el cuaderno, se realiza el seguimiento automático de la información de entrenamiento del modelo con MLflow Tracking. Para obtener información sobre cómo se protege y administra esta información de entrenamiento del modelo, vea Seguridad y administración de datos.

La configuración predeterminada para la llamada a mlflow.autolog() es:

mlflow.autolog(
    log_input_examples=False,
    log_model_signatures=True,
    log_models=True,
    disable=False,
    exclusive=False,
    disable_for_unsupported_versions=True,
    silent=False
)

Puede personalizar la configuración de registro automático.

Uso

Para usar el registro automático de Databricks, entrene un modelo de aprendizaje automático en un marco compatible mediante un cuaderno interactivo de Python en Azure Databricks. El registro automático de Databricks registra automáticamente la información, los parámetros y las métricas de linaje del modelo en MLflow Tracking. También puede personalizar el comportamiento del registro automático de Databricks.

Nota:

El registro automático de Databricks no se aplica a las ejecuciones creadas mediante la API fluida de MLflow con mlflow.start_run(). En estos casos, debe llamar a mlflow.autolog() para guardar el contenido marcado automáticamente en la ejecución de MLflow. Vea Seguimiento de contenido adicional.

Personalización del comportamiento del registro

Para personalizar el registro, use mlflow.autolog(). Esta función proporciona parámetros de configuración para habilitar el registro de modelos (log_models), recopilar ejemplos de entrada (log_input_examples), configurar advertencias (silent) y mucho más.

Seguimiento de contenido adicional

Para realizar el seguimiento de métricas, parámetros, archivos y metadatos adicionales con ejecuciones de MLflow creados por el registro automático de Databricks, siga estos pasos en un cuaderno de Python interactivo en Azure Databricks:

  1. Llame a mlflow.autolog() con exclusive=False.
  2. Inicie una ejecución de MLflow mediante mlflow.start_run(). Puede encapsular esta llamada en with mlflow.start_run(); cuando lo haga, la ejecución finaliza automáticamente una vez que se complete.
  3. Use métodos de seguimiento de MLflow, como mlflow.log_param(), para realizar el seguimiento del contenido previo al entrenamiento.
  4. Entrene uno o varios modelos de Machine Learning en un marco compatible con el registro automático de Databricks.
  5. Use métodos de seguimiento de MLflow, como mlflow.log_metric(), para realizar el seguimiento del contenido posterior al entrenamiento.
  6. Si no ha usado with mlflow.start_run() en el paso 2, finalice la ejecución de MLflow con mlflow.end_run().

Por ejemplo:

import mlflow
mlflow.autolog(exclusive=False)

with mlflow.start_run():
  mlflow.log_param("example_param", "example_value")
  # <your model training code here>
  mlflow.log_metric("example_metric", 5)

Deshabilitación del registro automático de Databricks

Para deshabilitar el registro automático de Databricks en un cuaderno interactivo de Python de Azure Databricks, llame a mlflow.autolog() con disable=True:

import mlflow
mlflow.autolog(disable=True)

Los administradores también pueden deshabilitar el registro automático de Databricks para todos los clústeres de un área de trabajo desde la pestaña Opciones avanzadas de la página de configuración de administración. Para que se produzca este cambio, es necesario reiniciar los clústeres.

Entornos y marcos admitidos

El registro automático de Databricks se admite en cuadernos interactivos de Python y está disponible para los siguientes marcos de ML:

  • scikit-learn
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai (versión 1.x)
  • statsmodels.

Para más información sobre cada uno de los marcos admitidos, vea Registro automático de MLflow.

Seguridad y administración de datos

Toda la información de entrenamiento del modelo de la que se realiza el seguimiento con el registro automático de Databricks se almacena en MLflow Tracking y se protege mediante permisos de experimento de MLflow. Puede compartir, modificar o eliminar información de entrenamiento del modelo mediante la API MLflow Tracking o la interfaz de usuario.

Administración

Los administradores pueden habilitar o deshabilitar el registro automático de Databricks para todas las sesiones interactivas de cuadernos en su área de trabajo en la pestaña Opciones avanzadas de la página de configuración de administración. Los cambios no surten efecto hasta que se reinicia el clúster.

Limitaciones

  • El registro automático de Databricks no se admite en trabajos de Azure Databricks. Para usar el registro automático desde trabajos, puede llamar explícitamente a mlflow.autolog().
  • El registro automático de Databricks solo está habilitado en el nodo de controlador del clúster de Azure Databricks. Para usar el registro automático desde nodos de trabajo, debe llamar explícitamente a mlflow.autolog() desde el código que se ejecuta en cada trabajo.
  • No se admite la integración de scikit-learn de XGBoost.

Apache Spark MLlib, Hyperopt y seguimiento de MLflow automatizado

El registro automático de Databricks no cambia el comportamiento de las integraciones de seguimiento de MLflow automatizadas existentes para Apache Spark MLlib e Hyperopt.

Nota:

En Databricks Runtime 10.1 ML, al deshabilitar la integración automatizada de seguimiento de MLflow para los modelos CrossValidator y TrainValidationSplit de Apache Spark MLlib también se deshabilita la característica de registro automático de Databricks para todos los modelos de Apache Spark MLlib.