Testarea unui model

Machine Learning End-to-End

Joshua Stapleton

Machine Learning Engineer

Implementare

  • Etapa următoare în ciclul de viață ML
  • După antrenare și evaluare
  • Punerea modelului la dispoziție

Faza de implementare din ciclul de viață al învățării automate

Machine Learning End-to-End

Testare

  • Testare:
    • Modelul nu se blochează
    • Returnează rezultate rezonabile la inferență
    • Returnează rezultate într-un timp rezonabil

Faza de implementare din ciclul de viață al învățării automate

Machine Learning End-to-End

Unittest

  • Testare
    • Semnalarea evenimentelor anomale / neașteptate.
    • Verificarea funcționării corecte a modelului.

 

  • unittest
    • Bibliotecă Python integrată pentru scrierea testelor.
    • Caz de test: acoperă un tip de test.
    • Metodă de test: un singur test pentru un aspect al cazului.
Machine Learning End-to-End

Utilizarea 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 End-to-End

Utilizarea 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 End-to-End

Testare în Python

Machine Learning End-to-End

Ce să faceți și ce să evitați în testare

Bune practici

  • NU...
    • Scrieți prea multe teste
    • Scrieți teste redundante
    • Scrieți teste pentru componente foarte fiabile.

 

  • DA...
    • Scrieți teste pentru a crește fiabilitatea.
    • Scrieți teste pentru a verifica așteptările.
    • Scrieți teste pentru funcționalități noi.
Machine Learning End-to-End

Beneficiile testării

Beneficiile TDD

  • Încredere în dezvoltare
    • Iterație stabilă
    • Mai puține îngrijorări legate de erori
  • Performanță
    • Fiabilitate
    • Calitate de producție
Machine Learning End-to-End

Să exersăm!

Machine Learning End-to-End

Preparing Video For Download...