Ein Modell testen

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Deployment

  • Nächster Schritt im ML-Lebenszyklus
  • Nach Training und Evaluation
  • Modell zur Nutzung bereitstellen

Bereitstellungsphase des Machine-Learning-Lebenszyklus

End-to-End Machine Learning

Testing

  • Testing:
    • Modell stürzt nicht ab
    • Liefert sinnvolle Ausgaben zur Inferenzzeit
    • Liefert Ausgaben in angemessener Zeit

Bereitstellungsphase des Machine-Learning-Lebenszyklus

End-to-End Machine Learning

Unittest

  • Testing
    • Auffällige/unerwartete Ereignisse markieren
    • Prüfen, ob das Modell wie erwartet performt

 

  • unittest
    • Eingebaute Python-Bibliothek zum Testen
    • Testfall: deckt einen Testtyp ab
    • Testfallmethode: einzelner Test für einen Aspekt des Testfalls
End-to-End Machine Learning

Verwendung von 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

Verwendung von unittest (Fortsetzung)

 

    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

Testing in Python

End-to-End Machine Learning

Testing: Do’s and Don’ts

Best Practices

  • NICHT …
    • Zu viele Tests schreiben
    • Redundante Tests schreiben
    • Tests für sehr zuverlässige Komponenten schreiben

 

  • MACH …
    • Tests schreiben, um Zuverlässigkeit zu erhöhen
    • Tests schreiben, um Erwartungen zu prüfen/steuern
    • Tests für neue Funktionen schreiben
End-to-End Machine Learning

Vorteile von Tests

Vorteile von TDD

  • Sicherheit in der Entwicklung
    • Stabile Iteration
    • Weniger Sorge vor Bugs
  • Leistung
    • Zuverlässigkeit
    • Produktionsreife
End-to-End Machine Learning

Lass uns üben!

End-to-End Machine Learning

Preparing Video For Download...