Descripción general de la monitorización de modelos
En este documento se describe cómo BigQuery ML admite la monitorización de modelos de aprendizaje automático (ML) mediante la evaluación y la comparación de los datos que utiliza un modelo. Esto incluye comparar los datos de servicio de un modelo con sus datos de entrenamiento y comparar los datos de servicio nuevos con los datos de servicio utilizados anteriormente.
Conocer los datos que usan tus modelos es un aspecto fundamental del aprendizaje automático, ya que estos datos afectan al rendimiento del modelo. Es especialmente importante que conozcas las variaciones entre los datos de entrenamiento y los de servicio para asegurarte de que tus modelos sigan siendo precisos con el tiempo. Un modelo funciona mejor con datos de servicio que son similares a los datos de entrenamiento. Cuando los datos de servicio se desvían de los datos utilizados para entrenar el modelo, el rendimiento de este puede deteriorarse, aunque el modelo en sí no haya cambiado.
BigQuery ML proporciona funciones que te ayudan a analizar los datos de entrenamiento y de servicio para detectar sesgos y desviaciones en los datos:
- La asimetría de datos se produce cuando la distribución de los valores de las características de los datos de entrenamiento es significativamente diferente de los datos de servicio en producción. Las estadísticas de entrenamiento del modelo se guardan durante el entrenamiento del modelo, por lo que no necesitas los datos de entrenamiento originales para usar la detección de sesgos.
- La desviación de datos se produce cuando la distribución de los datos de las características en producción cambia significativamente con el tiempo. La detección de desviaciones se admite en intervalos de datos consecutivos, por ejemplo, entre diferentes días de datos de servicio. De esta forma, puedes recibir notificaciones si los datos de servicio cambian con el tiempo, antes de que los conjuntos de datos difieran demasiado para volver a entrenar el modelo.
Usa las siguientes funciones para monitorizar modelos en BigQuery ML:
ML.DESCRIBE_DATA
: calcula estadísticas descriptivas de un conjunto de datos de entrenamiento o de servicio.ML.VALIDATE_DATA_SKEW
: calcula las estadísticas de un conjunto de datos de servicio y, a continuación, compáralas con las estadísticas de los datos de entrenamiento que se calcularon cuando se entrenó un modelo de BigQuery ML para identificar diferencias anómalas entre los dos conjuntos de datos. Las estadísticas solo se calculan para las columnas de características de los datos de servicio que coinciden con las columnas de características de los datos de entrenamiento, con el fin de mejorar el rendimiento y reducir los costes.ML.VALIDATE_DATA_DRIFT
: calcula y compara las estadísticas de dos conjuntos de datos de servicio para identificar diferencias anómalas entre ellos.ML.TFDV_DESCRIBE
: calcula estadísticas descriptivas detalladas de un conjunto de datos de entrenamiento o de servicio. Esta función proporciona el mismo comportamiento que la APItfdv.generate_statistics_from_csv
de TensorFlow.ML.TFDV_VALIDATE
: compara las estadísticas de los datos de entrenamiento y de servicio, o dos conjuntos de estadísticas de datos de servicio, para identificar diferencias anómalas entre los dos conjuntos de datos. Esta función se comporta igual que la APIvalidate_statistics
de TensorFlow.
Monitorizar casos prácticos
En esta sección se describe cómo usar las funciones de monitorización de modelos de BigQuery ML en casos prácticos de monitorización habituales.
Monitorización básica del sesgo de datos
Este caso práctico es adecuado cuando quieres desarrollar y monitorizar rápidamente un modelo para la asimetría de datos y no necesitas estadísticas de asimetría detalladas para integrarlas con una solución de monitorización.
Los pasos habituales para este caso práctico son los siguientes:
- Ejecuta la función
ML.DESCRIBE_DATA
en tus datos de entrenamiento y de servicio para asegurarte de que ambos conjuntos de datos se comparan correctamente entre sí y se encuentran dentro de los parámetros esperados. - Crea un modelo de BigQuery ML y entrénalo con los datos de entrenamiento.
- Ejecuta la función
ML.VALIDATE_DATA_SKEW
para comparar las estadísticas de los datos de servicio con las estadísticas de los datos de entrenamiento que se calcularon durante la creación del modelo. De esta forma, podrás ver si hay alguna desviación de los datos. - Si hay un sesgo en los datos, investiga la causa principal, ajusta los datos de entrenamiento según corresponda y vuelve a entrenar el modelo.
Monitorización básica de la deriva de datos
Este caso práctico es adecuado cuando quieres desarrollar y monitorizar rápidamente un modelo de deriva de datos y no necesitas estadísticas de deriva detalladas para integrarlo con una solución de monitorización.
Los pasos habituales para este caso práctico son los siguientes:
- Ejecuta la función
ML.DESCRIBE_DATA
en tus datos de entrenamiento y de publicación para asegurarte de que ambos conjuntos de datos se comparan correctamente entre sí y se encuentran dentro de los parámetros esperados. - Crea un modelo de BigQuery ML y entrénalo con los datos de entrenamiento.
- Ejecuta la función
ML.VALIDATE_DATA_DRIFT
para comparar las estadísticas de dos conjuntos de datos de servicio diferentes y ver si hay alguna deriva de datos. Por ejemplo, puede comparar los datos de servicio actuales con los datos de servicio históricos de una instantánea de tabla o con las funciones que se han servido en un momento concreto, que puede obtener mediante la funciónML.FEATURES_AT_TIME
. - Si hay una deriva de datos, investiga la causa principal, ajusta los datos de entrenamiento según corresponda y vuelve a entrenar el modelo.
Monitorización avanzada del sesgo o la deriva de los datos
Este caso de uso es adecuado cuando quieres estadísticas detalladas de sesgo o deriva para integrarlas en una solución de monitorización o para otros fines.
Los pasos habituales para este caso práctico son los siguientes:
- Ejecuta la función
ML.TFDV_DESCRIBE
en tus datos de entrenamiento y de servicio a intervalos adecuados para tu solución de monitorización y guarda los resultados de la consulta. Este paso te permite comparar los datos de servicio futuros con los datos de entrenamiento y de servicio de momentos anteriores. Ejecuta la función
ML.TFDV_VALIDATE
en las estadísticas de tus datos de entrenamiento y publicación, o en dos conjuntos de estadísticas de datos de publicación, para evaluar la asimetría de los datos o la deriva de las características, respectivamente. Los datos de entrenamiento y de servicio deben proporcionarse como unDatasetFeatureStatisticsList
búfer de protocolo de TensorFlow en formato JSON. Puedes generar un búfer de protocolo en el formato correcto ejecutando la funciónML.TFDV_DESCRIBE
o cargarlo desde fuera de BigQuery. En el siguiente ejemplo se muestra cómo evaluar la desviación de las características:DECLARE stats1 JSON; DECLARE stats2 JSON; SET stats1 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`) ); SET stats2 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`) ); SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW'); INSERT `myproject.mydataset.serve_stats` (t, dataset_feature_statistics_list) SELECT CURRENT_TIMESTAMP() AS t, stats1;
Si hay un sesgo o una deriva de los datos, investiga la causa principal, ajusta los datos de entrenamiento según corresponda y vuelve a entrenar el modelo.
Visualización de la monitorización
Algunas funciones de monitorización ofrecen integración con Vertex AI Model Monitoring, de forma que puedes usar gráficos para analizar la salida de la función de monitorización de modelos.
Usar las visualizaciones de Vertex AI ofrece las siguientes ventajas:
- Visualizaciones interactivas: consulta las distribuciones de datos, las métricas de sesgo y las métricas de deriva mediante gráficos en la consola de Vertex AI.
- Análisis histórico: monitoriza los resultados de los modelos a lo largo del tiempo mediante las visualizaciones de Vertex AI. De esta forma, puede identificar tendencias y patrones en los cambios de datos para actualizar y mantener los modelos de forma proactiva.
- Gestión centralizada: gestiona la monitorización de todos los modelos de BigQuery ML y Vertex AI en el panel de control unificado de Vertex AI.
Puedes habilitar la visualización del resultado de la función ML.VALIDATE_DATA_DRIFT
mediante el argumento MODEL
de esa función. Puedes habilitar la visualización del resultado de la función ML.VALIDATE_DATA_SKEW
mediante el argumento enable_visualization_link
de esa función.
Solo puedes usar la visualización de la monitorización con modelos que estén registrados en Vertex AI. Puedes registrar un modelo que ya tengas con la instrucción ALTER MODEL
.
Automatización de la monitorización
Puedes automatizar la monitorización mediante una consulta programada para ejecutar la función de monitorización, evaluar el resultado y volver a entrenar el modelo si se detectan anomalías. Debes habilitar las notificaciones por correo electrónico como parte de la configuración de la consulta programada.
Para ver un ejemplo de cómo automatizar la función ML.VALIDATE_DATA_SKEW
, consulta Automatizar la detección de sesgos.
Siguientes pasos
Para obtener más información sobre las instrucciones y funciones de SQL admitidas en los modelos de aprendizaje automático, consulta el artículo Recorrido completo del usuario para los modelos de aprendizaje automático.