paint-brush
Guía para arquitectos sobre operaciones de aprendizaje automático e infraestructura de datos necesariapor@minio
2,460 lecturas
2,460 lecturas

Guía para arquitectos sobre operaciones de aprendizaje automático e infraestructura de datos necesaria

por MinIO10m2024/09/05
Read on Terminal Reader

Demasiado Largo; Para Leer

MLOps es un conjunto de prácticas y herramientas destinadas a abordar las necesidades específicas de los ingenieros que crean modelos y los trasladan a la producción. Algunas organizaciones comienzan con algunas herramientas propias que crean versiones de los conjuntos de datos después de cada experimento y de los modelos de puntos de control después de cada época de entrenamiento. Muchas organizaciones han optado por adoptar una herramienta formal que cuenta con funciones de seguimiento de experimentos, colaboración, capacidades de servicio de modelos e incluso funciones de canalización.
featured image - Guía para arquitectos sobre operaciones de aprendizaje automático e infraestructura de datos necesaria
MinIO HackerNoon profile picture


MLOps, abreviatura de Machine Learning Operations, es un conjunto de prácticas y herramientas destinadas a abordar las necesidades específicas de los ingenieros que crean modelos y los trasladan a la producción. Algunas organizaciones comienzan con algunas herramientas propias que crean versiones de conjuntos de datos después de cada experimento y modelos de puntos de control después de cada época de entrenamiento. Por otro lado, muchas organizaciones han optado por adoptar una herramienta formal que cuenta con funciones de seguimiento de experimentos, colaboración, capacidades de servicio de modelos e incluso funciones de canalización para procesar datos y entrenar modelos.


Para tomar la mejor decisión para su organización, debe comprender todas las capacidades disponibles de las principales herramientas MLOps de la industria. Si opta por la ruta de desarrollo propio, debe comprender las capacidades a las que renuncia. Un enfoque de desarrollo propio es adecuado para equipos pequeños que necesitan moverse rápidamente y es posible que no tengan tiempo para evaluar una nueva herramienta. Si elige implementar una herramienta de terceros, deberá elegir la herramienta que mejor se adapte al flujo de trabajo de ingeniería de su organización. Esto puede ser complicado porque las principales herramientas actuales varían significativamente en su enfoque y capacidades. Independientemente de su elección, necesitará una infraestructura de datos que pueda manejar grandes volúmenes de datos y brindar conjuntos de entrenamiento de manera eficiente. Los modelos de puntos de control y el control de versiones de grandes conjuntos de datos requieren una capacidad escalable y, si está utilizando GPU costosas, necesitará una infraestructura de alto rendimiento para aprovechar al máximo su inversión.


En esta publicación, presentaré una lista de características que los arquitectos deberían considerar independientemente del enfoque o las herramientas que elijan. Esta lista de características surge de mi investigación y experimentos con tres de los principales proveedores de MLOps en la actualidad: Flujo de Kube , Flujo ml , y Ejecutar ml Para las organizaciones que optaron por comenzar con una solución propia, presentaré una infraestructura de datos que puede escalar y funcionar. (Alerta de spoiler: todo lo que necesita aquí es MinIO). En lo que respecta a las herramientas de terceros, he notado un patrón con los proveedores que he investigado. Para las organizaciones que eligen adoptar herramientas MLOps, presentaré este patrón y lo relacionaré con nuestro Arquitectura de referencia de Datalake moderna .


Antes de profundizar en las características y los requisitos de infraestructura, comprendamos mejor la importancia de MLOps. Para ello, resulta útil comparar la creación de modelos con el desarrollo de aplicaciones convencionales.

La diferencia entre modelos y aplicaciones

El desarrollo de aplicaciones convencionales, como la implementación de un nuevo microservicio que agrega una nueva característica a una aplicación, comienza con la revisión de una especificación. Primero se diseñan las nuevas estructuras de datos o los cambios en las estructuras de datos existentes. El diseño de los datos no debe cambiar una vez que comienza la codificación. Luego se implementa el servicio y la codificación es la actividad principal en este proceso. También se codifican las pruebas unitarias y las pruebas de extremo a extremo. Estas pruebas prueban que el código no tiene fallas e implementa correctamente la especificación. Se pueden ejecutar automáticamente mediante una canalización de CI/CD antes de implementar toda la aplicación.


