Administración del ciclo de vida de ML mediante MLflow

En este artículo se describe cómo se usa MLflow en Databricks para la administración del ciclo de vida del aprendizaje automático. También incluye ejemplos que presentan cada componente de MLflow y vínculos al contenido que describen cómo se hospedan estos componentes en Azure Databricks.

La administración del ciclo de vida de ML en Databricks se proporciona mediante la administración de MLflow. Azure Databricks proporciona una versión hospedada y totalmente administrada de MLflow integrada con características de seguridad empresarial, alta disponibilidad y otras características del área de trabajo de Azure Databricks, como la administración de experimentos y ejecuciones y la captura de revisiones de cuadernos.

Los nuevos usuarios deberían empezar por el Introducción a los experimentos de MLflow, en el que se muestran las API básicas de seguimiento de MLflow.

¿Qué es MLflow?

MLflow es una plataforma de código abierto para administrar el ciclo de vida completo del aprendizaje automático. Tiene los siguientes componentes principales:

  • Seguimiento: Permite realizar un seguimiento de los experimentos para registrar y comparar parámetros y resultados.
  • Modelos: Permiten administrar e implementar modelos desde una variedad de bibliotecas de Machine Learning para una variedad de plataformas de inferencia y visualización de modelos.
  • Proyectos: Permiten empaquetar el código de Machine Learning en una forma reutilizable y reproducible para compartirlo con otros científicos de datos o transferirlos a producción.
  • Registro de modelos: Le permite centralizar un almacén de modelos para administrar las transiciones entre las etapas del ciclo de vida completo de los modelos, desde el almacenamiento provisional a producción, con funcionalidades que permiten crear versiones y anotaciones. Databricks proporciona una versión administrada del Registro de modelos en Unity Catalog.
  • Servicio de modelos: Permite hospedar modelos de MLflow como puntos de conexión REST. Databricks proporciona una interfaz unificada para implementar, controlar y consultar los modelos de IA servidos.

MLflow admite Java, Python, R y API REST.

Azure Databricks cifra los datos de MLflow mediante una clave administrada por la plataforma. No se admite el cifrado mediante claves administradas por el cliente para servicios administrados.

Seguimiento de MLflow

MLflow en Azure Databricks ofrece una experiencia integrada para realizar el seguimiento y proteger las ejecuciones de entrenamiento aprendizaje automático y los modelos de aprendizaje profundo.

Administración del ciclo de vida del modelo

El registro de modelos de MLflow es un repositorio de modelos centralizado, y una interfaz de usuario y un conjunto de API que le permiten administrar el ciclo de vida completo de los modelos de MLflow. Databricks proporciona una versión hospedada del Registro de modelos de MLflow en Unity Catalog. El catálogo de Unity proporciona gobernanza de modelos centralizada, acceso entre áreas de trabajo, linaje de datos e implementación. Para obtener más información sobre cómo administrar el ciclo de vida del modelo en el catálogo de Unity, consulte Administración del ciclo de vida del modelo en el catálogo de Unity.

Si el área de trabajo no está habilitada para el catálogo de Unity, puede usar el registro de modelos de área de trabajo.

Conceptos del Registro de modelos

  • Modelo: modelo de MLflow registrado desde un experimento o ejecución que se registra con uno de los métodos mlflow.<model-flavor>.log_model del tipo de modelo. Una vez registrado un modelo, puede registrarlo en el registro de modelos.
  • Modelo registrado: un modelo de MLflow que se ha registrado con el Registro de modelos. El modelo registrado tiene un nombre único, versiones, linaje del modelo y otros metadatos.
  • Versión del modelo: versión de un modelo registrado. Cuando se agrega un nuevo modelo al Registro de modelos, se agrega como versión 1. Cada modelo registrado con el mismo nombre de modelo incrementa el número de versión.
  • Los alias de modelo: un alias de modelo es una referencia mutable y con nombre a una versión determinada dentro de un modelo registrado. Los usos típicos de alias son especificar qué versiones de modelo se implementan en un entorno determinado en los flujos de trabajo de entrenamiento del modelo o para escribir cargas de trabajo de inferencia que tienen como destino un alias específico. Por ejemplo, podría asignar el alias "Champion" del modelo registrado "Detección de fraudes" a la versión del modelo que debe servir a la mayoría del tráfico de producción y, a continuación, escribir cargas de trabajo de inferencia destinadas a ese alias (es decir, realizar predicciones mediante la versión "Champion").
  • Fase del modelo (solo en el registro de modelos del área de trabajo): se puede asignar una versión del modelo a una o varias fases. MLflow proporciona fases predefinidas para los casos de uso comunes Ninguno, Almacenamiento provisional, Producción y Archivado. Con el permiso adecuado, puede realizar la transición de una versión del modelo entre fases o puede solicitar una transición de la fase del modelo. Las fases de versión del modelo no se usan en el catálogo de Unity.
  • Descripción: puede anotar la intención de un modelo, incluida una descripción y cualquier información relevante útil para el equipo, como la descripción del algoritmo, el conjunto de datos empleado o la metodología.

Cuadernos de ejemplo

Para obtener un ejemplo en el que se muestra cómo usar el Registro de modelos para crear una aplicación de aprendizaje automático que realice la previsión de la salida de energía diaria de un granja eólica, consulte lo siguiente:

Implementación de modelo

Databricks Model Serving proporciona una interfaz unificada para implementar, controlar y consultar modelos de IA. Cada modelo que sirva está disponible como una API de REST que puede integrar en la aplicación web o cliente.

El servicio de modelos admite el servicio a:

  • Modelos personalizados. Estos son modelos de Python empaquetados en el formato MLflow. Se pueden registrar en el catálogo de Unity o en el registro del modelo del área de trabajo. Algunos ejemplos son los modelos de transformador scikit-learn, XGBoost, PyTorch y Hugging Face.
  • Modelos abiertos de última generación disponibles por las API de Foundation Model. Estos modelos son arquitecturas de modelos fundamentales mantenidos que admiten la inferencia optimizada. Los modelos base, como Llama-2-70B-chat, BGE-Large y Mistral-7B están disponibles para su uso inmediato con precios de pago por token, y las cargas de trabajo que requieren garantías de rendimiento y variantes de modelo optimizados se pueden implementar con rendimiento aprovisionado.
  • Modelos externos. Estos son modelos hospedados fuera de Databricks. Algunos ejemplos son los modelos de base como GPT-4 de OpenAI, Claude de Anthropic y otros. Los puntos de conexión que atienden modelos externos se pueden regular de forma centralizada y los clientes pueden establecer límites de velocidad y controles de acceso para ellos.

También puede implementar modelos de MLflow para la inferencia sin conexión, consulte Implementación de modelos para la inferencia por lotes.