Editar

Compartir vía


Uso de Azure Databricks para orquestar MLOps

Azure Databricks

Ideas de solución

En este artículo se describe una idea de solución. El arquitecto de la nube puede usar esta guía para ayudar a visualizar los componentes principales de una implementación típica de esta arquitectura. Use este artículo como punto de partida para diseñar una solución bien diseñada que se adapte a los requisitos específicos de la carga de trabajo.

En este artículo se proporciona una arquitectura y un proceso de operaciones de aprendizaje automático (MLOps) que usa Azure Databricks. Los científicos de datos e ingenieros pueden usar este proceso estandarizado para mover modelos y canalizaciones de aprendizaje automático de desarrollo a producción.

Esta solución puede aprovechar la automatización completa, la supervisión continua y una colaboración sólida y, por tanto, tiene como destino un nivel 4 de madurez de MLOps. Esta arquitectura usa el código de promoción que genera el enfoque del modelo en lugar del enfoque de promoción de modelos . El código de promoción que genera el enfoque del modelo se centra en escribir y administrar el código que genera modelos de aprendizaje automático. Las recomendaciones de este artículo incluyen opciones para procesos automatizados o manuales.

Arquitectura

Diagrama que muestra una solución para usar Azure Databricks para MLOps.

En este diagrama se muestran los 12 pasos de este flujo de trabajo. Una sección de datos de producción de lakehouse incluye las métricas de tabla de datos, tabla de características y modelo de tabla lakehouse. Una sección de control de código fuente incluye un entorno de desarrollo, ensayo y versión. El control de código fuente incluye Azure DevOps y GitHub. En el entorno de desarrollo principal, el paso 1 exploratorio de análisis de datos lee los datos de la tabla de datos. El entrenamiento del modelo del paso 2 lee los datos de la tabla de datos y la tabla de características. El paso 3 confirma el código en el entorno de desarrollo en el control de código fuente. El paso 4 combina una solicitud al entorno de ensayo. El entorno de ensayo de control de código fuente desencadena las pruebas unitarias y de CI del paso 5 en el entorno de ensayo principal, que lee los datos de la tabla de características y la tabla de datos. El código cambia la combinación al entorno de ensayo del control de código fuente. El paso 6 crea una rama de versión en el entorno de versión. Una flecha que apunta desde el entorno de versión al entorno de producción principal dice Deploy machine learning Databricks jobs (Implementación de trabajos de Databricks de aprendizaje automático). En el entorno de producción principal, el paso 7 de la actualización de la tabla de características lee los datos de la tabla de datos y envía datos a la tabla de características. El entrenamiento del modelo del paso 8 lee los datos de la detección de desfase y el reentrenamiento del modelo. El paso 8 también inserta el modelo en el catálogo de Unity. El paso 9 de evaluación y promoción de modelos carga el modelo desde el catálogo de Unity para su evaluación. A continuación, envía el modelo al almacenamiento provisional y, a continuación, a producción en el catálogo de Unity. En el paso 10, la implementación del modelo carga el modelo para la inferencia y lee los datos de la tabla de características. El paso 11 de supervisión lee los datos de la tabla de características y lee las métricas del modelo de tabla lakehouse. El paso 11 también escribe datos en la tabla lakehouse y en Azure Monitor. El paso 12 el reentrenamiento del modelo apunta al paso 8 y a los estados de flecha Desencadenar el reentrenamiento del modelo.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

El siguiente flujo de trabajo corresponde al diagrama anterior. Use componentes de almacenamiento y control de código fuente para administrar y organizar el código y los datos.

Control de código fuente: este repositorio de código del proyecto organiza los cuadernos, los módulos y las canalizaciones. Puede crear ramas de desarrollo para probar actualizaciones y nuevos modelos. Desarrolle código en cuadernos compatibles con Git o entornos de desarrollo integrados (IDE) que se integren con carpetas de Git para que pueda sincronizar con las áreas de trabajo de Azure Databricks. El control de código fuente promueve las canalizaciones de aprendizaje automático desde el entorno de desarrollo, a las pruebas en el entorno de ensayo y a la implementación en el entorno de producción.

Datos de producción de Lakehouse: como científico de datos, tiene acceso de solo lectura a los datos de producción en el entorno de desarrollo. El entorno de desarrollo puede tener datos reflejados y censurar datos confidenciales. También tiene acceso de lectura y escritura en un entorno de almacenamiento de desarrollo para desarrollo y experimentación. Se recomienda usar una arquitectura lakehouse para los datos en los que se almacenan los datos con formato delta Lake en Azure Data Lake Storage. Una instancia de Lakehouse proporciona una solución sólida, escalable y flexible para la administración de datos. Para definir controles de acceso, use el acceso directo a credenciales de Id. de Microsoft Entra o controles de acceso a tablas.

