Llegamos a ustedes gracias a:



Reportajes y análisis

10 plataformas MLops

Para administrar el ciclo de vida del aprendizaje automático

[09/10/2020] Para la mayoría de los desarrolladores de software profesionales, el uso de la gestión del ciclo de vida de las aplicaciones (ALM, por sus siglas en inglés) es un hecho. Los científicos de datos, muchos de los cuales no tienen experiencia en desarrollo de software, a menudo no han utilizado la gestión del ciclo de vida para sus modelos de aprendizaje automático. Ese es un problema que es mucho más fácil de solucionar ahora que hace unos años, gracias a la llegada de los ambientes y marcos "MLops que soportan la gestión del ciclo de vida del aprendizaje automático.

¿Qué es la gestión del ciclo de vida del aprendizaje automático?

La respuesta fácil a esta pregunta sería que la gestión del ciclo de vida del aprendizaje automático es lo mismo que la ALM, pero eso también sería incorrecto. Esto se debe a que el ciclo de vida de un modelo de aprendizaje automático es diferente del ciclo de vida del desarrollo de software (SDLC, por sus siglas en inglés) en varias formas.

Para empezar, los desarrolladores de software saben más o menos lo que están intentando construir antes de escribir el código. Puede haber una especificación general fija (modelo en cascada) o no (desarrollo ágil); pero en un momento, un desarrollador de software está tratando de construir, probar y depurar una característica que se puede describir. Los desarrolladores de software también pueden escribir pruebas que aseguren que la función se comporta según lo diseñado.

Por el contrario, un científico de datos construye modelos mediante experimentos en los que un algoritmo de optimización intenta encontrar el mejor conjunto de ponderaciones para explicar un conjunto de datos. Existen muchos tipos de modelos, y actualmente la única forma de determinar cuál es el mejor es probarlos todos. También hay varios criterios posibles para la "bondad del modelo, y ningún equivalente real a las pruebas de software.

Desafortunadamente, algunos de los mejores modelos (las redes neuronales profundas, por ejemplo) tardan mucho en entrenarse, razón por la cual los aceleradores como GPU, TPU y FPGA se han vuelto importantes para la ciencia de datos. Además, a menudo se dedica una gran cantidad de esfuerzo a limpiar los datos y diseñar el mejor conjunto de características a partir de las observaciones originales, para que los modelos funcionen lo mejor posible.

Hacer un seguimiento de cientos de experimentos y docenas de conjuntos de funciones no es fácil, incluso cuando se utiliza un conjunto de datos fijo. En la vida real, es aún peor: los datos a menudo se desvían con el tiempo, por lo que el modelo debe ajustarse periódicamente.

Existen varios paradigmas diferentes para el ciclo de vida del aprendizaje automático. A menudo, comienzan con la conceptualización, continúan con la adquisición de los datos y el análisis de los datos exploratorios, pasan de allí a investigación y desarrollo -esos cientos de experimentos-, así como a validación y, finalmente, a la implementación y el monitoreo. El monitoreo puede enviarlo periódicamente al paso uno, para probar diferentes modelos y funciones o para actualizar su conjunto de datos de entrenamiento. De hecho, cualquiera de los pasos del ciclo de vida puede devolverle a un paso anterior.

A lo largo del tiempo, los sistemas de gestión del ciclo de vida del aprendizaje automático intentan clasificar y realizar un seguimiento de todos sus experimentos. En las implementaciones más útiles, el sistema de gestión también se integra con la implementación y el monitoreo.

Productos para la gestión del ciclo de vida del aprendizaje automático

Hemos identificado varias plataformas y marcos de trabajo en la nube para gestionar el ciclo de vida del aprendizaje automático. Actualmente, estos incluyen a Algorithmia, Amazon SageMaker, Azure Machine Learning, Domino Data Lab, Google Cloud AI Platform, HPE Ezmeral ML Ops, Metaflow, MLflow, Paperspace y Seldon.