Crear un modelo y entrenarlo es diferente. El primer paso es comprender los datos sin procesar y la predicción necesaria. Los ingenieros de ML tienen que escribir algo de código para implementar sus redes neuronales o configurar un algoritmo, pero la codificación no es la actividad dominante. La actividad principal es la experimentación repetida. Durante la experimentación, el diseño de los datos, el diseño del modelo y los parámetros utilizados cambiarán. Después de cada experimento, se crean métricas que muestran cómo se desempeñó el modelo a medida que se entrenó. También se generan métricas para determinar el rendimiento del modelo en comparación con un conjunto de validación y un conjunto de prueba. Estas métricas se utilizan para demostrar la calidad del modelo. Debe guardar el modelo después de cada experimento y cada vez que cambie sus conjuntos de datos, también debe guardarlos. Una vez que un modelo está listo para incorporarse a una aplicación, debe empaquetarse e implementarse.


En resumen, MLOps es al aprendizaje automático lo que DevOps es al desarrollo de software tradicional. Ambos son un conjunto de prácticas y principios destinados a mejorar la colaboración entre los equipos de ingeniería (Dev o ML) y los equipos de operaciones de TI (Ops). El objetivo es optimizar el ciclo de vida del desarrollo, desde la planificación y el desarrollo hasta la implementación y las operaciones, mediante la automatización. Uno de los principales beneficios de estos enfoques es la mejora continua.


Profundicemos un poco más en MLOps y veamos características específicas a tener en cuenta.

10 características de MLOps que se deben tener en cuenta

El seguimiento de experimentos y la colaboración son las funciones más asociadas con MLOps, pero las herramientas MLOps más modernas de la actualidad pueden hacer mucho más. Por ejemplo, algunas pueden proporcionar un entorno de ejecución para sus experimentos. Otras pueden empaquetar e implementar modelos una vez que estén listos para integrarse en una aplicación.


