Editar

Share via


Orquestación de MLOps mediante Azure Databricks

Azure Databricks

Ideas de solución

Este artículo es una idea de solución. Si le gustaría que ampliemos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comuníquelo a través de los Comentarios de GitHub.

En este artículo se proporciona una arquitectura y un proceso de operaciones de aprendizaje automático (MLOps) que usa Azure Databricks. Este proceso define un método estandarizado de mover modelos y canalizaciones de aprendizaje automático de desarrollo a producción, con opciones para incluir procesos automatizados y manuales.

Architecture

Diagram that shows a solution for using Azure Databricks for MLOps.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

Esta solución proporciona un proceso de MLOps sólido que usa Azure Databricks. Todos los elementos de la arquitectura son conectables, por lo que puede integrar otros servicios de Azure y de terceros en toda la arquitectura según sea necesario. Esta arquitectura y descripción se adaptan del libro electrónico El gran libro de MLOps. Este libro electrónico explora la arquitectura que se describe aquí con más detalle.

  • Control de código fuente: este repositorio de código del proyecto organiza los cuadernos, los módulos y las canalizaciones. Los científicos de datos crean ramas de desarrollo para probar las actualizaciones y los nuevos modelos. El código se desarrolla en cuadernos o en IDE, respaldados por Git, con la integración de repositorios de Databricks para sincronizar con las áreas de trabajo de Azure Databricks. El control de código fuente promueve las canalizaciones de aprendizaje automático del desarrollo, a través del ensayo (para pruebas) hasta la producción (para la implementación).

  • Almacén de lago (datos de producción): los científicos de datos trabajan en el entorno de desarrollo, donde tienen acceso de solo lectura a los datos de producción. (Como alternativa, los datos se pueden reflejar o censurar). También tienen acceso de lectura y escritura a un entorno de almacenamiento de desarrollo para desarrollo y experimentación. Se recomienda una arquitectura de almacén de lago para los datos, en los que los datos se almacenan en Azure Data Lake Storage en formato Delta Lake. Los controles de acceso se definen con la Autenticación transferida de Microsoft Entra o controles de acceso a tablas.

Desarrollo

En el entorno de desarrollo, los científicos de datos y los ingenieros desarrollan canalizaciones de aprendizaje automático.

  1. Análisis de datos exploratorios (EDA): los científicos de datos exploran los datos en un proceso interactivo e iterativo. Es posible que este trabajo ad hoc no se implemente en ensayo o producción. Las herramientas pueden incluir Databricks SQL, dbutils.data.summarize y AutoML.

  2. Entrenamiento de modelos y otras canalizaciones de aprendizaje automático: las canalizaciones de aprendizaje automático se desarrollan como código modular en cuadernos o IDE. Por ejemplo, la canalización de entrenamiento del modelo lee datos del almacén de características y otras tablas de almacén de lago. Parámetros y métricas del modelo de registro de entrenamiento y ajuste en el servidor de seguimiento de MLflow. La API del almacén de característica registra el modelo final. Estos registros vinculan 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 a la producción, el científico de datos confirma el código para caracterización, entrenamiento y otras canalizaciones para el control de código fuente.

Ensayo

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

  1. Solicitud de combinación: cuando se envía una solicitud de combinación (o extracción) en la rama de ensayo (principal) 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. Pruebas unitarias y de CI: las pruebas unitarias se ejecutan en una infraestructura de CI, mientras que las pruebas de integración ejecutan 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 los ingenieros de aprendizaje automático están listos para implementar las canalizaciones de aprendizaje automático actualizadas en la producción, pueden compilar 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 tablas de características: esta canalización lee datos, calcula características y escribe en tablas del almacén de características. Se ejecuta continuamente en modo de streaming, se ejecuta según una programación o se desencadena.

  2. Entrenamiento de modelos: en la producción, la canalización de entrenamiento o reentrenamiento de modelos se desencadena o se programa para entrenar un modelo nuevo con los datos de producción más recientes. Los modelos se registran en el Registro de modelos de MLflow.

  3. Implementación continua: el registro de nuevas versiones desencadena la canalización de CD, que ejecuta pruebas para garantizar que el modelo funcione correctamente en producción. A medida que el modelo supera las pruebas, se hace un seguimiento de su progreso en el Registro de modelos a través de transiciones de fase del modelo. Los webhooks del Registro se pueden usar para la automatización. Las pruebas pueden incluir comprobaciones de cumplimiento, pruebas A/B para comparar el nuevo modelo con el modelo de producción actual y pruebas de infraestructura. Los resultados y las métricas de las pruebas se registran en tablas de almacén de lago. Opcionalmente, puede requerir cierres de sesión manuales antes de que los modelos se cambien a producción.

  4. Implementación de modelos: cuando un modelo entra en producción, se implementa para la puntuación o el servicio. Los modelos de implementación más comunes son los siguientes:

    • Puntuación por lotes o streaming: para latencias de minutos o más, los 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 del modelo de producción más reciente del Registro de modelos y lleva a cabo la inferencia en un trabajo de Databricks. Puede publicar predicciones en tablas de almacén de lago, una conexión de Java Database Connectivity (JDBC), archivos planos, colas de mensajes u otros sistemas de bajada.
    • Servicio en línea (API de REST): para casos de uso de baja latencia, el servicio en línea suele ser necesario. MLflow puede implementar modelos en MLflow Model Serving en Azure Databricks, sistemas de servicios de proveedores de nube y otros sistemas. En todos los casos, el sistema de servicio se inicializa con el modelo de producción más reciente del Registro de modelos. Para cada solicitud, captura características de un almacén de características en línea y hace 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. Delta Live Tables puede simplificar la automatización de las canalizaciones de supervisión y almacenar las métricas en tablas del almacén de lago. Databricks SQL, Power BI y otras herramientas pueden leer desde estas tablas para crear paneles y alertas.

  6. Reentrenamiento: esta arquitectura admite el reentrenamiento manual y automático. Los trabajos de reentrenamiento programados son la manera más fácil de mantener los modelos actualizados.

