Paramètres pour surveiller la dérive d'attribution - 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.

Paramètres pour surveiller la dérive d'attribution

Le moniteur d' SageMaker explicabilité Amazon Clarify réutilise un sous-ensemble des paramètres utilisés dans la configuration d'analyse de. Fichiers de configuration d'analyse Les paramètres suivants doivent être fournis dans un JSON fichier et le chemin doit être fourni dans le ConfigUri paramètre de ModelExplainabilityAppSpecification.

  • "version" – (Facultatif) Version de schéma du fichier de configuration. Si elle n'est pas fournie, la dernière version prise en charge est utilisée.

  • "headers" – (Facultatif) Liste des noms de caractéristiques dans le jeu de données. L'analyse de l'explicabilité ne nécessite pas d'étiquettes.

  • "methods" – Liste des méthodes et de leurs paramètres pour les analyses et les rapports. Si une section est omise, elle n'est pas calculée.

    • "shap"— (Facultatif) Section sur le calcul SHAP de la valeur.

      • "baseline"— (Facultatif) Une liste de lignes (au moins une) ou un objet Amazon S3 Amazon Simple Storage ServiceURI. À utiliser comme ensemble de données de référence (également appelé ensemble de données d'arrière-plan) dans l'SHAPalgorithme Kernel. Le format doit être identique au format du jeu de données. Chaque ligne doit contenir uniquement les colonnes (ou valeurs) de caractéristiques. Avant d'envoyer chaque ligne au modèle, omettez toute colonne qui doit être exclue.

      • "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. Si ce n'est pas le cas, une tâche SageMaker Clarify choisit la valeur en fonction du nombre de fonctionnalités.

      • "agg_method"— Méthode d'agrégation pour les SHAP valeurs globales. Les valeurs valides sont les suivantes :

        • "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" – (Facultatif) Valeur booléenne pour indiquer si la fonction logit doit être appliquée aux prédictions du modèle. Si tel "use_logit" est le castrue, les SHAP valeurs sont exprimées en unités log-odds. La valeur par défaut est false.

      • "save_local_shap_values"— (Facultatif) Valeur booléenne pour indiquer si SHAP les valeurs locales doivent être enregistrées à l'emplacement de sortie. Utilisez true pour les enregistrer. Utilisez false pour ne pas les enregistrer. L’argument par défaut est false.

  • "predictor" : (Facultatif pour le point de terminaison en temps réel, obligatoire pour la transformation par lots) Section sur les paramètres du modèle, requise si les sections "shap" et "post_training_bias" sont présentes.

    • "model_name"— Nom du modèle créé par CreateModelAPI, avec le mode conteneur commeSingleModel.

    • "instance_type" – Type d'instance pour le point de terminaison fantôme.

    • "initial_instance_count" - Nombre d'instances pour le point de terminaison fantôme.

    • "content_type" – (Facultatif) Format d'entrée de modèle à utiliser pour obtenir des inférences avec le point de terminaison fantôme. Les valeurs valides sont "text/csv" pourCSV, "application/jsonlines" pour JSON Lines, application/x-parquet pour Apache Parquet et pour application/x-image permettre l'explicabilité de la vision par ordinateur. La valeur par défaut est identique au format dataset_type.

    • "accept_type" – (Facultatif) Modèle output (sortie) à utiliser pour obtenir des inférences avec le point de terminaison fantôme. Les valeurs valides sont "text/csv" pourCSV, "application/jsonlines" pour JSON Lines. En cas d'omission, SageMaker Clarify utilise le type de données de réponse des données capturées.

    • "content_template" – (Facultatif) Chaîne de modèle utilisée pour créer l'entrée de modèle à partir d'instances du jeu de données. Elle est utilisée uniquement si "content_type" est "application/jsonlines". Le modèle doit avoir un seul espace réservé, $features, qui est remplacé par la liste des fonctions lors de l'exécution. Par exemple"content_template":"{\"myfeatures\":$features}", étant donné que si une instance (sans étiquette) l'est1,2,3, l'entrée du modèle devient JSON Lines'{"myfeatures":[1,2,3]}'.

    • "label_headers" – (Facultatif) Liste des valeurs que la "label" prend dans le jeu de données. Associe les scores renvoyés par le point de terminaison ou la tâche de transformation par lots du modèle à leurs valeurs d'étiquette correspondantes. S'il est fourni, le rapport d'analyse utilise les en-têtes à la place d'espaces réservés tels que “label0”.

Les autres paramètres doivent être fournis dans EndpointInput (pour les points de terminaison en temps réel) ou BatchTransformInput (pour les tâches de transformation par lots) du ModelExplainabilityJobInputAPI.

  • FeaturesAttribute : ce paramètre est requis si le format des données d'entrée du point de terminaison ou la tâche par lots est "application/jsonlines". Il est JMESPath utilisé pour localiser les colonnes d'entités si le format du jeu de données est JSON Lignes.

  • ProbabilityAttribute— Indice ou JMESPath emplacement dans la sortie du modèle pour les probabilités. Si le résultat du modèle est JSON Lignes avec une liste d'étiquettes et de probabilités, par exemple, l'étiquette correspondant à la probabilité maximale est sélectionnée pour les calculs de biais.

Exemples JSON de fichiers de configuration pour les ensembles de données CSV et de JSON lignes

Voici des exemples de JSON fichiers utilisés pour configurer CSV et des ensembles de données JSON Lines pour surveiller la dérive d'attribution des fonctionnalités.

CSVEnsembles de données

Considérons un jeu de données comportant trois colonnes de caractéristiques numériques, comme dans l'exemple suivant.

0.5814568701544718, 0.6651538910132964, 0.3138080342665499 0.6711642728531724, 0.7466687034026017, 0.1215477472819713 0.0453256543003371, 0.6377430803264152, 0.3558625219713576 0.4785191813363956, 0.0265841045263860, 0.0376935084990697

Supposons que la sortie du modèle comporte deux colonnes, la première correspondant à l'étiquette prédite et la seconde à la probabilité, comme dans l'exemple suivant.

1, 0.5385257417814224

L'exemple de fichier JSON de configuration suivant montre comment cet CSV ensemble de données peut être configuré.

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ [0.4441164946610942, 0.5190374448171748, 0.20722795300473712] ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1 } }

L'étiquette prédite est sélectionnée par le paramètre "ProbabilityAttribute". La numérotation basée sur zéro est utilisée, donc 1 indique la deuxième colonne de la sortie du modèle.

"EndpointInput": { ... "ProbabilityAttribute": 1 ... }

JSONEnsembles de données de lignes

Considérez un jeu de données comportant quatre colonnes de caractéristiques et une colonne d'étiquettes, où la première caractéristique et l'étiquette sont binaires, comme dans l'exemple suivant.

{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0} {"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1} {"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1} {"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}

L'entrée du modèle est identique au format du jeu de données, et les sorties du modèle sont JSON des lignes, comme dans l'exemple suivant.

{"predicted_label":1, "probability":0.5385257417814224}

Dans l'exemple suivant, le fichier JSON de configuration montre comment ce jeu de données JSON Lines peut être configuré.

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ {"features":[0.4441164946610942, 0.5190374448171748, 0.20722795300473712]} ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1, "content_template":"{\"features\":$features}" } }

Ensuite, la valeur de paramètre "features" dans EndpointInput (pour les points de terminaison en temps réel) ou BatchTransformInput (pour les tâches de transformation par lots) est utilisée pour localiser les caractéristiques dans le jeu de données, et la valeur de paramètre "probability" sélectionne la valeur de probabilité à partir de la sortie du modèle.

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", ... }