Course
17 herramientas MLOps principales que debes conocer
Como exploramos en nuestro artículo Primeros pasos con MLOps, MLOps se basa en los fundamentos de DevOps, la estrategia de desarrollo de software para escribir, implementar y ejecutar aplicaciones empresariales de manera eficiente.
Es un enfoque para gestionar proyectos de machine learning a escala. MLOps mejora la colaboración entre los equipos de desarrollo, operaciones y ciencia de datos. Como resultado, obtienes una implementación más rápida de los modelos, una productividad optimizada del equipo, una reducción del riesgo y del coste, y una supervisión continua de los modelos en producción.
Aprende por qué es importante MLOps y qué problemas pretende resolver leyendo nuestro blog El pasado, presente y futuro de MLOps.
En este post, vamos a conocer las mejores herramientas MLOps para el desarrollo, implementación y supervisión de modelos, con el fin de estandarizar, simplificar y agilizar el ecosistema del machine learning. Para obtener una introducción completa a los Fundamentos de MLOps, consulta nuestro programa por habilidad.
Herramientas de seguimiento de experimentos y gestión de metadatos de modelos
Estas herramientas te permiten gestionar los metadatos de los modelos y te ayudan con el seguimiento de los experimentos:
1. MLFlow
MLflow es una herramienta de código abierto que te ayuda a gestionar partes fundamentales del ciclo de vida del machine learning. Generalmente se utiliza para el seguimiento de experimentos, pero también se puede utilizar para la reproducibilidad, la implementación y el registro de modelos. Puedes gestionar los experimentos de machine learning y los metadatos de los modelos mediante CLI, Python, R, Java y REST API.
MLflow tiene cuatro funciones básicas:
- MLflow Tracking: almacenamiento y acceso al código, los datos, la configuración y los resultados.
- MLflow Projects: paquete fuente de ciencia de datos para la reproducibilidad.
- Modelos MLflow: implementación y gestión de modelos de machine learning en diversos entornos de servicio.
- MLflow Models: un almacén central de modelos que proporciona versionado, transiciones de etapas, anotaciones y gestión de modelos de machine learning.
Imagen del autor
2. Comet ML
Comet ML es una plataforma para seguir, comparar, explicar y optimizar modelos y experimentos de machine learning. Puedes utilizarlo con cualquier biblioteca de machine learning, como Scikit-learn, Pytorch, TensorFlow y HuggingFace.
Comet ML es para particulares, equipos, empresas y académicos. Permite a cualquiera visualizar y comparar fácilmente los experimentos. Además, te permite visualizar muestras de imágenes, audio, texto y datos tabulares.
Imagen de Comet ML
3. Weights & Biases
Weights & Biases es una plataforma de ML para el seguimiento de experimentos, el versionado de datos y modelos, la optimización de hiperparámetros y la gestión de modelos. Además, puedes utilizarlo para registrar artefactos (conjuntos de datos, modelos, dependencias, canalizaciones y resultados) y visualizar los conjuntos de datos (audio, visual, texto y tabular).
Weights & Biases dispone de un panel de control de fácil manejo para los experimentos de machine learning. Al igual que Comet ML, puedes integrarlo con otras bibliotecas de machine learning, como Fastai, Keras, PyTorch, Hugging Face, Yolov5, Spacy y muchas más. Puedes consultar nuestra introducción a Weights & Biases en otro artículo.
Gif de Weights & Biases
Nota: También puedes utilizar TensorBoard, Pachyderm, DagsHub y DVC Studio para el seguimiento de experimentos y la gestión de metadatos de ML.
Herramientas MLOps de orquestación y canalizaciones de flujos de trabajo
Estas herramientas te ayudan a crear proyectos de ciencia de datos y a gestionar flujos de trabajo de machine learning:
4. Prefect
Prefect es una moderna pila de datos para supervisar, coordinar y orquestar flujos de trabajo entre aplicaciones y dentro de ellas. Se trata de una herramienta ligera y de código abierto creada para canalizaciones integrales de machine learning.
Puedes utilizar Prefect Orion UI o Prefect Cloud para las bases de datos.
Prefect Orion UI es un motor de orquestación y servidor API de código abierto alojado localmente. Te proporciona información sobre la instancia local de Prefect Orion y los flujos de trabajo.
Prefect Cloud es un servicio alojado para que visualices flujos, ejecuciones de flujos e implementaciones. Además, puedes gestionar las cuentas, el espacio de trabajo y la colaboración en equipo.
Imagen de Prefect
5. Metaflow
Metaflow es una potente herramienta de gestión de flujos de trabajo para proyectos de ciencia de datos y machine learning. Se ha creado para que los científicos de datos puedan centrarse en crear modelos en lugar de preocuparse por la ingeniería de MLOps.
Con Metaflow, puedes diseñar el flujo de trabajo, ejecutarlo a escala e implementar el modelo en producción. Rastrea y versiona automáticamente los experimentos y datos de machine learning. Además, puedes visualizar los resultados en el cuaderno.
Metaflow funciona con múltiples nubes (incluidas AWS, GCP y Azure) y varios paquetes Python de machine learning (como Scikit-learn y Tensorflow), y la API también está disponible para el lenguaje R.
Imagen de Metaflow
6. Kedro
Kedro es una herramienta de orquestación de flujos de trabajo basada en Python. Puedes utilizarlo para crear proyectos de ciencia de datos reproducibles, mantenibles y modulares. Integra los conceptos de la ingeniería del software en el machine learning, como la modularidad, la separación de problemas y el versionado.
Con Kedro, puedes:
- Establecer las dependencias y la configuración.
- Configurar los datos.
- Crear, visualizar y ejecutar las canalizaciones.
- Registrar y seguir experimentos.
- Implementar en una máquina única o distribuida.
- Crear código de ciencia de datos mantenible.
- Crear código modular y reutilizable.
- Colaborar con compañeros de equipo en proyectos.
Gif de Kedro
Nota: También puedes utilizar Kubeflow y DVC para la orquestación y las canalizaciones de flujos de trabajo.
Herramientas de control de versiones de datos y canalizaciones
Con estas herramientas MLOps, puedes gestionar las tareas en torno a los datos y el versionado de las canalizaciones:
7. Pachyderm
Pachyderm automatiza la transformación de datos con versionado de datos, linaje y canalizaciones integrales en Kubernetes. Puede integrarse con cualquier dato (imágenes, registros, vídeo, CSV), cualquier lenguaje (Python, R, SQL, C/C++) y a cualquier escala (petabytes de datos, miles de trabajos).
La edición comunitaria es de código abierto y para un equipo pequeño. Las organizaciones y equipos que deseen funciones avanzadas pueden optar por la edición Enterprise.
Al igual que con Git, puedes versionar tus datos utilizando una sintaxis similar. En Pachyderm, el nivel más alto del objeto es Repositorio, y puedes utilizar Commit, Ramas, Archivo, Historial y Procedencia para hacer un seguimiento y versionar el conjunto de datos.
Imagen de Pachyderm
8. Data Version Control (DVC)
Data Version Control es una herramienta popular y de código abierto para proyectos de machine learning. Funciona a la perfección con Git para proporcionarte versiones de código, datos, modelos, metadatos y canalizaciones.
DVC es algo más que una herramienta de seguimiento y versionado de datos.
Puedes utilizarlo para:
- Seguimiento de experimentos (métricas del modelo, parámetros, versionado).
- Crear, visualizar y ejecutar canalizaciones de machine learning.
- Flujo de trabajo para la implementación y la colaboración.
- Reproducibilidad.
- Registro de datos y modelos.
- Integración e implementación continuas para machine learning mediante CML.
Imagen de DVC
Nota: DagsHub también puede utilizarse para versionar datos y canalizaciones.
Herramientas de implementación y servicio de modelos
A la hora de implementar modelos, estas herramientas MLOps pueden ser de gran ayuda:
9. TensorFlow Extended (TFX) Serving
TensorFlow Extended (TFX) Serving te ayuda a implementar un modelo entrenado como un endpoint. Con TFX, ahora puedes experimentar, entrenar, implementar y mantener modelos de machine learning. Te permite crear una API REST utilizando TFX CLI.
TensorFlow Serving es robusto, flexible y escalable, y viene con un equilibrador de carga para gestionar un gran número de peticiones. Puedes servir las predicciones con Docker y Kubernetes o construir un servidor modelo con configuraciones únicas.
TensorFlow Serving mantiene la eficiencia del hardware iniciando peticiones por lotes. Además, ofrece versionado y gestión de modelos. El inconveniente es que solo funciona con modelos de Tensorflow.
import tempfile
MODEL_DIR = tempfile.gettempdir()
version = 1
export_path = os.path.join(MODEL_DIR, str(version))
print('export_path = {}\n'.format(export_path))
tf.keras.models.save_model(
model,
export_path,
overwrite=True,
include_optimizer=True,
save_format=None,
signatures=None,
options=None
)
os.environ["MODEL_DIR"] = MODEL_DIR
nohup tensorflow_model_server \
--rest_api_port=8501 \
--model_name=fashion_model \
--model_base_path="${MODEL_DIR}" >server.log 2>&1
10. BentoML
BentoML facilita y agiliza la distribución de aplicaciones de machine learning. Es una herramienta basada en Python para implementar y mantener API en producción. Se escala con potentes optimizaciones mediante la inferencia paralela y la dosificación adaptativa, y proporciona aceleración por hardware.
El panel de control centralizado e interactivo de BentoML facilita la organización y supervisión de la implementación de modelos de machine learning. Lo mejor es que funciona con todo tipo de marcos de machine learning, como Keras, ONNX, LightGBM, Pytorch y Scikit-learn. En resumen, BentoML proporciona una solución completa para la implementación, el servicio y la supervisión de modelos.
Imagen de BentoML
11. Cortex
Cortex te permite implementar, gestionar y escalar modelos de machine learning en producción. Es una herramienta de código abierto, flexible y multimarco para servir y supervisar modelos.
Cortex se expande a Docker, Kubernetes, TensorFlow Serving, TorchServe y otras bibliotecas ML. Gestiona las cargas proporcionando puntos finales escalables. Además, puedes implementar varios modelos en un único punto final de API, y admite funciones de autoescalado para proteger las API. Es una herramienta MLOps que te otorga un control total sobre las operaciones de gestión de modelos.
create or update apis
Usage:
cortex deploy [CONFIG_FILE] [flags]
Flags:
-e, --env string environment to use
-f, --force override the in-progress api update
-y, --yes skip prompts
-o, --output string output format: one of pretty|json (default "pretty")
-h, --help help for deploy
Nota: También puedes utilizar MLflow, Kubeflow y AWS SageMaker para implementar y servir modelos.
Monitorización de modelos en herramientas MLOps de producción
Tanto si tu modelo ML está en desarrollo, validación o implementado en producción, estas herramientas pueden ayudarte a controlar una serie de factores:
12. Evidently
Evidently AI es una biblioteca Python de código abierto para supervisar modelos de ML durante el desarrollo, la validación y en producción. Comprueba la calidad de los datos y del modelo, la deriva de los datos, la deriva del objetivo y el rendimiento de la regresión y la clasificación.
Evidently tiene tres componentes principales:
- Tests (comprobaciones de modelo por lotes): para realizar comprobaciones de datos estructurados y de calidad del modelo.
- Reports (paneles de control interactivos): deriva interactiva de datos, rendimiento del modelo y virtualización del objetivo.
- Monitors (supervisión en tiempo real): supervisa los datos y las métricas del modelo del servicio ML implementado.
Imagen de Evidently
13. Fiddler
Fiddler AI es una herramienta de supervisión de modelos ML con una interfaz de usuario clara y fácil de usar. Te permite explicar y depurar predicciones, analizar el comportamiento del modo para todo el conjunto de datos, implementar modelos de machine learning a escala y supervisar el rendimiento del modelo.
Veamos las principales funciones de la Fiddler AI para la supervisión de ML:
- Control del rendimiento: visualización en profundidad de la deriva de los datos, cuándo y cómo derivan.
- Integridad de los datos: evita introducir datos incorrectos para el entrenamiento de modelos.
- Seguimiento de valores atípicos: muestra valores atípicos univariantes y multivariantes.
- Métricas del servicio: muestra información básica sobre las operaciones del servicio de ML.
- Alertas: configura alertas para un modelo o grupo de modelos para avisar de los problemas en producción.
Imagen de Fiddler
14. Censius IA
Censius es una plataforma de observabilidad de IA integral que ofrece supervisión automática y resolución proactiva de problemas. Te permite supervisar toda la canalización de ML, explicar las predicciones y solucionar problemas. Puedes configurar Censius utilizando el SDK de Python o Java o la API REST e implementarlo en las instalaciones o en la nube.
Características principales:
- Supervisa la degradación del rendimiento, la deriva de los datos y su calidad.
- Notificaciones en tiempo real para alertar sobre futuros problemas.
- Paneles de control personalizables para datos, modelos y métricas empresariales.
- Compatibilidad nativa con marcos de pruebas A/B.
- Explicabilidad de datos para conjuntos de datos tabulares, de imágenes y textuales.
Imagen de Censius
Nota: Amazon SageMaker también ofrece supervisión de modelos en producción.
Lee también Tutorial de machine learning, canalizaciones, implementación y MLOps para aprender cómo se integran múltiples herramientas MLOps en aplicaciones de machine learning con ejemplos de código.
Plataformas MLOps integrales
Si buscas una herramienta MLOps completa que te ayude durante todo el proceso, aquí tienes algunas de las mejores:
15. AWS SageMaker
Amazon Web Services SageMaker es una solución integral para MLOps. Puedes entrenar y acelerar el desarrollo de modelos, seguir y versionar experimentos, catalogar artefactos de ML, integrar canalizaciones de ML CI/CD, e implementar, servir y supervisar modelos en producción sin problemas.
Características principales:
- Un entorno colaborativo para equipos de ciencia de datos.
- Automatización de flujos de trabajo de entrenamiento ML.
- Implementación y gestión de modelos en producción.
- Seguimiento y mantenimiento de las versiones de los modelos.
- CI/CD para integración e implementación automáticas.
- Supervisión continua y reentrenamiento de modelos para mantener la calidad.
- Optimización del coste y el rendimiento.
Imagen de Amazon SageMaker
16. DagsHub
DagsHub es una plataforma hecha para que la comunidad del machine learning rastree y versione los datos, modelos, experimentos, canalizaciones de ML y código. Permite a tu equipo crear, revisar y compartir proyectos de machine learning.
En pocas palabras, es un GitHub para el machine learning, y dispones de varias herramientas para optimizar todo el proceso de machine learning.
Características principales:
- Repositorio Git y DVC para tus proyectos de ML.
- Registrador de DagsHub e instancia de MLflow para el seguimiento de experimentos.
- Anotación del conjunto de datos mediante la instancia de estudio de etiquetas.
- Diferenciación de los cuadernos Jupyter, el código, los conjuntos de datos y las imágenes.
- Posibilidad de comentar el archivo, la línea de código o el conjunto de datos.
- Creación de un informe para el proyecto igual que la wiki de GitHub.
- Visualización de canalizaciones de ML.
- Resultados reproducibles.
- Ejecución de CI/CD para el entrenamiento y la implementación de modelos.
- Fusión de datos.
- Integración con GitHub, Google Colab, DVC, Jenkins, almacenamiento externo, webhooks y New Relic.
Imagen del autor
17. Kubeflow
Kubeflow hace que la implementación de modelos de machine learning en Kubernetes sea sencilla, portátil y escalable. Puedes utilizarlo para preparar datos, entrenar modelos, optimizar modelos, servir predicciones y supervisar el rendimiento de los modelos en producción. Puedes implementar el flujo de trabajo de machine learning localmente, en las instalaciones o en la nube. En resumen, facilita Kubernetes a los equipos de ciencia de datos.
Características principales:
- Panel de control centralizado con interfaz de usuario interactiva.
- Canalizaciones de machine learning para la reproducibilidad y la racionalización.
- Compatibilidad nativa con JupyterLab, RStudio y Visual Studio Code.
- Ajuste de hiperparámetros y búsqueda de arquitecturas neuronales.
- Trabajos de entrenamiento para Tensorflow, Pytorch, PaddlePaddle, MXNet y XGboost.
- Programación del trabajo.
- Proporciona a los administradores aislamiento multiusuario.
- Funciona con los principales proveedores de nube.
Imagen de Kubeflow
Conclusión
Nos encontramos en un momento de auge del sector de MLOps. Cada semana se ven nuevos desarrollos, nuevas startups y nuevas herramientas que se lanzan para resolver el problema básico de convertir los cuadernos en aplicaciones listas para la producción. Incluso las herramientas existentes están ampliando el horizonte e integrando nuevas funciones para convertirse en superherramientas MLOps.
En este blog, hemos aprendido cuáles son las mejores herramientas MLOps para los distintos pasos del proceso MLOps. Estas herramientas te ayudarán durante la fase de experimentación, desarrollo, implementación y supervisión.
Si eres nuevo en el machine learning y quieres dominar las habilidades esenciales para conseguir un trabajo como científico de machine learning, prueba a seguir nuestro programa de carrera Científico de machine learning con Python.
Si eres un profesional y quieres aprender más sobre las prácticas de MLOps estándar, lee nuestro artículo Prácticas recomendadas de MLOps y cómo aplicarlas y consulta nuestro programa por habilidad Fundamentos de MLOps.
Preguntas frecuentes sobre las herramientas MLOps
¿Qué son las herramientas MLOps?
Las herramientas MLOps ayudan a estandarizar, simplificar y racionalizar el ecosistema ML. Estas herramientas se utilizan para el seguimiento de experimentos, la gestión de metadatos de modelos, la orquestación, la optimización de modelos, el versionado de flujos de trabajo, la implementación y servicio de modelos, y la supervisión de modelos en producción.
¿Qué habilidades necesita un ingeniero de MLOps?
- Capacidad para implementar soluciones en la nube.
- Experiencia con Docker y Kubernetes.
- Experiencia en el control de calidad mediante el seguimiento de experimentos y el control de versiones del flujo de trabajo.
- Capacidad para crear canalizaciones de MLOps.
- Conocimiento del sistema operativo Linux.
- Experiencia con marcos ML como PyTorch, Tensorflow y TFX.
- Experiencia con DevOps y desarrollo de software.
- Experiencia en pruebas unitarias y de integración, validación de datos y modelos, y supervisión posterior a la implementación.
¿Qué nube es mejor para MLOps?
AWS, GCP y Azure proporcionan diversas herramientas para el ciclo de vida del machine learning. Todos ellos ofrecen soluciones integrales para MLOps. AWS toma la delantera en términos de popularidad y cuota de mercado. También proporciona soluciones sencillas para el entrenamiento, el servicio y la supervisión de modelos.
¿Es MLOps fácil de aprender?
Depende de tu experiencia previa. Para dominar MLOps, tienes que aprender tanto machine learning como ciclos de vida de desarrollo de software. Además de un gran dominio de los lenguajes de programación, necesitas aprender varias herramientas MLOps. Es fácil para los ingenieros de DevOps aprender MLOps, ya que la mayoría de las herramientas y estrategias están basadas en el desarrollo de software.
¿Es Kubeflow mejor que MLflow?
Depende del caso de uso. Kubeflow proporciona reproducibilidad a un nivel mayor que MLflow, ya que gestiona la orquestación.
- Kubeflow se utiliza generalmente para implementar y gestionar sistemas ML complejos a escala.
- MLFlow se utiliza generalmente para el seguimiento de experimentos de ML y para almacenar y gestionar metadatos de modelos.
¿En qué se diferencia MLOps de DevOps?
Ambas son estrategias de desarrollo de software. DevOps se centra en desarrollar y gestionar sistemas de software a gran escala, mientras que MLOps se centra en implementar y mantener modelos de machine learning en producción.
- DevOps: integración continua (CI) y entrega continua (CD).
- MLOps: integración continua, entrega continua, entrenamiento continuo y supervisión continua.
¿Cómo se integran las herramientas MLOps con los flujos de trabajo existentes de ciencia de datos?
Las herramientas MLOps están diseñadas para integrarse perfectamente con los flujos de trabajo existentes de ciencia de datos. Normalmente son compatibles con diversas herramientas y plataformas de ciencia de datos, proporcionan API para la integración y ofrecen complementos o extensiones para entornos populares de ciencia de datos. Esta integración permite a los científicos de datos mantener sus flujos de trabajo actuales al tiempo que aprovechan las ventajas de MLOps para mejorar la escalabilidad, la reproducibilidad y la eficiencia de la implementación.
¿Pueden las herramientas MLOps ayudar a la explicabilidad y equidad de los modelos?
Sí, muchas herramientas MLOps incluyen funciones para mejorar la explicabilidad y equidad de los modelos. Ofrecen funcionalidades como la interpretación de modelos, la detección de sesgos y las métricas de equidad, que ayudan a comprender y mejorar cómo toman decisiones los modelos. Esto es crucial para implementar una IA responsable y mantener el cumplimiento de las normas reguladoras.
Curso de MLOps
blog
8 modelos de machine learning explicados en 20 minutos
blog
¿Qué es el machine learning? Definición, tipos, herramientas y más
blog
Las 6 mejores herramientas de Business Intelligence para 2024 que debes conocer
blog
Machine learning supervisado
tutorial