Een model testen

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Deployment

  • Volgende stap in de ML-levenscyclus
  • Na training en evaluatie
  • Model beschikbaar maken voor gebruik

Fase deployment in de machinelearning-levenscyclus

End-to-End Machine Learning

Testen

  • Testen:
    • Model crasht niet
    • Geeft redelijke outputs bij inferentie
    • Geeft outputs in redelijke tijd

Fase deployment in de machinelearning-levenscyclus

End-to-End Machine Learning

Unittest

  • Testen
    • Signaleert afwijkende/onverwachte events
    • Controleert of het model presteert zoals verwacht

 

  • unittest
    • Ingebouwde Python-bibliotheek voor tests schrijven
    • Test case: type test
    • Testcasemethode: één test voor één aspect van de test case
End-to-End Machine Learning

Gebruik van 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()
End-to-End Machine Learning

Gebruik van unittest (vervolg)

 

    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])
End-to-End Machine Learning

Testen in Python

End-to-End Machine Learning

Do's en don'ts bij testen

Best practices

  • NIET...
    • Te veel tests schrijven
    • Dubbele tests schrijven
    • Tests schrijven voor zeer betrouwbare componenten

 

  • WEL...
    • Tests schrijven om betrouwbaarheid te verhogen
    • Tests schrijven om verwachtingen te borgen
    • Tests schrijven voor nieuwe functionaliteit
End-to-End Machine Learning

Voordelen van testen

Voordelen van TDD

  • Vertrouwen in ontwikkeling
    • Stabiele iteratie
    • Minder zorgen over bugs
  • Performance
    • Betrouwbaarheid
    • Productieklaar
End-to-End Machine Learning

Laten we oefenen!

End-to-End Machine Learning

Preparing Video For Download...