Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'une SHAP base de référence pour les modèles en production
Les explications sont généralement contrastives. Autrement dit, elles tiennent compte des écarts par rapport à une référence. Pour de plus amples informations sur les références d'explicabilité, veuillez consulter SHAPPoints de référence pour l'explicabilité.
En plus de fournir des explications pour les inférences par instance, SageMaker Clarify propose également une explication globale des modèles ML qui vous aide à comprendre le comportement d'un modèle dans son ensemble en termes de fonctionnalités. SageMaker Clarify génère une explication globale d'un modèle de machine learning en agrégeant les valeurs Shapley sur plusieurs instances. SageMaker Clarify prend en charge les différentes méthodes d'agrégation suivantes, que vous pouvez utiliser pour définir des lignes de base :
-
mean_abs
— Moyenne des SHAP valeurs absolues pour toutes les instances. -
median
— Médiane des SHAP valeurs pour toutes les instances. -
mean_sq
— Moyenne des SHAP valeurs au carré pour toutes les instances.
Après avoir configuré votre application pour capturer des données d'inférence en temps réel ou de transformation par lots, la première tâche de surveillance de la dérive dans l'attribution de fonctions consiste à créer une référence qui servira de comparaison. Cela implique de configurer les entrées de données, les groupes sensibles, la capture des prédictions, ainsi que le modèle et ses métriques de biais post-entraînement. Ensuite, vous devez démarrer la tâche de baselining. Le moniteur d'explicabilité de modèle peut expliquer les prédictions d'un modèle déployé qui produit des inférences et détecter régulièrement la dérive d'attribution de fonctions.
model_explainability_monitor = ModelExplainabilityMonitor( role=role, sagemaker_session=sagemaker_session, max_runtime_in_seconds=1800, )
Dans cet exemple, la tâche de définition de base d'explicabilité partage l'ensemble de données de test avec la tâche de définition de base de biais. Elle utilise donc la même choseDataConfig
, la seule différence étant le résultat de la tâche. URI
model_explainability_baselining_job_result_uri = f"{baseline_results_uri}/model_explainability" model_explainability_data_config = DataConfig( s3_data_input_path=validation_dataset, s3_output_path=model_explainability_baselining_job_result_uri, label=label_header, headers=all_headers, dataset_type=dataset_type, )
Actuellement, l' SageMaker explicateur Clarify propose une implémentation évolutive et efficace deSHAP. La configuration d'explicabilité est donc la SHAPConfig suivante :
-
baseline
— Une liste de lignes (au moins une) ou d'objets S3 URI à utiliser comme ensemble de données de référence dans l'SHAPalgorithme Kernel. Le format doit être identique au format du jeu de données. Chaque ligne doit contenir uniquement les colonnes/valeurs de fonctions et omettre les colonnes/valeurs d'étiquette. -
num_samples
— Nombre d'échantillons à utiliser dans l'SHAPalgorithme Kernel. Ce nombre détermine la taille du jeu de données synthétique généré pour calculer les SHAP valeurs. -
agg_method — Méthode d'agrégation pour les valeurs globalesSHAP. Voici les valeurs valides :
-
mean_abs
— Moyenne des SHAP valeurs absolues pour toutes les instances. -
median
— Médiane des SHAP valeurs pour toutes les instances. -
mean_sq
— Moyenne des SHAP valeurs au carré pour toutes les instances.
-
-
use_logit
- Indicateur signifiant si la fonction logit doit être appliquée aux prédictions du modèle. La valeur par défaut estFalse
. Dans l'use_logit
affirmativeTrue
, les SHAP valeurs comporteront des unités de cotes logarithmiques. -
save_local_shap_values
(bool) — Indicateur indiquant s'il faut enregistrer les SHAP valeurs locales dans l'emplacement de sortie. La valeur par défaut estFalse
.
# Here use the mean value of test dataset as SHAP baseline test_dataframe = pd.read_csv(test_dataset, header=None) shap_baseline = [list(test_dataframe.mean())] shap_config = SHAPConfig( baseline=shap_baseline, num_samples=100, agg_method="mean_abs", save_local_shap_values=False, )
Démarrez une tâche de baselining. La model_config
doit être la même, car la tâche de baselining d'explicabilité doit créer un point de terminaison fantôme pour obtenir des prédictions pour le jeu de données synthétiques généré.
model_explainability_monitor.suggest_baseline( data_config=model_explainability_data_config, model_config=model_config, explainability_config=shap_config, ) print(f"ModelExplainabilityMonitor baselining job: {model_explainability_monitor.latest_baselining_job_name}")