Vous pouvez détecter les biais directs et indirects grâce au débiaisage actif et passif. Le débiaisement passif révèle le biais, tandis que le débiaisement actif empêche le biais en changeant le modèle en temps réel.
L'algorithme applique une méthode appelée perturbation pour évaluer les différences dans les résultats attendus dans les données. Pour plus d'informations sur la façon dont le biais est calculé, voir Calcul de l'équité.
Lorsque vous évaluez l'équité des déploiements, les transactions directes et biais indirect de la table d'enregistrement des données utiles sont détectées.
Débiaisement passif
Le débiaisage passif se fait automatiquement, toutes les heures. Il est considéré passif car il s'effectue sans intervention de l'utilisateur. Lorsque les biais sont analysés, les données sont également déformées. Il analyse le comportement du modèle et identifie les données où le modèle agit de façon biaisée.
Un modèle d'apprentissage automatique est construit pour prédire si le modèle est susceptible d'agir de manière biaisée sur un nouveau point de données donné. Les données reçues par le modèle sont analysées, toutes les heures, afin de trouver les points de données qui causent un biais. Pour ces points de données, l'attribut d'équité est perturbé de la minorité à la majorité, et de la majorité à la minorité, et les données perturbées sont envoyées au modèle d'origine pour la prévision. La prédiction de l'enregistrement perturbé, ainsi que la prédiction originale, est utilisée pour calculer le biais.
Les enregistrements biaisés identifiés que le modèle a reçus au cours de l'heure écoulée sont débiaisés. L'équité de la sortie débiaisée est également calculée et affichée dans l'onglet Modèle débiaisé.
Débiaisement actif
Le débiaisement actif constitue un moyen de demander et d'apporter des résultats débiaisés dans votre application via le noeud final d'API REST. Vous pouvez invoquer activement les évaluations de modèles pour connaître la prédiction biaisée de votre modèle afin d'exécuter votre application sans biais. Dans le débiaisement actif, vous pouvez utiliser un noeud final d'API REST de votre application. Ce noeud final appelle en interne votre modèle et en vérifie le comportement.
Si le modèle agit de manière biaisée, les données sont perturbées et renvoyées au modèle original. Après analyse interne du point de données perturbé, si le modèle se comporte de manière biaisée sur le point de données, la sortie du modèle original sur les données perturbées est renvoyée en tant que prédiction biaisée.
Si le modèle original n'agit pas de manière biaisée, la prédiction du modèle original est renvoyée en tant que prédiction biaisée. Ainsi, en utilisant le noeud final d'API REST, vous pouvez vous assurer que votre application ne base pas ses décisions sur une sortie biaisée.
Examen des données pour les valeurs débiaisées
Lorsque l'évaluation de l'équité s'exécute, les valeurs débiaisées sont stockées dans le tableau d'enregistrement des charges utiles du déploiement du modèle. Toutes les transactions d'évaluation effectuées via ce point d'extrémité sont automatiquement débiaisées, le cas échéant. Vous pouvez accéder au point d'extrémité d'évaluation débiaisé comme vous le feriez pour le point d'extrémité d'évaluation normal de votre modèle déployé. En plus de la réponse du modèle déployé, il renvoie les colonnes debiased_prediction
et debiased_probability
.
La colonne
debiased_prediction
contient la valeur de prévision débiaisée.La colonne
debiased_probability
représente la probabilité de la prévision débiaisée. Ce tableau de valeurs doubles représente la probabilité de la prévision débiaisée qui appartient à l'une des classes de prévision.
Activation du paramètre de débiaisement
Le débiaisage est désactivé par défaut lorsque vous configurez de nouveaux déploiements. Vous pouvez également définir le paramètre perform_debias
à true
dans la section des paramètres du SDK Python ou spécifier l'étiquette d'environnement PERFORM_DEBIASING
au niveau du pod pour activer debiasingm, comme le montre l'exemple suivant :
wos_client.monitor_instances.update(
monitor_instance_id=<FAIRNESS_MONITOR_INSTANCE_ID>,
patch_document=[JsonPatchOperation(
op=OperationTypes.ADD,
path='/parameters/perform_debias',
value=True
)],update_metadata_only=True
)
Lorsque vous appliquez un correctif à l'instance de moniteur, le moniteur d'équité exécute un débiaisement lors de la prochaine évaluation.
Pour plus d'informations, voir la documentation du SDKWatson OpenScale Python.
Examen des transactions débiaisées
Vous pouvez utiliser le noeud final des transactions débiaisées pour examiner les transactions débiaisées pour les évaluations d'équité. Pour plus d'informations, voir Envoi de transactions de modèle dans Watson OpenScale.
Etant donné que le point d'extrémité de débiaisement traite le biais d'exécution, il continue d'exécuter des vérifications d'arrière-plan pour les données d'évaluation de la table de journalisation de contenu utile. Il met également à jour le modèle d'atténuation des biais, ce qui débiaise les demandes d'évaluation.
Vous pouvez configurer un seuil d'équité pour indiquer quand les données sont acceptables et non biaisées.
Atténuez le biais avec une nouvelle version du modèle:
- Vous devez générer une nouvelle version du modèle qui corrige le problème. Les enregistrements biaisés sont stockés dans le tableau d'étiquetage manuel. Ces enregistrements biaisés doivent être libellés manuellement, puis le modèle est entraîné à nouveau via les données supplémentaires pour générer une nouvelle version du modèle non biaisée.
Extrayez une liste des enregistrements biaisés individuels:
- Connectez-vous à cette table et lisez les enregistrements en utilisant des requêtes SQL standard.
Rubrique parent: Révision des transactions de modèle