Sistemas de AA de producción: Supervisión de canalizaciones

¡Felicitaciones! Implementaste el modelo Unicornio. Tu modelo debería ejecutarse las 24 horas, todos los días, sin ningún problema. Para garantizar que lo haga, debe supervisar su canalización de aprendizaje automático (AA).

Escribe un esquema de datos para validar datos sin procesar

Para supervisar tus datos, debes verificarlos continuamente valores estadísticos escribiendo reglas que los datos deben cumplir. Esta colección de reglas se llama esquema de datos. Define un esquema de datos según estos pasos:

  1. Comprende el rango y la distribución de tus atributos. Para los atributos categóricos atributos, comprenden el conjunto de valores posibles.

  2. Codifica tu comprensión en el esquema de datos. Los siguientes son ejemplos de reglas:

    • Asegúrate de que las calificaciones enviadas por los usuarios estén siempre en el rango del 1 al 5.
    • Comprueba que la palabra el aparezca con mayor frecuencia (para un texto en inglés) (función).
    • Comprobar que se establezca cada atributo categórico en un valor de un conjunto fijo de valores posibles.
  3. Prueba tus datos con el esquema de datos. Tu esquema debería detectar datos errores como los siguientes:

    • Anomalías
    • Valores inesperados de variables categóricas
    • Distribuciones de datos inesperadas

Escribir pruebas de unidades para validar la ingeniería de atributos

Aunque los datos sin procesar pasen el esquema de datos, el modelo no se entrena en datos sin procesar. En cambio, el modelo se entrena con datos en tu diseño. Por ejemplo, tu modelo se entrena con atributos numéricos normalizados en lugar de datos numéricos sin procesar. Debido a que los datos con ingeniería de atributos es diferente de los datos de entrada sin procesar, debes verificar los datos de ingeniería de atributos por separado de las verificaciones de los datos de entrada sin procesar.

Escribe pruebas de unidades en función de tu comprensión de los datos de ingeniería de atributos. Por ejemplo, puedes escribir pruebas de unidades para comprobar condiciones como el lo siguiente:

  • Todos los atributos numéricos se escalan, por ejemplo, entre 0 y 1.
  • Codificación one-hot los vectores solo contienen ceros 1 y N-1.
  • Las distribuciones de datos después de la transformación se ajustan a las expectativas. Por ejemplo, si normalizaste mediante puntuaciones Z, la media de la Las puntuaciones Z deben ser 0.
  • Valores atípicos se controlan, por ejemplo, mediante el escalamiento o recorte.

Verifica las métricas para encontrar porciones de datos importantes

Un conjunto exitoso a veces oculta un subconjunto que no tiene éxito. En otras palabras, un modelo con buenas métricas generales podría hacer predicciones pésimas para en ciertas situaciones. Por ejemplo:

Tu modelo unicornio funciona bien en general, pero funciona mal cuando que hace predicciones para el desierto del Sahara.

Si usted es el tipo de ingeniero satisfecho con un AUC general excelente, entonces es posible que no notes los problemas del modelo en el desierto del Sahara. Si se realiza buenas predicciones para todas las regiones es importante, entonces debe hacer un seguimiento el rendimiento en cada región. Subconjuntos de datos, como el correspondiente al desierto del Sahara, se denominan porciones de datos.

Identifica porciones de datos de interés. Luego, compara las métricas del modelo para estas porciones de datos con las métricas de conjunto de datos completo. Comprueba que tu modelo funcione bien en todas las porciones de datos ayuda a eliminar el sesgo. Consulta Equidad: Evaluar el sesgo para obtener más información.

Usa métricas del mundo real

Las métricas del modelo no necesariamente miden el impacto del modelo en el mundo real. Por ejemplo, cambiar un hiperparámetro puede aumentar el AUC de un modelo, pero cómo ¿el cambio afectó la experiencia del usuario? Para medir el impacto en el mundo real, necesitas para definir métricas independientes. Por ejemplo, podrías encuestar a los usuarios de tu modelo para confirmar que realmente veían un unicornio cuando el modelo predijo que lo harían.

Verifica la desviación entre el entrenamiento y la entrega

