Probando un modelo

Machine Learning de extremo a extremo

Joshua Stapleton

Machine Learning Engineer

Despliegue

  • Siguiente paso en el ciclo de vida de ML
  • Tras el entrenamiento y la evaluación
  • Poner el modelo en producción

Fase de despliegue del ciclo de vida de machine learning

Machine Learning de extremo a extremo

Testing

  • Testing:
    • El modelo no falla
    • Devuelve salidas razonables en inferencia
    • Devuelve salidas en tiempo razonable

Fase de despliegue del ciclo de vida de machine learning

Machine Learning de extremo a extremo

Unittest

  • Testing
    • Señalar eventos anómalos/inesperados
    • Verificar que el modelo rinde como se espera

 

  • unittest
    • Librería estándar de Python para tests
    • Caso de prueba: cubre un tipo de test
    • Método de caso: test único para un aspecto del caso
Machine Learning de extremo a extremo

Uso de unittest

import unittest


class TestModelInference(unittest.TestCase):
def setUp(self): self.model = fitted_model self.X_test = X_test
def test_prediction_output_shape(self): y_pred = self.model.predict(self.X_test) self.assertEqual(y_pred.shape[0], self.X_test.shape[0])
if __name__ == '__main__': unittest.main()
Machine Learning de extremo a extremo

Uso de unittest (cont.)

 

    def test_input_values(self):
        print("Running test_input_values test case")

        # Get inputs (each row in testing set)
        for input in X_test: 
            for value in input:
                # if value is cholestrol, for example:
                self.assertIn(value, [0, 500])
Machine Learning de extremo a extremo

Testing en Python

Machine Learning de extremo a extremo

Qué hacer y qué no en testing

Buenas prácticas

  • NO...
    • Escribir demasiadas pruebas
    • Escribir pruebas redundantes
    • Probar componentes muy fiables

 

  • SÍ...
    • Escribir pruebas para aumentar la fiabilidad
    • Escribir pruebas para verificar/gestionar expectativas
    • Escribir pruebas para nueva funcionalidad
Machine Learning de extremo a extremo

Beneficios del testing

Beneficios del TDD

  • Confianza en el desarrollo
    • Iteración estable
    • Menos preocupación por bugs
  • Rendimiento
    • Fiabilidad
    • Nivel producción
Machine Learning de extremo a extremo

¡Vamos a practicar!

Machine Learning de extremo a extremo

Preparing Video For Download...