Ciencia de datos y aprendizaje automático con Azure Databricks

Azure Databricks
Azure Data Lake Storage
Azure Kubernetes Service (AKS)
Azure Machine Learning

Ideas de solución

Este artículo es una idea de solución. Si te 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ícalo a través de los Comentarios de GitHub.

Esta arquitectura le muestra cómo puede mejorar las operaciones mediante Azure Databricks, Delta Lake y MLflow para la ciencia de datos y el aprendizaje automático. Puede mejorar la eficacia general y la experiencia del cliente mediante el desarrollo, el entrenamiento y la implementación de modelos de aprendizaje automático.

Architecture

Architecture diagram showing how Azure Databricks works with data storage services to refine and analyze data and make it available for other services.

El diagrama contiene tres rectángulos grises: uno con la etiqueta Proceso, otro con la etiqueta Servicio y otro con la etiqueta Almacenamiento. Los rectángulos Proceso y Servicio están uno junto al otro en la parte superior del diagrama. El rectángulo Servicio contiene un cuadro blanco con iconos de Machine Learning y Azure Kubernetes Service. Otro cuadro blanco delimita los rectángulos Proceso y Servicio. Contiene iconos de Azure Databricks y MLflow. Una flecha apunta desde ese cuadro al cuadro blanco del rectángulo Servicio. Debajo del rectángulo Proceso se encuentra el rectángulo Almacenamiento. Contiene un cuadro blanco con iconos de Data Lake Storage, Delta Lake y tres tablas de base de datos etiquetadas como Bronze, Silver y Gold. Tres líneas conectan los rectángulos Proceso y Almacenamiento, con flechas en cada extremo de cada línea.

Descargue un archivo Visio de esta arquitectura.

La solución almacena, procesa y sirve datos:

Flujo de datos

Almacenamiento

Data Lake Storage almacena los datos en formato Delta Lake. Delta Lake constituye la capa mantenida del lago de datos. Una arquitectura de medallas organiza los datos en tres capas:

  • Las tablas Bronze tienen datos sin procesar.
  • Las tablas Silver contienen datos limpios y filtrados.
  • Las tablas Gold contienen datos agregados, listos para el análisis y los informes.

Proceso

  • El código de varios lenguajes, marcos y bibliotecas prepara, refina y limpia los datos sin procesar (1). Entre las posibilidades de codificación se incluyen Python, R, SQL, Spark, Pandas y Koalas.

  • Azure Databricks ejecuta las cargas de trabajo de ciencia de datos. Esta plataforma también compila y entrena modelos de aprendizaje automático (2). Azure Databricks usa bibliotecas optimizadas preinstaladas. Algunos ejemplos son scikit-learn, TensorFlow, PyTorch y XGBoost.

  • El seguimiento de MLflow captura los experimentos de aprendizaje automático, las ejecuciones de modelos y los resultados (3). Cuando el mejor modelo está listo para producción, Azure Databricks lo implementa en el repositorio de modelos de MLflow. Este registro centralizado almacena información sobre los modelos de producción. El Registro también hace que los modelos estén disponibles para otros componentes:

    • Las canalizaciones de Spark y Python pueden ingerir modelos. Estas canalizaciones controlan las cargas de trabajo por lotes o los procesos ETL de streaming.
    • Las API de REST proporcionan acceso a los modelos para muchos fines. Algunos ejemplos son las pruebas y la puntuación interactiva en aplicaciones móviles y web.

Servicio

Azure Databricks puede implementar modelos en otros servicios, como Machine Learning y AKS (4).