Desviación entre el entrenamiento y la entrega significa que los datos de entrada durante el entrenamiento difieren de tus datos de entrada en la entrega. En la siguiente tabla, se describen las hay dos tipos importantes de sesgos:

Tipo Definición Ejemplo Solución
Sesgo de esquema Los datos de entrada de entrenamiento y entrega no se ajustan al mismo esquema. Cambia el formato o la distribución de los datos de deriva mientras el modelo se sigue entrenando con datos antiguos. Usa el mismo esquema para validar los datos de entrenamiento y entrega. Asegúrese de verificar por separado si hay estadísticas no verificadas por tu esquema, como la fracción de valores faltantes
Sesgo de atributos Los datos de ingeniería difieren entre el entrenamiento y la entrega. El código de la ingeniería de atributos difiere entre el entrenamiento y la entrega, para producir diferentes datos de ingeniería. Al igual que con el sesgo de esquema, aplica las mismas reglas estadísticas en el entrenamiento. y la entrega de datos de ingeniería. Hacer un seguimiento del número de atributos sesgados detectados y la proporción de ejemplos sesgados por atributo.

Las causas de la desviación entre el entrenamiento y la entrega pueden ser sutiles. Siempre considera qué datos están disponibles para tu modelo en el momento de la predicción. Durante el entrenamiento, usa solo los atributos que tendrás disponibles cuando entregues.

Ejercicio: Comprueba tus conocimientos

Supongamos que tienes una tienda en línea y quieres predecir cuánto dinero ganarás en un día determinado. Tu objetivo de AA es predecir diariamente ingresos utilizando el número de clientes como una característica.

¿Qué problema podrías encontrar?
Haz clic aquí para ver la respuesta

Verifica si hay filtración en las etiquetas

La filtración de etiquetas indica que las etiquetas de verdad fundamental que que intenta predecir han ingresado sin querer a sus atributos de entrenamiento. Etiqueta a veces es muy difícil de detectar.

Ejercicio: Comprueba tus conocimientos

Supongamos que compilas un modelo de clasificación binaria para predecir si un paciente nuevo del hospital tiene cáncer. Tu modelo usa funciones como las siguientes:

  • Edad del paciente
  • Género del paciente
  • Afecciones médicas previas
  • Nombre del hospital
  • Signos vitales
  • Resultados de la prueba
  • Herencia

La etiqueta es la siguiente:

  • Booleano: ¿El paciente tiene cáncer?

Particionar los datos con cuidado y asegurarse de que su conjunto de entrenamiento aisladas del conjunto de validación y del conjunto de prueba. El modelo realiza muy bien en el conjunto de validación y el de prueba; las métricas están fantástico. Desafortunadamente, el rendimiento del modelo es pésimo en pacientes nuevos. en el mundo real.

¿Por qué este modelo que se sobresalió en el conjunto de prueba falló por completo? en el mundo real?
Haz clic aquí para ver la respuesta

Supervisa la antigüedad del modelo durante la canalización

Si los datos de entrega evolucionan con el tiempo, pero tu modelo no se vuelve a entrenar con regularidad, verás una disminución en la calidad del modelo. Hacer un seguimiento del tiempo desde que se usó el modelo volver a entrenar con datos nuevos y establecer un umbral de antigüedad para las alertas. Además de supervisar la antigüedad del modelo al momento de la entrega, debes supervisar su antigüedad a lo largo de la canalización para detectar bloqueos en las canalizaciones.

Probar que los pesos y los resultados del modelo sean estables numéricamente

Durante el entrenamiento del modelo, las salidas de las capas y los pesos no deben ser NaN. (no es un número) o Inf (infinito). Escribe pruebas para comprobar los valores NaN e Inf de los pesos y los resultados de las capas. Además, comprueba que más de la mitad de los resultados de una capa no sean cero.

Supervisa el rendimiento del modelo

