Tester des pipelines en production

Félicitations ! Vous avez déployé votre prédicteur d'apparence de licorne mondiale. Vous voulez que votre prédicteur fonctionne 24h/24, 7j/7 sans problème. Vous réalisez rapidement que vous avez besoin de surveiller votre pipeline de ML. Bien que la surveillance de tous vos composants puisse sembler intimidante, penchons-nous sur les exigences et les solutions.

Vérifier le décalage entraînement/inférence

Le décalage entraînement/inférence signifie que vos données d'entrée diffèrent entre l'entraînement et l'inférence. Le tableau suivant décrit les deux types de décalage importants:

Type Définition Exemple Solution
Décalage du schéma Les données d'entrée d'entraînement et d'inférence ne sont pas conformes au même schéma. Le format ou la distribution des données d'inférence changent pendant l'entraînement de votre modèle avec les anciennes données. Utilisez le même schéma pour valider les données d'entraînement et d'inférence. Assurez-vous de vérifier séparément les statistiques non vérifiées par votre schéma, telles que la fraction de valeurs manquantes.
Décalage de caractéristique Les données d'ingénierie diffèrent entre l'entraînement et l'inférence. Le code d'extraction de caractéristiques diffère entre l'entraînement et l'inférence, ce qui génère différentes données extraites. Comme pour le décalage de schéma, appliquez les mêmes règles statistiques aux données d'entraînement et d'inférence. Suivez le nombre d'éléments asymétriques détectés, ainsi que le ratio d'exemples asymétriques par caractéristique.

Surveiller l'âge du modèle tout au long du pipeline

Si les données d'inférence évoluent avec le temps, mais que votre modèle n'est pas réentraîné régulièrement, vous constaterez une baisse de qualité. Suivez le temps écoulé depuis que le modèle a été entraîné avec de nouvelles données et définissez un seuil d'âge pour les alertes. En plus de surveiller l'âge du modèle au moment de la diffusion, vous devez surveiller l'âge du modèle tout au long du pipeline afin de détecter les étals de pipeline.

Vérifier que les pondérations et les sorties du modèle sont stables numériquement

Lors de l'entraînement du modèle, vos pondérations et sorties de couches ne doivent pas être NaN ou Inf. Écrivez des tests pour vérifier les valeurs NaN et Inf de vos pondérations et sorties de couches. Vérifiez également que plus de la moitié des sorties d'une couche sont différentes de zéro.

Surveiller les performances du modèle

Votre prédicteur d'apparence de licorne a été plus populaire que prévu ! Vous recevez de nombreuses requêtes de prédiction et davantage de données d'entraînement. C'est formidable jusqu'à ce que vous vous rendiez compte que l'entraînement de votre modèle prend de plus en plus de mémoire et de temps. Vous décidez de surveiller les performances de votre modèle en procédant comme suit:

  • Suivez les performances du modèle par version de code, modèle et données. Ce suivi vous permet d'identifier la cause exacte d'une dégradation des performances.
  • Testez les étapes d'entraînement par seconde pour une nouvelle version de modèle par rapport à la version précédente et à un seuil fixe.
  • Détectez les fuites de mémoire en définissant un seuil d'utilisation de la mémoire.
  • Surveillez les temps de réponse de l'API et suivez leurs centiles. Bien que les temps de réponse de l'API ne soient pas sous votre contrôle, les réponses lentes peuvent donner lieu à de mauvaises métriques réelles.
  • Surveillez le nombre de requêtes traitées par seconde.

Tester la qualité du modèle actif sur les données diffusées

Vous avez validé votre modèle. Mais que se passe-t-il si des scénarios réels tels que le comportement de la licorne changent après l'enregistrement de vos données de validation ? La qualité du modèle diffusé se dégradera ensuite. Cependant, il est difficile de tester la qualité de diffusion, car les données réelles ne sont pas toujours étiquetées. Si vos données de diffusion ne sont pas étiquetées, envisagez les tests suivants:

  • Générez des étiquettes à l'aide d'évaluateurs manuels.

  • Examiner les modèles qui présentent un biais statistique important dans les prédictions Consultez Classification: biais de prédiction.

  • Suivez des métriques réelles pour votre modèle. Par exemple, si vous classez le spam, comparez vos prédictions au spam signalé par les utilisateurs.

  • Réduisez les écarts potentiels entre les données d'entraînement et d'inférence en diffusant une nouvelle version du modèle sur une fraction de vos requêtes. À mesure que vous validez votre nouveau modèle de diffusion, basculez progressivement toutes les requêtes vers la nouvelle version.

À l'aide de ces tests, n'oubliez pas de surveiller la dégradation soudaine et lente de la qualité des prédictions.