Testowanie modelu

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Wdrożenie

  • Kolejny etap cyklu życia ML
  • Po trenowaniu i ewaluacji
  • Udostępnienie modelu do użytku

Faza wdrożenia w cyklu życia modelu ML

End-to-End Machine Learning

Testowanie

  • Testowanie:
    • Model nie ulega awarii
    • Zwraca rozsądne wyniki podczas inferencji
    • Zwraca wyniki w rozsądnym czasie

Faza wdrożenia w cyklu życia modelu ML

End-to-End Machine Learning

Unittest

  • Testowanie
    • Wykrywanie anomalii i nieoczekiwanych zdarzeń.
    • Weryfikacja poprawności działania modelu.

 

  • unittest
    • Wbudowana biblioteka Pythona do pisania testów.
    • Przypadek testowy: obejmuje rodzaj testu.
    • Metoda przypadku testowego: pojedynczy test dla jednego aspektu.
End-to-End Machine Learning

Użycie 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

Użycie unittest (cd.)

 

    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

Testowanie w Pythonie

End-to-End Machine Learning

Co robić i czego unikać w testowaniu

Dobre praktyki

  • NIE należy...
    • Pisać zbyt wielu testów
    • Pisać redundantnych testów
    • Testować wysoce niezawodnych komponentów.

 

  • NALEŻY...
    • Pisać testy zwiększające niezawodność.
    • Pisać testy weryfikujące oczekiwania.
    • Pisać testy dla nowych funkcjonalności.
End-to-End Machine Learning

Korzyści z testowania

Zalety TDD

  • Pewność w procesie tworzenia
    • Stabilna iteracja
    • Mniej obaw o błędy
  • Wydajność
    • Niezawodność
    • Gotowość produkcyjna
End-to-End Machine Learning

Czas na ćwiczenia!

End-to-End Machine Learning

Preparing Video For Download...