Cómo llevar a cabo MLOps como un jefe Una guía para el aprendizaje automático sin lágrimas.

A guide on MLOps for easy machine learning without tears.

Si alguna vez has enviado un archivo .pickle por correo electrónico a ingenieros para su implementación, ¡esto es para TI!

El mercado de MLOps fue estimado en $23.2 billones en 2019 y se proyecta alcanzar $126 billones para 2025 debido a su rápida adopción.

Introducción

Muchos proyectos de ciencia de datos nunca ven la luz del día. MLOps es un proceso que abarca desde la etapa de datos hasta la etapa de implementación y asegura el éxito de los modelos de aprendizaje automático. En este post, aprenderá sobre las etapas clave en MLOps (desde la perspectiva de un científico de datos) junto con algunos problemas comunes.

Motivación para MLOps

MLOps es una práctica que se enfoca en operacionalizar los modelos de ciencia de datos. Normalmente, en la mayoría de las empresas, los científicos de datos son responsables de crear los conjuntos de datos para modelado, procesar los datos, ingeniería de características y finalmente construir el modelo. Luego, el modelo se “lanza” por encima del muro al equipo de ingeniería para ser implementado en la API/Endpoint. La ciencia y la ingeniería a menudo ocurren en silos, lo que lleva a retrasos en la implementación o implementaciones incorrectas en el peor de los casos.

MLOps aborda el desafío de implementar modelos de ML a escala empresarial precisa y rápidamente.

El equivalente de la ciencia de datos del dicho “Más fácil decirlo que hacerlo” probablemente debería ser “Más fácil construir que implementar”.

MLOps puede ser la bala de plata para las dificultades que enfrentan las empresas al poner modelos de aprendizaje automático en producción. Para aquellos de nosotros que somos científicos de datos, el descubrimiento de que ~90% de los modelos de ML no llegan a producción, no debería ser una sorpresa. MLOps brinda la disciplina y el proceso a los equipos de ciencia de datos e ingeniería para garantizar que colaboren estrechamente y continuamente. Esta colaboración es crucial para garantizar el éxito de la implementación del modelo.

MLOps en pocas palabras

Para aquellos familiarizados con DevOps, MLOps es para aplicaciones de aprendizaje automático lo que DevOps es para aplicaciones de software.

MLOps viene en múltiples sabores dependiendo de a quién preguntes. Sin embargo, hay cinco etapas clave que son críticas para una estrategia exitosa de MLOps. Como nota al margen, un elemento crucial que debe ser parte de cada una de estas etapas es la comunicación con las partes interesadas.

Definición del problema

Comprender el problema empresarial en profundidad. Este es uno de los pasos clave para una implementación y uso exitosos del modelo. Involucre a todas las partes interesadas en esta etapa para obtener su apoyo al proyecto. Puede ser ingeniería, producto, cumplimiento, etc.

Definición de la solución

Solo y solo después de que se haya resuelto la declaración del problema, proceda a pensar en el “Cómo”. ¿Se requiere aprendizaje automático para abordar este problema empresarial? Al principio, puede parecer extraño que, como científico de datos, sugiera alejarse del aprendizaje automático. Eso es solo porque con “gran poder viene gran responsabilidad”. La responsabilidad en este caso sería asegurarse de que el modelo de aprendizaje automático se construya, implemente y supervise cuidadosamente para garantizar que satisfaga y continúe satisfaciendo el requisito empresarial. Los plazos y recursos también deben ser discutidos en esta etapa con las partes interesadas.

Preparación de datos

Una vez que haya decidido seguir el camino del aprendizaje automático, comience a pensar en los “Datos”. Esta etapa incluye pasos como la recopilación de datos, la limpieza de datos, la transformación de datos, la ingeniería de características y la etiquetado (para el aprendizaje supervisado). Aquí, el adagio que debe recordarse es “basura entra, basura sale”. Este paso suele ser el más doloroso del proceso y es fundamental para garantizar el éxito del modelo. Asegúrese de validar los datos y las características varias veces para asegurarse de que estén alineados con el problema empresarial. Documente todas las suposiciones que haga al crear un conjunto de datos. Ej: ¿Son realmente valores atípicos para una característica?

Construcción y análisis del modelo

En esta etapa, construya y evalúe múltiples modelos y seleccione la arquitectura del modelo que resuelva mejor el problema en cuestión. La métrica elegida para la optimización debe reflejar el requisito empresarial. Hoy en día, hay numerosas bibliotecas de aprendizaje automático que ayudan a acelerar este paso. Recuerde registrar y hacer un seguimiento de sus experimentos para garantizar la reproducibilidad de su canalización de aprendizaje automático.

Implementación y monitoreo del modelo

