Mas leido
Building Stories
Modo Rua: Redefiniendo el desarrollo de aplicaciones mediante iteración centrada en el usuario Ago 23
Building Stories
NuStories: Adaptación de productos para clientes fanáticos en varios países Oct 30
Culture & Values
Cómo los valores y la cultura de Nu dan forma a los productos que creamos Ago 7
Carreras
Reunimos a grandes mentes de diversos orígenes que permiten la discusión y el debate y mejoran la resolución de problemas.
Conoce más sobre nuestras carreras



Esta publicación fue revisada por: Luis Moneda, Gabriela Mourao y Cristiano Breuel.
Los modelos de aprendizaje automático (ML) son piezas de software muy sensibles; su uso exitoso necesita un seguimiento cuidadoso para garantizar que funcionan correctamente.
Esto es especialmente cierto cuando las decisiones comerciales se toman automáticamente utilizando los resultados de dichos modelos. Esto significa que los modelos defectuosos muy a menudo tendrán un impacto real en la experiencia del cliente final.
Los modelos son tan buenos como los datos que consumen, por lo que monitorear los datos de entrada (y los resultados) es crítico para que el modelo cumpla su objetivo real: ser útil para impulsar buenas decisiones y ayudar a la empresa a alcanzar sus objetivos.
A continuación se incluyen un par de consejos prácticos e independientes del marco que puedes utilizar para tener una estrategia de monitoreo más sólida al utilizar modelos de aprendizaje automático en producción.
(Muchos consejos se superponen entre sí; esto se debe a que se supone que deben usarse como parte de una estrategia integrada, no como soluciones únicas)
Los promedios no cuentan la historia completa
Descubre las oportunidades
Contexto
Tu monitoreas los valores promedio de las características numéricas en los modelos que utilizas. Haces esto porque deseas detectar problemas de datos, comprender cuándo y si las distribuciones de características y etiquetas cambian, etc.
Afirmación
El monitoreo del valor promedio no te cuenta la historia completa porque implica un par de suposiciones que no necesariamente coinciden con la realidad. Por ejemplo:
En resumen, puede haber un problema que afecte tus datos de manera grave, pero es posible que los valores promedio de las funciones no se muevan en absoluto, por lo que debes incluir otros ángulos además de este.
Sugerencias
Las Capas de Políticas/Decisiones requieren monitoreo adicional
Contexto
El modelo se utiliza para tomar decisiones (denegar/aprobar préstamos, mostrar/no mostrar un anuncio, etc.) utilizando algún tipo de política.
Tu monitoreas los modelos desde una perspectiva técnica (valores de características, precisión, exactitud, etc.) pero no es obvio qué decisiones se toman a partir de eso (esta es la capa de política/decisión).
Afirmación
No basta con monitorear los modelos desde una perspectiva técnica porque esto no deja claro a otras partes interesadas cómo se está viendo afectado el negocio.
También debes monitorear las decisiones tomadas utilizando el modelo para asegurarte de que el modelo entregue el valor comercial esperado.
Sugerencias
Divide el monitoreo en subpoblaciones para obtener mejores conocimientos
Contexto
Tú eres responsable de mantener los modelos de aprendizaje automático más utilizados que se emplean para calificar muchos ejemplos individuales diariamente.
Tú monitoreas características/puntuaciones a través de paneles y hay varios patrones ″interesantes″ que deseas investigar, pero generalmente lleva mucho tiempo rastrear las razones de estos problemas.
Afirmación
Una forma de facilitar la comprensión de los datos y/o los problemas del modelo es dividir los datos de monitoreo en subpoblaciones (subconjuntos de datos que el modelo califica) y monitorearlos por separado.
La razón de esto es que muchos problemas de datos tienen un impacto crítico en algunos subconjuntos de ejemplos, pero pueden “desaparecer” porque su impacto absoluto no es suficiente para sentirse cuando se observan los valores agregados en todo el conjunto de datos.
Sugerencias
La codificación de funciones adecuada facilita el seguimiento
Contexto
Las características utilizadas en los modelos a menudo se preprocesan o codifican para permitir su uso en algunos clasificadores.
A veces, esto es un problema porque es difícil monitorear visualmente o mediante programación, características complejas y cuidadosamente diseñadas que no son inmediatamente obvias a primera vista.
Afirmación
Al codificar (o decodificar) las funciones con cuidado, puedes facilitar el seguimiento. Esto se debe a que la mayoría de los marcos de seguimiento son más adecuados para valores numéricos y valores categóricos. Si utilizas diferentes tipos de funciones (por ejemplo, incrustaciones de palabras, coordenadas de geolocalización), es posible que desees decodificarlas (por ejemplo, en cadenas y nombres de ciudades, respectivamente) para poder analizarlas más fácilmente en informes y gráficos.
Además, probablemente quieras monitorear los valores originales (no preprocesados, no codificados), porque esto facilita la comunicación con otros equipos y la solución de problemas cuando surgen.
Sugerencias
La consistencia reduce la carga mental del monitoreo
Contexto
Tú eres responsable de mantener/operar uno o más modelos de aprendizaje automático, cada uno de los cuales tiene varias características, se utiliza de distintas maneras, etc.
Se están generando varios paneles e informes, pero el gran esfuerzo requerido para revisarlos es demasiado alto y lleva mucho tiempo.
Afirmación
Es posible reducir la carga cognitiva y el tiempo necesario para revisar paneles e informes de seguimiento.
Una forma de hacerlo es promover la consistencia y la estandarización, de modo que los costos de cambio de contexto se minimicen y su equipo pueda ser más eficiente y efectivo.
Sugerencias
Monitorea trabajos/rutinas de monitoreo en sí (meta-monitoreo)
Contexto
Utiliza rutinas auxiliares, trabajos por lotes o scripts ad hoc para procesar los datos de registro del modelo. Estas rutinas se utilizan para analizar las características y puntuaciones del modelo y generar valores agregados. También utiliza estas herramientas para generar alertas bajo determinadas condiciones.
Afirmación
Los trabajos por lotes/rutinas de monitoreo de modelos son solo otra pieza de software y, por lo general, dejan de funcionar de vez en cuando (alguien cambió el nombre de una tabla y el script se rompe, sus credenciales expiraron, etc.).
Si cuentas con trabajos/rutinas/scripts de monitoreo para ejecutarse y señalar condiciones problemáticas, la ausencia de alertas puede llevarte a pensar que todo está bien cuando en realidad los trabajos de monitoreo simplemente no se ejecutaron o hubo algún problema con ellos.
Debes monitorear los propios trabajos de monitoreo para protegerte contra esto (metasupervisión).
Sugerencias
Patrones para el seguimiento de lotes
Contexto
Tienes trabajos por lotes que analizan los datos de registro del modelo y calculan los agregados de ellos (valor promedio de las características cada día, puntajes promedio, etc.), pero alguien necesita ver los datos para ver si todo está bien.
Afirmación
Es fácil crear informes de seguimiento que se ignoran porque nadie ha tenido tiempo de ir activamente al panel/cuadernos y ver los resultados. A continuación se muestran algunas formas de hacerlos más útiles y eficientes.
Sugerencias
Sólo modelos en tiempo real: Monitoreo de Sesgo de Entrenamiento/Entrega
Contexto
Los modelos utilizados para hacer inferencias en tiempo real generalmente se entrenan a partir de datos históricos recuperados de una base de datos, por lotes.
Esto crea el riesgo de que la ruta de datos utilizada para el entrenamiento no coincida exactamente con la ruta de datos utilizada para la inferencia (normalmente llamadas HTTP a servicios externos para obtener funciones). Esto se llama sesgo de entrenamiento/entrega.
Afirmación
Sesgo de entrenamiento/entrega es un riesgo importante que debes considerar al implementar modelos en tiempo real.. Esto debe ser monitoreado continuamente, mientras el modelo esté en uso.
Las causas más comunes de discrepancias aquí son cambios en los servicios externos de los que depende el modelo para recuperar datos de características en tiempo real.
Sugerencias
Sólo modelos en tiempo real: Patrones de alerta
Ahora tenemos una publicación dedicada a este tema: Mejores Prácticas para el Aprendizaje Automático en tiempo Real: Alertas
Contexto
Has creado algunas alertas en tiempo real (correos electrónicos, mensajes flojos, notificaciones push móviles, etc.) para avisarte cuando el modelo se comporta de manera inesperada, como valores de características extraños, características faltantes, puntuaciones demasiado altas o demasiado bajas, etc.
Afirmación
Es bastante fácil terminar con alertas que son demasiado ruidosas (se activan muy a menudo y la gente ya no las toma en serio) o nada sensibles (nunca se activan, incluso cuando deberían).
Debes intentar que las alertas sean relevantes y fáciles de actuar (incluye suficiente información para que las personas puedan saber rápidamente si la alerta indica un problema real).
Sugerencias
Conclusión
Estos son un par de consejos que consideramos útiles para monitorear varios modelos de ML aquí en Nubank.
Se utilizan en una variedad de contextos comerciales (crédito, fraude, CX, operaciones, etc.) y creemos que son lo suficientemente generales como para ser aplicables también en otras empresas.
Descubre las oportunidades