Compartir a través de


¿De qué manera Databricks usa CI/CD para el aprendizaje automático?

CI/CD (integración continua y entrega continua) se refiere a un proceso automatizado para desarrollar, implementar, supervisar y mantener las aplicaciones. Al automatizar la creación, las pruebas y la implementación de código, los equipos de desarrollo son capaces de entregar versiones con mayor frecuencia y fiabilidad que los procesos más manuales que siguen siendo frecuentes en muchos equipos de ingeniería y ciencia de datos. CI/CD para el aprendizaje automático reúne técnicas de MLOps, DataOps, ModelOps y DevOps.

En este artículo, se describe cómo Databricks usa CI/CD para soluciones de aprendizaje automático. En las aplicaciones de aprendizaje automático, CI/CD no solo es importante para los recursos de código, sino que también se aplica a las canalizaciones de datos, incluidos los datos de entrada y los resultados generados por el modelo.

Diagrama de ciclo de vida de MLOps de un extremo a otro que muestra los elementos de CI/CD para ML.

Elementos de aprendizaje automático que necesitan CI/CD

Uno de los desafíos del desarrollo de ML es que los distintos equipos son responsables de diferentes partes del proceso. Los equipos puede depender de diferentes herramientas y tener diferentes programaciones de lanzamiento de versiones. Azure Databricks proporciona una única plataforma unificada de datos y ML con herramientas integradas para mejorar la eficiencia de los equipos y garantizar la coherencia y la repetibilidad de las canalizaciones de datos y de ML.

En general, en las tareas de aprendizaje automático, se debe realizar un seguimiento de lo siguiente en un flujo de trabajo automatizado de CI/CD:

  • Datos de entrenamiento, incluida la calidad de los datos, cambios en el esquema y cambios de distribución
  • Canalizaciones de datos de entrada
  • Código para el entrenamiento, validación y entrega del modelo
  • Predicciones y rendimiento del modelo

Integración de Databricks en los procesos de CI/CD

MLOps, DataOps, ModelOps y DevOps se refieren a la integración de los procesos de desarrollo con las “operaciones”: hacer que los procesos y la infraestructura sean predecibles y confiables. En este conjunto de artículos, se describe cómo integrar los principios de operaciones (“ops”) en los flujos de trabajo de ML en la plataforma de Databricks.

Databricks incorpora todos los componentes necesarios para el ciclo de vida de ML, incluidas las herramientas para compilar “la configuración como código”, a fin de garantizar la reproducibilidad y “la infraestructura como código” para automatizar el aprovisionamiento de servicios en la nube. También incluye servicios de registro y de alertas para ayudarle a detectar y solucionar problemas cuando se producen.

DataOps: datos confiables y seguros

Los buenos modelos de aprendizaje automático dependen de canalizaciones de datos e infraestructura confiables. Con Databricks Data Intelligence Platform, toda la canalización de datos, desde la ingesta de datos hasta las salidas del modelo entregado, se encuentra en una sola plataforma y usa el mismo conjunto de herramientas, lo que facilita la productividad, la reproducibilidad, el uso compartido y la solución de problemas.

Diagrama de DataOps

Tareas y herramientas de DataOps en Databricks

En la tabla, se enumeran las tareas y herramientas comunes de DataOps en Databricks:

Tarea de DataOps Herramienta de Databricks
Ingesta y transformación de datos Cargador automático y Apache Spark
Seguimiento de los cambios en los datos, incluidos el control de versiones y el linaje Tablas delta
Compilación, administración y supervisión de canalizaciones de procesamiento de datos Delta Live Tables
Garantizar la seguridad y la gobernanza de los datos Unity Catalog
Análisis de datos exploratorio y paneles SQL de Databricks, paneles y cuadernos de Databricks
Codificación general Databricks SQL y cuadernos de Databricks
Programación de canalizaciones de datos Flujos de trabajo de Databricks
Automatización de flujos de trabajo generales Flujos de trabajo de Databricks
Creación, almacenamiento, administración y descubrimiento de características para el entrenamiento de modelos Almacén de características de Databricks
Supervisión de datos Lakehouse Monitoring

ModelOps: desarrollo y ciclo de vida de modelos