Algoritmia: Algoritmia puede conectarse, implementar, gestionar y aumentar su cartera de aprendizaje automático. Según el plan que elija, Algorithmia puede ejecutarse en su propia nube, on premises, en VMware o en una nube pública. Puede mantener modelos en su propio repositorio de Git o en GitHub. Gestiona el control de versiones del modelo de forma automática, puede implementar pipelining, y puede ejecutar y aumentar la escala de modelos a demanda (sin servidor) utilizando CPUs y GPUs. Algoritmia proporciona una biblioteca de modelos con palabras clave (ver captura de pantalla a continuación) además de alojar sus modelos. Actualmente no ofrece mucho soporte para el entrenamiento de modelos.

Mlops, aprendizaje automático, ALM

Amazon SageMaker: Amazon SageMaker es el ambiente integrado, totalmente administrado, de Amazon para el aprendizaje automático y el aprendizaje profundo. Incluye un ambiente Studio que combina notebooks Jupyter con la administración y seguimiento de experimentos (ver captura de pantalla a continuación), un depurador de modelos, un "piloto automático para usuarios sin conocimientos de aprendizaje automático, transformaciones por lotes, un monitor de modelos e implementación con inferencia elástica.

Mlops, aprendizaje automático, ALM

Azure Machine Learning: Azure Machine Learning es un ambiente basado en la nube que puede usar para entrenar, implementar, automatizar, administrar y realizar un seguimiento a los modelos de aprendizaje automático. Se puede utilizar para cualquier tipo de aprendizaje automático, desde el aprendizaje automático clásico hasta el aprendizaje profundo, y tanto para el aprendizaje supervisado como para el aprendizaje no supervisado.

Azure Machine Learning soporta la escritura de código Python o R, además de proporcionar un diseñador visual de arrastrar y soltar, así como una opción de AutoML. En un espacio de trabajo de aprendizaje automático de Azure, usted puede crear, entrenar y realizar un seguimiento de modelos de aprendizaje automático y aprendizaje profundo de alta precisión, ya sea que entrene en su máquina local o en la nube de Azure.

Azure Machine Learning interopera con herramientas de código abierto, como PyTorch, TensorFlow, Scikit-learn, Git, y la plataforma MLflow para gestionar el ciclo de vida del aprendizaje automático. También tiene su propio ambiente MLOps de código abierto, que se muestra en la captura de pantalla a continuación.

Mlops, aprendizaje automático, ALM

Domino Data Lab: La plataforma Domino Data Science automatiza DevOps para su uso en ciencia de datos, por lo que puede dedicar más tiempo a investigar y probar más ideas más rápido. El seguimiento automático del trabajo permite la reproducibilidad, la reutilización y la colaboración. Domino le permite usar sus herramientas favoritas en la infraestructura de su elección -de manera predeterminada, AWS-, rastrear experimentos, reproducir y comparar resultados (vea la captura de pantalla a continuación) y buscar, discutir y reutilizar el trabajo en un solo lugar.

Mlops, aprendizaje automático, ALM

Google Cloud AI Platform: Google Cloud AI Platform incluye varios tipos de funciones que soportan la administración del ciclo de vida del aprendizaje automático: un tablero general, el Centro de Inteligencia Artificial (AI Hub) (ver captura de pantalla más abajo), etiquetado de datos, cuadernos, trabajos, orquestación del flujo de trabajo (actualmente en estado de pre-lanzamiento) y modelos. Una vez que tenga un modelo que le guste, puede desplegarlo para hacer predicciones.

Los notebooks están integrados con Google Colab, donde puede ejecutarlos de forma gratuita. El AI Hub incluye una serie de recursos públicos, incluyendo pipelines Kubeflow, notebooks, servicios, módulos de TensorFlow, imágenes VM, modelos entrenados y guías técnicas. Los recursos de datos públicos están disponibles para imágenes, texto, audio, video y otros tipos de datos.

Mlops, aprendizaje automático, ALM

HPE Ezmeral ML Ops: HPE Ezmeral ML Ops ofrece aprendizaje automático operativo, a escala empresarial, utilizando contenedores. Es compatible con el ciclo de vida del aprendizaje automático, desde la experimentación en la zona de pruebas con el aprendizaje automático y los marcos de aprendizaje profundo, hasta el entrenamiento de modelos en clústeres distribuidos en contenedores, y la implementación y seguimiento de modelos en producción. Puede ejecutar el software HPE Ezmeral ML Ops localmente en cualquier infraestructura, en varias nubes públicas (incluidas AWS, Azure y GCP) o en un modelo híbrido.

