Sistemas de AA de producción: Pruebas de implementación

Está todo listo para implementar el modelo del unicornio que predice su apariencia. Cuando realices una implementación, tu canalización de aprendizaje automático (AA) publicar sin problemas. Si tan solo implementar un modelo fuera tan fácil como presionar un gran botón Implementar. Desafortunadamente, un sistema de aprendizaje automático completo requiere pruebas para lo siguiente:

  • Validar los datos de entrada
  • Validar la ingeniería de atributos
  • Validar la calidad de las versiones nuevas del modelo
  • Validar la infraestructura de entrega
  • Evaluar la integración entre componentes de canalización

Muchos ingenieros de software prefieren el desarrollo basado en pruebas (TDD). En el TDD, el software ingenieros escriben pruebas antes de escribir código fuente. Sin embargo, el TDD puede ser complicado en el aprendizaje automático. Por ejemplo, antes de entrenar tu modelo, no puedes escribir una prueba para validarlo la pérdida. En cambio, primero debe descubrir la pérdida alcanzable durante el modelado y, luego, probar nuevas versiones del modelo con la pérdida alcanzable.

Acerca del modelo unicornio

En esta sección, se hace referencia al modelo Unicornio. Tenga en cuenta lo siguiente:

Usas el aprendizaje automático para compilar un modelo de clasificación que predice de unicornio. Tu conjunto de datos detalla 10,000 apariciones de unicornio y 10,000 no-apariciones de unicornio El conjunto de datos contiene la ubicación, hora del día, elevación, temperatura, humedad, cobertura arbórea, presencia de una arcoíris y muchas otras características.

Prueba las actualizaciones de modelos con entrenamiento reproducible

Tal vez quieras seguir mejorando tu modelo unicornio. Por ejemplo, supongamos hace un poco de ingeniería de atributos adicional en un atributo específico y, luego, volver a entrenarlo con la esperanza de obtener mejores resultados (o al menos los mismos). Desafortunadamente, a veces es difícil reproducir el entrenamiento de modelos. Para mejorar la reproducibilidad, sigue estas recomendaciones:

  • Propaga el generador de números al azar de manera determinista. Para obtener más detalles, consulta aleatorización en los datos. generación

  • Inicializa los componentes del modelo en un orden fijo para asegurarte de que los componentes obtengan el el mismo número aleatorio del generador en cada ejecución. Por lo general, las bibliotecas de AA controlan este requisito automáticamente.

  • Toma el promedio de varias ejecuciones del modelo.

  • Usa el control de versión, incluso para iteraciones preliminares, para poder detectar el código y los parámetros cuando investigues tu modelo o canalización.

Incluso después de seguir estas pautas, otras fuentes de no determinismo podrían todavía existen.

Llamadas de prueba a la API de aprendizaje automático

¿Cómo se prueban las actualizaciones de las llamadas a la API? Podrías volver a entrenar tu modelo, pero que lleva mucho tiempo. En su lugar, escribe una prueba de unidades para generar datos de entrada aleatorios y ejecutar un solo paso de descenso de gradientes. Si este paso se completa sin es probable que ninguna actualización de la API haya arruinado tu modelo.

Escribe pruebas de integración para componentes de canalizaciones

En una canalización de AA, los cambios en un componente pueden causar errores en otros o los componentes de la solución. Comprueba que los componentes funcionen juntos escribiendo un prueba de integración que ejecute toda la canalización de extremo a extremo.

Además de ejecutar pruebas de integración continuamente, debes ejecutar pruebas de integración. cuando se envían modelos y versiones de software nuevos. La lentitud en la ejecución del toda la canalización dificulta las pruebas de integración continua. Ejecutar la integración prueban más rápido, se entrenan con un subconjunto de datos o con un modelo más simple. Los detalles dependen de tu modelo y tus datos. Para obtener cobertura continua, debes ajustar tu y realizar pruebas más rápidas para que se ejecuten con cada versión nueva del software. Mientras tanto, las pruebas lentas se ejecutarían continuamente en segundo plano.

Valida la calidad del modelo antes de la entrega

Antes de enviar una nueva versión del modelo a producción, prueba estos dos tipos de degradaciones de la calidad:

  • Degradación repentina. Un error en la nueva versión podría causar un problema de menor calidad. Verifica la calidad de las versiones nuevas para validarlas. en comparación con la versión anterior.

  • Degradación lenta. Es posible que la prueba de degradación repentina no detecte una en la calidad del modelo en múltiples versiones. En cambio, asegúrate de que tus predicciones del modelo en un conjunto de datos de validación alcanzan un umbral fijo. Si el el conjunto de datos de validación se desvía de los datos en vivo y, luego, actualiza conjunto de datos y garantizar que tu modelo siga cumpliendo con el mismo umbral de calidad.

Valida la compatibilidad del modelo con la infraestructura antes de la entrega

Si tu modelo se actualiza más rápido que el servidor, es posible que diferentes dependencias de software del servidor, lo que puede causar incompatibilidades. Asegúrate de que las operaciones que usa el modelo estén presentes en el servidor realizando una etapa de pruebas del modelo en una versión de zona de pruebas del servidor.