Exécuter les tâches de traitement SageMaker Clarify pour l'analyse des biais et l'explicabilité - Amazon SageMaker

Exécuter les tâches de traitement SageMaker Clarify pour l'analyse des biais et l'explicabilité

Vous utilisez les tâches de traitement SageMaker Clarify pour analyser les sources potentielles de biais dans vos données d'entraînement et pour vérifier la présence de biais dans votre modèle entraîné. Pour connaître la procédure d'analyse des données dans SageMaker Studio, veuillez consulter Générer des rapports de biais dans les données de pré-entraînement dans SageMaker Studio. L'accent est mis ici sur la métrique du biais post-entraînement et les valeurs SHAP pour l'explicabilité. Les prédictions de modèle peuvent être une source de biais (par exemple, si elles produisent plus souvent un résultat négatif pour un groupe qu'un autre). L'intégration de SageMaker Clarify à SageMaker Experiments vous permet, une fois un modèle entraîné, d'identifier les attributs que vous voudrez vérifier en cas de biais (par exemple, le revenu). SageMaker exécute un ensemble d'algorithmes pour vérifier le modèle entraîné, et vous fournit un rapport visuel sur les différents types de biais pour chaque attribut : par exemple, les personnes à revenu élevé reçoivent-elles plus de prévisions positives que les personnes à faible revenu ?

Ressources de calcul nécessaires pour les tâches de traitement SageMaker Clarify

Lors de la détermination des ressources de calcul nécessaires pour exécuter les tâches de traitement SageMaker Clarify, tenez compte des éléments suivants :

  • L'exécution des tâches de traitement peut prendre un certain temps.

  • Les explications de calcul peuvent être plus exigeantes en temps que l'inférence réelle. Cela inclut le temps de lancement des ressources de calcul.

  • Les explications de calcul peuvent être plus exigeantes en calcul que l'inférence réelle. Examinez et contrôlez les frais que l'utilisation de ressources SageMaker pourrait induire. Pour plus d'informations, veuillez consulter la Tarification d'Amazon SageMaker.

Exécuter la tâche de traitement Clarify

Pour obtenir un exemple de bloc-notes contenant des instructions sur l'exécution d'une tâche de traitement SageMaker Clarify dans Studio afin de détecter le biais du modèle de post-entraînement, veuillez consulter Explainability and bias detection with Amazon SageMaker Clarify (Explicabilité et détection de biais avec Amazon SageMaker Clarify).

Pour savoir comment ouvrir un bloc-notes dans Amazon SageMaker Studio, veuillez consulter Créer ou ouvrir un bloc-notes Amazon SageMaker Studio. Les exemples de code suivants sont tirés de l'exemple de bloc-notes précédemment indiqué.

Après avoir entraîné votre modèle, instanciez le processeur SageMaker Clarify à l'aide de la commande suivante :

from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor(role=role, instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=session)

Ensuite, configurez le jeu de données d'entrée, l'emplacement de stockage de la sortie et la colonne étiquette ciblée avec un objet DataConfig, spécifiez des informations sur votre modèle entraîné avec ModelConfig, et fournissez des informations sur les formats de vos prédictions avec ModelPredictedLabelConfig.

bias_report_output_path = 's3://{}/{}/clarify-bias'.format(bucket, prefix) bias_data_config = clarify.DataConfig(s3_data_input_path=train_uri, s3_output_path=bias_report_output_path, label='Target', headers=training_data.columns.to_list(), dataset_type='text/csv') model_config = clarify.ModelConfig(model_name=model_name, instance_type='ml.c5.xlarge', instance_count=1, accept_type='text/csv') predictions_config = clarify.ModelPredictedLabelConfig(probability_threshold=0.8)

Utilisez BiasConfig pour fournir des informations sur les colonnes contenant les facettes (groupes sensibles, Sex), les caractéristiques sensibles éventuelles (facet_values_or_threshold) et les résultats souhaitables (label_values_or_threshold).

bias_config = clarify.BiasConfig(label_values_or_threshold=[1], facet_name='Sex', facet_values_or_threshold=[0])

Vous pouvez exécuter les analyses de pré- et de post-entraînement dans la tâche de traitement en même temps avec run_bias().

clarify_processor.run_bias(data_config=bias_data_config, bias_config=bias_config, model_config=model_config, model_predicted_label_config=predictions_config, pre_training_methods='all', post_training_methods='all')

Affichez les résultats dans Studio ou téléchargez-les à partir du compartiment S3 bias_report_output_path.

Exécuter la tâche de traitement Clarify avec Spark

Apache Spark est un moteur analytique unifié, pour le traitement des données à grande échelle. Lorsque vous travaillez avec des jeux de données volumineux, vous pouvez utiliser les capacités de traitement Spark de SageMaker Clarify pour accélérer l'exécution de vos tâches de traitement Clarify. Pour utiliser le traitement Spark pour les tâches Clarify, définissez le nombre d'instances à un nombre supérieur à un. Clarify utilise le calcul distribué Spark lorsqu'il y a plus d'une d'instance par processeur Clarify.

L'exemple suivant montre comment utiliser SageMakerClarifyProcessor pour créer un processeur Clarify avec 5 instances.

Clarify exécute toutes les tâches associées à ce processeur à l'aide du traitement distribué Spark.

from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor(role=role, instance_count=5, instance_type='ml.c5.xlarge', max_runtime_in_seconds=1200, volume_size_in_gb=100)

Si vous configurez une tâche Clarify pour enregistrer les valeurs SHAP locales dans la classe SHAPConfig, Spark enregistre la valeur SHAP locale sous forme de plusieurs fichiers partiels en parallèle.

Si vous ajoutez d'autres instances, nous vous recommandons d'augmenter également le nombre d'instances dans la configuration du modèle ModelConfig pour le point de terminaison fantôme. Cela empêchera le point de terminaison fantôme de créer un goulet d'étranglement pour les instances de traitement. Nous vous recommandons surtout d'utiliser un rapport un-à-un entre le point de terminaison et les instances de traitement.

Obtenir les résultats d'analyse

Une fois la tâche de traitement terminée, vous pouvez télécharger les fichiers de sortie pour analyser ou visualiser les résultats dans Studio. Le répertoire de sortie contient les fichiers suivants :

  • analysis.json - Mesures de biais et valeurs SHAP au format JSON.

  • report.ipynb - Bloc-notes statique pour visualiser les métriques de biais et les valeurs SHAP.

  • explanations_shap/out.csv - Valeurs SHAP locales (par instance) pour chaque ligne du jeu de données au même format que le jeu de données d'entrée. Sur chaque ligne, le fichier de sortie contient les valeurs SHAP de chaque fonction et l'étiquette prédite.

Dans le fichier JSON d'analyse, les métriques de biais et les valeurs SHAP sont organisées en trois sections distinctes.

{ "explanations": { . . . } "pre_training_bias_metrics": { . . . } "post_training_bias_metrics": { . . . } }

Les valeurs SHAP se trouvent dans la section “explanations”. Les valeurs correspondent à la valeur SHAP globale de chaque colonne fonction.

"explanations": { "kernel_shap": { "label0": { "global_shap_values": { "feature_0": 0.022486410860333206, "feature_1": 0.007381025261958729, "feature_2": 0.006843906804137847 }, "expected_value": 0.508233428001 } } }

Les métriques de biais se trouvent dans les sections de métriques de biais de pré- et post-entraînement.

{ "post_training_bias_metrics": { "label": "target", "label_value_or_threshold": "1", "facets": { "feature_2": [ { "value_or_threshold": "1", "metrics": [ { "name": "DI", "description": "Disparate Impact (DI)", "value": 0.711340206185567 }, { "name": "DCR", "description": "Difference in Conditional Rejections (DCR)", "value": -0.34782608695652184 } { . . . } ] } ] } } }

Pour de plus amples informations sur les métriques de biais et les valeurs SHAP et la façon de les interpréter, veuillez consulter le Livre blanc sur l'équité et l'explicabilité Amazon AI.

Le bloc-notes de rapport contient un graphique à barres des principales valeurs SHAP et des tableaux avec les métriques de biais.