Tu predictor de la apariencia de unicornio es más popular de lo esperado. Eres obtener muchas solicitudes de predicción y más datos de entrenamiento. Crees que Hasta que te des cuenta de que tu modelo está ocupando cada vez más memoria y el tiempo de entrenamiento. Decides supervisar el rendimiento de tu modelo siguiendo estos pasos:

  • Realiza un seguimiento del rendimiento del modelo por versiones de código, modelo y datos. Este tipo de seguimiento te permite identificar la causa exacta de cualquier degradación del rendimiento.
  • Prueba los pasos de entrenamiento por segundo para una nueva versión del modelo a la versión anterior y con un umbral fijo.
  • Detecta fugas de memoria configurando un umbral de uso de memoria.
  • Supervisa los tiempos de respuesta de la API y realiza un seguimiento de sus percentiles. Mientras la API responde es posible que algunas veces estés fuera de tu control, por lo que las respuestas lentas podrían causar métricas deficientes del mundo real.
  • Supervisa la cantidad de consultas respondidas por segundo.

Prueba la calidad del modelo en vivo con los datos entregados

Validaste el modelo. Pero ¿qué sucede si los escenarios del mundo real, como el comportamiento después de registrar los datos de validación? Entonces, la calidad de tu el modelo de entrega se degradará. Sin embargo, es difícil evaluar la calidad en la publicación porque los datos del mundo real no siempre están etiquetados. Si tus datos de entrega no están etiquetados, considera estas pruebas:

  • Genera etiquetas con evaluadores manuales.

  • Investigar modelos que muestren sesgos estadísticos significativos en las predicciones. Consulta Clasificación: Predicción Sesgo.

  • Realiza un seguimiento de las métricas del mundo real para tu modelo. Por ejemplo, si clasificas spam, compara tus predicciones con el spam denunciado por los usuarios.

  • Mitiga la posible divergencia entre los datos de entrenamiento y los de entrega y entregar una nueva versión del modelo en una fracción de tus consultas. Durante la validación en tu nuevo modelo de entrega, cambian gradualmente todas las consultas a la versión nueva.

Cuando uses estas pruebas, recuerda supervisar la degradación repentina y lenta y la calidad de la predicción.

Aleatorización

Hacer que tu canalización de generación de datos sea reproducible Supongamos que quieres agregar una función. para ver cómo influye en la calidad del modelo. Para que un experimento sea justo, tus conjuntos de datos deben serán idénticas, excepto por esta nueva función. Con ese espíritu, asegúrate de que se pueda hacer cualquier aleatorización en la generación de datos determinísticos:

  • Establece los generadores de números al azar (RNG). La propagación garantiza que el RNG genera los mismos valores en el mismo orden cada vez que lo ejecutas, con lo que tu conjunto de datos.
  • Usa claves hash invariantes. El hash es una forma común de dividir o datos de muestra. Puedes generar un hash en cada ejemplo y usar el número entero resultante para decidir en qué división colocará el ejemplo. Las entradas a tu función hash no debería cambiar cada vez que ejecutes el programa de generación de datos. No uses el la hora actual o un número al azar en tu hash, por ejemplo, si quieres recrear tus hashes a pedido.

Los enfoques anteriores se aplican al muestreo y a la división de tus datos.

Consideraciones para la codificación hash

Supongamos, una vez más, que estás recopilando búsquedas y usando la codificación hash para incluir o excluir búsquedas. Si la clave hash solo usó la consulta, Luego, a lo largo de varios días de datos, siempre incluirás esa consulta o siempre la excluirá. Incluye o excluye siempre una consulta es mala por los siguientes motivos:

  • Tu conjunto de entrenamiento verá un conjunto de consultas menos diverso.
  • Tus conjuntos de evaluación serán artificialmente difíciles, porque no se superponen con tus datos de entrenamiento. En realidad, al momento de la entrega, vieron parte del tráfico en vivo en tus datos de entrenamiento, por lo que la evaluación debe reflejar eso.

En su lugar, puedes generar un hash en la consulta y la fecha, lo que generaría un hash diferente. todos los días.

 

Figura 7: Visualización animada que muestra cómo generar un hash solo en el
            esta consulta hace que los datos ingresen en el mismo bucket todos los días, pero
            más el tiempo de la consulta hace que los datos pasen a ser
            de buckets por día. Los tres buckets son Entrenamiento, Evaluación y
            Ignorado
Figura 7: Hash en la consulta frente a hash en la consulta + el tiempo de consulta.