Componentes

  • Almacén de lago de datos. Una arquitectura de almacén de lago unifica los mejores elementos de los lagos de datos y los almacenes de datos, lo que proporciona administración de datos y rendimiento que normalmente se encuentra en almacenes de datos con los almacenes de objetos flexibles y de bajo costo que ofrecen los lagos de datos.
    • Delta Lake es la opción recomendada para un formato de datos de código abierto para un almacén de lago. 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. Estos son sus componentes principales:
    • Seguimiento: le permite hacer un seguimiento de los experimentos para registrar y comparar parámetros, métricas y artefactos de modelos.
    • Modelo de MLflow: le permite almacenar e implementar modelos desde cualquier biblioteca de aprendizaje automático en varias plataformas de inferencia y servicio de modelos.
    • Registro de modelos: proporciona un almacén de modelos centralizado para administrar las transiciones de fase de ciclo de vida del modelo de desarrollo a producción.
    • Servicio de modelos: le permite hospedar modelos de MLflow como puntos de conexión de REST.
  • Azure Databricks. Azure Databricks proporciona un servicio de MLflow administrado con características de seguridad empresariales, alta disponibilidad e integraciones con otras características de área de trabajo de Azure Databricks.
    • Databricks Runtime para aprendizaje automático: automatiza la creación de un clúster optimizado para aprendizaje automático, que preinstala bibliotecas de aprendizaje automático populares como TensorFlow, PyTorch y XGBoost, además de herramientas de Azure Databricks para aprendizaje automático, como los clientes de AutoML y el almacén de características.
    • Almacén de características: es un repositorio centralizado de características. Permite el uso compartido y la detección de características, y ayuda a evitar la asimetría de datos entre el entrenamiento y la inferencia de modelos.
    • Databricks SQL. Databricks SQL proporciona una experiencia sencilla para consultas SQL en datos de almacén de lago y para visualizaciones, paneles y alertas.
    • Repositorios de Databricks: proporciona integración con el proveedor de Git en el área de trabajo de Azure Databricks, lo que simplifica el desarrollo colaborativo de cuadernos o código y la integración de 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. Las personalizaciones comunes incluyen los siguientes aspectos:

  • Varias áreas de trabajo de desarrollo que comparten un área de trabajo de producción común.
  • Intercambio de 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 de REST de Git y Azure Databricks.

Detalles del escenario

MLOps ayuda a reducir el riesgo de errores en los sistemas de aprendizaje automático e inteligencia artificial y a mejorar la eficacia de la colaboración y las herramientas. Para obtener una introducción a MLOps e información general sobre esta arquitectura, consulte Arquitectura de MLOps en el almacén de lago.

Mediante el uso de esta arquitectura, podrá hacer lo siguiente:

  • Conectar a las partes interesadas de la empresa con equipos de aprendizaje automático y ciencia de datos. Esta arquitectura permite a los científicos de datos usar cuadernos e IDE para el desarrollo. Permite a las partes interesadas de la empresa ver métricas y paneles en Databricks SQL, todo ello dentro de la misma arquitectura de almacén de lago.
  • Haga que la infraestructura de aprendizaje automático esté centrada en los datos. Esta arquitectura trata los datos de aprendizaje automático (datos de ingeniería de características, entrenamiento, inferencia y supervisión) igual que otros datos. 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, las canalizaciones modulares y el código de esta arquitectura permiten 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 todos los pasos deben automatizarse. 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 que se usan en esta arquitectura, se incluyen las siguientes:

  • 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 los datos y a las dimensiones de problemas.

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

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

Para obtener ejemplos, consulte el sitio web de Databricks.

Colaboradores

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

Autor principal:

Otro colaborador:

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

Pasos siguientes