Kubeflow vs MLflow: qué herramienta MLOps debería usar

Estás leyendo la publicación: Kubeflow vs MLflow: qué herramienta MLOps debería usar

MLOps se ha convertido rápidamente en uno de los componentes más importantes de la ciencia de datos, y se espera que el mercado crezca en casi $ 4 mil millones para 2025. Ya está siendo fuertemente aprovechado por compañías como Amazon, Google, Microsoft, IBM, H2O, Domino, DataRobot y Grid.ai utiliza MLOps para la automatización, el monitoreo, la gestión del ciclo de vida y la gobernanza de canalizaciones. Se están desarrollando cada vez más herramientas de MLOps para abordar diferentes partes del flujo de trabajo, con dos dominando el espacio, Kubeflow y MLflow.

Dada su naturaleza de código abierto, Kubeflow y MLflow son elegidos por empresas tecnológicas líderes. Sin embargo, sus capacidades y ofertas son bastante diferentes cuando se comparan. Por ejemplo, mientras que Kubeflow se centra en la canalización, MLflow se basa en la experimentación. Hemos explorado estas diferencias para ayudarlo a elegir la herramienta adecuada para su caso de uso.

Flujo de Kube

Kubeflow tiene como objetivo hacer que la implementación de ML en Kubernetes sea simple, portátil y escalable. Los desarrolladores de Google construyen este marco nativo de la nube, basado en el método interno de Google, TensorFlow Extended, que se usa para implementar modelos de TensorFlow. Después de su lanzamiento inicial, las empresas de tecnología, incluidas Arrikto, Cisco, IBM, Red Hat y CaiCloud, contribuyeron al tablero de emisión de GitHub.

Kubeflow proporciona componentes para cada etapa del ciclo de vida de ML, incluida la exploración, la capacitación y la implementación. Además, ayuda a escalar modelos de aprendizaje automático e implementarlos en producción. Los tres componentes de Kubeflow son:

  • Cuadernos: Kubeflow permite a los usuarios crear y administrar cuadernos Jupyter interactivos al mismo tiempo que personalizan sus contenedores y pods de cuadernos.
  • Tuberías: Kubeflow es más conocido por sus tuberías. Las canalizaciones de Kubeflow permiten a los usuarios crear e implementar flujos de trabajo de aprendizaje automático escalables y portátiles.
  • Capacitación: los desarrolladores pueden usar la capacitación de Kubeflow para entrenar sus modelos ML en marcos como PyTorch, MXNet, Chainer y TensorFlow, entre otros.
🔥 Recomendado:  Todo lo que necesita saber sobre Shopify 2.0 (y qué hacer)

Además, dado que Kubeflow es compatible con los contenedores de TensorFlow Serving, los modelos entrenados de TensorFlow se pueden exportar a Kubernetes. Se integra aún más con Seldon Core, un marco de código abierto para implementar modelos de aprendizaje automático a escala en Kubernetes. El servidor de inferencia NVIDIA Triton permite la máxima utilización de GPU al implementar un modelo, y BentoML permite que la plataforma construya puntos finales de API de producción para los modelos ML. Kubeflow se puede ejecutar en Kubernetes, AWS, GCP y Azure.

MLFujo

MLFlow es una plataforma de código abierto para administrar todo el ciclo de vida del aprendizaje automático con confiabilidad, seguridad y escala empresarial. Creada por Databricks, la plataforma está siendo utilizada por grandes empresas tecnológicas como Facebook, Accenture, Microsoft y Booking.com. La característica independiente de la biblioteca de MLFlow lo hace compatible con cualquier biblioteca de ML, incluidas TensorFlow, PyTorch, Keras, Pandas y más.

MLFlow admite la experimentación, la reproducibilidad, la implementación y un registro de modelo central. Esto permite al desarrollador crear, rastrear e implementar el modelo mientras la plataforma maneja los procesos de back-end de administración de modelos, control de versiones de datos y seguimiento de experimentos.

Los cuatro componentes de MLflow son:

  • Seguimiento: el seguimiento de MLflow es una API y una interfaz de usuario para registrar parámetros, versiones de código, métricas y archivos de salida que permiten al usuario monitorear experimentos.
  • Proyectos: el proyecto MLFlow es un estilo estándar para empaquetar código, datos, configuración y dependencias de ciencia de datos reutilizables.
  • Modelos: el modelo MLFlow es un enfoque estándar para los modelos de empaquetado que se utilizarán en varias herramientas posteriores.
  • Registro: una tienda de modelos centralizada, el registro MLFlow comprende varias API y UI para administrar el ciclo de vida del modelo.
🔥 Recomendado:  Qué significa la Declaración de derechos de la IA de la Casa Blanca para Estados Unidos y el resto del mundo

Otras diferencias:

1. Enfoque

Kubeflow es un sistema de orquestación de contenedores y, por lo tanto, todos los procesamientos ocurren dentro de la infraestructura de Kubernetes. Dado que gestiona la orquestación, se considera que Kuberflow es más complejo. Al mismo tiempo, esta característica le permite ser más reproducible.

MLflow es un programa de Python y, por lo tanto, la capacitación se puede realizar según las preferencias del desarrollador. Además, puede configurarse en un solo servidor y adaptarse fácilmente al modelo ML.

2. Ambiente

Los metadatos de Kubeflow rastrean la plataforma, lo que requiere que el desarrollador tenga más conocimientos técnicos. Sin embargo, MLflow se puede desarrollar localmente y realizar un seguimiento de las ejecuciones en un archivo remoto.

3. Despliegue

Kubeflow se puede implementar a través de la canalización de Kubeflow, independientemente de los otros componentes de la plataforma. Las canalizaciones de Kubeflow enfatizan la implementación de modelos y la integración continua.

MLflow aprovecha el registro del modelo y las API/UI para crear una ubicación central para que las organizaciones colaboren, administren el ciclo de vida e implementen modelos.

4. Ejemplos de casos de uso

Los casos de uso de Kubeflow incluyen ejemplos como

– Implementación y gestión de un sistema ML complejo a escala

– Experimentación con el entrenamiento de un modelo ML

– Cargas de trabajo de ML híbridas y multinube de extremo a extremo

– Ajuste de los hiperparámetros del modelo durante el entrenamiento

– Integración y despliegue continuos (CI/CD) para ML

Los casos de uso de MLflow incluyen ejemplos como

– Seguimiento de experimentos localmente en la máquina del científico de datos

🔥 Recomendado:  La batalla de los LLM: vicuña vs alpaca

– Configure un servidor de seguimiento de MLflow para realizar un seguimiento y comparar los resultados de varias personas que trabajan en el mismo proyecto.

– Los ingenieros de producción pueden implementar modelos de una biblioteca ML diferente, almacenarlos como archivos en su sistema de administración preferido y rastrear de qué ejecución proviene un modelo.