Databricks AutoML

Importante

Esta característica está en versión preliminar pública.

Databricks AutoML le ayuda a aplicar automáticamente el aprendizaje automático a un conjunto de datos. Prepara el conjunto de datos para el entrenamiento del modelo y, a continuación, realiza y registra un conjunto de pruebas, la creación, el ajuste y la evaluación de varios modelos. Muestra los resultados y proporciona un cuaderno de Python con el código fuente de cada ejecución de prueba para que pueda revisar, reproducir y modificar el código. AutoML también calcula las estadísticas de resumen del conjunto de datos y guarda esta información en un cuaderno que puede revisar más adelante.

Cada modelo se construye a partir de componentes de código abierto, como scikit-learn y XGBoost, y se puede editar e integrar fácilmente en las canalizaciones de aprendizaje automático.

Puede ejecutar AutoML mediante la interfaz de usuario o la API de Python.

Requisitos

  • Databricks Runtime 8.3 ML o superior.
  • No se pueden instalar bibliotecas adicionales que no sean las proporcionadas con Databricks Runtime tiempo de ejecución de ML en el clúster.

Interfaz de usuario de AutoML

La interfaz de usuario de AutoML le ayuda a través del proceso de entrenamiento de un modelo en un conjunto de datos. Para acceder a la interfaz de usuario:

  1. Seleccione Machine Learning en el conmutador de rol en la parte superior de la barra lateral izquierda.

  2. En la barra lateral, haga clic en > Crear AutoML.

    También puede crear un nuevo experimento de AutoML desde la página Experimentos.

    Se muestra la página Configurar experimento de AutoML. En esta página, configurará el proceso de AutoML, especificando el conjunto de datos, el tipo de problema, la columna de destino o etiqueta que se va a predecir, la métrica que se va a usar para evaluar y puntuar las ejecuciones del experimento y las condiciones de detención.

  3. En el campo Clúster, seleccione un clúster que ejecute Databricks Runtime ml 8.3 o posterior.

  4. En el menú desplegable Tipo de problema de ML, seleccione Regresión o Clasificación. Si está intentando predecir un valor numérico continuo para cada observación, como los ingresos anuales, seleccione regresión. Si está intentando asignar cada observación a uno de un conjunto discreto de clases, como riesgo de crédito bueno o riesgo de crédito no bueno, seleccione clasificación.

  5. En Conjunto de datos, haga clic en Examinar tablas. Aparece un cuadro de diálogo con las bases de datos y tablas disponibles. Vaya a la tabla que desea usar y haga clic en Seleccionar. Aparece el esquema de tabla.

  6. Haga clic en el campo Destino de predicción. Aparece una lista desplegable con las columnas que se muestran en el esquema. Seleccione la columna que desea que predijo el modelo.

  7. El campo Nombre del experimento muestra el nombre predeterminado. Para cambiarlo, escriba el nuevo nombre en el campo .

  8. Puede especificar opciones de configuración adicionales en Configuración avanzada (opcional).

    • La métrica de evaluación es la métrica principal que se usa para puntuar las ejecuciones.
    • Puede editar las condiciones de detención predeterminadas. De forma predeterminada, el experimento se detiene después de 60 minutos o cuando ha completado 200 ejecuciones, lo que sea primero.
    • En el campo Directorio de datos, puede especificar una ubicación de DBFS donde se guarden los cuadernos generados durante el proceso de AutoML. Si deja el campo en blanco, los cuadernos se guardan como artefactos de MLflow.
  9. Haga clic en Iniciar AutoML. El experimento comienza a ejecutarse y aparece la página de entrenamiento de AutoML. Para actualizar la tabla de ejecuciones, haga  clic botón Actualizar .

    En esta página puede realizar las siguientes acciones:

    • Detener el experimento en cualquier momento
    • Apertura del cuaderno de exploración de datos
    • Supervisión de ejecuciones
    • Vaya a la página de ejecución de cualquier ejecución.

