Del laboratorio a producción.

Julian Lamoso

Julian Lamoso

Del Lab a producción

Cómo prueba Alice sus modelos de Aprendizaje Automático.

En Alice, los modelos de aprendizaje automático son herramientas esenciales para ofrecer un servicio de alta calidad. Sin embargo, es importante evaluar estos modelos cuidadosamente para asegurarse de que funcionan como se espera. En este artículo, vamos a ver los pasos clave involucrados en la evaluación de modelos de aprendizaje automático, incluyendo la creación de un conjunto de datos de evaluación, la elección de las métricas de evaluación adecuadas, y la identificación y solución de cualquier problema con el modelo antes de que afecten a nuestro servicio.

¿Por qué es importante evaluar los modelos?

Es importante evaluar los modelos de ML para comparar su rendimiento y seleccionar el mejor para una tarea específica. El modelo podría hacer predicciones incorrectas, lo que podría tener consecuencias negativas para nuestro servicio. O podría estar sesgado, por ejemplo, discriminando a ciertos grupos de personas. Además, podría ser costoso computacionalmente, lo que podría afectar al tiempo de respuesta de nuestro servicio.

Es esencial crear un conjunto de datos de evaluación de alta calidad

Con el fin de evaluar un modelo de aprendizaje automático, tenemos que crear un conjunto de datos de alta calidad. En Alice, invertimos mucho en la creación de conjuntos de datos de evaluación que sean representativos de los datos que nuestros modelos verán en producción. Esto nos ayuda a asegurar que nuestros modelos están funcionando tan bien como pueden y que no están sesgados hacia ningún grupo particular de personas o puntos de datos.

Tres pasos principales para crear nuestro conjunto de datos de evaluación

  1. Simulamos lo que ocurrirá más adelante en producción añadiendo muestras reales de producción al conjunto de datos. Esto nos ayuda a garantizar que el modelo funcionará bien con los datos que verá realmente en producción.
  2. También añadimos conjuntos de datos del Estado del Arte (SotA) para obtener un punto de vista más amplio. Esto nos ayuda a comparar el rendimiento de nuestro modelo con el de otros e identificar posibles áreas de mejora.
  3. Por último, capturamos o generamos los datos internos de Alice para abordar los casos extremos ya identificados y no cubiertos por los datos anteriores. Esto nos ayuda a asegurar que el modelo será capaz de manejar todos los escenarios posibles que podría encontrar en la producción.

Siguiendo estos pasos, podemos crear un conjunto de datos de evaluación que sea representativo de los datos que el modelo verá en producción. Esto nos ayuda a asegurarnos de que el modelo funciona lo mejor posible.

Además de crear un conjunto de datos representativo, también intentamos equilibrar las muestras según los datos demográficos de los usuarios (es decir, edad, sexo, etnia). Algunos conjuntos de datos SotA ya incluyen estos atributos como etiquetas. Esto nos ayuda a medir cualquier tipo de posible sesgo en el modelo y a garantizar que sea justo y equitativo.

Las métricas son esenciales para comparar el rendimiento de los modelos de aprendizaje automático

Proporcionan una medida cuantitativa del rendimiento del modelo y pueden utilizarse para identificar el mejor modelo para una tarea concreta. Las métricas SotA, como precisión, recall, ERR, MAP o AUC (en función de la tarea a resolver), pueden utilizarse para obtener una visión general básica pero fiable del rendimiento del modelo.

Además de estas métricas estándar, también podemos desarrollar métricas, gráficos y visualizaciones personalizadas para tareas específicas. Por ejemplo, si estamos construyendo un modelo para detectar fraudes, podemos desarrollar una métrica que mida el número de falsos positivos y falsos negativos.

También realizamos un seguimiento de las métricas por diferentes atributos para identificar cualquier sesgo lo antes posible. Por ejemplo, podemos hacer un seguimiento de la precisión y la recuperación en función de los datos demográficos del usuario para ver si el modelo funciona de forma diferente según el grupo de personas.

Por último, utilizamos MLFlow (entre otros) para almacenar y realizar un seguimiento de las métricas del modelo. MLFlow es un potente marco que nos permite comparar fácilmente el rendimiento de diferentes modelos y visualizar los resultados, aprovechando sus funciones de pyplot, matplotlib y renderización HTML.

histogram
La herramienta de visualización del histograma nos permite inspeccionar el rendimiento del modelo en un conjunto de datos determinado visualizando las imágenes según la puntuación y la etiqueta obtenidas.

Identificación de problemas

Después de ejecutar la evaluación y seleccionar el mejor modelo posible, es importante desplegar el modelo en producción con precaución. En Alice, llevamos a cabo una serie de validaciones antes de que el modelo se despliega para asegurarse de que está funcionando como se esperaba y que no está haciendo ninguna predicción errónea.

En primer lugar, utilizamos algunas herramientas desarrolladas internamente con Streamlit para afirmar que el modelo se comporta como se espera. Estas herramientas nos ayudan a identificar posibles problemas con el modelo, como un ajuste excesivo o insuficiente. También utilizamos estas herramientas para comprobar la solidez del modelo ante distintos tipos de datos de entrada.

En segundo lugar, intentamos engañar y falsificar los modelos en directo. Esto significa que intentamos engañar al modelo para que haga predicciones erróneas. Para ello utilizamos imágenes falsas, herramientas artesanales y otras técnicas. Esto nos ayuda a identificar cualquier vulnerabilidad del modelo que pueda ser aprovechada por los atacantes.

Gracias al sencillo framework de aplicaciones Streamlit, hemos desplegado una aplicación interna que alberga un montón de herramientas para jugar con nuestros modelos, probarlos y visualizar los datos.

Una vez que el equipo ha validado el rendimiento del modelo, éste se despliega en nuestro entorno Staging. Este entorno es una réplica de nuestro servicio de producción, por lo que nos permite probar el modelo en un entorno real. Durante el proceso de despliegue, el modelo tiene que superar una serie de pruebas de extremo a extremo para garantizar que funciona correctamente.

Por último, el equipo realiza otra etapa de validación para asegurarse de que el modelo se integra correctamente y todo funciona sin problemas. Si se detecta algún fallo en cualquier fase, el modelo se devuelve al laboratorio hasta que se soluciona.

Siguiendo estos pasos, podemos ayudar a garantizar que nuestros modelos ML están funcionando como se espera y que no están haciendo ninguna predicción errónea. Esto ayuda a proteger a nuestros usuarios y a nuestro negocio de posibles daños.

Julian.

Si te ha gustado, comparte en