Tester un modèle

Machine Learning de bout en bout

Joshua Stapleton

Machine Learning Engineer

Déploiement

  • Prochaine étape du cycle de vie ML
  • Après entraînement et évaluation
  • Rendre le modèle utilisable

Phase de déploiement du cycle de vie du machine learning

Machine Learning de bout en bout

Tests

  • Tests :
    • Le modèle ne plante pas
    • Renvoie des sorties plausibles à l’inférence
    • Renvoie des sorties en un temps raisonnable

Phase de déploiement du cycle de vie du machine learning

Machine Learning de bout en bout

Unittest

  • Tests
    • Signaler les événements anormaux/inattendus
    • Vérifier que le modèle fonctionne comme prévu

 

  • unittest
    • Bibliothèque Python intégrée pour écrire des tests
    • Cas de test : type de test couvert
    • Méthode de cas de test : un test pour un aspect du cas
Machine Learning de bout en bout

Utilisation de 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 de bout en bout

Utilisation de unittest (suite)

 

    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 de bout en bout

Tests en Python

Machine Learning de bout en bout

À faire et à éviter en test

Bonnes pratiques

  • À éviter…
    • Trop de tests
    • Tests redondants
    • Tester des composants très fiables

 

  • À faire…
    • Écrire des tests pour accroître la fiabilité
    • Écrire des tests pour vérifier/poser les attentes
    • Écrire des tests pour toute nouvelle fonctionnalité
Machine Learning de bout en bout

Bénéfices des tests

Avantages du TDD

  • Confiance dans le développement
    • Itérations stables
    • Moins d’inquiétude sur les bugs
  • Performance
    • Fiabilité
    • Qualité production
Machine Learning de bout en bout

Passons à la pratique !

Machine Learning de bout en bout

Preparing Video For Download...