MLOps Monitoreo y Gestión de Desviaciones

MLOps Monitoreo y Gestión de Desviaciones' - 'MLOps Monitoring and Deviation Management

Nota del editor: Oliver Zeigermann es un ponente en ODSC West 2023 este otoño. ¡Asegúrate de ver su charla, “MLOps: Monitoreo y Gestión del Drift”, allí!

El problema con el aprendizaje automático comienza después de que pones tu modelo en producción.

Típicamente, quieres llevar algo a producción que te brinde un beneficio claro en el lado empresarial. Porque, si no lo hace, ¿por qué molestarse? Entonces, necesitamos monitorear el rendimiento de nuestro modelo en producción cuando haya incluso la más mínima posibilidad de que el mundo cubierto por nuestro modelo sea propenso a cambios. Puede haber excepciones, pero asumiré que esto casi siempre es el caso.

¿Cómo monitorear?

En la figura 1, puedes ver una configuración bastante típica para monitorear datos relevantes sobre tu modelo. La parte obvia en el lado izquierdo es el servicio de predicción que utiliza el modelo entrenado. Este servicio envía datos de entrada y salida a un servicio de monitoreo que probablemente se ejecuta como un proceso separado. Dentro de este servicio de monitoreo ocurre cierta magia estadística que se muestra como un punto final de métricas. Evidentemente, ha demostrado hacer un buen trabajo calculando esas métricas. La representación de esas métricas puede ser consultada por una base de datos que registra esas métricas a lo largo del tiempo. Eventualmente, esa información se muestra en algún tipo de panel de control y se activa un sistema de alerta en la base de datos o en el servicio de panel de control. Prometheus y Grafana son las soluciones predeterminadas para la base de datos y el panel de control, respectivamente.

Figura 1: Arquitectura de alto nivel para el monitoreo de ML

Para monitorear el rendimiento, sería más cómodo simplemente realizar un seguimiento de la métrica que utilizaste para entrenar el modelo. Sin embargo, esto tiene un inconveniente. Para hacerlo, necesitas conocer la verdad absoluta. Hay casos en los que obtienes algún tipo de retroalimentación inmediata si tu predicción fue correcta, pero a menudo nunca obtienes esto o solo en pequeñas cantidades y la mayor parte del tiempo con un retraso significativo.

Dado que asumimos que tu servicio de aprendizaje automático tiene un impacto en tu negocio, preferirías saber si el rendimiento se está degradando lo antes posible. Una métrica sustituta para esto puede ser la similitud de las distribuciones de los datos utilizados durante el entrenamiento por un lado, y los datos que ves durante la predicción, por otro. Esto puede aplicarse tanto a los datos de entrada como de salida.

Figura 2: Las distribuciones de los datos de referencia y producción son similares

La Figura 2 muestra una comparación de este tipo donde las dos distribuciones son razonablemente similares, mientras que la Figura 3 muestra una desviación. Puedes calcular una representación numérica de la similitud utilizando una prueba estadística, como la que proporciona Evidently y otras bibliotecas de monitoreo.

Tales métricas sustitutas nunca serán tan precisas como comparar tus predicciones con la verdad absoluta, pero podrían ser lo mejor que puedes hacer.

Figura 3: Las distribuciones de los datos de referencia y producción se desvían

Las cosas parecen ir mal, ¿qué hacer ahora?

Aunque esto es más un arte que una técnica, en cualquier caso, debes analizar la distribución de los datos de producción trazándolos en comparación con la distribución de referencia. El puntaje que arroja tu prueba estadística es solo un valor único, pero hay mucho más que se puede ver en la forma de una distribución. ¿Qué ves? Aquí hay algunas reglas generales:

  1. ¿Es básicamente la misma forma, solo desplazada hacia un lado? Para este ejemplo, esto significa que tu audiencia en general está envejeciendo o rejuveneciendo. ¿Qué tan grande es el efecto? ¿Qué tan importante es la característica de la edad para la predicción? ¿Incluso podrías entrenar un nuevo modelo sin esa característica que se desvió?
  2. ¿Ves que se forma un subgrupo completo más allá de la forma original? Para ver esto, es posible que debas mirar más de una dimensión al mismo tiempo. En este caso, puedes estar bastante seguro de que tu modelo no funciona bien con esos datos, ya que los modelos nunca extrapolan bien a datos fuera del rango de los datos de entrenamiento. Para prevenir daños, una forma rápida de manejar esto es excluir ese subgrupo de la predicción por parte del modelo y recurrir a un sistema diferente, como un enfoque simple basado en reglas.
  3. Puede que veas un cambio en la salida, es decir, en los valores predichos. Considera que tienes un modelo binario y el porcentaje de casos buenos aumenta constantemente. Esto puede ser un peligro real para tu negocio y es posible que tu modelo haya sido pirateado mediante un ataque adversarial. En tal caso, debes reemplazar ese modelo rápidamente. Si asumes un ataque adversarial, simplemente volver a entrenar tu modelo, incluso con los datos antiguos, podría solucionar el problema, ya que los atacantes es posible que ya no puedan explotar las propiedades aleatorias de tu modelo. Puedes intentar esto como ejemplo o reemplazar completamente el modelo con un sistema de respaldo que podría ser tan radical como volver a la clasificación manual.
  4. A veces, una prueba estadística puede mostrar una gran diferencia, pero puedes ver que es solo un cambio dentro del rango original de tu distribución. Esto puede significar que tu modelo es lo suficientemente general como para manejar el cambio en la distribución de entrada. Si tienes al menos un poco de datos de verdad absoluta recopilados recientemente, una ejecución de validación con esos datos puede confirmar o cuestionar esa suposición.

Una vez que tienes la sospecha de que tu modelo ya no funciona como antes, básicamente necesitas repetir los pasos que hiciste cuando entrenaste tu modelo inicialmente. Sin embargo, la situación es probablemente más desafiante ya que es posible que no tengas todos los datos más actualizados.

Mi Taller en ODSC West 2023 en San Francisco

Mi taller técnico y práctico “MLOps: Monitoreo y Gestión de Desviaciones” cubre estos temas con mayor profundidad. Se llevará a cabo en persona en ODSC West 2023 en San Francisco. El objetivo del taller es asegurarte de que estés equipado con los conocimientos y las herramientas prácticas esenciales para detectar y manejar las desviaciones de manera competente.

Enlace al taller y más detalles: https://odsc.com/speakers/mlops-monitoring-and-managing-drift/

Sobre el autor/ponente de ODSC West 2023:

Oliver Zeigermann trabaja como ingeniero de IA en Hamburgo, Alemania. Ha estado desarrollando software con diferentes enfoques y lenguajes de programación durante más de 3 décadas. En la última década, se ha centrado en el Aprendizaje Automático y sus interacciones con los seres humanos.