En los últimos años, el aprendizaje automático ha conquistado el mundo: cada vez más organizaciones de diversas industrias, incluso las aparentemente más incompatibles, lo están adoptando para optimizar los procesos de producción, mejorar la experiencia del cliente, la detección de fraudes y la seguridad, e incluso para diagnosticar y tratar enfermedades. Pero, a medida que esta adopción ha crecido, se ha vuelto cada vez más importante gestionar el proceso de desarrollo, implementación y mantenimiento de modelos de aprendizaje automático a escala, esto se denomina MLOps. MLOps implica varias tareas, como la gestión de datos, el entrenamiento de modelos y la supervisión del rendimiento. Naturalmente, numerosas herramientas MLOps de código abierto y patentadas facilitaron estas tareas.
En este artículo, analizaremos algunas de las herramientas de código abierto de MLOps más populares disponibles en la actualidad y ofreceremos un resumen de lo que pueden hacer. Para su comodidad, hemos dividido las herramientas en categorías en función de las características que tienen para ofrecer para ayudar a los científicos de datos y a los ingenieros de aprendizaje automático a trabajar de manera más eficiente.
Herramientas de gestión de flujo de trabajo
- Flujo de Kube es una plataforma nativa de Kubernetes para ejecutar flujos de trabajo de aprendizaje automático, que incluyen entrenamiento de modelos, ajuste de hiperparámetros y entrega. Está diseñada para facilitar el proceso de creación, implementación y gestión de flujos de trabajo de aprendizaje automático en clústeres de Kubernetes como infraestructura subyacente.
- Flujo ml es una plataforma con un enfoque integral para gestionar el ciclo de vida del ML, desde la preparación de los datos hasta la implementación del modelo. Una de sus principales capacidades es permitir a los científicos de datos realizar un seguimiento de los experimentos, empaquetar y compartir código y gestionar los modelos de forma escalable. Además, MLflow permite realizar un seguimiento y visualizar las ejecuciones de los experimentos, empaquetar el código y los datos como ejecuciones reproducibles, gestionar las versiones y la implementación de los modelos e integrarse con las bibliotecas y los marcos de ML más populares.
- OptScaleLa plataforma MLOps y FinOps ofrece la oportunidad de ejecutar ML/AI o cualquier tipo de carga de trabajo con un rendimiento y un coste de infraestructura óptimos mediante la creación de perfiles de trabajos de ML, la ejecución de experimentos automatizados y el análisis del uso de la nube. OptScale proporciona optimización del rendimiento mediante la integración con modelos de ML/AI, destacando los cuellos de botella y proporcionando recomendaciones claras de rendimiento y costes. Los conjuntos de ejecución permiten a los usuarios especificar un presupuesto y un conjunto de hiperparámetros, y OptScale ejecuta una serie de experimentos basados en diferentes hardware (aprovechando instancias reservadas/spot), conjuntos de datos e hiperparámetros para ofrecer los mejores resultados.
- Flujo metabólico es un marco para crear y administrar flujos de trabajo de ML/DS de extremo a extremo. Crea una capa de abstracción de alto nivel para simplificar el desarrollo y la implementación de proyectos de aprendizaje automático. El marco cubre la infraestructura subyacente, como el almacenamiento de datos, la ejecución y la supervisión. También incluye funciones para realizar un seguimiento de experimentos, administrar el control de versiones e implementar modelos en producción. Se puede integrar fácilmente con bibliotecas de Python como Pandas, NumPy y TensorFlow.
- Cedro es un marco de trabajo Python de código abierto para crear canales de aprendizaje automático y aprendizaje automático robustos, modulares y reproducibles. Es especialmente bueno para gestionar la complejidad de proyectos de aprendizaje automático a gran escala, ya que incluye funciones para el preprocesamiento de datos, el entrenamiento y la prueba de modelos y la implementación de modelos, así como para gestionar el control de versiones de datos, la inyección de dependencias y la estructura del proyecto. Una de las características notables de Kedro es la capacidad de generar una plantilla específica del proyecto con estructuras de carpetas y archivos predefinidos, que se pueden personalizar según las necesidades del proyecto.
- ZenML Proporciona una solución optimizada para gestionar flujos de trabajo de aprendizaje automático. Sus canales modulares, preprocesamiento automatizado de datos, gestión de modelos y opciones de implementación funcionan en conjunto para simplificar el complejo proceso de aprendizaje automático. ZenML se puede utilizar con varios marcos de aprendizaje automático y permite una implementación sin inconvenientes en la infraestructura de la nube.
- Arrecife ML es una plataforma de colaboración para proyectos de aprendizaje automático. Ofrece herramientas y funciones que ayudan a todos los involucrados a trabajar en equipo en proyectos de aprendizaje automático y sus etapas clave, como el control de versiones, la gestión de datos y la implementación de modelos. MLReef también tiene una capacidad de integración sencilla con una variedad de marcos de aprendizaje automático, lo que lo convierte en una plataforma versátil para proyectos de aprendizaje automático colaborativos.
- Ejecutar ml es otra plataforma para crear y ejecutar flujos de trabajo de aprendizaje automático. Con MLRun, uno puede automatizar sus procesos de aprendizaje automático delegando en la herramienta la ingesta de datos, el preprocesamiento, el entrenamiento de modelos y la implementación. MLRun es flexible y se puede utilizar con diversos marcos de aprendizaje automático, lo que lo convierte en una herramienta poderosa para administrar incluso proyectos de aprendizaje automático complejos. Por último, pero no menos importante, MLRun permite a los científicos de datos y desarrolladores colaborar en proyectos y optimizar el flujo de trabajo de aprendizaje automático fácilmente.
- LMC, que significa aprendizaje automático continuo, es una plataforma para crear e implementar modelos de aprendizaje automático en el proceso de integración continua/implementación continua (CI/CD). CML también elimina la molestia de automatizar la ingesta de datos y la implementación de modelos, lo que en última instancia facilita la gestión y la iteración de proyectos de aprendizaje automático y mejora la velocidad y la calidad del desarrollo.
- Laboratorio Cortex Ayuda a implementar modelos de aprendizaje automático a escala, y se encarga del escalado automático, la supervisión y las alertas. Cortex Lab admite una variedad de marcos de aprendizaje automático y permite una fácil integración con la infraestructura de la nube, lo que garantiza un rendimiento y una confiabilidad óptimos en entornos de producción.
Herramientas de aprendizaje automático automatizado
- AutoKeras es una biblioteca que facilita la creación y la implementación de modelos de aprendizaje automático. Utiliza un algoritmo de búsqueda de arquitectura neuronal para seleccionar la mejor arquitectura para un conjunto de datos y una tarea determinados. Además, automatiza el ajuste de hiperparámetros y el preprocesamiento de datos, incluida la clasificación, la regresión y el procesamiento de imágenes y texto. Esto permite la creación sencilla de modelos de aprendizaje automático de alta calidad sin necesidad de realizar ajustes manuales.
- H2O AutoML Automatiza el proceso de entrenamiento, creación, optimización e implementación de modelos. Utiliza algoritmos para abordar diversos problemas de aprendizaje automático, como predecir resultados o clasificar datos. H2O AutoML es adecuado para estudiantes: ayuda a crear modelos de alta calidad sin necesidad de conocimientos extensos de aprendizaje automático y a experimentar con ML sin dedicar mucho tiempo a ajustes y optimizaciones manuales.
- NNI es un conjunto de herramientas diseñado para automatizar el proceso de ajuste fino de hiperparámetros en modelos de ML para garantizar su precisión. Lo hace al encontrar automáticamente las mejores configuraciones para opciones esenciales en el modelo, lo que puede llevar mucho tiempo y ser propenso a errores si se hace con las manos desnudas.
Herramientas de procesamiento de macrodatos (incluidos etiquetado y control de versiones)
- Hadoop es una plataforma que permite el almacenamiento distribuido y el procesamiento de grandes conjuntos de datos en clústeres de computadoras. Está diseñada específicamente para manejar grandes volúmenes de datos; para ello, utiliza un sistema de archivos distribuido propietario llamado HDFS (Hadoop Distributed File System) para almacenar datos en múltiples máquinas sin problemas. Utiliza un sistema de procesamiento llamado MapReduce para analizar y procesar los datos en paralelo.
- Chispa es un marco de procesamiento de datos extenso que proporciona una interfaz para administrar grandes conjuntos de datos en paralelo, lo que permite realizar cálculos más rápido que los métodos de procesamiento de datos tradicionales. Además, Spark admite muchos lenguajes de programación, incluidos Java, Python y Scala, y ofrece bibliotecas integradas para procesar datos.
- Control de versiones de datos (DVC) es una plataforma para gestionar tanto modelos de aprendizaje automático como conjuntos de datos en términos de seguimiento de sus cambios a lo largo del tiempo, lo que fomenta la colaboración entre los miembros del equipo. Y su principal funcionalidad es la capacidad de controlar las versiones de los conjuntos de datos, lo que significa que se puede volver rápidamente a versiones anteriores de los datos si es necesario.
- Paquidermo es una plataforma para gestionar canales de datos que también ofrece una forma de controlar versiones y administrar conjuntos de datos utilizando una interfaz similar a Git.
- Estudio de etiquetas es una plataforma para etiquetar conjuntos de datos (imágenes, texto y otros tipos de datos) con una interfaz basada en web fácil de usar.
Optimización gratuita de costos en la nube y gestión mejorada de recursos de ML/AI para toda la vida
Implementación y servicio de modelos
- Núcleo Seldon es una plataforma para implementar y ofrecer modelos de aprendizaje automático en Kubernetes y otras plataformas en la nube. También puede empaquetar e implementar modelos de aprendizaje automático como microservicios, lo que facilita su integración con otras aplicaciones y servicios si es necesario. Con su funcionalidad avanzada, se pueden realizar un seguimiento de métricas, establecer alertas y realizar un escalado automático.
- Vuela es una plataforma de código abierto para desarrollar, ejecutar y administrar flujos de trabajo de aprendizaje automático. También proporciona funciones para realizar un seguimiento y analizar el rendimiento de sus flujos de trabajo, incluidas métricas, registros y visualizaciones.
- Jina – una plataforma de código abierto para crear e implementar sistemas de búsqueda neuronal. Ofrece una forma de crear e implementar sistemas de búsqueda utilizando técnicas de aprendizaje profundo. Jina es un marco para crear servicios y canales de IA multimodales, y luego ofrecerlos, escalarlos e implementarlos en un entorno listo para producción como Kubernetes. También proporciona funciones para administrar y monitorear sus implementaciones de búsqueda, incluida la capacidad de escalar hacia arriba o hacia abajo y realizar un seguimiento de métricas y registros.
Algunas palabras sobre OptScale
Queríamos reservar un lugar especial para Plataforma de código abierto OptScale, FinOps y MLOps, ya que esta plataforma es difícil de categorizar. OptScale permite a los usuarios ejecutar ML/AI o cualquier tipo de carga de trabajo con un rendimiento y un coste de infraestructura óptimos. La plataforma proporciona un conjunto de herramientas para fines de Finops y optimización de costes, ofrece integración con la infraestructura y los recursos de la nube para optimizar el rendimiento y el coste de ML/AI y, por último, pero menos importante, cuenta con conjuntos de ejecución. Los conjuntos de ejecución son un conjunto de ejecuciones automatizadas basadas en recomendaciones de hardware y un conjunto de hiperparámetros definido.
OptScale también ofrece las siguientes características únicas:
- Transparencia total en el uso de recursos y costes de la nube,
- Recomendaciones de optimización,
- Detección de anomalías y amplia funcionalidad para evitar sobrecostes presupuestarios,
- Muchas capacidades de MLOps como tablas de clasificación de modelos de ML, identificación y optimización de cuellos de botella de rendimiento, ejecución masiva de experimentos de ML/IA mediante instancias reservadas y puntuales, seguimiento de experimentos,
- Integración de MLFlow en OptScale: administre el ciclo de vida de los resultados de modelos y experimentos con una gestión de nube sencilla y una experiencia de usuario mejorada.
Para resumir, muchas herramientas MLOps de código abierto ofrecen una amplia gama de capacidades, desde la gestión del flujo de trabajo y el aprendizaje automático automatizado hasta el procesamiento de big data y la implementación de modelos. OptScale, completamente disponible como Solución de código abierto bajo Apache 2.0 en GitHub, Se destaca entre la multitud al ofrecer funciones únicas para optimizar los costos y el rendimiento, junto con la integración con la infraestructura y los recursos de la nube. Ya sea un científico de datos, un ingeniero de aprendizaje automático u otro profesional de TI, OptScale le resultará útil para optimizar su flujo de trabajo y liberar un potencial más significativo en sus capacidades de aprendizaje automático.
💡 También te puede interesar nuestro artículo 'Procesos clave de MLOps (parte 1): Experimentación, o el proceso de realizar experimentos' → https://hystax.com/key-mlops-processes-part-1-experimentation-or-the-process-of-conducting-experiments.