Descripción general de la supervisión de modelos
En este documento, se describe cómo BigQuery ML admite la supervisión de modelos de aprendizaje automático (AA) a través de la evaluación y comparación de los datos que usa un modelo. Esto incluye comparar los datos de entrega de un modelo con los datos de entrenamiento y los datos de entrega nuevos con los datos de entrega usados antes.
Comprender los datos que usan tus modelos es un aspecto crítico del AA, ya que estos datos afectan el rendimiento del modelo. Comprender cualquier variación entre los datos de entrenamiento y de entrega es muy importante para garantizar que los modelos permanezcan precisos con el tiempo. Un modelo tiene un mejor rendimiento en la entrega de datos que son similares a los datos de entrenamiento. Cuando los datos de entrada difieren de los datos que se usan para entrenar el modelo, el rendimiento del modelo puede disminuir, incluso si el modelo en sí no cambió.
BigQuery ML proporciona funciones para ayudarte a analizar los datos de entrenamiento y entrega para el sesgo de datos y el desvío de datos:
- Ocurre un sesgo de datos cuando la distribución de los valores de atributos para los datos de entrenamiento es muy diferente de la entrega de datos en producción. Las estadísticas de entrenamiento del modelo se guardan durante el entrenamiento del modelo, por lo que los datos de entrenamiento originales no son necesarios para que uses la detección de sesgo.
- El desvío de datos ocurre cuando la distribución de datos de atributos en la producción cambia de manera significativa con el tiempo. La detección de desvío es compatible con intervalos de datos consecutivos, por ejemplo, entre diferentes días de entrega de datos. Esto te permite recibir notificaciones si los datos de entrega cambian con el tiempo, antes de que los conjuntos de datos divergen demasiado como para volver a entrenar el modelo.
Usa las siguientes funciones para supervisar modelos en BigQuery ML:
ML.DESCRIBE_DATA
: calcula estadísticas descriptivas para un conjunto de datos de entrenamiento o entrega.ML.VALIDATE_DATA_SKEW
: calcula las estadísticas de un conjunto de datos de entrega y, luego, compáralas con las estadísticas de 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 atributos en los datos de entrega que coinciden con las columnas de atributos en los datos de entrenamiento, para lograr un mejor rendimiento y un menor costo.ML.VALIDATE_DATA_DRIFT
: calcula y compara las estadísticas de dos conjuntos de datos de entrega para identificar las diferencias anómalas entre los dos conjuntos de datos.ML.TFDV_DESCRIBE
: calcula estadísticas descriptivas detalladas para un conjunto de datos de entrenamiento o entrega. Esta función proporciona el mismo comportamiento que la API detfdv.generate_statistics_from_csv
de TensorFlow.ML.TFDV_VALIDATE
: compara las estadísticas de las estadísticas de datos de entrenamiento y entrega, o dos conjuntos de estadísticas de datos de entrega, para identificar las diferencias anómalas entre los dos conjuntos de datos. Esta función proporciona el mismo comportamiento que la API devalidate_statistics
de TensorFlow.
Supervisa casos de uso
En esta sección, se describe cómo usar las funciones de supervisión de modelos de BigQuery ML en casos de uso comunes de supervisión.
Supervisión básica del sesgo de datos
Este caso de uso es adecuado cuando deseas desarrollar y supervisar con rapidez un modelo en busca de sesgo de datos y no necesitas estadísticas de sesgo detalladas para integrarlas en una solución de supervisión existente.
Los pasos típicos para este caso de uso son los siguientes:
- Ejecuta la función
ML.DESCRIBE_DATA
en tus datos de entrenamiento y entrega para asegurarte de que ambos conjuntos de datos se comparen de manera adecuada entre sí y estén dentro de los parámetros esperados. - Crea un modelo de BigQuery ML y entrena en los datos de entrenamiento.
- Ejecuta la función
ML.VALIDATE_DATA_SKEW
para comparar las estadísticas de datos de entrega con las estadísticas de datos de entrenamiento que se calcularon durante la creación del modelo para ver si hay sesgo de datos. - Si hay sesgo de datos, investiga la causa raíz, ajusta los datos de entrenamiento de forma adecuada y, luego, vuelve a entrenar el modelo.
Supervisión básica de desvío de datos
Este caso de uso es adecuado cuando deseas desarrollar y supervisar un modelo con rapidez para detectar desvíos de datos y no necesitas estadísticas de desvío detalladas para integrarlas en una solución de supervisión existente.
Los pasos típicos para este caso de uso son los siguientes:
- Ejecuta la función
ML.DESCRIBE_DATA
en tus datos de entrenamiento y entrega para asegurarte de que ambos conjuntos de datos se comparen de manera adecuada entre sí y estén dentro de los parámetros esperados. - Crea un modelo de BigQuery ML y entrena en los datos de entrenamiento.
- Ejecuta la función
ML.VALIDATE_DATA_DRIFT
para comparar las estadísticas de dos conjuntos de datos de entrega diferentes para ver si hay algún desvío de datos. Por ejemplo, es posible que desees comparar los datos de entrega actuales con los datos de entrega históricos de una instantánea de tabla o con las funciones entregadas en un momento determinado, lo que puedes obtener mediante la funciónML.FEATURES_AT_TIME
. - Si hay un desvío de datos, investiga la causa raíz, ajusta los datos de entrenamiento de forma adecuada y, luego, vuelve a entrenar el modelo.
Supervisión avanzada de desvío o sesgo de datos
Este caso de uso es adecuado cuando deseas que estadísticas de desvío o sesgos detalladas se integren en una solución de supervisión existente o para otros fines.
Los pasos típicos para este caso de uso son los siguientes:
- Ejecuta la función
ML.TFDV_DESCRIBE
en los datos de entrenamiento y entrega a intervalos adecuados para tu solución de supervisión y guarda los resultados de la consulta. Este paso te permite comparar datos de entrega futuros con datos de entrenamiento y entrega de puntos pasados en el tiempo. Ejecuta la función
ML.TFDV_VALIDATE
en las estadísticas de datos de entrenamiento y entrega, o en dos conjuntos de estadísticas de datos de entrega, para evaluar el sesgo de datos o el desvío de atributos, respectivamente. Los datos de entrenamiento y entrega se deben proporcionar como un búfer de protocoloDatasetFeatureStatisticsList
de TensorFlow en formato JSON. Puedes generar un búfer de protocolo en el formato correcto si ejecutas la funciónML.TFDV_DESCRIBE
o puedes cargarlo desde fuera de BigQuery. En el siguiente ejemplo, se muestra cómo evaluar el sesgo de atributos:DECLARE stats1 JSON; DECLARE stats2 JSON; SET stats1 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`) ); SET stats2 = ( SELECT * 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 un desvío de datos, investiga la causa raíz, ajusta los datos de entrenamiento de forma adecuada y, luego, vuelve a entrenar el modelo.
Automatización de la supervisión
Puedes automatizar la supervisión mediante una consulta programada para ejecutar la función de supervisió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 que muestra cómo automatizar la función ML.VALIDATE_DATA_SKEW
, consulta Automatiza la detección de sesgo.