Una vez que tenemos el objeto modelo construido en la etapa anterior, necesitamos pensar en cómo lo vamos a hacer “utilizable” para nuestros usuarios finales. La latencia de respuesta debe minimizarse mientras se maximiza el rendimiento. Algunas opciones populares para servir el modelo son: punto final de API REST, como un contenedor docker en la nube o en un dispositivo periférico. Aún no podemos celebrar una vez que hemos implementado el objeto modelo, ya que son muy dinámicos en su naturaleza. Por ejemplo, los datos podrían cambiar en la producción causando una decadencia del modelo o podría haber ataques adversarios en el modelo. Necesitamos tener una infraestructura de monitoreo robusta en su lugar para la aplicación de aprendizaje automático. Se deben monitorear dos cosas aquí:

  • La salud del entorno donde implementamos (por ejemplo, carga, uso, latencia)
  • La salud del modelo en sí (por ejemplo, métricas de rendimiento, distribución de salida).

La frecuencia del proceso de monitoreo también debe determinarse en esta etapa. ¿Vas a monitorear tu aplicación de aprendizaje automático diariamente, semanalmente o mensualmente?

Ahora, tienes una aplicación de aprendizaje automático robusta construida, implementada y monitoreada. Pero lamentablemente, la rueda no deja de girar, ya que los pasos anteriores deben iterarse continuamente.

Estudio de caso de FinTech

Para poner en práctica las cinco etapas anteriores, supongamos para esta sección que eres un científico de datos en una empresa de FinTech encargado de implementar un modelo de fraude para detectar transacciones fraudulentas.

En este caso, comienza con una inmersión profunda en el tipo de fraude (¿de primera o tercera parte?) que intentas detectar. ¿Cómo se identifican las transacciones como fraude o no? ¿Las reporta el usuario final o tienes que usar heurísticas para identificar el fraude? ¿Quién consumirá el modelo? ¿Se utilizará en tiempo real o en modo por lotes? Las respuestas a las preguntas anteriores son cruciales para resolver este problema empresarial.

A continuación, piensa en qué solución aborda mejor este problema. ¿Necesitas el aprendizaje automático para abordar esto o puedes comenzar con una heurística simple para combatir el fraude? ¿Todo el fraude proviene de un pequeño conjunto de direcciones IP?

Si decides construir un modelo de aprendizaje automático (supongamos el aprendizaje supervisado para este caso), necesitarás etiquetas y características. ¿Cómo abordarás las variables faltantes? ¿Qué pasa con los valores atípicos? ¿Cuál es la ventana de observación para las etiquetas de fraude? es decir, ¿cuánto tiempo tarda un usuario en reportar una transacción fraudulenta? ¿Hay un almacén de datos que puedas utilizar para construir características? Asegúrate de validar los datos y las características antes de avanzar. Este también es un buen momento para involucrar a las partes interesadas sobre la dirección del proyecto.

Una vez que tengas los datos necesarios, construye el modelo y realiza el análisis necesario. Asegúrate de que la métrica del modelo esté alineada con el uso empresarial. (por ejemplo, podría ser el recuerdo en el primer decil para este caso de uso). ¿El algoritmo de modelo elegido satisface el requisito de latencia?

Por último, coordina con ingeniería para implementar y servir el modelo. Debido a que la detección de fraude es un entorno muy dinámico, donde los estafadores se esfuerzan por estar por delante del sistema, el monitoreo es muy crucial. Ten un plan de monitoreo tanto para los datos como para el modelo. Las medidas como el PSI (índice de estabilidad de la población) son comunes para realizar un seguimiento del cambio de datos. ¿Con qué frecuencia volverás a entrenar el modelo?

Ahora puedes crear valor empresarial con éxito al reducir las transacciones fraudulentas utilizando el aprendizaje automático (si es necesario).

Conclusión

Espero que después de leer este artículo, veas los beneficios de implementar MLOps en tu empresa. Para resumir, MLOps asegura que el equipo de ciencia de datos:

  • resuelve el problema empresarial correcto
  • utiliza la herramienta adecuada para resolver el problema
  • aprovecha el conjunto de datos que representa el problema
  • construye el modelo de aprendizaje automático óptimo
  • y finalmente implementa y monitorea el modelo para asegurar el éxito continuo

Sin embargo, ten en cuenta las trampas comunes para asegurarte de que tu proyecto de ciencia de datos no se convierta en una lápida en el cementerio de la ciencia de datos. Debe recordarse que una aplicación de ciencia de datos es algo vivo y respirando. Los datos y el modelo deben monitorearse continuamente. La gobernanza de la IA debe considerarse desde el principio y no como una idea tardía.

Con estos principios en mente, estoy seguro de que puedes crear verdadero valor empresarial aprovechando el aprendizaje automático (si es necesario).

Referencias de MLOps

  • Ingeniería de Aprendizaje Automático para Producción (MLOps)
  • Una Introducción Suave a MLOps
  • Prácticas de MLOps para Científicos de Datos
  • MLOps: La Estrella Emergente

Natesh Babu Arunachalam es un líder en ciencia de datos en Mastercard, actualmente enfocado en la construcción de aplicaciones innovadoras de inteligencia artificial utilizando datos de banca abierta.