Componentes

  • Azure Databricks es una plataforma de análisis de datos. Sus clústeres de Spark totalmente administrados ejecutan cargas de trabajo de ciencia de datos. Azure Databricks también usa bibliotecas optimizadas preinstaladas para compilar y entrenar modelos de aprendizaje automático. La integración de MLflow con Azure Databricks proporciona una opción para realizar el seguimiento de los experimentos, almacenar modelos en repositorios y poner los modelos a disposición de otros servicios. Azure Databricks ofrece escalabilidad:

    • Los clústeres de proceso de nodo único controlan conjuntos de datos pequeños y ejecuciones de un solo modelo.
    • Para conjuntos de datos grandes, hay disponibles clústeres de proceso de varios nodos o clústeres de unidad de procesamiento de gráficos (GPU). Estos clústeres usan bibliotecas y marcos como HorovodRunner e Hyperopt para ejecuciones de modelos paralelos.
  • Data Lake Storage es un lago de datos seguro y escalable para cargas de trabajo de análisis de alto rendimiento. Este servicio puede administrar varios petabytes de información, al mismo tiempo que mantiene un rendimiento de cientos de gigabits. Los datos pueden tener estas características:

    • Ser estructurados, semiestructurados o no estructurados.
    • Proceder de varios orígenes heterogéneos, como registros, archivos y elementos multimedia.
    • Ser estáticos, de lotes o de streaming.
  • Delta Lake es una capa de almacenamiento que usa un formato de archivo abierto. Esta capa se ejecuta sobre el almacenamiento en la nube, como Data Lake Storage. Delta Lake está optimizado para transformar y limpiar datos de lotes y streaming. Esta plataforma admite estas características y funcionalidades:

    • Control de versiones y reversión de datos.
    • Transacciones de atomicidad, coherencia, aislamiento y durabilidad (ACID) para ofrecer confiabilidad.
    • Un estándar coherente para la preparación de datos, el entrenamiento del modelo y el servicio de modelos.
    • Viaje en el tiempo para instantáneas coherentes de los datos de origen. Los científicos de datos pueden entrenar modelos en las instantáneas en lugar de crear copias independientes.
  • MLflow es una plataforma de código abierto para el ciclo de vida del aprendizaje automático. Los componentes de MLflow supervisan los modelos de aprendizaje automático durante el entrenamiento y la ejecución. La información almacenada incluye código, datos, información de configuración y resultados. MLflow también almacena modelos y los carga en producción. Dado que MLflow usa marcos abiertos, varios servicios, aplicaciones, marcos y herramientas pueden consumir los modelos.

  • Machine Learning es un entorno basado en la nube que le ayuda a crear, implementar y administrar soluciones de análisis predictivo. Con estos modelos, puede predecir comportamientos, resultados y tendencias.

  • AKS es un servicio de Kubernetes totalmente administrado, de alta disponibilidad y seguro. AKS facilita la implementación y la administración de aplicaciones contenedorizadas.

Detalles del escenario

A medida que su organización reconoce la eficacia de la ciencia de datos y el aprendizaje automático, puede mejorar la eficacia y las experiencias de los clientes, así como predecir cambios. Para lograr estos objetivos en casos de uso críticos para la empresa, necesita un patrón coherente y confiable para las operaciones siguientes:

  • Seguimiento de experimentos.
  • Reproducción de resultados.
  • Implementación de modelos en de aprendizaje automático en producción.

En este artículo se describe una solución para un marco de aprendizaje automático coherente y confiable. Azure Databricks constituye el núcleo de la solución. La capa de almacenamiento Delta Lake y la plataforma de aprendizaje automático MLflow también desempeñan roles importantes. Estos componentes se integran perfectamente con otros servicios, como Azure Data Lake Storage, Azure Machine Learning y Azure Kubernetes Service (AKS).

Juntos, estos servicios proporcionan una solución de ciencia de datos y aprendizaje automático que reúne las cualidades siguientes:

  • Simple: un lago de datos abierto simplifica la arquitectura. El lago de datos contiene una capa seleccionada, Delta Lake. Esa capa proporciona acceso a los datos en un formato de código abierto.

  • Abierto: la solución admite código fuente abierto, estándares abiertos y marcos abiertos. Este enfoque minimiza la necesidad de futuras actualizaciones. Azure Databricks y Machine Learning admiten MLflow y Delta Lake de forma nativa. Juntos, estos componentes proporcionan operaciones de aprendizaje automático (MLOps) líderes del sector o DevOps para el aprendizaje automático. Una amplia gama de herramientas de implementación se integran con el formato de modelo estandarizado de la solución.

  • Colaborativa: los equipos de ciencia de datos y MLOps trabajan juntos con esta solución. Estos equipos usan el seguimiento de MLflow para registrar y consultar experimentos. Los equipos también implementan modelos en el registro de modelos de MLflow central. A continuación, los ingenieros de datos usan los modelos implementados en procesos de ingesta de datos y de extracción, transformación y carga (ETL), así como en canalizaciones de streaming.

Posibles casos de uso

Una plataforma que AGL creó para la previsión de energía inspiró esta solución. Esa plataforma proporciona procesos de entrenamiento, implementación y administración del ciclo de vida rápidos y rentables para miles de modelos paralelos.

Además de los proveedores de energía, esta solución puede beneficiar a cualquier organización que:

  • Utilice la ciencia de datos.
  • Compile y entrene modelos de aprendizaje automático.
  • Ejecute modelos de aprendizaje automático en producción.

Algunos ejemplos son las organizaciones de:

  • Comercio electrónico y venta al por menor.
  • Banca y finanzas.
  • Sanidad y ciencias biológicas.
  • Sectores de automoción y fabricación.

Pasos siguientes

  • AGL Energy crea una plataforma estandarizada para miles de modelos paralelos. La plataforma proporciona procesos de entrenamiento, implementación y administración del ciclo de vida rápidos y rentables para los modelos.
  • Open Grid Europa (OGE) usa modelos de inteligencia artificial para supervisar las canalizaciones de gas. OGE usa Azure Databricks y MLflow para desarrollar los modelos.
  • Scandinavian Airlines (SAS) usa Azure Databricks durante una fase de investigación colaborativa. La compañía también usa Machine Learning para desarrollar modelos predictivos. Al identificar patrones en los datos de la empresa, los modelos mejoran las operaciones diarias.