Metaflow: Metaflow es un sistema de flujo de trabajo basado en código y compatible con Python, especializado en la gestión del ciclo de vida del aprendizaje automático. A diferencia de las interfaces gráficas de usuario que se encuentran en la mayoría de los otros productos enumerados aquí, Metaflow hace uso de decoradores como @step, como se muestra en el extracto de código a continuación. Metaflow le ayuda a diseñar su flujo de trabajo como un gráfico sin ciclos dirigido (DAG, por sus siglas en inglés), ejecutarlo a escala y a implementarlo en producción. Versiona y rastrea todos sus experimentos y datos automáticamente. Recientemente, Metaflow pasó a ser de código abierto por medio de Netflix y AWS. Puede integrarse con Amazon SageMaker, bibliotecas de aprendizaje automático y aprendizaje profundo basadas en Python y sistemas de big data.

Mlops, aprendizaje automático, ALM

MLflow: Aún en código Alpha, MLflow es una plataforma de código abierto de Databricks para la gestión del ciclo de vida del aprendizaje automático. También hay un servicio MLflow alojado. MLflow tiene tres componentes que cubren el seguimiento, los proyectos y los modelos.

El seguimiento de MLflow le permite registrar -mediante llamadas de API- y consultar experimentos: código, datos, configuración y resultados. Tiene una interfaz web (que se muestra en la captura de pantalla a continuación) para consultas.

Los proyectos de MLflow proporcionan un formato para empaquetar el código para la ciencia de datos de una manera reutilizable y reproducible, basada principalmente en convenciones. Además, el componente Proyectos incluye una API y herramientas de línea de comandos para ejecutar proyectos, lo que permite encadenar proyectos en flujos de trabajo.

Los modelos MLflow usan un formato estándar para empaquetar modelos de aprendizaje automático que se pueden usar en una variedad de herramientas posteriores -por ejemplo, servicio en tiempo real a través de una API REST o inferencia por lotes en Apache Spark. El formato define una convención que le permite guardar un modelo en diferentes "sabores, que pueden ser entendidos por diferentes herramientas posteriores.

Mlops, aprendizaje automático, ALM

Paperspace: Paperspace Gradientº es un conjunto de herramientas para explorar datos, entrenar redes neuronales y crear pipelines de aprendizaje automático de grado de producción. Tiene una interfaz de usuario web alojada en la nube para administrar sus proyectos, datos, usuarios y cuentas; una CLI para ejecutar trabajos desde Windows, Mac o Linux; y un SDK para interactuar programáticamente con la plataforma Gradientº.

Gradientº organiza su trabajo de aprendizaje automático en proyectos, que son colecciones de experimentos, trabajos, artefactos y modelos. Los proyectos se pueden integrar opcionalmente con un repositorio de GitHub a través de la aplicación GradientCI GitHub. Gradientº es compatible con los notebooks Jupyter y JupyterLab.

Los experimentos (consulte la captura de pantalla a continuación) están diseñados para ejecutar código (como entrenar una red neuronal profunda) en una CPU y GPU opcional, sin administrar ninguna infraestructura. Los experimentos se utilizan para crear e iniciar un solo trabajo o varios trabajos (por ejemplo, para una búsqueda de hiperparámetros o capacitación distribuida). Los trabajos están formados por una colección de código, datos y un contenedor que se empaquetan juntos y se ejecutan de forma remota. Los experimentos de Paperspace pueden generar modelos de aprendizaje automático, que se pueden interpretar y almacenar en el Gradient Model Repository.

Paperspace Core puede administrar máquinas virtuales con CPU y, opcionalmente, GPU, ejecutándose en la propia nube de Paperspace o en AWS. Los trabajos de Gradientº pueden ejecutarse en estas máquinas virtuales.

Mlops, aprendizaje automático, ALM

Seldon: Seldon Core es una plataforma de código abierto para implementar rápidamente modelos de aprendizaje automático en Kubernetes. Seldon Deploy es un servicio de suscripción empresarial que le permite trabajar en cualquier lenguaje o marco de trabajo, en la nube u on premises, para implementar modelos a escala. Seldon Alibi es una biblioteca de Python de código abierto que permite la inspección e interpretación de modelos de aprendizaje automático de caja negra.