Una vez completado el experimento, puede hacer lo siguiente:

  • Registre e implemente uno de los modelos con MLflow.
  • Haga clic en Editar el mejor modelo para revisar y editar el cuaderno que creó el mejor modelo.
  • Abra el cuaderno de exploración de datos.
  • Busque, filtre y ordene las ejecuciones en la tabla de ejecuciones.
  • Consulte los detalles de cualquier ejecución:
    • Para abrir el cuaderno que contiene código fuente para una ejecución de prueba, haga clic en la columna Origen.
    • Para ver la página de ejecución con detalles sobre una ejecución de prueba, haga clic en la columna Hora de inicio .
    • Para ver información sobre el modelo que se creó, incluidos los fragmentos de código para realizar predicciones, haga clic en la columna Modelos.

Para volver a este experimento de AutoML más adelante, en la tabla de la página Experimentos .

Registro e implementación de un modelo desde la interfaz de usuario de AutoML

  1. Haga clic en el vínculo de la columna Modelos para el modelo que se registrará. Cuando se completa una ejecución, el mejor modelo (basado en la métrica principal) es la fila superior.

    Se muestra la sección artefactos de la página de ejecución de la ejecución que creó el modelo.

  2. Haga clic  en el botón Register model (Registrar modelo) para registrar el modelo en el Registro de modelos.

  3. Haga clic  en Modelos Icon Models (Modelos) en la barra lateral para ir al Registro de modelos.

  4. Haga clic en el nombre del modelo en la tabla de modelos. Se muestra la página del modelo registrado. En esta página, puede servir el modelo.

AutoML Python API

  1. Cree un cuaderno y adjuntelo a un clúster que Databricks Runtime ml 8.3 o posterior.

  2. Cargue un DataFrame de Spark o Pandas desde un origen de datos existente o cargue un archivo de datos en DBFS y cargue los datos en el cuaderno.

    df = spark.read.parquet("<folder-path>")
    
  3. Para iniciar una ejecución de AutoML, pase dataframe a AutoML. Consulte los documentos de API para obtener más información.

  4. Cuando se inicia la ejecución de AutoML, aparece una dirección URL del experimento de MLflow en la consola. Use esta dirección URL para supervisar el progreso de la ejecución. Actualice el experimento de MLflow para ver las pruebas a medida que se completan.

  5. Una vez completada la ejecución de AutoML:

    • Use los vínculos del resumen de salida para ir al experimento de MLflow o al cuaderno que generó los mejores resultados.
    • Use el vínculo al cuaderno de exploración de datos para obtener información sobre los datos pasados a AutoML. También puede adjuntar este cuaderno al mismo clúster y volver a ejecutarlo para reproducir los resultados o realizar análisis de datos adicionales.
    • Use el objeto de resumen devuelto por la llamada a AutoML para explorar más detalles sobre las pruebas o para cargar un modelo entrenado por una prueba determinada. Consulte los documentos de API para obtener más información.
    • Clone los cuadernos generados a partir de las pruebas y vuelva a ejecutar el cuaderno asociándose al mismo clúster para reproducir los resultados. También puede realizar las modificaciones necesarias y volver a ejecutarlas para entrenar modelos adicionales y registrarlos en el mismo experimento.

Especificación de la API de Python

La API de Python proporciona funciones para iniciar las ejecuciones de AutoML de clasificación y regresión. Cada llamada de función entrena un conjunto de modelos y genera un cuaderno de prueba para cada modelo.

clasificación

databricks.automl.classify(
  dataset: Union[pyspark.DataFrame, pandas.DataFrame],
  *,
  target_col: str,
  primary_metric: Optional[str],
  data_dir: Optional[str],
  timeout_minutes: Optional[int],
  max_trials: Optional[int]
) -> AutoMLSummary

Regresión

databricks.automl.regress(
  dataset: Union[pyspark.DataFrame, pandas.DataFrame],
  *,
  target_col: str,
  primary_metric: Optional[str],
  data_dir: Optional[str],
  timeout_minutes: Optional[int],
  max_trials: Optional[int]
) -> AutoMLSummary

