MLflow es una plataforma de código abierto para gestionar flujos de trabajo de aprendizaje automático. Se lanzó en 2018 y desde entonces ha ganado popularidad, llegando a 10 millones de usuarios en noviembre de 2022. Los entusiastas y profesionales de la IA siempre han luchado con el seguimiento de experimentos, la gestión de modelos y la reproducibilidad del código, por lo que cuando se lanzó MLflow, resolvió un problema acuciante en el campo de la IA. mercado. MLflow es liviano y puede ejecutarse en máquinas de precio promedio. Pero también incorpora herramientas más sofisticadas, lo que lo hace ideal para ejecutar IA a escala.
Tabla de Contenidos
Historia de MLflow
Desde que MLflow se lanzó por primera vez en junio de 2018, la comunidad detrás de él ha realizado encuestas periódicas para comprender mejor las necesidades de los usuarios y garantizar que la hoja de ruta aborde los desafíos de la vida real. Aproximadamente un año después de su lanzamiento, se lanzó MLflow 1.0, que presenta características como visualización mejorada de indicadores, coordenadas X de indicadores, capacidades de búsqueda mejoradas y compatibilidad con HDFS. Además, proporciona estabilidad API Python, Java, R y REST.
MLflow 2.0 aterrizó en noviembre de 2022, cuando el producto también celebró los 10 millones de usuarios. Esta versión incorpora amplios comentarios de la comunidad para optimizar los flujos de trabajo de ciencia de datos y proporcionar herramientas innovadoras y mejores para MLOps. Las características y mejoras incluyen extensiones de MLflow Recipes (anteriormente MLflow Pipelines), como AutoML, ajuste de hiperparámetros y compatibilidad con clasificación, así como una integración mejorada con el ecosistema de ML, una interfaz de usuario de seguimiento de MLflow mejorada y API principales en todos los componentes de la plataforma MLflow. más.
En septiembre de 2023, Canonical lanzó Charmed MLflow, una versión de distribución del proyecto upstream.
¿Por qué utilizar MLflow?
MLflow generalmente se considera la plataforma de aprendizaje automático más popular. Permite a los usuarios realizar diferentes actividades que incluyen:
- Para reproducir los resultados: Los proyectos de aprendizaje automático a menudo comienzan con planes simples y, a menudo, se exageran, lo que lleva a una experimentación extensa. El seguimiento manual o no automático significa que es probable que se pasen por alto detalles más finos. Los canales de aprendizaje automático son frágiles e incluso un elemento faltante puede generar resultados confusos. La incapacidad de reproducir resultados y código es uno de los mayores desafíos que enfrentan los equipos de aprendizaje automático.
- Fácil de empezar: MLflow se puede implementar fácilmente y no requiere hardware pesado para funcionar. Es adecuado para principiantes que buscan una solución para ver y gestionar mejor sus modelos.Por ejemplo, este video Muestra cómo instalar Charmed MLflow en 5 minutos.
- Independiente del entorno: La flexibilidad entre bibliotecas y lenguajes de MLflow es posible porque se puede acceder a él a través de una API REST y una interfaz de línea de comandos (CLI). Para mayor comodidad, también se proporcionan las API de Python, R y Java.
- Integración: Si bien MLflow en sí es popular, no funciona por sí solo. Se integra perfectamente con marcos y herramientas de código abierto líderes como Spark, Kubeflow, PyTorch o TensorFlow.
- Trabaja en cualquier momento y en cualquier lugar: MLflow funciona en cualquier entorno, incluidos escenarios híbridos o de múltiples nubes, y en cualquier Kubernetes.
Componentes de flujo ml
MLFlow es una plataforma de un extremo a otro para gestionar el ciclo de vida del aprendizaje automático. Tiene cuatro componentes principales:
- pista: Le permite realizar un seguimiento de experimentos para registrar y comparar parámetros y resultados.
- modelo a seguir: Le permite administrar e implementar modelos desde varias bibliotecas de aprendizaje automático en varios servicios de modelos y plataformas de inferencia.
- proyecto: Le permite empaquetar código ML en una forma reutilizable y reproducible que puede compartirse con otros científicos de datos o trasladarse a entornos de producción.
- Registro de modelos: Le permite centralizar el almacenamiento de modelos para gestionar toda la transición de las etapas del ciclo de vida del modelo: desde la preparación hasta la producción, con control de versiones y capacidades de anotación. Databricks proporciona una versión administrada del registro de modelos en Unity Catalog.
Seguimiento de transmisión de aprendizaje automático
MLflow Tracking se utiliza para realizar un seguimiento de diferentes parámetros de canalización, como métricas, hiperparámetros, parámetros de funciones, versiones de código y otros artefactos. Estos registros se pueden utilizar posteriormente para visualizar o comparar resultados entre experimentos, usuarios o entornos. Los registros se pueden almacenar en cualquier sistema local y servidores remotos.
modelo de flujo ml
A través de los modelos MLflow, los modelos ML se pueden empaquetar en diferentes formatos o estructuras. Por ejemplo, formatos o estructuras como TensorFlow DAG o funciones de Python y archivos descriptores los definen. Esta capacidad de empaquetar diferentes formatos permite que el modelo se utilice en muchas herramientas y plataformas posteriores, como Docker o AWS SageMaker. Esto hace que el ciclo de vida del modelo sea más fácil de manejar y gestionar.
proyecto flujo ml
Los proyectos de MLflow proporcionan convenciones para empaquetar o crear proyectos de ML y código de proyecto reutilizable. Básicamente, un proyecto es un directorio y un archivo descriptor que define la estructura y las dependencias. Además, MLflow recuerda automáticamente los parámetros o detalles del proyecto cuando se utiliza la API de MLflow en un proyecto.
Registro de modelos de MLflow
MLflow Registry sirve como núcleo y admite API, UI y almacenamiento de modelos centralizado. Está diseñado para gestionar canales de aprendizaje automático de un extremo a otro mediante capacidades de seguimiento de linaje de modelos y control de versiones.
Conceptos clave de MLflow
MLflow se basa en dos conceptos clave: ejecuciones y experimentos.
- flujo ml correr Corresponde a una única ejecución del código del modelo. Todas las ejecuciones de MLflow se registran en el experimento activo. Si no se establece ningún experimento activo, la ejecución se registrará en el experimento del cuaderno.
- flujo ml experimento Es la unidad principal de organización y control de acceso para las operaciones de MLflow; todas las ejecuciones de MLflow pertenecen a un experimento. Los experimentos le permiten visualizar, buscar y comparar ejecuciones, así como descargar artefactos de ejecución y metadatos para su análisis en otras herramientas.
Kubeflow y MLflow
Kubeflow y MLFlow son soluciones de código abierto diseñadas específicamente para el campo del aprendizaje automático. Cuentan con un fuerte apoyo de los líderes de la industria y están impulsados por una comunidad próspera cuyas contribuciones aportan cambios al desarrollo del proyecto. El objetivo principal de Kubeflow y MLFlow es crear un entorno colaborativo para científicos de datos e ingenieros de aprendizaje automático y permitir a los equipos desarrollar e implementar modelos de aprendizaje automático de manera escalable, portátil y repetible.
Sin embargo, comparar Kubeflow y MLflow es como comparar manzanas y naranjas. Desde el principio, fueron diseñados para cumplir diferentes propósitos. Estos proyectos han evolucionado con el tiempo y ahora tienen funcionalidades superpuestas. Pero lo más importante es que tienen diferentes puntos fuertes. Por un lado, Kubeflow está bien versado en la automatización del flujo de trabajo del aprendizaje automático, el uso de canalizaciones y el desarrollo de modelos. MLFlow, por otro lado, es excelente para el seguimiento de experimentos y el registro de modelos. Desde la perspectiva del usuario, MLFlow requiere menos recursos y es más fácil de implementar y usar para los principiantes, mientras que Kubeflow es una solución más pesada que es ideal para escalar proyectos de aprendizaje automático.
Charmed MLflow y proyectos upstream
Charmed MLflow es una distribución del proyecto upstream de Canonical. Es parte de la creciente cartera MLOps de Canonical. Tiene todas las características del proyecto upstream y hemos agregado características de nivel empresarial como:
- Implementación simplificada: La implementación lleva menos de cinco minutos y los usuarios pueden actualizar sus herramientas sin problemas.
- Utilice nuestra guía para simplificar la actualización.
- Escaneo de seguridad automático: Este paquete se escanea con una cadencia fija.
- Parches de seguridad: Charmed MLflow sigue los procesos y procedimientos de parches de seguridad de Canonical. Priorice las vulnerabilidades según la gravedad, la presencia de parches en proyectos upstream y el riesgo de explotación.
- Imágenes mantenidas: Todas las imágenes de Charmed MLflow se mantienen activamente.
- Prueba completa: Charmed MLflow está completamente probado en múltiples plataformas, incluida la nube pública, estaciones de trabajo locales, implementaciones locales y varias distribuciones de Kubernetes compatibles con CNCF.