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.
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 fichier JSON et le chemin d'accès doit être fourni dans le paramètre ConfigUri
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 de la valeur SHAP.-
"baseline"
– (Facultatif) Liste de lignes (au moins une) ou URI d'objet Amazon Simple Storage Service (Amazon S3). À utiliser comme jeu de données de référence (également appelé jeu de données d'arrière-plan) 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 (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'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. 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 valeurs SHAP globales. Les valeurs valides sont les suivantes :-
"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"
– (Facultatif) Valeur booléenne pour indiquer si la fonction logit doit être appliquée aux prédictions du modèle. Si"use_logit"
est
, alors les valeurs SHAP ont des unités log-odds. La valeur par défaut esttrue
false
. -
"save_local_shap_values"
– (Facultatif) Valeur booléenne pour indiquer si les valeurs SHAP locales doivent être enregistrées à l'emplacement en sortie. Utiliseztrue
pour les enregistrer. Utilisezfalse
pour ne pas les enregistrer. L’argument par défaut estfalse
.
-
-
-
"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 de modèle (tel que créé par l'APICreateModel
avec le mode conteneur en tant queSingleModel
). -
"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"
pour CSV,"application/jsonlines"
pour JSON Lines,application/x-parquet
pour Apache Parquet, etapplication/x-image
pour activer l'explicabilité de la reconnaissance d'image. La valeur par défaut est identique au formatdataset_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"
pour CSV et"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, étant donné"content_template":"{\"myfeatures\":$features}"
, si une instance (sans étiquette) 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) de l'API ModelExplainabilityJobInput
.
-
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 Lines. -
ProbabilityAttribute
— Indice ou JMESPath emplacement dans la sortie du modèle pour les probabilités. Si la sortie du modèle est JSON Lines avec une liste d'étiquettes et de probabilités, par exemple, l'étiquette qui correspond à la probabilité maximale est alors sélectionnée pour les calculs de biais.
Exemples de fichiers de configuration JSON pour les jeux de données CSV et JSON Lines
Voici des exemples des fichiers JSON utilisés pour configurer les jeux de données CSV et JSON Lines afin de les surveiller pour détecter une dérive d'attribution de caractéristiques.
Jeux de données CSV
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 de configuration JSON suivant montre comment ce jeu de données CSV 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
...
}
Jeux de données JSON Lines
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 la sortie du modèle est JSON Lines, comme dans l'exemple suivant.
{"predicted_label":1, "probability":0.5385257417814224}
Dans l'exemple suivant, le fichier de configuration JSON 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",
...
}