A continuación, se muestra un superconjunto de funciones que se encuentran en las herramientas MLOps actuales. Esta lista también incluye otros aspectos a tener en cuenta, como el soporte y la integración de datos.


  1. Soporte de un actor importante : las técnicas y características de MLOps evolucionan constantemente. Necesita una herramienta que esté respaldada por un actor importante (Google, Databricks o McKinsey and Company respaldan Kubeflow, MLflow y MLRun, respectivamente), lo que garantiza un desarrollo y una mejora constantes. Como ejemplo concreto, muchas herramientas populares en la actualidad se crearon antes de los grandes modelos de lenguaje (LLM); en consecuencia, muchas están agregando nuevas características para respaldar la IA generativa.


  2. Integración de Modern Datalake : los experimentos generan una gran cantidad de datos estructurados y no estructurados. Una herramienta MLOps que esté perfectamente integrada con Modern Datalake (o Data Lakehouse) almacenaría datos no estructurados en Data Lake (esto es MinIO directamente) y los datos estructurados irían al almacén de datos. Desafortunadamente, muchas herramientas MLOps existían antes de los formatos de tabla abierta que dieron origen a Modern Datalake, por lo que la mayoría tendrá una solución independiente para sus datos estructurados. Por lo general, se trata de una base de datos relacional de código abierto que su infraestructura de datos deberá admitir. Con respecto a los datos no estructurados (conjuntos de datos y puntos de control de modelos), todas las herramientas principales de la industria utilizan MinIO, ya que estamos presentes desde 2014.


  3. Seguimiento de experimentos : probablemente la característica más importante de una herramienta MLOps es el seguimiento de conjuntos de datos, modelos, hiperparámetros y métricas para cada experimento. El seguimiento de experimentos también debería facilitar la repetibilidad: si obtuvo un resultado deseado hace cinco experimentos y los experimentos posteriores degradaron el rendimiento de su modelo, entonces debería poder usar su herramienta MLOps para volver atrás y obtener los hiperparámetros exactos y las características del conjunto de datos utilizadas que produjeron el resultado deseado.


  4. Facilitar la colaboración : un componente importante de una herramienta MLOps es el portal o la interfaz de usuario que se utiliza para presentar los resultados de cada experimento. Este portal debe ser accesible para todos los miembros del equipo para que puedan ver los experimentos de los demás y hacer recomendaciones. Algunas herramientas MLOps tienen funciones gráficas sofisticadas que permiten crear gráficos personalizados para comparar los resultados de los experimentos.


  5. Empaquetado de modelos : esta capacidad empaqueta un modelo de modo que sea accesible desde otros entornos de programación, generalmente como un microservicio. Es una característica muy útil. Un modelo entrenado no es más que un objeto serializado. Es posible que muchas organizaciones ya tengan esto resuelto.


  6. Servicio de modelos : una vez que un modelo se empaqueta como servicio, esta función permitirá la implementación automatizada del servicio que contiene el modelo en los entornos formales de la organización. No necesitará esta función si tiene un canalización CI/CD madura Capaz de gestionar todos los activos de software en todos los entornos.


  7. Registro de modelos : un registro de modelos proporciona una vista de todos los modelos que actualmente administra su herramienta MLOps. Después de todo, la creación de modelos de nivel de producción es el objetivo de todas las MLOps. Esta vista debe mostrar los modelos que se implementaron en producción, así como los modelos que nunca llegaron a producción. Los modelos que llegaron a producción deben etiquetarse de manera tal que también pueda determinar la versión de la aplicación o el servicio en el que se implementaron.


  8. Funciones sin servidor : algunas herramientas ofrecen funciones que permiten anotar el código para que una función o un módulo se puedan implementar como un servicio en contenedores para ejecutar experimentos en un clúster. Si decide utilizar esta función, asegúrese de que todos sus ingenieros se sientan cómodos con esta técnica. Puede ser una curva de aprendizaje un poco complicada: a los ingenieros con experiencia en DevOps les resultará más fácil, mientras que a los ingenieros que estudiaron previamente aprendizaje automático y tienen poca experiencia en codificación les resultará más difícil.


  9. Capacidades de canalización de datos : algunas herramientas MLOps tienen como objetivo proporcionar capacidades completas de extremo a extremo y tienen características específicas para crear canalizaciones de datos para recuperar datos sin procesar, procesarlos y almacenar datos limpios. Las canalizaciones generalmente se especifican como Gráficos acíclicos dirigidos (DAG) - Algunas herramientas también tienen capacidades de programación. Cuando se utilizan junto con funciones sin servidor, pueden ser una solución potente de poco código para desarrollar y ejecutar canales de datos. No necesitará esto si ya está utilizando una herramienta de flujo de trabajo o canalización.


  10. Capacidades de la canalización de entrenamiento : esto es similar a las canalizaciones de datos, pero una canalización de entrenamiento retoma el proceso donde terminan las canalizaciones de datos. Una canalización de entrenamiento le permite llamar a su código de acceso a datos, enviar datos a su lógica de entrenamiento y anotar artefactos y modelos de datos para que se guarden automáticamente. De manera similar a las canalizaciones de datos, esta función se puede utilizar junto con funciones sin servidor para crear DAG y programar experimentos. Si ya está utilizando una herramienta de entrenamiento distribuido, es posible que no necesite esta función. Es posible iniciar el entrenamiento distribuido desde una canalización de entrenamiento, pero esto podría ser demasiado complejo.

MLOps y almacenamiento

Después de observar las diferencias entre el desarrollo de aplicaciones tradicionales y el aprendizaje automático, debería quedar claro que para tener éxito con el aprendizaje automático se necesita algún tipo de MLOps y una infraestructura de datos capaz de ofrecer rendimiento y capacidad escalable.


Las soluciones locales son adecuadas si necesita iniciar un proyecto rápidamente y no tiene tiempo para evaluar una herramienta MLOps formal. Si adopta este enfoque, la buena noticia es que todo lo que necesita para su infraestructura de datos es MinIO. MinIO es compatible con S3, por lo que si comenzó con otra herramienta y utilizó una interfaz S3 para acceder a sus conjuntos de datos, entonces su código funcionará. Si está comenzando, puede utilizar nuestra Kit de desarrollo de software de Python , que también es compatible con S3. Considere utilizar la versión empresarial de MinIO, que tiene capacidades de almacenamiento en caché que pueden acelerar enormemente el acceso a los datos para los conjuntos de entrenamiento. Las verdaderas razones por las que la IA se basa en el almacenamiento de objetos En este artículo, analizamos en profundidad cómo y por qué se utiliza MinIO para respaldar MLOps. Las organizaciones que eligen una solución propia deben familiarizarse con las diez características descritas anteriormente. Es posible que, con el tiempo, su solución propia se quede pequeña y la forma más eficiente de avanzar es adoptar una herramienta MLOps.


