Testa en modell

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Driftsättning

  • Nästa steg i ML-livscykeln
  • Efter träning och utvärdering
  • Gör modellen tillgänglig för användning

Driftsättningsfas i maskininlärningens livscykel

End-to-End Machine Learning

Testning

  • Testning:
    • Modellen kraschar inte
    • Returnerar rimliga utdata vid inferens
    • Returnerar utdata inom rimlig tid

Driftsättningsfas i maskininlärningens livscykel

End-to-End Machine Learning

Unittest

  • Testning
    • Flagga avvikande eller oväntade händelser.
    • Kontrollera att modellen presterar som förväntat.

 

  • unittest
    • Inbyggt Python-bibliotek för att skriva tester.
    • Testfall: täcker en typ av test.
    • Testfallsmetod: ett enskilt test för en aspekt av testfallet.
End-to-End Machine Learning

Använda 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

Använda unittest (forts.)

 

    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

Testning i Python

End-to-End Machine Learning

Vad du bör och inte bör göra vid testning

Bästa praxis

  • GÖR INTE...
    • Skriv för många tester
    • Skriv redundanta tester
    • Skriv tester för mycket tillförlitliga komponenter.

 

  • GÖR...
    • Skriv tester för att öka tillförlitligheten.
    • Skriv tester för att kontrollera och hantera förväntningar.
    • Skriv tester för ny funktionalitet.
End-to-End Machine Learning

Fördelar med testning

Fördelar med TDD

  • Trygghet i utvecklingen
    • Stabil iteration
    • Färre buggar att oroa sig för
  • Prestanda
    • Tillförlitlighet
    • Produktionsklar
End-to-End Machine Learning

Nu kör vi en övning!

End-to-End Machine Learning

Preparing Video For Download...