Operacionalizar la IA a escala con Software 2.0, MLOps y Milvus
La creación de aplicaciones de aprendizaje automático (ML) es un proceso complejo e iterativo. A medida que más empresas se dan cuenta del potencial sin explotar de los datos no estructurados, la demanda de procesamiento y análisis de datos impulsados por IA seguirá aumentando. Sin operaciones eficaces de aprendizaje automático, o MLOps, la mayoría de las inversiones en aplicaciones de ML se marchitarán en la vid. Las investigaciones han revelado que tan sólo el 5% de las adopciones de IA que las empresas planean desplegar llegan realmente a implantarse. Muchas organizaciones incurren en una "deuda de modelo", en la que los cambios en las condiciones del mercado, y la falta de adaptación a los mismos, dan lugar a inversiones no realizadas en modelos que permanecen sin actualizar (o peor aún, que nunca llegan a desplegarse).
Este artículo explica MLOps, un enfoque sistémico de la gestión del ciclo de vida de los modelos de IA, y cómo puede utilizarse la plataforma de gestión de datos vectoriales de código abierto Milvus para hacer operativa la IA a escala.
¿Qué es MLOps?
Las operaciones de aprendizaje automático (MLOps), también conocidas como operaciones de modelos (ModelOps) u operacionalización de modelos de IA, son necesarias para construir, mantener y desplegar aplicaciones de IA a escala. A medida que las empresas tratan de aplicar los modelos de IA que desarrollan a cientos de escenarios diferentes, es fundamental que los modelos en uso, y los que están en desarrollo, estén operativos en toda la organización. MLOps implica la supervisión de un modelo de aprendizaje automático a lo largo de su ciclo de vida, y el control de todo, desde los datos subyacentes hasta la eficacia de un sistema de producción que depende de un modelo en particular.
01.jpg
Gartner define ModelOps como el gobierno y la gestión del ciclo de vida de una amplia gama de modelos de decisión e inteligencia artificial operacionalizados. La funcionalidad básica de MLOps puede desglosarse de la siguiente manera:
Integración continua/entrega continua (CI/CD): CI/CD, un conjunto de buenas prácticas tomadas de las operaciones de desarrollo (DevOps), es un método para realizar cambios en el código con mayor frecuencia y fiabilidad. La integración continua promueve la implementación de cambios en el código en pequeños lotes, al tiempo que los supervisa con un estricto control de versiones. La entrega continua automatiza la entrega de aplicaciones a varios entornos (por ejemplo, entornos de pruebas y de desarrollo).
Entornos de desarrollo de modelos (MDE): Un proceso complejo para construir, revisar, documentar y examinar modelos, los MDE ayudan a garantizar que los modelos se crean de forma iterativa, se documentan a medida que se desarrollan, son fiables y reproducibles. Un MDE eficaz garantiza que los modelos puedan explorarse, investigarse y experimentarse de forma controlada.
Pruebas Champion-Challenger: Similar a la metodología de pruebas A/B utilizada por los profesionales del marketing, las pruebas Champion-Challenger implican experimentar con diferentes soluciones para ayudar al proceso de toma de decisiones que procede a comprometerse con un único enfoque. Esta técnica implica supervisar y medir el rendimiento en tiempo real para identificar qué desviación funciona mejor.
Versionado de modelos: Como ocurre con cualquier sistema complejo, los modelos de aprendizaje automático son desarrollados en etapas por muchas personas diferentes, lo que da lugar a cuestiones de gestión de datos en torno a las versiones de los datos y los modelos de ML. El control de versiones de modelos ayuda a gestionar y gobernar el proceso iterativo de desarrollo de ML, en el que los datos, los modelos y el código pueden evolucionar a ritmos diferentes.
Almacenamiento y reversión de modelos: Cuando se despliega un modelo, debe almacenarse su correspondiente archivo de imagen. Las capacidades de reversión y recuperación permiten a los equipos de MLOps volver a una versión anterior del modelo en caso necesario.
El uso de un solo modelo en una aplicación de producción presenta una serie de retos difíciles. MLOps es un método estructurado y repetible que se basa en herramientas, tecnología y mejores prácticas para superar los problemas técnicos o empresariales que surgen durante el ciclo de vida de un modelo de aprendizaje automático. El éxito de MLOps mantiene la eficiencia en todos los equipos que trabajan para construir, desplegar, supervisar, reentrenar y gobernar los modelos de IA y su uso en sistemas de producción.
¿Por qué es necesario MLOps?
Como se muestra en el ciclo de vida del modelo de ML anterior, la creación de un modelo de aprendizaje automático es un proceso iterativo que implica la incorporación de nuevos datos, el reentrenamiento de los modelos y la gestión del deterioro general del modelo con el paso del tiempo. Todas estas son cuestiones que las operaciones de desarrollo tradicionales, o DevOps, no abordan ni ofrecen soluciones. MLOps se ha hecho necesario como forma de gestionar la inversión en modelos de IA y garantizar un ciclo de vida productivo de los modelos. Debido a que los modelos de aprendizaje automático serán aprovechados por una variedad de diferentes sistemas de producción, MLOps se vuelve integral para asegurar que los requisitos se puedan cumplir en diferentes entornos y en medio de escenarios variados.
02.jpg
La sencilla ilustración anterior muestra un modelo de aprendizaje automático desplegado en un entorno de nube que alimenta una aplicación. En este escenario básico, podrían surgir una serie de problemas que MLOps ayuda a superar. Dado que la aplicación de producción depende de un entorno de nube específico, existen requisitos de latencia a los que los científicos de datos que desarrollaron el modelo de ML no tienen acceso. Operacionalizar el ciclo de vida del modelo permitiría a los científicos de datos o ingenieros con un profundo conocimiento del modelo identificar y solucionar los problemas que surgen en entornos de producción específicos.
Los modelos de aprendizaje automático no sólo se entrenan en entornos distintos a los de las aplicaciones de producción en las que se utilizan, sino que también suelen basarse en conjuntos de datos históricos que difieren de los datos utilizados en las aplicaciones de producción. Con MLOps, todo el equipo de ciencia de datos, desde los que desarrollan el modelo hasta las personas que trabajan a nivel de aplicación, disponen de un medio para compartir y solicitar información y asistencia. El ritmo al que cambian los datos y los mercados hace que sea imperativo que haya la menor fricción posible entre todas las partes interesadas y colaboradores clave que llegarán a depender de un determinado modelo de aprendizaje automático.
Apoyar la transición al software 2.0
Software 2.0 es la idea de que el desarrollo de software experimentará un cambio de paradigma a medida que la inteligencia artificial desempeñe cada vez más un papel central en la escritura de modelos de IA que impulsen las aplicaciones de software. En el Software 1.0, el desarrollo implica que los programadores escriban instrucciones explícitas utilizando un lenguaje de programación específico (por ejemplo, Python, C++). El software 2.0 es mucho más abstracto. Aunque las personas proporcionan los datos de entrada y establecen los parámetros, las redes neuronales son difíciles de entender para los humanos debido a su enorme complejidad, con redes típicas que contienen millones de pesos que afectan a los resultados (y a veces miles de millones o billones).
DevOps se construyó en torno a la dependencia del Software 1.0 de instrucciones específicas dictadas por programadores que utilizaban lenguajes, pero nunca tuvo en cuenta el ciclo de vida de un modelo de aprendizaje automático que impulsa una variedad de aplicaciones diferentes. MLOps aborda la necesidad de que el proceso de gestión del desarrollo de software cambie junto con el software en desarrollo. A medida que el Software 2.0 se convierte en el nuevo estándar para la resolución de problemas por ordenador, contar con las herramientas y procesos adecuados para gestionar los ciclos de vida de los modelos hará que las inversiones en nuevas tecnologías sean decisivas. Milvus es un motor de búsqueda de similitudes vectoriales de código abierto creado para apoyar la transición al Software 2.0 y gestionar los ciclos de vida de los modelos con MLOps.
03.jpg
Operacionalización de la IA a escala con Milvus
Milvus es una plataforma de gestión de datos vectoriales creada específicamente para almacenar, consultar, actualizar y mantener conjuntos de datos vectoriales masivos a escala de billones. La plataforma potencia la búsqueda de similitudes vectoriales y puede integrarse con bibliotecas de índices ampliamente adoptadas, como Faiss, NMSLIB y Annoy. Al combinar Milvus con modelos de IA que convierten datos no estructurados en vectores, se pueden crear aplicaciones que abarcan el desarrollo de nuevos fármacos, análisis biométricos, sistemas de recomendación y mucho más.
La búsqueda de similitud vectorial es la solución de referencia para el procesamiento y análisis de datos no estructurados, y los datos vectoriales se están convirtiendo rápidamente en un tipo de datos fundamental. Un sistema integral de gestión de datos como Milvus facilita la operacionalización de la IA de muchas maneras, entre ellas:
Proporcionando un entorno para el entrenamiento de modelos que garantiza que más aspectos del desarrollo se realicen en un solo lugar, facilitando la colaboración entre equipos, la gobernanza de modelos y más.
Ofrecer un amplio conjunto de API compatibles con marcos de trabajo populares como Python, Java y Go, lo que facilita la integración de un conjunto común de modelos de ML.
La compatibilidad con Google Colaboratory, un entorno de cuaderno Jupyter que se ejecuta en un navegador, simplifica el proceso de compilación de Milvus a partir del código fuente y la ejecución de operaciones básicas de Python.
La funcionalidad de aprendizaje automático de máquinas (AutoML) permite automatizar las tareas asociadas a la aplicación del aprendizaje automático a problemas del mundo real. AutoML no sólo permite mejorar la eficiencia, sino que también hace posible que personas no expertas puedan sacar partido de los modelos y técnicas de aprendizaje automático.
Independientemente de las aplicaciones de aprendizaje automático que esté creando en la actualidad, o de los planes que tenga para aplicaciones en el futuro, Milvus es una plataforma de gestión de datos flexible creada con el Software 2.0 y MLOps en mente. Para obtener más información sobre Milvus o realizar contribuciones, busque el proyecto en Github. Para participar en la comunidad o hacer preguntas, únase a nuestro canal de Slack. ¿Quieres saber más? Consulte los siguientes recursos:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word