La mejor opción para las grandes organizaciones con varios equipos de IA/ML que crean modelos de distintos tipos es adoptar una herramienta MLOps de terceros. La herramienta MLOps con más funciones no es necesariamente la mejor. Observa las funciones anteriores y toma nota de las que necesitas, las que tienes actualmente como parte de tu flujo de trabajo de CI/CD existente y, por último, las que no quieres. Esto te ayudará a encontrar la opción más adecuada. Las herramientas MLOps tienen un apetito voraz por grandes petabytes de almacenamiento de objetos. Muchas de ellas crean versiones automáticamente de tus conjuntos de datos con cada experimento y realizan puntos de control de tus modelos automáticamente después de cada época. Nuevamente, MinIO puede ayudar, ya que la capacidad no es un problema. De manera similar a la solución propia, considera usar la edición empresarial de MinIO. Las funciones de almacenamiento en caché funcionan automáticamente una vez configuradas para un depósito, por lo que, aunque la herramienta MLOps no solicita el uso de la memoria caché, MinIO almacenará automáticamente en caché los objetos a los que se accede con frecuencia, como un conjunto de entrenamiento.

Una lista de deseos para el futuro

Muchas de las herramientas MLOps que se encuentran en el mercado hoy en día utilizan una base de datos relacional de código abierto para almacenar los datos estructurados generados durante el entrenamiento del modelo, que suelen ser métricas e hiperparámetros. Lamentablemente, se trata de una base de datos nueva que debe contar con el respaldo de su organización. Además, si una organización está avanzando hacia un Datalake moderno (o Data Lakehouse), no se necesita una base de datos relacional adicional. Lo que sería bueno que los principales proveedores de MLOps consideren es utilizar un almacén de datos basado en OTF para almacenar sus datos estructurados.


Todos los principales proveedores de MLOps utilizan MinIO de forma interna para almacenar datos no estructurados. Lamentablemente, esto generalmente se implementa como una pequeña instancia separada que se instala como parte de la instalación general más grande de la herramienta MLOps. Además, suele ser una versión anterior de MinIO, lo que va en contra de nuestra filosofía de ejecutar siempre la herramienta. Lo último y lo mejor Para los clientes actuales de MinIO, sería bueno permitir que la herramienta MLOps use un depósito dentro de una instalación existente. Para los clientes nuevos de MinIO, la herramienta MLOps debería ser compatible con la última versión de MinIO. Una vez instalada, MinIO también se puede usar para fines dentro de su organización más allá de los recursos de MLOps, es decir, en cualquier lugar donde se requieran las ventajas del almacenamiento de objetos.

Conclusión

En esta publicación, presenté una guía para arquitectos sobre MLOps, en la que se investigan tanto las características de MLOps como la infraestructura de datos necesaria para respaldar estas características. En un nivel alto, las organizaciones pueden crear una solución propia o pueden implementar una solución de terceros. Independientemente de la dirección elegida, es importante comprender todas las características disponibles en la industria hoy en día. Las soluciones propias le permiten comenzar un proyecto rápidamente, pero pronto puede superar su solución. También es importante comprender sus necesidades específicas y cómo funcionará MLOps con un flujo de trabajo de CI/CD existente. Muchas herramientas de MLOps son ricas en características y contienen características que es posible que nunca use o que ya tenga como parte de su flujo de trabajo de CI/CD.


Para implementar MLOps con éxito, se necesita una infraestructura de datos que lo respalde. En esta publicación, presenté una solución simple para quienes eligieron una solución propia y describí qué esperar de las herramientas de terceros y los recursos que requieren.


Concluí con una lista de deseos para un mayor desarrollo de las herramientas MLOps que las ayudarían a integrarse mejor con Modern Datalake.


Para obtener más información sobre el uso de Modern Datalake para respaldar cargas de trabajo de IA/ML, consulte Inteligencia artificial y aprendizaje automático en un lago de datos moderno .


Si tiene alguna pregunta, no dude en comunicarse con nosotros. Flojo !