Los siguientes entornos componen el flujo de trabajo principal.

Desarrollo

En el entorno de desarrollo, se desarrollan canalizaciones de aprendizaje automático.

  1. Realizar análisis exploratorios de datos (EDA): explore los datos en un proceso interactivo e iterativo. Es posible que no implemente este trabajo en ensayo o producción. Use herramientas como Databricks SQL, el comando dbutils.data.summarize y Databricks AutoML.

  2. Desarrollo de entrenamiento de modelos y otras canalizaciones de aprendizaje automático: desarrolle canalizaciones de aprendizaje automático código modular y organice el código a través de cuadernos de Databricks o un proyecto de MLflow. En esta arquitectura, la canalización de entrenamiento del modelo lee los datos del almacén de características y otras tablas de lakehouse. La canalización entrena y ajusta los parámetros y las métricas del modelo de registro al servidor de seguimiento de MLflow. La API del almacén de características registra el modelo final. Estos registros incluyen el modelo, sus entradas y el código de entrenamiento.

  3. Código de confirmación: para promover el flujo de trabajo de aprendizaje automático hacia producción, confirme el código para caracterizar, entrenar y otras canalizaciones en el control de código fuente. En la base de código, coloque el código de aprendizaje automático y el código operativo en carpetas diferentes para que los miembros del equipo puedan desarrollar código al mismo tiempo. El código de aprendizaje automático es código relacionado con el modelo y los datos. El código operativo es código relacionado con los trabajos y la infraestructura de Databricks.

Este ciclo básico de actividades que se realizan al escribir y probar código se conoce como proceso de innerloop. Para realizar el proceso de innerloop para la fase de desarrollo, use Visual Studio Code en combinación con la CLI del contenedor de desarrollo y la CLI de Databricks. Puede escribir el código y realizar pruebas unitarias localmente. También debe enviar, supervisar y analizar las canalizaciones del modelo desde el entorno de desarrollo local.

Ensayo

En el entorno de ensayo, la infraestructura de integración continua (CI) prueba los cambios en las canalizaciones de aprendizaje automático en un entorno que imita la producción.

  1. Combinar una solicitud: al enviar una solicitud de combinación o una solicitud de incorporación de cambios en la rama de ensayo (main) del proyecto en el control de código fuente, una herramienta de integración continua y entrega continua (CI/CD), como Azure DevOps , ejecuta pruebas.

  2. Ejecución de pruebas unitarias y pruebas de CI: las pruebas unitarias se ejecutan en la infraestructura de CI y las pruebas de integración se ejecutan en flujos de trabajo de un extremo a otro en Azure Databricks. Si se superan las pruebas, el código cambia la combinación.

  3. Compilación de una rama de versión: cuando quiera implementar las canalizaciones de aprendizaje automático actualizadas en producción, puede crear una nueva versión. Una canalización de implementación en la herramienta de CI/CD vuelve a implementar las canalizaciones actualizadas como nuevos flujos de trabajo.

Producción

