Puntuación por lotes de modelos de Spark en Azure Databricks

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Azure Blob Storage

Esta arquitectura de referencia muestra cómo crear una solución escalable para la puntuación por lotes en un modelo de clasificación de Apache Spark en una programación con Azure Databricks. Azure Databricks es una plataforma de análisis basada en Apache Spark y optimizada para Azure. Azure Databricks ofrece tres entornos para desarrollar aplicaciones que consumen muchos datos: Databricks SQL, Databricks Data Science & Engineering y Databricks Machine Learning. Databricks Machine Learning es un entorno integral de aprendizaje automático integrado que incorpora servicios administrados para el seguimiento de experimentos, entrenamiento de modelos, desarrollo y administración de características, y servicio de características y modelos. Puede usar esta arquitectura de referencia como una plantilla que a su vez se puede usar en otros escenarios. Hay disponible una implementación de referencia de esta arquitectura en GitHub.

Apache® y Apache Spark son marcas comerciales registradas o marcas comerciales de Apache Software Foundation en los Estados Unidos u otros países. El uso de estas marcas no implica la aprobación de Apache Software Foundation.

Architecture

Diagrama que muestra la puntuación por lotes de los modelos de clasificación de Apache Spark en Azure Databricks.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

La arquitectura define un flujo de datos que encontrará al completo en Azure Databricks y que está basado en un conjunto de cuadernos ejecutados de forma secuencial. Este consta de los siguientes componentes:

Archivos de datos . La implementación de referencia usa un conjunto de datos simulados que están en cinco archivos de datos estáticos.

Ingesta . El cuaderno de ingesta de datos descarga los archivos de datos de entrada en una colección de conjuntos de datos de Databricks. En el mundo real, los datos de los dispositivos IoT se transmitirían al almacenamiento accesible de Databricks, como Azure SQL o Azure Blob Storage. Databricks admite varios orígenes de datos.

Canalización de entrenamiento. Este cuaderno ejecuta el cuaderno de ingeniería de características para crear un conjunto de datos de análisis a partir de los datos ingeridos. A continuación ejecuta un cuaderno de creación de modelos que entrena el modelo de Machine Learning mediante la biblioteca de Machine Learning escalable Apache Spark MLlib.

Canalización de puntuación. Este cuaderno ejecuta el cuaderno de ingeniería de características para crear un conjunto de datos de puntuación a partir de los datos ingeridos, y ejecuta el cuaderno de puntuación. El cuaderno de puntuación usa el modelo entrenado de Spark MLlib para crear predicciones a partir de las observaciones en el conjunto de datos de puntuación. Las predicciones se guardan en el almacén de resultados, un nuevo conjunto de datos del almacén de datos de Databricks.

Scheduler. Un trabajo programado de Databricks maneja la puntuación por lotes con el modelo de Spark. El trabajo ejecuta el cuaderno de canalización de puntuación, pasando argumentos variables a través de los parámetros del cuaderno para así especificar los detalles para crear el conjunto de datos de puntuación y saber dónde almacenar el conjunto de datos de resultados.

Detalles de la solución

El escenario se crea como un flujo de canalización. Cada cuaderno está optimizado para realizar una configuración por lotes en cada una de estas operaciones: ingestión, ingeniería de características, compilación de modelos y puntuación de modelos. El cuaderno de ingeniería de características está diseñado para crear un conjunto de datos general para cualquiera de las operaciones de entrenamiento, calibración, prueba o puntuación. En este escenario, usaremos una estrategia de división temporal para estas operaciones, por lo que los parámetros del cuaderno se usan para configurar el filtrado del rango de fechas.

Como el escenario crea una canalización por lotes, proporcionaremos un conjunto de cuadernos de revisión opcionales para así poder explorar la salida de los cuadernos de canalizaciones. Puede encontrar estos cuadernos en la carpeta de cuadernos del repositorio de GitHub:

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Posibles casos de uso

Una empresa en una industria de activos pesados quiere minimizar los costos y el tiempo de inactividad asociados a errores mecánicos inesperados. Al usar los datos de IoT recopilados de sus máquinas, pueden crear un modelo de mantenimiento predictivo. Gracias a este modelo, la empresa puede mantener los componentes de manera proactiva y repararlos antes de que se produzca un error. Al maximizar el uso de componentes mecánicos, pueden controlar los costos y reducir el tiempo de inactividad.

A su vez, un modelo de mantenimiento predictivo recopila datos de las máquinas y conserva un historial con ejemplos de los errores de los componentes. A continuación, el modelo se puede usar para supervisar el estado actual de los componentes y predecir si un componente dado generará un error próximamente. Para casos de uso comunes y enfoques de modelado, consulte Guía de Azure AI para soluciones de mantenimiento predictivo.

