Créer une référence SHAP pour les modèles en production - Amazon SageMaker

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éer une référence SHAP 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 Bases de référence SHAP 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 valeurs SHAP absolues pour toutes les instances.

  • median - Médiane des valeurs SHAP pour toutes les instances.

  • mean_sq – Moyenne des valeurs SHAP 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 baselining d'explicabilité partage le jeu de données de test avec la tâche de baselining de biais, il utilise donc la même DataConfig, la seule différence étant l'URI de sortie de la tâche.

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 de SHAP. La configuration d'explicabilité est donc ShapConfig, y compris les éléments suivants :

  • baseline - Liste de lignes (au moins une) ou URI d'objet S3 à utiliser comme jeu de données de référence dans l'algorithme SHAP du noyau. 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'algorithme SHAP du noyau. Ce nombre détermine la taille du jeu de données synthétique généré pour calculer les valeurs SHAP.

  • agg_method - Méthode d'agrégation pour les valeurs SHAP globales. Voici les valeurs valides :

    • mean_abs - Moyenne des valeurs SHAP absolues pour toutes les instances.

    • median - Médiane des valeurs SHAP pour toutes les instances.

    • mean_sq - Moyenne des valeurs SHAP 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 est False. Si use_logit est True, les valeurs SHAP auront des unités log-odds.

  • save_local_shap_values (bool) - Indicateur signifiant s'il faut enregistrer les valeurs SHAP locales à l'emplacement en sortie. La valeur par défaut est False.

# 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}")