Surveiller la dérive d'attribution de fonctions pour les modèles en production - Amazon SageMaker

Surveiller la dérive d'attribution de fonctions pour les modèles en production

Une dérive dans la distribution de données actives pour les modèles en production peut entraîner une dérive correspondante dans les valeurs d'attribution de fonctions, comme elle pourrait provoquer une dérive de biais lors de la surveillance des métriques de biais. La surveillance de l'attribution des fonctions Amazon SageMaker Clarify aide les scientifiques des données et les ingénieurs ML à surveiller régulièrement les prédictions de dérive d'attribution des fonctions. À mesure que le modèle est surveillé, les clients peuvent afficher des rapports et des graphiques exportables détaillant les attributions de fonctions dans SageMaker Studio, et configurer des alertes dans Amazon CloudWatch pour recevoir des notifications en cas de détection d'une dérive d'attribution de fonctions dépassant un certain seuil.

Pour illustrer cela par une situation particulière, prenons le cas des admissions à l'université. Supposons que nous observons les valeurs d'attribution de fonctions (agrégées) suivantes dans les données d'entraînement et les données actives :

Scénario hypothétique d'admission à l'université
Fonction Attribution des données d'entraînement Attribution des données actives
Score SAT 0.70 0.10
GPA 0.50 0.20
Classement de classe 0.05 0.70

Le passage des données d'entraînement aux données actives semble significatif. Le classement des fonctions est complètement inversé. À l'instar de la dérive de biais, les dérives d'attribution de fonctions peuvent être causées par un changement dans la distribution des données actives et justifient un examen plus approfondi du comportement du modèle sur les données actives. Là encore, la première étape de ces scénarios consiste à signaler par une alarme qu'une dérive s'est produite.

Nous pouvons détecter la dérive en comparant la façon dont le classement des fonctions individuelles est passé des données d'entraînement aux données actives. En plus de tenir compte des changements dans l'ordre de classement, nous devons également tenir compte du score d'attribution brut des fonctions. Par exemple, si deux fonctions entrent dans le classement par le même nombre de positions passant des données d'entraînement aux données actives, nous devons tenir compte de la fonction dont le score d'attribution était le plus élevé dans les données d'entraînement. En nous basant sur ces propriétés, nous utilisons le score NDCG (Normalized Discount Cumulative Gain) pour comparer le classement des attributions de fonctions des données d'entraînement et des données actives.

Plus précisément, supposons le scénario suivant :

  • F=[f1,...,fm] est la liste des fonctions triées en fonction de leurs scores d'attribution dans les données d'entraînement, m représentant le nombre total de fonctions. Par exemple, dans notre cas, F=[Score SAT, GPA, Classement de classe].

  • a(f) est une fonction qui renvoie le score d'attribution de fonction sur les données d'entraînement dans le cas d'une fonction f. Par exemple, a(Score SAT) = 0.70.

  • F′=[f′1,...,f′m] est la liste des fonctions triées en fonction de leurs scores d'attribution dans les données actives. Par exemple, F′=[Classement de classe, GPA, Score SAT].

Nous pouvons ensuite calculer le NDCG comme suit :

        NDCG = DCG/IDCG

avec

  • DCG = ∑1ma(f'i)/log2​(i+1)

  • iDCG = ∑1ma(fi)/log2​(i+1)

La quantité DCG mesure si les fonctions ayant une attribution élevée dans les données d'entraînement occupent un rang également plus élevé dans l'attribution de fonctions calculée sur les données actives. La quantité iDCG mesure le score idéal. Il s'agit simplement d'un facteur de normalisation pour s'assurer que la quantité finale se situe dans la plage [0, 1], 1 désignant la meilleure valeur possible. Une valeur NDCG de 1 signifie que le classement d'attribution de fonctions dans les données actives est identique à celui des données d'entraînement. Dans cet exemple particulier, comme le classement a sensiblement changé, la valeur NDCG est de 0.69.

Dans SageMaker Clarify, si la valeur NDCG est inférieure à 0.90, nous déclenchons automatiquement une alerte.

Exemple de blocs-notes Model Monitor

Dans l'exemple de bloc-notes suivant, SageMaker Clarify montre comment capturer des données d'inférence en temps réel, créer une référence par rapport à laquelle surveiller l'évolution du biais, et analyser les résultats :

Ce bloc-notes a été vérifié comme s'exécutant dans SageMaker Studio seulement. Pour obtenir des instructions sur l'ouverture d'un bloc-notes dans SageMaker Studio, veuillez consulter Créer ou ouvrir un bloc-notes Amazon SageMaker Studio. Si vous êtes invité à choisir un noyau, choisissez Python 3 (Data Science). Les rubriques suivantes contiennent les éléments principaux des deux dernières étapes, ainsi que des exemples de code tirés de l'exemple de bloc-notes.