Parámetros

Nombre del campo Tipo Descripción
dataset pyspark. DataFrame pandas. DataFrame DataFrame de entrada que contiene características de entrenamiento y destino.
primary_metric str Métrica usada para evaluar y clasificar el rendimiento del modelo. Métricas admitidas para regresión: "r2" (valor predeterminado), "mae", "rmse", "mse" Métricas admitidas para clasificación: "f1" (valor predeterminado), "log_loss", "precision", "accuracy", "roc_auc"
target_col str Nombre de columna de la etiqueta de destino.
data_dir str de formato
dbfs:/<folder-name>
Ruta de acceso de DBFS utilizada para almacenar datos intermedios. Esta ruta de acceso es visible para los nodos de controlador y de trabajo. Si está vacío, AutoML guarda los datos intermedios como artefactos de MLflow.
timeout_minutes int Parámetro opcional para el tiempo máximo de espera a que se completen las pruebas de AutoML. Si se omite, se ejecutarán pruebas sin restricciones de tiempo (valor predeterminado). Produce una excepción si el tiempo de espera pasado es inferior a 5 minutos o si el tiempo de espera no es suficiente para ejecutar al menos 1 prueba. Los tiempos de espera más largos permiten que AutoML ejecute más pruebas y proporcione un modelo con una mayor precisión.
max_trials int Parámetro opcional para el número máximo de pruebas que se ejecutarán. El valor predeterminado es 20. Cuando timeout=None, el número máximo de pruebas se ejecutará hasta su finalización.

Devoluciones

AutoMLSummary

Objeto de resumen de una ejecución de clasificación de AutoML que describe las métricas, los parámetros y otros detalles de cada una de las pruebas. También se usa este objeto para cargar el modelo entrenado por una evaluación específica.

Propiedad Tipo Descripción
Experimento mlflow.entities.Experiment Experimento de MLflow usado para registrar las pruebas.
Ensayos List[TrialInfo] Lista que contiene información sobre todas las pruebas que se ejecutaron.
best_trial TrialInfo Información sobre la prueba que dio lugar a la mejor puntuación ponderada para la métrica principal.
metric_distribution str La distribución de puntuaciones ponderadas para la métrica principal en todas las pruebas.

TrialInfo

Objeto de resumen para cada evaluación individual.

Propiedad Tipo Descripción
notebook_path str Ruta de acceso al cuaderno generado para esta versión de prueba en el área de trabajo.
notebook_url str Dirección URL del cuaderno generado para esta evaluación.
mlflow_run_id str Identificador de ejecución de MLflow asociado a esta ejecución de prueba.
Métricas Dict[str, float] Métricas registradas en MLflow para esta evaluación.
params Dict[str, str] Parámetros registrados en MLflow que se usaron para esta versión de prueba.
model_path str Dirección URL del artefacto de MLflow del modelo entrenado en esta versión de prueba.
model_description str Breve descripción del modelo y los hiperparámetros usados para entrenar este modelo.
duration str Duración del entrenamiento en minutos.
preprocesadores str Descripción de los preprocesadores que se ejecutan antes de entrenar el modelo.
evaluation_metric_score FLOAT Puntuación de la métrica principal, evaluada para el conjunto de datos de validación.
Método Descripción
load_model() Cargue el modelo generado en esta versión de prueba, registrado como un artefacto de MLflow.

Ejemplos de API

Revise estos cuadernos para empezar a trabajar con AutoML.

Cuaderno de ejemplo de clasificación de AutoML

Obtener el cuaderno

Cuaderno de ejemplo de regresión de AutoML

Obtener el cuaderno

Restricciones conocidas

  • Solo se admiten la clasificación y la regresión
  • Solo se admiten los siguientes tipos de características:
    • Numeric ( ByteType , , , , y ShortType IntegerType LongType FloatType DoubleType )
    • Boolean
    • Cadena (solo categórica)
    • Marcas de tiempo ( TimestampType , DateType )
  • No se admiten los siguientes tipos de características:
    • Imágenes
    • Texto