Esta arquitectura de referencia está diseñada para cargas de trabajo que se desencadenan debido a la presencia de nuevos datos de las máquinas componentes. El procesamiento implica los siguientes pasos:

  1. Introduzca los datos del almacén de datos externo en un almacén de datos de Azure Databricks.

  2. Entrene un modelo de Machine Learning transformando los datos en un conjunto de datos de entrenamiento y, a continuación, compilando un modelo de Spark MLlib. MLlib consta de los algoritmos y utilidades de Machine Learning más comunes optimizados para aprovechar las capacidades de escalabilidad de los datos de Spark.

  3. Aplique el modelo entrenado para predecir (o clasificar) los errores de los componentes transformando los datos en un conjunto de datos de puntuación. Puntúe los datos con el modelo de Spark MLLib.

  4. Almacene los resultados en el almacén de datos de Databricks para usarlos después del procesamiento.

Los cuadernos se proporcionan en GitHub para realizar cada una de estas tareas.

Recomendaciones

Databricks está configurado para que pueda cargar e implementar los modelos entrenados y así poder hacer predicciones con datos nuevos. Databricks también proporciona otras ventajas:

  • Compatibilidad con el inicio de sesión único con credenciales de Microsoft Entra.
  • Un programador de trabajos para ejecutar trabajos de procesos de producción.
  • Un cuaderno totalmente interactivo que permite la colaboración entre usuarios, además de ofrecer paneles y varias API REST.
  • Clústeres ilimitados que pueden escalarse en cualquier tamaño.
  • Seguridad avanzada, controles de acceso basados en roles y registros de auditoría.

Para interactuar con el servicio de Azure Databricks, use la interfaz del área de trabajo de Databricks en un navegador web o en la interfaz de la línea de comandos (CLI). Puede obtener acceso a la CLI de Databricks desde cualquier plataforma que admita Python (versiones 2.7.9 a 3.6).

La implementación de referencia usa cuadernos para ejecutar tareas en secuencia. Cada cuaderno almacena artefactos de datos intermedios (de entrenamiento, prueba, puntuación o conjuntos de datos de resultados) en el mismo almacén de datos que los datos de entrada. El objetivo es facilitarle las cosas según su caso de uso particular. En la práctica, debe conectar el origen de datos a su instancia de Azure Databricks para que los cuadernos puedan leer y escribir directamente en el almacenamiento.

Supervise la ejecución de trabajos a través de la interfaz de usuario de Databricks, el almacén de datos o la CLI de Databricks según sea necesario. Supervise el clúster mediante el registro de eventos y otras métricas que proporciona Databricks.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Rendimiento

Un clúster de Azure Databricks habilita el escalado automático de manera predeterminada para que, durante el tiempo de ejecución, Databricks reasigne dinámicamente los roles de trabajo para que tengan en cuenta las características de su trabajo. Ciertas partes de la canalización pueden ser más exigentes en el cálculo que otras. Databricks agrega roles de trabajo adicionales durante estas fases del trabajo (y los elimina cuando ya no son necesarios). El escalado automático hace que sea más fácil lograr un uso del clúster elevado, ya que no es necesario aprovisionar ese clúster para que coincida con una carga de trabajo.

Desarrolle canalizaciones programadas más complejas mediante Azure Data Factory con Azure Databricks.

Storage

En esta implementación de referencia, los datos se guardan directamente en el almacenamiento de Databricks para facilitarle las cosas. Sin embargo, en una configuración de producción, puede almacenar los datos en un almacenamiento de datos en la nube como Azure Blob Storage. Databricks también es compatible con Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka y Apache Hadoop.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

En general, use la calculadora de precios de Azure para calcular los costos. Otras consideraciones se describen en la sección Costo de Marco de buena arquitectura de Microsoft Azure.

Azure Databricks es una oferta premium de Spark con un costo asociado. Además, puede optar por planes de tarifa estándar y premium de Databricks.

En este ejemplo el plan de tarifa estándar es suficiente. Sin embargo, si su aplicación específica debe escalar clústeres automáticamente para controlar cargas de trabajo más grandes o paneles interactivos de Databricks, el nivel premium podría aumentar los costos aún más.

Para eliminar paquetes específicos de Databricks, los cuadernos de soluciones pueden ejecutarse en cualquier plataforma basada en Spark si se realizan unos cambios mínimos. Consulte las siguientes soluciones similares para varias plataformas de Azure:

Implementación de este escenario

Para implementar esta arquitectura de referencia, siga los pasos descritos en el repositorio de GitHub para crear una solución escalable para puntuar lotes de modelos de Spark en Azure Databricks.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes