¿Cómo se puede comprobar de forma sistemática si hay training-serving skew en un sistema en vivo?
Opciones
- Comparando la pérdida de entrenamiento con la de validación
- Revisando el tamaño de la imagen Docker
- Aumentando el número de réplicas
- Registrando las features exactas que recibe el modelo en producción y comparándolas con las mismas features recalculadas offline, o con las distribuciones del entrenamiento (Opción correcta)
Respuesta
Registrando las features exactas que recibe el modelo en producción y comparándolas con las mismas features recalculadas offline, o con las distribuciones del entrenamiento
Por qué
Skew significa que el modelo recibe en producción entradas distintas de las que le dio el pipeline al entrenar. La forma de verlo es mirar lo que realmente recibe.
Registrar las features del servicio (con muestreo) permite compararlas con un recálculo offline para las mismas peticiones, lo que encuentra diferencias de código, o con las estadísticas del entrenamiento, lo que encuentra valores que faltan, unidades o codificaciones que cambiaron.
La mejor prevención es ejecutar el mismo código de features en ambos sitios.
Recuerda
Registra las features del servicio y compáralas con las offline.