Los ingenieros de aprendizaje automático administran el entorno de producción, donde las canalizaciones de aprendizaje automático sirven directamente a las aplicaciones finales. Las canalizaciones clave en la producción actualizan las tablas de características, entrenan e implementan nuevos modelos, ejecutan inferencia o servicio y supervisan el rendimiento del modelo.

  1. Actualización de la tabla de características: esta canalización lee datos, calcula características y escrituras en tablas de almacén de características. Puede configurar esta canalización para que se ejecute continuamente en modo de streaming, ejecutarse según una programación o ejecutarse en un desencadenador.

  2. Entrenamiento del modelo: en producción, puede configurar la canalización de entrenamiento o reentrenamiento del modelo para que se ejecute en un desencadenador o una programación para entrenar un modelo nuevo en los datos de producción más recientes. Los modelos se registran automáticamente en el catálogo de Unity.

  3. Evaluación y promoción del modelo: cuando se registra una nueva versión del modelo, la canalización de CD se desencadena, que ejecuta pruebas para asegurarse de que el modelo funcionará bien en producción. Cuando el modelo supera las pruebas, Unity Catalog realiza un seguimiento de su progreso a través de transiciones de fase del modelo. Las pruebas incluyen comprobaciones de cumplimiento, pruebas A/B para comparar el nuevo modelo con el modelo de producción actual y pruebas de infraestructura. Las tablas de Lakehouse registran métricas y resultados de pruebas. Opcionalmente, puede requerir cierres de sesión manuales antes de que los modelos pasen a producción.

  4. Implementación del modelo: cuando un modelo entra en producción, se implementa para puntuar o servir. Los modos de implementación más comunes son:

    • Puntuación por lotes o streaming: para latencias de minutos o más, el procesamiento por lotes y el streaming son las opciones más rentables. La canalización de puntuación lee los datos más recientes del almacén de características, carga la versión más reciente del modelo de producción de Unity Catalog y realiza la inferencia en un trabajo de Databricks. Puede publicar predicciones en tablas de lakehouse, una conexión de Conectividad de base de datos java (JDBC), archivos planos, colas de mensajes u otros sistemas de bajada.

    • Servicio en línea (API REST): en el caso de casos de uso de baja latencia, normalmente se necesita servicio en línea. MLflow puede implementar modelos en Mosaic AI Model Serving, proveedores de servicios en la nube y otros sistemas. En todos los casos, el sistema de servicio se inicializa con el modelo de producción más reciente de Unity Catalog. Para cada solicitud, captura características de un almacén de características en línea y realiza predicciones.

  5. Supervisión: los flujos de trabajo continuos o periódicos supervisan los datos de entrada y las predicciones de modelos para el desfase, el rendimiento y otras métricas. Puede usar el marco delta Live Tables para automatizar la supervisión de canalizaciones y almacenar las métricas en tablas de lakehouse. Databricks SQL, Power BI y otras herramientas pueden leer desde estas tablas para crear paneles y alertas. Para supervisar las métricas, los registros y la infraestructura de la aplicación, también puede integrar Azure Monitor con Azure Databricks.

  6. Detección de desfase y reentrenamiento de modelos: esta arquitectura admite el reentrenamiento manual y automático. Programe los trabajos de reentrenamiento para mantener los modelos actualizados. Después de que un desfase detectado cruce un umbral preconfigurado establecido en el paso de supervisión, las canalizaciones de reentrenamiento analizan el desfase y desencadenan el reentrenamiento. Puede configurar canalizaciones para que se desencadenen automáticamente o puede recibir una notificación y, a continuación, ejecutar las canalizaciones manualmente.

Componentes

  • Una arquitectura de data lakehouse unifica los elementos de los lagos de datos y los almacenes de datos. Use una instancia de Lakehouse para obtener funcionalidades de administración y rendimiento de datos que normalmente se encuentran en almacenes de datos, pero con los almacenes de objetos flexibles y de bajo costo que ofrecen los lagos de datos.

    • Delta Lake es el formato de datos de código abierto recomendado para una instancia de Lakehouse. Azure Databricks almacena datos en Data Lake Storage y proporciona un motor de consultas de alto rendimiento.
  • MLflow es un proyecto de código abierto para administrar el ciclo de vida de aprendizaje automático de un extremo a otro. MLflow tiene los siguientes componentes:

    • La característica de seguimiento realiza un seguimiento de los experimentos, por lo que puede registrar y comparar parámetros, métricas y artefactos de modelo.

    • El modelo de MLflow es un formato que puede usar para almacenar e implementar modelos desde cualquier biblioteca de aprendizaje automático en varias plataformas de inferencia y servicio de modelos.

    • Unity Catalog proporciona funcionalidades centralizadas de control de acceso, auditoría, linaje y detección de datos en áreas de trabajo de Azure Databricks.

    • Mosaic AI Model Serving hospeda modelos de MLflow como puntos de conexión REST.

  • Azure Databricks proporciona un servicio MLflow administrado que tiene características de seguridad empresarial, alta disponibilidad e integraciones con otras características del área de trabajo de Azure Databricks.

    • Databricks Runtime para Machine Learning automatiza la creación de un clúster optimizado para el aprendizaje automático y preinstala bibliotecas de aprendizaje automático populares como TensorFlow, PyTorch y XGBoost. También preinstala Azure Databricks para herramientas de Machine Learning, como AutoML y clientes de almacén de características.

    • Un almacén de características es un repositorio centralizado de características. Use el almacén de características para detectar y compartir características y ayudar a evitar la asimetría de datos entre el entrenamiento del modelo y la inferencia.

    • Databricks SQL se integra con una variedad de herramientas para que pueda crear consultas y paneles en sus entornos favoritos sin ajustar a una nueva plataforma.

    • Las carpetas de Git proporcionan integración con el proveedor de Git en el área de trabajo de Azure Databricks, lo que mejora la colaboración de cuadernos o código y la integración del IDE.

    • Flujos de trabajo y trabajos: proporcionan un método para ejecutar código no interactivo en un clúster de Azure Databricks. Para el aprendizaje automático, los trabajos proporcionan automatización para la preparación de datos, la caracterización, el entrenamiento, la inferencia y la supervisión.