El desarrollo de un modelo requiere una serie de experimentos y una manera de realizar un seguimiento para comparar las condiciones y los resultados de esos experimentos. Databricks Data Intelligence Platform incluye MLflow para el seguimiento del desarrollo de modelos y MLflow Model Registry para administrar el ciclo de vida del modelo, incluidos el almacenamiento provisional, la entrega y el almacenamiento de los artefactos del modelo.

Después de lanzar un modelo en producción, pueden cambiar muchos aspectos que podrían afectar a su rendimiento. Además de supervisar el rendimiento de predicción del modelo, también se deben supervisar los cambios en la calidad o las características estadísticas de los datos de entrada, que obligarían a que se deba volver a entrenar el modelo.

Diagrama de ModelOps

Tareas y herramientas de ModelOps en Databricks

En la tabla, se enumeran las herramientas y tareas comunes de ModelOps proporcionadas por Databricks:

Tarea de ModelOps Herramienta de Databricks
Seguimiento del desarrollo de modelos Seguimiento de modelos de MLflow
Administración del ciclo de vida de un modelo Modelos en Unity Catalog
Uso compartido y versiones del código del modelo Carpetas Git de Databricks
Desarrollo de modelos sin código Databricks AutoML
Supervisión de modelos Lakehouse Monitoring

DevOps: producción y automatización

La plataforma Databricks admite modelos de aprendizaje automático en producción con lo siguiente:

  • Linaje de modelos y datos de un extremo a otro: desde modelos de producción hasta el origen de datos sin procesar, en la misma plataforma.
  • Entrega de modelos de nivel de producción: con escala o reducción vertical automática en función de las necesidades empresariales.
  • Flujos de trabajo multitarea: automatiza los trabajos y crea flujos de trabajo de aprendizaje automático programados.
  • Carpetas Git: el control de versiones de código y el uso compartido del área de trabajo también ayudan a los equipos a seguir los procedimientos recomendados de ingeniería de software.
  • Proveedor de Databricks en Terraform: automatiza la infraestructura de implementación en nubes para trabajos de inferencia de ML, servicios de puntos de conexión y trabajos de caracterización.

Servicio de modelos

Para implementar modelos en producción, MLflow simplifica significativamente el proceso, lo que proporciona una implementación de un solo clic como trabajo por lotes para grandes cantidades de datos o como punto de conexión de REST en un clúster de escalado automático. La integración de la tienda de características de Databricks con MLflow también garantiza la coherencia de las características para el entrenamiento y la entrega. Además, los modelos de MLflow pueden buscar automáticamente características de la tienda, incluso para la entrega de baja latencia en línea.

La plataforma de Databricks admite muchas opciones de implementación de modelos:

  • Código y contenedores
  • Entrega por lotes
  • Entrega de baja latencia en línea
  • Entrega perimetral o en dispositivo
  • Nubes múltiples, por ejemplo, entrenamiento del modelo en una nube e implementación en otra

Para obtener más información, consulte Entrega de modelos de Databricks.

Flujos de varios trabajos

Los flujos de trabajo de Databricks permiten automatizar y programar cualquier tipo de carga de trabajo, desde ETL a ML. Databricks también admite integraciones con orquestadores populares de terceros como Airflow.

Carpetas Git

La plataforma de Databricks incluye compatibilidad con Git en el área de trabajo para ayudar a los equipos a seguir los procedimientos recomendados de ingeniería de software mediante la realización de operaciones de Git a través de la interfaz de usuario. Los administradores y los ingenieros de DevOps pueden usar la API para configurar la automatización con sus herramientas favoritas de CI/CD. Databricks admite cualquier tipo de implementación de Git, incluidas las redes privadas.

Para obtener información sobre los procedimientos recomendados para el desarrollo de código mediante carpetas Git de Databricks, consulte Flujos de trabajo de CI/CD con integración con Git y carpetas Git de Databricks y Uso de CI/CD. Estas técnicas, junto con la API de REST de Databricks, permiten desarrollar procesos de implementación automatizados con Acciones de GitHub, canalizaciones de Azure DevOps o trabajos de Jenkins.

Unity Catalog para la gobernanza y la seguridad

La plataforma de Databricks incluye Unity Catalog, que permite a los administradores configurar el control de acceso detallado, directivas de seguridad y la gobernanza de todos los datos y recursos de IA en Databricks.