Respondemos a la pregunta ¿qué es MLOps y cómo funciona?, considerando que hasta hace poco, los desarrolladores aprendían sobre el ciclo de vida del desarrollo de software (SDLC).
Ahora, las organizaciones intentan incorporar AI / ML en su producto. Este nuevo requisito de construir sistemas ML agrega y reforma algunos principios del SDLC, dando lugar a una nueva disciplina de ingeniería llamada MLOps.
Este nuevo término está causando revuelo y ha dado lugar a nuevos perfiles laborales. MLOps es la abreviatura de Machine Learning Operations, también conocido como ModelOps.
¿Qué es MLOps?
MLOps es una disciplina de ingeniería que busca unificar el desarrollo de sistemas de aprendizaje automático (dev) y la implementación de sistemas de aprendizaje automático (operaciones) para estandarizar y agilizar la entrega continua de modelos de alto rendimiento en producción.
Características de MLOps
Para comprender los MLOps, hay que comprender el ciclo de vida de los sistemas ML. El ciclo de vida involucra a varios equipos diferentes de una organización basada en datos.
De esta forma, los equipos colaboran de la siguiente manera:
- Equipo de desarrollo comercial o de productos: definición de objetivos comerciales con KPI
- Ingeniería de datos: adquisición y preparación de datos.
- Ciencia de datos: diseño de soluciones de aprendizaje automático y desarrollo de modelos.
- TI o DevOps: configuración de implementación completa, monitoreo junto con científicos.
¿Qué problemas resuelve MLOps?
La gestión de estos sistemas a escala no es una tarea fácil y existen numerosos cuellos de botella que deben solucionarse. Los siguientes son los principales desafíos a los que se enfrentan los equipos:
Escasez de científicos de datos que sean buenos para desarrollar e implementar aplicaciones web escalables. Hay un nuevo perfil de ML Engineers en el mercado en estos días que apunta a satisfacer esta necesidad. Es un punto óptimo en la intersección de Data Science y DevOps.
Cambio de los objetivos comerciales en el modelo: existen muchas dependencias con los datos en constante cambio, manteniendo los estándares de rendimiento del modelo y asegurando la gobernanza de la IA.
Brechas de comunicación entre los equipos técnicos y comerciales con un lenguaje común difícil de encontrar para colaborar. Muy a menudo, esta brecha se convierte en la razón por la que fracasan los grandes proyectos.
Evaluación de riesgos: existe un gran debate en torno a la naturaleza de caja negra de tales sistemas de LD / LD. A menudo, los modelos tienden a alejarse de lo que se pretendía hacer inicialmente. Evaluar el riesgo, así como los costos de tales fallas es un paso muy importante y meticuloso.
¿Qué habilidades necesita para MLOps?
Las siguientes son las habilidades clave en las que se debe concentrarse:
Resolver problemas de Aprendizaje Automático (AA) a partir de los objetivos comerciales
El desarrollo de sistemas de aprendizaje automático generalmente comienza con una meta u objetivo comercial. Puede ser un simple objetivo de reducir el porcentaje de transacciones fraudulentas por debajo del 0.5%, o puede ser la construcción de un sistema para detectar el cáncer de piel en imágenes etiquetadas por dermatólogos.
Estos objetivos suelen tener determinadas medidas de rendimiento, requisitos técnicos, presupuestos para el proyecto y KPI (indicadores clave de rendimiento) que impulsan el proceso de seguimiento de los modelos implementados.
Diseñar ML y soluciones de datos para el problema
Una vez que los objetivos se traducen claramente en problemas de AA, el siguiente paso es comenzar a buscar los datos de entrada adecuados y los tipos de modelos que se deben probar para ese tipo de datos.
La búsqueda de datos es una de las tareas más arduas. Es un proceso con varias partes:
- Debe buscar cualquier conjunto de datos relevante disponible,
- Verificar la credibilidad de los datos y su fuente.
- Preparación y procesamiento de datos: parte de la ingeniería de datos.
La preparación de datos incluye tareas como ingeniería de características, limpieza (formateo, verificación de valores atípicos, imputaciones, reequilibrio, etc.) y luego seleccionar el conjunto de características que contribuyen al resultado del problema subyacente.
Se debe diseñar una canalización completa y luego codificarla para producir datos limpios y compatibles que se enviarán a la siguiente fase del desarrollo del modelo.
Una parte importante de la implementación de tales canalizaciones es elegir la combinación correcta de servicios y arquitectura en la nube que sea eficiente y rentable.
Formación y experimentación de modelos: ciencia de datos
Tan pronto como los datos estén preparados, pasará al siguiente paso de entrenamiento de su modelo de aprendizaje automático.
Ahora, la fase inicial de entrenamiento es iterativa con un montón de diferentes tipos de modelos. Se reducirá a la mejor solución utilizando varias medidas cuantitativas como exactitud, precisión, recuperación y más.
También puede utilizar el análisis cualitativo del modelo que da cuenta de las matemáticas que impulsan ese modelo o, en pocas palabras, la explicabilidad del modelo.
Creación y automatización de canalizaciones de AA
Se deben crear tus canalizaciones de AA teniendo en cuenta las siguientes tareas:
- Identificar los requisitos del sistema: parámetros, necesidades de cálculo, disparadores.
- Elegir una arquitectura de nube adecuada: híbrida o multinube.
- Construir tuberías de capacitación y prueba.
- Realizar un seguimiento y audite las ejecuciones de la tubería.
- Realice la validación de datos.
Implementación de modelos en el sistema de producción
Existen principalmente dos formas de implementar un modelo de AA:
Implementación estática o modelo integrado: donde el modelo se empaqueta en un software de aplicación instalable y luego se implementa. Por ejemplo, una aplicación que ofrece puntuación de solicitudes por lotes.
Implementación dinámica: donde el modelo se implementa mediante un marco web como FastAPI o Flask y se ofrece como un punto final de API que responde a las solicitudes de los usuarios.
Dentro de la implementación dinámica, puede utilizar diferentes métodos:
- Implementar en un servidor (una máquina virtual)
- Desplegar en un contenedor
- Implementación sin servidor
Transmisión de modelos: en lugar de las API REST, todos los modelos y el código de la aplicación se registran en un motor de procesamiento de transmisión como Apache Spark, Apache Storm y Apache Flink.
Leíste: ¿Qué es MLOps y cómo funciona?, te recomendamos: Cómo aprender desarrollo web con juegos de codificación
Te invitamos a que nos sigas en nuestras redes sociales: Facebook, Twitter, Instagram y Youtube con el perfil: @tortugacode