Alternativas

Puede adaptar esta solución a la infraestructura de Azure. Tenga en cuenta las siguientes personalizaciones:

  • Use varias áreas de trabajo de desarrollo que comparten un área de trabajo de producción común.

  • Exchange uno o varios componentes de arquitectura para la infraestructura existente. Por ejemplo, puede usar Azure Data Factory para orquestar trabajos de Databricks.

  • Integración con las herramientas de CI/CD existentes a través de Las API rest de Git y Azure Databricks.

  • Use Microsoft Fabric o Azure Synapse Analytics como servicios alternativos para las funcionalidades de aprendizaje automático.

Detalles del escenario

Esta solución proporciona un proceso de MLOps sólido que usa Azure Databricks. Puede reemplazar todos los elementos de la arquitectura, por lo que puede integrar otros servicios de Azure y servicios asociados según sea necesario. Esta arquitectura y descripción se adaptan del libro electrónico El gran libro de MLOps. El libro electrónico explora esta arquitectura con más detalle.

MLOps ayuda a reducir el riesgo de errores en los sistemas de aprendizaje automático e inteligencia artificial y mejora la eficacia de la colaboración y las herramientas. Para obtener una introducción a MLOps y una introducción a esta arquitectura, consulte Arquitecto de MLOps en lakehouse.

Use esta arquitectura para:

  • Conectar a las partes interesadas de la empresa con equipos de aprendizaje automático y ciencia de datos. Use esta arquitectura para incorporar cuadernos e IDE para el desarrollo. Las partes interesadas de la empresa pueden ver métricas y paneles en Databricks SQL, todo dentro de la misma arquitectura de lakehouse.

  • Haga que la infraestructura de aprendizaje automático esté centrada en los datos. Esta arquitectura trata los datos de aprendizaje automático igual que otros datos. Los datos de aprendizaje automático incluyen datos de ingeniería de características, entrenamiento, inferencia y supervisión. Esta arquitectura reutiliza las herramientas para canalizaciones de producción, paneles y otro procesamiento de datos general para el procesamiento de datos de aprendizaje automático.

  • Implemente MLOps en módulos y canalizaciones. Al igual que con cualquier aplicación de software, use las canalizaciones modularizadas y el código de esta arquitectura para probar componentes individuales y reducir el costo de la refactorización futura.

  • Automatice los procesos de MLOps según sea necesario. En esta arquitectura, puede automatizar los pasos para mejorar la productividad y reducir el riesgo de error humano, pero no es necesario automatizar todos los pasos. Azure Databricks permite la interfaz de usuario y los procesos manuales, además de las API para la automatización.

Posibles casos de uso

Esta arquitectura se aplica a todos los tipos de aprendizaje automático, aprendizaje profundo y análisis avanzado. Entre las técnicas comunes de aprendizaje automático e inteligencia artificial de esta arquitectura se incluyen:

  • Aprendizaje automático clásico, como modelos lineales, modelos basados en árboles y potenciación.
  • Aprendizaje profundo moderno, como TensorFlow y PyTorch.
  • Análisis personalizado, como estadísticas, métodos bayesianos y análisis de grafos.

La arquitectura admite datos pequeños (una sola máquina) y datos grandes (computación distribuida y acelerada por GPU). En cada fase de la arquitectura, puede elegir recursos de proceso y bibliotecas para adaptarse a las dimensiones de problemas y datos del escenario.

La arquitectura se aplica a todos los tipos de sectores y casos de uso empresariales. Los clientes de Azure Databricks que usan esta arquitectura incluyen organizaciones pequeñas y grandes en los sectores siguientes:

  • Bienes de consumo y servicios minoristas
  • Servicios financieros
  • Sanidad y ciencias biológicas
  • Tecnología de la información

Para obtener ejemplos, consulte Clientes de Databricks.

Colaboradores

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

Creadores de entidad de seguridad:

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

Pasos siguientes