Compartir a través de


Uso de Azure Databricks para implementar la puntuación por lotes escalable de modelos de Spark

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.

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.

Arquitectura

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 está completamente incluido en Azure Databricks en función de un conjunto de cuadernos ejecutados secuencialmente. 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.

Las mejoras recientes en la ingesta de datos incluyen la replicación de datos en tiempo real desde varias bases de datos y aplicaciones SaaS, que son posibles por características como Lake House Federation.

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, la canalización ejecuta un cuaderno de creación de modelos que entrena el modelo de aprendizaje automático mediante el Apache Spark MLlib biblioteca de aprendizaje automático escalable.

Entre las características mejoradas de ML de Databricks se incluyen el seguimiento de experimentos y el entrenamiento del modelo, lo que optimiza aún más esta canalización.

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.

La canalización de puntuación puede usar la función ai_query para la inferencia por lotes, procesando grandes conjuntos de datos de forma eficaz con disposiciones para la escalabilidad y la optimización del rendimiento.

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

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.

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.

Alternativas

Esta arquitectura puede usar mosaic AI Model Serving para implementar modelos para la inferencia por lotes y en tiempo real mediante el proceso sin servidor de Azure Databricks. Proporciona una interfaz para escalar recursos dinámicamente, lo que mejora el rendimiento y la rentabilidad en el procesamiento de grandes conjuntos de datos.

Desarrolle canalizaciones programadas más complejas mediante Microsoft Fabric con Azure Databricks.

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

Esta arquitectura 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.

Fiabilidad

La confiabilidad garantiza que la aplicación pueda cumplir los compromisos que realice para sus clientes. Para obtener más información, vea Lista de comprobación de revisión de diseño para lade confiabilidad.

En esta arquitectura, los datos se almacenan directamente dentro del almacenamiento de Databricks para simplificar. Sin embargo, en una configuración de producción debe almacenar los datos en el almacenamiento de datos en la nube, como Azure Blob Storage. Databricks también admite azure Data Lake Store, Microsoft Fabric, Azure Cosmos DB, Apache Kafkay Apache Hadoop.

Optimización de costos

La optimización de costos consiste en examinar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costos.

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 cambio de nivel premium podría aumentar los costes aún más.

Eficiencia del rendimiento

La eficiencia del rendimiento es la capacidad de la carga de trabajo para satisfacer las demandas que los usuarios ponen en ella de forma eficaz. Para obtener más información, vea Lista de comprobación de revisión de diseño para la eficiencia del 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.

Colaboradores

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

Autores principales:

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

Pasos siguientes