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.
Fichiers de configuration d'analyse
Pour analyser vos données et modèles afin de déterminer s'ils sont explicables et biaisés à l'aide de SageMaker Clarify, vous devez configurer une tâche de traitement. Une partie de la configuration de cette tâche de traitement inclut la configuration d'un fichier d'analyse. Ce fichier d'analyse spécifie les paramètres de l'analyse des biais et de l'explicabilité. Consultez Configurer un Job de traitement SageMaker Clarify pour savoir comment configurer une tâche de traitement et un fichier d'analyse.
Ce guide décrit le schéma et les paramètres de ce fichier de configuration d'analyse. Ce guide inclut également des exemples de fichiers de configuration d'analyse permettant de calculer les mesures de biais pour un jeu de données tabulaire et de générer des explications sur les problèmes liés au traitement du langage naturel (NLP), à la vision par ordinateur (CV) et aux séries chronologiques (TS).
Vous pouvez créer le fichier de configuration d'analyse ou utiliser le SageMaker Python SDK
Rubriques
Schéma du fichier de configuration d'analyse
La section suivante décrit le schéma du fichier de configuration d'analyse, y compris les exigences et les descriptions des paramètres.
Exigences liées au fichier de configuration d'analyse
La tâche de traitement SageMaker Clarify s'attend à ce que le fichier de configuration d'analyse soit structuré selon les exigences suivantes :
-
Le nom de l'entrée de traitement doit être
analysis_config.
-
Le fichier de configuration d'analyse est au JSON format et codé en UTF -8.
-
Le fichier de configuration d'analyse est un objet Amazon S3.
Vous pouvez spécifier des paramètres supplémentaires dans le fichier de configuration d'analyse. La section suivante propose différentes options permettant d'adapter la tâche de traitement SageMaker Clarify à votre cas d'utilisation et aux types d'analyse souhaités.
Dans le fichier de configuration JSON, vous pouvez spécifier les paramètres suivants.
-
version : (facultatif) chaîne de version du schéma du fichier de configuration d'analyse. Si aucune version n'est fournie, SageMaker Clarify utilise la dernière version prise en charge. Actuellement, la seule version prise en charge est
1.0
. -
dataset_type : format du jeu de données. Le format du jeu de données en entrée peut avoir l'une des valeurs suivantes :
Tabulaire
-
text/csv
pour CSV -
application/jsonlines
pour le format dense SageMaker AI JSON Lines -
application/json
pour JSON -
application/x-parquet
pour Apache Parquet -
application/x-image
pour activer l'explicabilité pour les problèmes de vision par ordinateur
-
Explications du modèle de prévision des séries chronologiques
application/json
pour JSON
-
dataset_uri — (Facultatif) L'identifiant de ressource uniforme (URI) de l'ensemble de données principal. Si vous fournissez un URI préfixe S3, la tâche de traitement SageMaker Clarify collecte de manière récursive tous les fichiers S3 situés sous le préfixe. Vous pouvez fournir un URI préfixe S3 ou un S3 URI à un fichier manifeste d'image pour les problèmes de vision par ordinateur. Si
dataset_uri
est fourni, il a priorité sur l'entrée de la tâche de traitement du jeu de données. Quel que soit le type de format, à l'exception des cas d'utilisation d'images et de séries chronologiques, la tâche de traitement SageMaker Clarify charge le jeu de données en entrée dans un bloc de données tabulaire, en tant que jeu de données tabulaire. Ce format permet à l' SageMaker IA de manipuler et d'analyser facilement le jeu de données d'entrée. -
en-têtes — (Facultatif)
Tabulaire : tableau de chaînes contenant les noms de colonnes d'un jeu de données tabulaire. Si aucune valeur n'est fournie
headers
, la tâche de traitement SageMaker Clarify lit les en-têtes de l'ensemble de données. Si l'ensemble de données ne comporte pas d'en-têtes, la tâche de traitement Clarify génère automatiquement des noms d'espaces réservés sur la base d'un index de colonne de base zéro. Par exemple, les noms des espaces réservés pour les première et deuxième colonnes serontcolumn_0
column_1
, et ainsi de suite.Note
Par convention, if
dataset_type
isapplication/jsonlines
orapplication/json
, thenheaders
doit contenir les noms suivants dans l'ordre :noms des fonctionnalités
nom de l'étiquette (s'
label
il est spécifié)nom d'étiquette prédit (s'il
predicted_label
est spécifié)
Un exemple de
headers
pour un type de jeu de donnéesapplication/jsonlines
silabel
est spécifié est :["feature1","feature2","feature3","target_label"]
.Séries chronologiques : liste des noms de colonnes du jeu de données. Si ce n'est pas le cas, Clarify génère des en-têtes à utiliser en interne. Pour les cas d'explicabilité des séries chronologiques, fournissez les en-têtes dans l'ordre suivant :
identifiant de l'article
timestamp
séries chronologiques cibles
toutes les colonnes de séries chronologiques associées
toutes les colonnes de covariables statiques
-
label : (facultatif) chaîne ou index entier basé sur zéro. S'il est fourni,
label
est utilisé pour localiser l'étiquette de vérité terrain, également connue sous le nom d'étiquette observée ou d'attribut cible dans un jeu de données tabulaire. L'étiquette de vérité terrain est utilisée pour calculer les métriques de biais. La valeur pourlabel
est spécifiée en fonction de la valeur du paramètredataset_type
, comme suit.-
Si
dataset_type
a pour valeurtext/csv
,label
peut être spécifié comme l'un ou l'autre des éléments suivants :-
Un nom de colonne valide
-
Un index compris dans la plage des colonnes du jeu de données
-
-
Si
dataset_type
a pour valeurapplication/parquet
,label
doit être un nom de colonne valide. -
Si tel
dataset_type
estapplication/jsonlines
le cas,label
il doit s'agir JMESPathd'une expression écrite pour extraire l'étiquette de vérité fondamentale de l'ensemble de données. Par convention, si headers
est spécifié, il doit contenir le nom de l'étiquette. -
Si tel
dataset_type
estapplication/json
le cas,label
il doit s'agir JMESPathd'une expression écrite pour extraire l'étiquette de vérité fondamentale pour chaque enregistrement de l'ensemble de données. Cette JMESPath expression doit produire une liste d'étiquettes où le i the label est en corrélation avec le i de l'enregistrement.
-
-
predicted_label : (facultatif) chaîne ou index entier basé sur zéro. S'il est fourni,
predicted_label
est utilisé pour localiser la colonne contenant l'étiquette prédite dans un jeu de données tabulaire. L'étiquette prédite est utilisée pour calculer les métriques de biais de post-entraînement. Le paramètrepredicted_label
est facultatif si le jeu de données n'inclut pas l'étiquette prédite. Si des étiquettes prédites sont requises pour le calcul, la tâche de traitement SageMaker Clarify obtiendra des prédictions à partir du modèle.La valeur pour
predicted_label
est spécifiée en fonction de la valeur du paramètredataset_type
, comme suit :-
Si
dataset_type
a pour valeurtext/csv
,predicted_label
peut être spécifié comme l'un ou l'autre des éléments suivants :-
Nom de colonne valide. Si
predicted_label_dataset_uri
est spécifié mais quepredicted_label
n'est pas fourni, le nom d'étiquette prédite par défaut est "predicted_label". -
Index compris dans la plage des colonnes du jeu de données. Si
predicted_label_dataset_uri
est spécifié, l'index est utilisé pour localiser la colonne d'étiquettes prédites dans le jeu de données d'étiquettes prédites.
-
-
Si dataset_type a pour valeur
application/x-parquet
,predicted_label
doit être un nom de colonne valide. -
Si dataset_type l'est
application/jsonlines
, ilpredicted_label
doit s'agir d'une JMESPathexpression valide écrite pour extraire l'étiquette prédite de l'ensemble de données. Par convention, si headers
est spécifié, il doit contenir le nom de l'étiquette prédite. -
Si tel
dataset_type
estapplication/json
le cas,predicted_label
il doit s'agir JMESPathd'une expression écrite pour extraire l'étiquette prévue pour chaque enregistrement de l'ensemble de données. L'JMESPathexpression doit produire une liste d'étiquettes prédites où le i est destiné à l'enregistrement i.
-
-
fonctionnalités — (Facultatif) Obligatoire pour les cas non-time-series d'utilisation si
dataset_type
c'est le casapplication/jsonlines
ouapplication/json
. Expression de JMESPath chaîne écrite pour localiser les entités dans le jeu de données en entrée. Enapplication/jsonlines
effet, une JMESPath expression sera appliquée à chaque ligne pour extraire les caractéristiques de cet enregistrement. Enapplication/json
effet, une JMESPath expression sera appliquée à l'ensemble du jeu de données en entrée. L'JMESPathexpression doit extraire une liste de listes, ou un tableau ou une matrice 2D d'entités dont la première ligne contient les caractéristiques en corrélation avec le premier enregistrement. Pour undataset_type
défini surtext/csv
ouapplication/x-parquet
, toutes les colonnes, à l'exception des colonnes d'étiquettes de vérité terrain et d'étiquettes prédites, sont automatiquement affectées comme des fonctionnalités. -
predicted_label_dataset_uri — (Facultatif) Applicable uniquement lorsque dataset_type est.
text/csv
Le S3 URI pour un ensemble de données contenant des étiquettes prédites utilisées pour calculer les métriques de biais après l'entraînement. La tâche de traitement SageMaker Clarify chargera les prédictions à partir du fichier fourni URI au lieu d'obtenir des prédictions à partir du modèle. Dans ce cas,predicted_label
est requis pour localiser la colonne d'étiquettes prédites dans le jeu de données d'étiquettes prédites. Si le jeu de données d'étiquettes prédites ou le jeu de données principal est divisé en plusieurs fichiers, une colonne d'identifiants doit être spécifiée parjoinsource_name_or_index
pour joindre les deux jeux de données. -
predicted_label_headers — (Facultatif) Applicable uniquement lorsque cela est spécifié.
predicted_label_dataset_uri
Tableau de chaînes contenant les noms de colonnes du jeu de données d'étiquettes prédites. Outre l'en-tête d'étiquette prédite,predicted_label_headers
peut également contenir l'en-tête de la colonne d'identifiants pour joindre le jeu de données d'étiquette prédite et le jeu de données principal. Pour plus d'informations, consultez la description suivante du paramètrejoinsource_name_or_index
. -
joinsource_name_or_index — (Facultatif) Le nom ou l'index de base zéro de la colonne dans les ensembles de données tabulaires à utiliser comme colonne d'identification lors de l'exécution d'une jointure interne. Cette colonne est uniquement utilisée comme identifiant. Elle n'est pas utilisée pour d'autres calculs tels que l'analyse de biais ou l'analyse d'attribution de fonctionnalités. Une valeur pour
joinsource_name_or_index
est nécessaire dans les cas suivants :-
Il existe plusieurs jeux de données en entrée et chacun d'eux est réparti entre plusieurs fichiers.
-
Le traitement distribué est activé en définissant la tâche de traitement SageMaker InstanceCountClarify sur une valeur supérieure à
1
.
-
-
excluded_columns : (facultatif) tableau de noms ou d'index basés sur zéro de colonnes à exclure de l'envoi au modèle en tant qu'entrée pour les prédictions. L'étiquette de vérité terrain et l'étiquette prédite sont déjà automatiquement exclues. Cette fonctionnalité n'est pas prise en charge pour les séries chronologiques.
-
probability_threshold : (facultatif) nombre à virgule flottante au-dessus duquel une étiquette ou un objet sont sélectionnés. La valeur par défaut est
0.5
. La tâche de traitement SageMaker Clarify est utiliséeprobability_threshold
dans les cas suivants :-
Dans l'analyse des biais de post-entraînement,
probability_threshold
convertit une prédiction du modèle numérique (score ou valeur de probabilité) en étiquette binaire, si le modèle est un classificateur binaire. Un score supérieur au seuil est converti à1
. En revanche, un score inférieur ou égal au seuil est converti à0
. -
Dans le cas de problèmes d'explicabilité de vision par ordinateur, si model_type a pour valeur
OBJECT_DETECTION
, probability_threshold
filtre les objets détectés avec des scores de confiance inférieurs à la valeur seuil.
-
-
label_values_or_threshold — (Facultatif) Obligatoire pour l'analyse des biais. Tableau de valeurs d'étiquette ou valeur seuil indiquant un résultat positif pour la vérité terrain et les étiquettes prédites pour les métriques de biais. Pour plus d'informations, voir les valeurs d'étiquette positives dansAmazon SageMaker précise les termes relatifs à la partialité et à l'équité. Si l'étiquette est numérique, le seuil est appliqué comme limite inférieure pour sélectionner le résultat positif. Pour définir
label_values_or_threshold
pour différents types de problèmes, reportez-vous aux exemples suivants :-
Pour un problème de classification binaire, l'étiquette a deux valeurs possibles,
0
et1
. Si la valeur d'étiquette1
est favorable à un groupe démographique observé dans un échantillon,label_values_or_threshold
doit être défini sur[1]
. -
Pour un problème de classification multi-classes, l'étiquette a trois valeurs possibles,
bird
,cat
etdog
. Si les deux derniers définissent un groupe démographique que le biais favorise,label_values_or_threshold
doit être défini sur["cat","dog"]
. -
Pour un problème de régression, la valeur d'étiquette est continue, comprise entre
0
et1
. Si une valeur supérieure à0.5
doit indiquer qu'un échantillon a un résultat positif,label_values_or_threshold
doit être défini sur0.5
.
-
-
facette — (Facultatif) Obligatoire pour l'analyse des biais. Tableau d'objets facettes, composés d'attributs sensibles par rapport auxquels le biais est mesuré. Vous pouvez utiliser des facettes pour comprendre les caractéristiques de biais de votre jeu de données et de votre modèle, même si votre modèle est entraîné sans utiliser d'attributs sensibles. Pour plus d'informations, voir Facet in. Amazon SageMaker précise les termes relatifs à la partialité et à l'équité Cet objet facette inclut les champs suivants :
-
name_or_index — (Facultatif) Le nom ou l'index de base zéro de la colonne d'attributs sensibles dans un jeu de données tabulaire. Si
facet_dataset_uri
est spécifié, l'index fait référence au jeu de données de facettes plutôt qu'au jeu de données principal. -
value_or_threshold — (Facultatif) Obligatoire s'il
facet
est numérique etlabel_values_or_threshold
est appliqué comme limite inférieure pour sélectionner le groupe sensible). Tableau de valeurs de facettes ou valeur seuil indiquant le groupe démographique sensible favorisé par le biais. Si le type de données des facettes est catégoriel et quevalue_or_threshold
n'est pas fourni, les métriques de biais sont calculées comme un groupe pour chaque valeur unique (plutôt que toutes les valeurs). Pour définirvalue_or_threshold
pour différents types de données defacet
, reportez-vous aux exemples suivants :-
Pour un type de données de facette binaire, la fonctionnalité a deux valeurs possibles,
0
et1
. Si vous souhaitez calculer les métriques de biais pour chaque valeur,value_or_threshold
peut être omis ou défini sur un tableau vide. -
Pour un type de données de facette catégoriel, la fonctionnalité a trois valeurs possibles
bird
,cat
etdog
. Si les deux premières définissent un groupe démographique que le biais favorise,value_or_threshold
doit être défini sur["bird", "cat"]
. Dans cet exemple, les échantillons du jeu de données sont divisés en deux groupes démographiques. La facette du groupe avantagé a la valeurbird
oucat
, tandis que celle du groupe défavorisé a la valeurdog
. -
Pour un type de données de facette numérique, la valeur de la fonctionnalité est continue, comprise entre
0
et1
. Par exemple, si une valeur supérieure à0.5
doit indiquer qu'un échantillon est favorisé,value_or_threshold
doit être défini sur0.5
. Dans cet exemple, les échantillons du jeu de données sont divisés en deux groupes démographiques. La facette du groupe avantagé a une valeur supérieure à0.5
, tandis que la facette du groupe défavorisé a une valeur inférieure ou égale à0.5
.
-
-
-
group_variable — (Facultatif) Le nom ou l'indice de base zéro de la colonne qui indique le sous-groupe à utiliser pour la métrique de biais ou. Disparité démographique conditionnelle () CDD Disparité démographique conditionnelle dans les étiquettes prédites () CDDPL
-
facet_dataset_uri — (Facultatif) Applicable uniquement lorsque dataset_type est.
text/csv
Le S3 URI pour un ensemble de données contenant des attributs sensibles pour l'analyse des biais. Vous pouvez utiliser des facettes pour comprendre les caractéristiques de biais de votre jeu de données et de votre modèle, même si votre modèle est entraîné sans utiliser d'attributs sensibles.Note
Si le jeu de données de facettes ou le jeu de données principal est divisé en plusieurs fichiers, une colonne d'identifiants doit être spécifiée par
joinsource_name_or_index
pour joindre les deux jeux de données. Vous devez utiliser le paramètrefacet
pour identifier chaque facette du jeu de données de facettes. -
facet_headers — (Facultatif) Applicable uniquement lorsque cela est spécifié.
facet_dataset_uri
Un tableau de chaînes contenant les noms de colonnes pour le jeu de données à facettes et, éventuellement, l'en-tête de colonne identifiant pour joindre le jeu de données à facettes et le jeu de données principal, voir.joinsource_name_or_index
-
time_series_data_config — (Facultatif) Spécifie la configuration à utiliser pour le traitement des données d'une série chronologique.
item_id — Chaîne ou index entier basé sur zéro. Ce champ est utilisé pour localiser un identifiant d'élément dans le jeu de données d'entrée partagé.
timestamp — Une chaîne ou un index entier basé sur zéro. Ce champ est utilisé pour localiser un horodatage dans le jeu de données d'entrée partagé.
dataset_format — Les valeurs possibles sont
columns
,item_records
ou.timestamp_records
Ce champ est utilisé pour décrire le format d'un JSON ensemble de données, qui est le seul format pris en charge pour l'explicabilité des séries chronologiques.target_time_series — JMESPath Chaîne ou index entier basé sur zéro. Ce champ est utilisé pour localiser la série chronologique cible dans le jeu de données d'entrée partagé. Si ce paramètre est une chaîne, tous les autres paramètres, à l'exception de ceux qui
dataset_format
doivent être des chaînes ou des listes de chaînes, sont des chaînes. Si ce paramètre est un entier, tous les autres paramètres, sauf ceux quidataset_format
doivent être, sont des entiers ou des listes d'entiers.related_time_series — (Facultatif) Un tableau d'expressions. JMESPath Ce champ est utilisé pour localiser toutes les séries chronologiques associées dans le jeu de données d'entrée partagé, le cas échéant.
static_covariates — (Facultatif) Un tableau d'expressions. JMESPath Ce champ est utilisé pour localiser tous les champs de covariables statiques dans le jeu de données d'entrée partagé, le cas échéant.
Pour obtenir des exemples, consultez Exemples de configuration de jeux de données de séries chronologiques.
-
methods : objet contenant une ou plusieurs méthodes d'analyse et leurs paramètres. Si une méthode est omise, elle n'est pas utilisée pour l'analyse ni signalée.
-
pre_training_bias : incluez cette méthode si vous souhaitez calculer des métriques de biais de pré-entraînement. La description détaillée des métriques se trouve dansMétriques de biais de pré-entraînement. L'objet possède les paramètres suivants :
-
methods : tableau contenant une ou plusieurs des métriques de biais de pré-entraînement de la liste suivante que vous souhaitez calculer. Définissez
methods
surall
pour calculer toutes les métriques de biais de pré-entraînement. À titre d'exemple, le tableau["CI", "DPL"]
calculera le déséquilibre de classe et la différence dans les proportions d'étiquettes.-
CI
pour Déséquilibre de classe (CI) -
DPL
pour Différence de proportions entre les étiquettes (DPL) -
LP
pour Norme Lp (LP) -
TVD
pour Distance de variation totale (TVD) -
KS
pour Kolmogorov-Smirnov (KS)
-
-
-
post_training_bias : incluez cette méthode si vous souhaitez calculer des métriques de biais de post-entraînement. La description détaillée des métriques se trouve dansDonnées post-entraînement et mesures de biais du modèle. L'objet
post_training_bias
possède les paramètres suivants.-
methods : tableau contenant une ou plusieurs des métriques de biais de post-entraînement de la liste suivante que vous souhaitez calculer. Définissez
methods
surall
pour calculer toutes les métriques de biais de post-entraînement. Par exemple, le tableau["DPPL", "DI"]
calcule la différence entre les proportions positives des étiquettes prédites et l'impact disparate. Les méthodes disponibles sont les suivantes :-
DPPL
pour Différence entre les proportions positives dans les étiquettes prédites (DPPL) -
DI
pour Impact disparate (DI) -
SD
pour Différence de spécificité (SD) -
RD
pour Différence de rappel (RD) -
AD
pour Différence de précision (AD) -
TE
pour Égalité de traitement (TE) -
CDDPL
pour Disparité démographique conditionnelle dans les étiquettes prédites () CDDPL -
FT
pour FlipTest contrefactuel (FT) -
GE
pour Entropie généralisée (GE)
-
-
-
shap — Incluez cette méthode si vous souhaitez calculer des SHAP valeurs. La tâche de traitement SageMaker Clarify prend en charge l'SHAPalgorithme Kernel. L'objet
shap
possède les paramètres suivants.-
baseline — (Facultatif) Le jeu SHAP de données de référence, également appelé jeu de données d'arrière-plan. Les exigences supplémentaires relatives au jeu de données de référence dans un jeu de données tabulaire ou un problème de vision par ordinateur sont les suivantes. Pour plus d'informations sur les SHAP lignes de base, voir SHAPPoints de référence pour l'explicabilité
-
Pour un jeu de données tabulaire, il
baseline
peut s'agir des données de référence sur place ou du S3 URI d'un fichier de référence. Sibaseline
ce n'est pas le cas, la tâche de traitement SageMaker Clarify calcule une ligne de base en regroupant le jeu de données en entrée. La base de référence doit respecter les exigences suivantes :-
Le format doit être identique au format du jeu de données spécifié par
dataset_type
. -
La base de référence ne peut contenir que les fonctionnalités que le modèle peut accepter en entrée.
-
Le jeu de données de référence peut comporter une ou plusieurs instances. Le nombre d'instances de référence affecte directement la taille du jeu de données synthétique et la durée d'exécution de la tâche.
-
Si
text_config
est spécifié, la valeur de référence d'une colonne de texte est une chaîne utilisée pour remplacer l'unité de texte spécifiée pargranularity
. Par exemple, un espace réservé courant est « [MASK] », qui est utilisé pour représenter un mot ou un morceau de texte manquant ou inconnu.
Les exemples suivants montrent comment définir des données de référence sur place pour différents paramètres
dataset_type
:-
Si
dataset_type
a pour valeurtext/csv
ouapplication/x-parquet
, le modèle accepte quatre fonctionnalités numériques, et la base de référence comporte deux instances. Dans cet exemple, si un enregistrement a toutes ses valeurs de fonctionnalités égales à 0 et que l'autre enregistrement a toutes ses valeurs de fonctionnalités égales à 1, la base de référence doit être définie sur[[0,0,0,0],[1,1,1,1]]
, sans aucun en-tête. -
Si
dataset_type
a pour valeurapplication/jsonlines
,features
est la clé d'une liste de quatre valeurs de fonctionnalités numériques. En outre, dans cet exemple, si la base de référence contient un seul enregistrement dont toutes les valeurs sont égales à 0,baseline
doit être[{"features":[0,0,0,0]}]
. -
Si
dataset_type
a pour valeurapplication/json
, le jeu de donnéesbaseline
doit avoir la même structure et le même format que le jeu de données en entrée.
-
-
Pour les problèmes de vision par ordinateur, il
baseline
peut s'agir URI du S3 d'une image qui est utilisé pour masquer des entités (segments) de l'image d'entrée. La tâche de traitement SageMaker Clarify charge l'image du masque et la redimensionne à la même résolution que l'image d'entrée. Si aucune ligne de base n'est fournie, la tâche de traitement SageMaker Clarify génère une image de masque de bruit blancà la même résolution que l'image d'entrée.
-
-
features_to_explain — (Facultatif) Un tableau de chaînes ou d'indices de base zéro de colonnes de caractéristiques pour lesquels calculer des valeurs. SHAP Si
features_to_explain
ce n'est pas le cas, SHAP les valeurs sont calculées pour toutes les colonnes de fonctions. Ces colonnes de fonctionnalités ne peuvent pas inclure la colonne d'étiquettes ni la colonne d'étiquettes prédites. Le paramètrefeatures_to_explain
n'est pris en charge que pour les jeux de données tabulaires comportant des colonnes numériques et catégorielles. -
num_clusters : (facultatif) nombre de clusters dans lesquels le jeu de données est divisé pour calculer le jeu de données de référence. Chaque cluster est utilisé pour calculer une seule instance de référence. Si
baseline
ce n'est pas spécifié, la tâche de traitement SageMaker Clarify tente de calculer le jeu de données de référence en divisant le jeu de données tabulaire en un nombre optimal de clusters compris entre1
et12
. Le nombre d'instances de référence influe directement sur le temps d'exécution de l'SHAPanalyse. -
num_samples — (Facultatif) Le nombre d'échantillons à utiliser dans l'algorithme KernelSHAP. Si
num_samples
ce n'est pas le cas, la tâche de traitement SageMaker Clarify choisit le numéro pour vous. Le nombre d'échantillons affecte directement la taille du jeu de données synthétique et la durée d'exécution de la tâche. -
seed — (Facultatif) Nombre entier utilisé pour initialiser le générateur de nombres pseudo-aléatoires dans l'SHAPexplicateur afin de générer des SHAP valeurs cohérentes pour la même tâche. Si aucune valeur de départ n'est spécifiée, le modèle peut générer des SHAP valeurs légèrement différentes à chaque exécution de la même tâche.
-
use_logit : (facultatif) valeur booléenne indiquant si vous voulez appliquer la fonction logit aux prédictions de modèle. La valeur par défaut est
false
. Dans l'use_logit
affirmativetrue
, les SHAP valeurs sont calculées à l'aide des coefficients de régression logistique, qui peuvent être interprétés comme des ratios log-odds. -
save_local_shap_values — (Facultatif) Une valeur booléenne qui indique que vous souhaitez que les SHAP valeurs locales de chaque enregistrement de l'ensemble de données soient incluses dans le résultat de l'analyse. La valeur par défaut est
false
.Si le jeu de données principal est divisé en plusieurs fichiers ou si le traitement distribué est activé, spécifiez également une colonne d'identifiants à l'aide du paramètre
joinsource_name_or_index
. La colonne d'identifiant et les SHAP valeurs locales sont enregistrées dans le résultat de l'analyse. De cette façon, vous pouvez mapper chaque enregistrement à ses SHAP valeurs locales. -
agg_method — (Facultatif) Méthode utilisée pour agréger les SHAP valeurs locales (les SHAP valeurs pour chaque instance) de toutes les instances avec les SHAP valeurs globales (les valeurs de l'SHAPensemble de données complet). La valeur par défaut est
mean_abs
. Les méthodes suivantes peuvent être utilisées pour agréger SHAP des valeurs.-
mean_abs — La moyenne des SHAP valeurs locales absolues de toutes les instances.
-
mean_sq — La moyenne des SHAP valeurs locales au carré de toutes les instances.
-
médiane — La médiane des SHAP valeurs locales de toutes les instances.
-
-
text_config — Nécessaire pour l'explicabilité du traitement du langage naturel. Incluez cette configuration si vous souhaitez traiter les colonnes de texte comme du texte et des explications doivent être fournies pour les unités de texte individuelles. Pour un exemple de configuration d'analyse pour l'explicabilité du traitement du langage naturel, voir Configuration d'analyse pour l'explicabilité du traitement du langage naturel
-
granularity : unité de granularité pour l'analyse des colonnes de texte. Les valeurs valides sont
token
,sentence
ouparagraph
. Chaque unité de texte est considérée comme une caractéristique, et SHAP les valeurs locales sont calculées pour chaque unité. -
language : langue des colonnes de texte. Les valeurs valides sont
chinese
,danish
,dutch
,english
,french
,german
,greek
,italian
,japanese
,lithuanian
,multi-language
,norwegian bokmål
,polish
,portuguese
,romanian
,russian
,spanish
,afrikaans
,albanian
,arabic
,armenian
,basque
,bengali
,bulgarian
,catalan
,croatian
,czech
,estonian
,finnish
,gujarati
,hebrew
,hindi
,hungarian
,icelandic
,indonesian
,irish
,kannada
,kyrgyz
,latvian
,ligurian
,luxembourgish
,macedonian
,malayalam
,marathi
,nepali
,persian
,sanskrit
,serbian
,setswana
,sinhala
,slovak
,slovenian
,swedish
,tagalog
,tamil
,tatar
,telugu
,thai
,turkish
,ukrainian
,urdu
,vietnamese
,yoruba
. Entrezmulti-language
pour un mélange de plusieurs langues. -
max_top_tokens — (Facultatif) Le nombre maximum de meilleurs jetons, basé sur des valeurs globales. SHAP La valeur par défaut est
50
. Il est possible qu'un jeton apparaisse plusieurs fois dans le jeu de données. La tâche de traitement SageMaker Clarify agrège les SHAP valeurs de chaque jeton, puis sélectionne les meilleurs jetons en fonction de leurs SHAP valeurs globales. Les SHAP valeurs globales des meilleurs jetons sélectionnés sont incluses dans laglobal_top_shap_text
section du fichier analysis.json. -
La SHAP valeur locale de l'agrégation.
-
-
image_config : nécessaire pour l'explicabilité de la vision par ordinateur. Incluez cette configuration si vous disposez d'un jeu de données en entrée composé d'images et que vous souhaitez les analyser afin de déterminer l'explicabilité dans un problème de vision par ordinateur.
-
model_type : type du modèle. Les valeurs valides sont les suivantes :
-
IMAGE_CLASSIFICATION
pour un modèle de classification d'image. -
OBJECT_DETECTION
pour un modèle de détection d'objet.
-
-
max_objects : applicable uniquement quand model_type a pour valeur
OBJECT_DETECTION
. Nombre maximal d'objets, ordonnés par score de confiance, détectés par le modèle de vision par ordinateur. Tous les objets classés en dessous des max_objects objets principaux en termes de score de confiance sont retirés par filtrage. La valeur par défaut est3
. -
context : applicable uniquement quand model_type a pour valeur
OBJECT_DETECTION
. Il indique si la zone autour du cadre de délimitation de l'objet détecté est masquée par l'image de référence ou non. Les valeurs valides sont0
pour tout masquer, ou1
pour ne rien masquer. La valeur par défaut est 1. -
iou_threshold — Applicable uniquement lorsque
model_type
est la métriqueOBJECT_DETECTION
.The minimum intersection over union (IOU) pour évaluer les prédictions par rapport à la détection initiale. Une IOU métrique élevée correspond à un chevauchement important entre le boîtier de détection de la vérité prédite et le boîtier de détection de la vérité sur le terrain. La valeur par défaut est0.5
. -
num_segments : (facultatif) entier qui détermine le nombre approximatif de segments à étiqueter dans l'image en entrée. Chaque segment de l'image est considéré comme une caractéristique, et des SHAP valeurs locales sont calculées pour chaque segment. La valeur par défaut est
20
. -
segment_compactness : (facultatif) entier qui détermine la forme et la taille des segments d'image générés par la méthode scikit-image slic
. La valeur par défaut est 5
.
-
-
-
pdp — Incluez cette méthode pour calculer les diagrammes de dépendance partielle (PDPs). Pour un exemple de configuration d'analyse à générerPDPs, voir Calculer des diagrammes de dépendance partielle (PDPs)
-
features : obligatoire si la méthode
shap
n'est pas demandée. Tableau de noms de caractéristiques ou d'indices permettant de calculer et de tracer PDP des diagrammes. -
top_k_features — (Facultatif) Spécifie le nombre de principales entités utilisées pour générer des diagrammes. PDP Si
features
ce n'est pas le cas, mais que lashap
méthode est demandée, la tâche de traitement SageMaker Clarify choisit les principales fonctionnalités en fonction de leurs SHAP attributions. La valeur par défaut est10
. -
grid_resolution : nombre de compartiments dans lesquels diviser la plage de valeurs numériques. Cela indique la granularité de la grille pour les PDP diagrammes.
-
-
asymmetric_shapley_value — Incluez cette méthode si vous souhaitez calculer des métriques d'explicabilité pour les modèles de prévision de séries chronologiques. La tâche de traitement SageMaker Clarify prend en charge l'algorithme de valeurs asymétriques de Shapley. Les valeurs de Shapley asymétriques sont une variante de la valeur de Shapley qui supprime l'axiome de symétrie. Pour plus d'informations, voir Valeurs asymétriques de Shapley : intégration des connaissances causales dans
une explicabilité indépendante du modèle. Utilisez ces valeurs pour déterminer dans quelle mesure les entités contribuent aux résultats des prévisions. Les valeurs asymétriques de Shapley prennent en compte les dépendances temporelles des séries chronologiques que les modèles de prévision prennent en entrée. L'algorithme inclut les paramètres suivants :
direction — Les types disponibles sont
chronological
anti_chronological
, etbidirectional
. La structure temporelle peut être parcourue par ordre chronologique ou antichronologique, ou les deux. Les explications chronologiques sont élaborées en ajoutant des informations de manière itérative dès le premier pas. Les explications antichronologiques ajoutent des informations en partant de la dernière étape et en revenant en arrière. Ce dernier ordre peut être plus approprié en présence d'un biais de récence, par exemple pour la prévision des cours des actions.granularité — La granularité explicative à utiliser. Les options de granularité disponibles sont présentées comme suit :
en termes de temps — les
timewise
explications sont peu coûteuses et fournissent des informations uniquement sur des étapes temporelles spécifiques, par exemple pour déterminer dans quelle mesure les informations du jour précédent ont contribué à la prévision du millième jour dans le futur. Les attributions qui en résultent n'expliquent pas les covariables statiques individuelles et ne font pas de distinction entre les séries chronologiques cibles et connexes.fine_grained — les
fine_grained
explications sont plus gourmandes en calculs mais fournissent une ventilation complète de toutes les attributions des variables d'entrée. La méthode calcule des explications approximatives pour réduire le temps d'exécution. Pour plus d'informations, consultez le paramètre suivantnum_samples
.Note
fine_grained
les explications ne soutiennent quechronological
l'ordre.
num_samples — (Facultatif) Cet argument est obligatoire pour les
fine_grained
explications. Plus le nombre est élevé, plus l'approximation est précise. Ce nombre doit être adapté à la dimensionnalité des entités en entrée. En règle générale, définissez cette variable sur (1 + max (nombre de séries chronologiques associées, nombre de covariables statiques)) ^2 si le résultat n'est pas trop important.baseline — (Facultatif) La configuration de référence pour remplacer out-of-coalition les valeurs des ensembles de données correspondants (également appelés données d'arrière-plan). L'extrait suivant montre un exemple de configuration de base :
{ "related_time_series": "zero", "static_covariates": {
<item_id_1>
: [0, 2],<item_id_2>
: [-1, 1] }, "target_time_series": "zero" }Pour les données temporelles telles que les séries chronologiques cibles ou les séries chronologiques associées, les types de valeurs de référence peuvent être l'une des valeurs suivantes :
zero
— Toutes les out-of-coalition valeurs sont remplacées par 0,0.mean
— Toutes les out-of-coalition valeurs sont remplacées par la moyenne d'une série chronologique.
Pour les covariables statiques, une entrée de référence ne doit être fournie que lorsque la demande de modèle prend des valeurs de covariables statiques, auquel cas ce champ est obligatoire. La base de référence doit être fournie pour chaque élément sous forme de liste. Par exemple, si vous avez un ensemble de données avec deux covariables statiques, votre configuration de référence peut être la suivante :
"static_covariates": {
<item_id_1>
: [1, 1],<item_id_2>
: [0, 1] }Dans l'exemple précédent,
<item_id_1>
et<item_id_2>
sont les identifiants des éléments de l'ensemble de données.
-
report : (facultatif) utilisez cet objet pour personnaliser le rapport d'analyse. Ce paramètre n'est pas pris en charge pour les tâches d'explication de séries chronologiques. Le résultat de l'analyse contient trois copies du même rapport : le rapport Jupyter Notebook, le rapport et HTML PDF le rapport. L'objet possède les paramètres suivants :
-
name : nom de fichier des fichiers de rapport. Par exemple, si
name
a pour valeurMyReport
, les fichiers de rapport sontMyReport.ipynb
,MyReport.html
etMyReport.pdf
. La valeur par défaut estreport
. -
title : (facultatif) chaîne de titre du rapport. La valeur par défaut est
SageMaker AI Analysis Report
.
-
-
-
predictor : requis si l'analyse nécessite des prédictions issues du modèle. Par exemple, lorsque la
post_training_bias
méthodeshap
,asymmetric_shapley_value
pdp
, ou est demandée, mais que les étiquettes prédites ne sont pas fournies dans le cadre du jeu de données en entrée. Les paramètres suivants doivent être utilisés conjointement àpredictor
:-
model_name — Le nom de votre modèle d' SageMaker IA créé par le. CreateModelAPI Si vous spécifiez
model_name
plutôt que endpoint_name, la tâche de traitement SageMaker Clarify crée un point de terminaison éphémère portant le nom du modèle, connu sous le nom de point de terminaison fictif, et obtient des prédictions à partir du point de terminaison. Une fois les calculs terminés, la tâche supprime le point de terminaison miroir. Si le modèle est multimodèle, letarget_model
paramètre doit être spécifié. Pour de plus amples informations à propos de l'utilisation des points de terminaison multimodèles, consultez Points de terminaison multi-modèles. -
endpoint_name_prefix : (facultatif) préfixe de nom personnalisé pour le point de terminaison miroir. Applicable si vous spécifiez
model_name
à la place deendpoint_name
. Par exemple, spécifiezendpoint_name_prefix
si vous souhaitez restreindre l'accès au point de terminaison par le nom de point de terminaison. Le préfixe doit correspondre au EndpointNamemodèle et sa longueur maximale est23
de. La valeur par défaut estsm-clarify
. -
initial_instance_count : spécifie le nombre d'instances pour le point de terminaison miroir. Requis si vous spécifiez model_name à la place de endpoint_name. La valeur pour
initial_instance_count
peut être différente de celle InstanceCountde la tâche, mais nous recommandons un ratio de 1:1. -
instance_type : spécifie le type d'instance pour le point de terminaison miroir. Requis si vous spécifiez
model_name
à la place deendpoint_name
. Par exemple,instance_type
peut être défini sur "ml.m5.large". Dans certains cas, la valeur spécifiée pourinstance_type
peut contribuer à réduire le temps d'inférence de modèle. Par exemple, pour fonctionner efficacement, les modèles de traitement du langage naturel et les modèles de vision par ordinateur nécessitent généralement un type d'instance d'unité de traitement graphique (GPU). -
endpoint_name — Le nom de votre point de terminaison SageMaker AI créé par le. CreateEndpointAPI S'il est fourni,
endpoint_name
a priorité sur le paramètremodel_name
. L'utilisation d'un point de terminaison existant réduit le temps d'amorçage du point de terminaison miroir, mais elle peut également entraîner une augmentation significative de la charge de ce point de terminaison. En outre, certaines méthodes d'analyse (telles queshap
etpdp
) génèrent des jeux de données synthétiques qui sont envoyés au point de terminaison. Cela peut entraîner la contamination des métriques du point de terminaison ou des données capturées par des données synthétiques, qui peuvent ne pas refléter avec précision l'utilisation réelle. Pour ces raisons, il n'est généralement pas recommandé d'utiliser un point de production existant pour l'analyse SageMaker Clarify. -
target_model — La valeur de chaîne transmise au TargetModel paramètre de l'IA. SageMaker InvokeEndpointAPI Requis si votre modèle (spécifié par le paramètre model_name) ou votre point de terminaison (spécifié par le paramètre endpoint_name) est multimodèle. Pour de plus amples informations à propos de l'utilisation des points de terminaison multimodèles, consultez Points de terminaison multi-modèles.
-
custom_attributes : (facultatif) chaîne qui vous permet de fournir des informations supplémentaires sur une demande d'inférence soumise au point de terminaison. La valeur de la chaîne est transmise au
CustomAttributes
paramètre de l' SageMaker IA InvokeEndpointAPI. -
content_type :format d'entrée de modèle à utiliser pour obtenir des prédictions à partir du point de terminaison. S'il est fourni, il est transmis au
ContentType
paramètre de l' SageMaker IA InvokeEndpointAPI.-
Pour l'explicabilité de la vision par ordinateur, les valeurs valides sont
image/jpeg
,image/png
ouapplication/x-npy
. Sicontent_type
n'est pas fourni, la valeur par défaut estimage/jpeg
. Pour l'explicabilité des prévisions de séries chronologiques, la valeur valide est.
application/json
-
Pour les autres types d'explicabilité, les valeurs valides sont
text/csv
,application/jsonlines,
etapplication/json
. Une valeur pourcontent_type
est requise si c'dataset_type
est le casapplication/x-parquet
. Dans le cas contraire,content_type
a pour valeur par défaut la valeur du paramètredataset_type
.
-
-
accept_type : format de sortie du modèle à utiliser pour obtenir des prédictions à partir du point de terminaison. La valeur pour
accept_type
est transmise auAccept
paramètre de l' SageMaker IA InvokeEndpointAPI.-
Pour l'explicabilité de la vision par ordinateur, si
model_type
est « OBJECT _ DETECTION », laaccept_type
valeur par défaut est.application/json
Pour l'explicabilité des prévisions de séries chronologiques, la valeur valide est.
application/json
-
Pour les autres types d'explicabilité, les valeurs valides sont
text/csv
,application/jsonlines
etapplication/json
. Si aucune valeur n'est fournie pouraccept_type
,accept_type
a pour valeur par défaut la valeur du paramètrecontent_type
.
-
-
content_template : chaîne de modèle utilisée pour construire l'entrée de modèle à partir d'enregistrements de jeu de données. Le paramètre
content_template
est utilisé et requis seulement si la valeur du paramètrecontent_type
estapplication/jsonlines
ouapplication/json
.Quand le paramètre
content_type
a pour valeurapplication/jsonlines
, le modèle doit avoir un seul espace réservé,$features
, qui est remplacé par une liste de fonctionnalités au moment de l'exécution. Par exemple, si le modèle est"{\"myfeatures\":$features}"
, et si un enregistrement comporte trois valeurs de caractéristiques numériques :1
,2
et3
, alors l'enregistrement sera envoyé au modèle sous forme de JSON ligne{"myfeatures":[1,2,3]}
.Quand
content_type
a pour valeurapplication/json
, le modèle peut avoir l'espace réservé$record
ourecords
. Si l'espace réservé estrecord
, un enregistrement individuel est remplacé par un enregistrement auquel le modèle figurant dansrecord_template
est appliqué. Dans ce cas, un seul enregistrement est envoyé au modèle à la fois. Si l'espace réservé est$records
, les enregistrements sont remplacés par une liste d'enregistrements, chacun avec un modèle fourni parrecord_template
. -
record_template : chaîne de modèle à utiliser pour construire chaque enregistrement de l'entrée de modèle à partir des instances du jeu de données. Il est utilisé et requis seulement quand
content_type
a pour valeurapplication/json
. La chaîne de modèle peut contenir l'un des éléments suivants :-
Un paramètre
$features
d'espace réservé qui est remplacé par un tableau de valeurs de fonctionnalités. Un espace réservé facultatif supplémentaire peut remplacer les noms des en-têtes des colonnes de fonctionnalités dans$feature_names
. Cet espace réservé facultatif sera remplacé par un tableau de noms de fonctionnalités. -
Un et un seul espace réservé
$features_kvp
, qui est remplacé par les paires clé-valeur, le nom de fonctionnalité et la valeur de fonctionnalité. -
Une fonctionnalité dans la configuration de
headers
. Par exemple, un nom de fonctionnalitéA
, noté par la syntaxe d'espace réservé"${A}"
, sera remplacé par la valeur de fonctionnalité pourA
.
La valeur pour
record_template
est utilisée aveccontent_template
pour construire l'entrée de modèle. Voici un exemple de configuration montrant comment construire une entrée de modèle à l'aide d'un modèle de contenu et d'enregistrement.Dans l'exemple de code suivant, les en-têtes et les fonctionnalités sont définis comme suit.
-
`headers`:["A", "B"]
-
`features`:[[0,1], [3,4]]
Voici l'exemple d'entrée de modèle :
{ "instances": [[0, 1], [3, 4]], "feature_names": ["A", "B"] }
Les exemples de valeurs des paramètres
content_template
etrecord_template
permettant de construire l'exemple d'entrée de modèle précédent sont les suivants.-
content_template: "{\"instances\": $records, \"feature_names\": $feature_names}"
-
record_template: "$features"
Dans l'exemple de code suivant, les en-têtes et les fonctionnalités sont définis comme suit.
[ { "A": 0, "B": 1 }, { "A": 3, "B": 4 }, ]
Les exemples de valeurs des paramètres
content_template
etrecord_template
permettant de construire l'exemple d'entrée de modèle précédent sont les suivants.-
content_template: "$records"
-
record_template: "$features_kvp"
Voici un autre exemple de code pour construire l'exemple d'entrée de modèle précédent.
-
content_template: "$records"
-
record_template: "{\"A\": \"${A}\", \"B\": \"${B}\"}"
Dans l'exemple de code suivant, les en-têtes et les fonctionnalités sont définis comme suit.
{ "A": 0, "B": 1 }
Les exemples de valeurs des paramètres content_template et record_template utilisés pour construire l'exemple d'entrée de modèle précédent sont les suivants.
-
content_template: "$record"
-
record_template: "$features_kvp"
Pour obtenir plus d’exemples, consultez Demandes de données de séries chronologiques adressées aux terminaux.
-
-
label — (Facultatif) Indice entier de base zéro ou chaîne JMESPath d'expression utilisé pour extraire les étiquettes prédites de la sortie du modèle à des fins d'analyse des biais. Si le modèle est multiclasse et que le paramètre
label
extrait toutes les étiquettes prédites de la sortie du modèle, les points suivants s'appliquent. Cette fonctionnalité n'est pas prise en charge pour les séries chronologiques.-
Le paramètre
probability
est requis pour obtenir les probabilités (ou scores) correspondantes à partir de la sortie du modèle. -
L'étiquette prédite du score le plus élevé est choisie.
La valeur de
label
dépend de la valeur du paramètre accept_type, comme suit.-
Si
accept_type
a pour valeurtext/csv
,label
est l'index de toutes les étiquettes prédites dans la sortie du modèle. -
If
accept_type
isapplication/jsonlines
orapplication/json
, thenlabel
est une JMESPath expression appliquée à la sortie du modèle pour obtenir les étiquettes prédites.
-
-
label_headers — (Facultatif) Un tableau de valeurs que l'étiquette peut prendre dans l'ensemble de données. Si une analyse de biais est demandée, le paramètre
probability
est également requis pour obtenir les valeurs de probabilité correspondantes (scores) à partir de la sortie du modèle et l'étiquette prédite du score le plus élevé est choisie. Si une analyse d'explicabilité est demandée, les en-têtes des étiquettes sont utilisés pour embellir le rapport d'analyse. Une valeur pourlabel_headers
est requise pour l'explicabilité de la vision par ordinateur. Par exemple, pour un problème de classification multi-classes, si l'étiquette a trois valeurs possibles,bird
,cat
etdog
,label_headers
doit être défini sur["bird","cat","dog"]
. -
probabilité — (Facultatif) Indice entier basé sur zéro ou chaîne d'JMESPathexpression utilisé pour extraire des probabilités (scores) pour une analyse d'explicabilité (mais pas pour l'explicabilité des séries chronologiques), ou pour choisir l'étiquette prédite pour l'analyse des biais. La valeur de
probability
dépend de la valeur du paramètreaccept_type
, comme suit.-
Si
accept_type
a pour valeurtext/csv
,probability
est l'index des probabilités (scores) figurant dans la sortie du modèle. Siprobability
n'est pas fourni, la totalité de la sortie du modèle est considérée comme les probabilités (scores). -
S'il s'
accept_type
agit de JSON données (application/jsonlines
ouapplication/json
),probability
il doit s'agir JMESPath d'une expression utilisée pour extraire les probabilités (scores) de la sortie du modèle.
-
-
time_series_predictor_config — (Facultatif) Utilisé uniquement pour l'explicabilité des séries chronologiques. Utilisé pour indiquer au processeur SageMaker Clarify comment analyser correctement les données à partir des données transmises sous forme d'entrée S3URI.
dataset_uri
forecast — JMESPath Expression utilisée pour extraire le résultat de la prévision.
-
Exemples de fichiers de configuration d'analyse
Les sections suivantes contiennent des exemples de fichiers de configuration d'analyse pour les données au CSV format, au format JSON Lines et pour l'explicabilité du traitement du langage naturel (NLP), de la vision par ordinateur (CV) et des séries chronologiques (TS).
Les exemples suivants montrent comment configurer l'analyse du biais et de l'explicabilité d'un jeu de données tabulaire au format. CSV Dans ces exemples, le jeu de données entrant comporte quatre colonnes de fonctionnalités et une colonne d'étiquettes binaires, Target
. Le contenu du jeu de données est le suivant. Une valeur d'étiquette de 1
indique un résultat positif. L'ensemble de données est fourni à la tâche SageMaker Clarify par l'entrée dataset
de traitement.
"Target","Age","Gender","Income","Occupation" 0,25,0,2850,2 1,36,0,6585,0 1,22,1,1759,1 0,48,0,3446,1 ...
Les sections suivantes montrent comment calculer les mesures de biais avant et après l'entraînement, les SHAP valeurs et les diagrammes de dépendance partielle (PDPs) indiquant l'importance des fonctionnalités pour un ensemble de données au CSV format.
Calcul de toutes les métriques de biais de pré-entraînement
Cet exemple de configuration montre comment mesurer si l'exemple de jeu de données précédent est favorablement biaisé en faveur des échantillons avec une valeur de Gender
égale à 0
. La configuration d'analyse suivante indique à la tâche de traitement SageMaker Clarify de calculer toutes les mesures de biais préalables à l'entraînement pour l'ensemble de données.
{ "dataset_type": "text/csv", "label": "Target", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }
Calcul de toutes les métriques de biais de post-entraînement
Vous pouvez calculer les métriques de biais de pré-entraînement avant l'entraînement. Toutefois, vous devez disposer d'un modèle entraîné pour calculer les métriques de biais de post-entraînement. L'exemple de sortie suivant provient d'un modèle de classification binaire qui produit des données au CSV format. Dans cet exemple de sortie, chaque ligne contient deux colonnes. La première colonne contient l'étiquette prédite et la deuxième colonne contient la valeur de probabilité pour cette étiquette.
0,0.028986845165491 1,0.825382471084594 ...
L'exemple de configuration suivant indique à la tâche de traitement SageMaker Clarify de calculer toutes les mesures de biais possibles à l'aide du jeu de données et des prédictions issues de la sortie du modèle. Dans l'exemple, le modèle est déployé sur un point de terminaison d' SageMaker IAyour_endpoint
.
Note
Dans l'exemple de code suivant, les paramètres content_type
et accept_type
ne sont pas définis. Par conséquent, ils utilisent automatiquement la valeur du paramètre dataset_type, qui est text/csv
.
{ "dataset_type": "
text/csv
", "label": "Target
", "label_values_or_threshold":[1]
, "facet": [ { "name_or_index": "Gender
", "value_or_threshold":[0]
} ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" } }, "predictor": { "endpoint_name": "your_endpoint
", "label":0
} }
Calculez les SHAP valeurs
L'exemple de configuration d'analyse suivant indique à la tâche de calculer les SHAP valeurs désignant la Target
colonne comme des étiquettes et toutes les autres colonnes comme des entités.
{ "dataset_type": "
text/csv
", "label": "Target
", "methods": { "shap": { "num_clusters":1
} }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
} }
Dans cet exemple, le paramètre SHAP baseline
est omis et la valeur du paramètre num_clusters
est 1
. Cela indique au processeur SageMaker Clarify de calculer un échantillon SHAP de référence. Dans cet exemple, la probabilité est définie sur 1
. Cela indique à la tâche de traitement SageMaker Clarify d'extraire le score de probabilité de la deuxième colonne de la sortie du modèle (en utilisant une indexation basée sur zéro).
Calculer des diagrammes de dépendance partielle (PDPs)
L'exemple suivant montre comment visualiser l'importance de la Income
fonctionnalité dans le rapport d'analyse à l'aide dePDPs. Le paramètre report indique à la tâche de traitement SageMaker Clarify de générer un rapport. Une fois la tâche terminée, le rapport généré est enregistré en tant que report.pdf à l'emplacement analysis_result
. Le paramètre grid_resolution
divise la plage des valeurs des fonctionnalités en 10
compartiments. Ensemble, les paramètres spécifiés dans l'exemple suivant indiquent à la tâche de traitement SageMaker Clarify de générer un rapport contenant un PDP graphique pour les Income
10
segments sur l'axe X. L'axe Y montre l'impact marginal de Income
sur les prédictions.
{ "dataset_type": "text/csv", "label": "Target", "methods": { "pdp": { "features": ["
Income
"], "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
}, }
Calcul simultané des métriques de biais et de l'importance des fonctionnalités
Vous pouvez combiner toutes les méthodes des exemples de configuration précédents dans un fichier de configuration d'analyse unique et les calculer toutes à l'aide d'une seule tâche. L'exemple suivant montre une configuration d'analyse avec toutes les étapes combinées.
Dans cet exemple, le paramètre probability
est défini sur 1
pour indiquer que les probabilités sont contenues dans la deuxième colonne (en utilisant une indexation basée sur zéro). Toutefois, comme l'analyse des biais nécessite une étiquette prédite, le paramètre probability_threshold
est défini sur 0.5
pour convertir le score de probabilité en étiquette binaire. Dans cet exemple, le paramètre top_k_features
de la méthode pdp
des graphiques de dépendance partielle est défini sur 2
. Cela indique à la tâche de traitement SageMaker Clarify de calculer les diagrammes de dépendance partiels (PDPs) pour les principales 2
entités présentant les valeurs globales SHAP les plus élevées.
{ "dataset_type": "text/csv", "label": "
Target
", "probability_threshold":0.5
, "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" }, "shap": { "num_clusters":1
}, "pdp": { "top_k_features":2
, "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
} }
Au lieu de déployer le modèle sur un point de terminaison, vous pouvez fournir le nom de votre modèle d' SageMaker IA à la tâche de traitement SageMaker Clarify à l'aide du model_name
paramètre. L'exemple suivant montre comment spécifier un modèle nommé your_model
. La tâche de traitement SageMaker Clarify créera un point de terminaison fictif à l'aide de la configuration.
{ ... "predictor": { "model_name": "
your_model
", "initial_instance_count":1
, "instance_type": "ml.m5.large
", "probability":1
} }
Les exemples suivants montrent comment configurer l'analyse des biais et l'analyse d'explicabilité pour un jeu de données tabulaire au JSON format Lignes. Dans ces exemples, le jeu de données entrant contient les mêmes données que dans la section précédente, mais elles sont au format dense SageMaker AI JSON Lines. Chaque ligne est un JSON objet valide. La clé "Features" pointe sur un tableau de valeurs de fonctionnalités, et la clé "Label" pointe sur l'étiquette de vérité terrain. L'ensemble de données est fourni à la tâche SageMaker Clarify par l'entrée de traitement « ensemble de données ». Pour plus d'informations sur JSON Lines, consultezJSONLINESformat de demande.
{"Features":[25,0,2850,2],"Label":0} {"Features":[36,0,6585,0],"Label":1} {"Features":[22,1,1759,1],"Label":1} {"Features":[48,0,3446,1],"Label":0} ...
Les sections suivantes montrent comment calculer les mesures de biais, les SHAP valeurs et les diagrammes de dépendance partielle avant et après l'entraînement (PDPs) indiquant l'importance des caractéristiques pour un ensemble de données au format JSON Lignes.
Calcul des métriques de biais de pré-entraînement
Spécifiez l'étiquette, les fonctionnalités, le format et les méthodes pour mesurer les métriques de biais de pré-entraînement pour une valeur Gender
de 0
. Dans l'exemple suivant, le paramètre headers
fournit d'abord les noms des fonctionnalités. Le nom d'étiquette est fourni en dernier. Par convention, le dernier en-tête est l'en-tête d'étiquette.
Le features
paramètre est défini sur l'JMESPathexpression « Features » afin que la tâche de traitement SageMaker Clarify puisse extraire le tableau de caractéristiques de chaque enregistrement. Le label
paramètre est défini sur JMESPath l'expression « Label » afin que la tâche de traitement SageMaker Clarify puisse extraire l'étiquette Ground Truth de chaque enregistrement. Utilisez un nom de facette pour spécifier l'attribut sensible, comme suit.
{ "dataset_type": "
application/jsonlines
", "headers": ["Age","Gender","Income","Occupation","Target"
], "label": "Label
", "features": "Features
", "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" } } }
Calcul de toutes les métriques de biais
Vous devez disposer d'un modèle entraîné pour calculer les métriques de biais de post-entraînement. L'exemple suivant provient d'un modèle de classification binaire qui produit des données JSON Lines au format de l'exemple. Chaque ligne de la sortie du modèle est un JSON objet valide. La clé predicted_label
pointe vers l'étiquette prédite et la clé probability
pointe vers la valeur de probabilité.
{"predicted_label":0,"probability":0.028986845165491} {"predicted_label":1,"probability":0.825382471084594} ...
Vous pouvez déployer le modèle sur un point de terminaison d' SageMaker IA nomméyour_endpoint
. L'exemple de configuration d'analyse suivant indique à la tâche de traitement SageMaker Clarify de calculer toutes les mesures de biais possibles pour le jeu de données et le modèle. Dans cet exemple, les paramètres content_type
et accept_type
ne sont pas définis. Par conséquent, ils sont définis automatiquement sur la valeur du paramètre dataset_type, qui est application/jsonlines
. La tâche de traitement SageMaker Clarify utilise le content_template
paramètre pour composer l'entrée du modèle, en remplaçant l'$features
espace réservé par un ensemble de fonctionnalités.
{ "dataset_type": "
application/jsonlines
", "headers": ["Age","Gender","Income","Occupation","Target"
], "label": "Label
", "features": "Features
", "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features
}", "label": "predicted_label
" } }
Calculez les SHAP valeurs
Comme SHAP l'analyse n'a pas besoin d'une étiquette de vérité fondamentale, le label
paramètre est omis. Dans cet exemple, le paramètre headers
est également omis. Par conséquent, la tâche de traitement SageMaker Clarify doit générer des espaces réservés utilisant des noms génériques tels que column_0
ou column_1
pour les en-têtes de fonctionnalités et label0
pour un en-tête d'étiquette. Vous pouvez spécifier des valeurs pour headers
et pour label
afin d'améliorer la lisibilité du résultat de l'analyse. Le paramètre de probabilité étant défini sur JMESPath expressionprobability
, la valeur de probabilité sera extraite de la sortie du modèle. Voici un exemple de calcul de SHAP valeurs.
{ "dataset_type": "
application/jsonlines
", "features": "Features
", "methods": { "shap": { "num_clusters
": 1 } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features}
", "probability": "probability
" } }
Calculer les diagrammes de dépendance partiels () PDPs
L'exemple suivant montre comment considérer l'importance du « revenu » surPDP. Dans cet exemple, les en-têtes des fonctionnalités ne sont pas fournis. Par conséquent, le paramètre features
de la méthode pdp
doit utiliser un index basé sur zéro pour faire référence à l'emplacement de la colonne de fonctionnalités. Le paramètre grid_resolution
divise la plage des valeurs des fonctionnalités en 10
compartiments. Ensemble, les paramètres de l'exemple indiquent à la tâche de traitement SageMaker Clarify de générer un rapport contenant un PDP graphique pour les Income
10
segments sur l'axe X. L'axe Y montre l'impact marginal de Income
sur les prédictions.
{ "dataset_type": "
application/jsonlines
", "features": "Features
", "methods": { "pdp": { "features": [2
], "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features}
", "probability": "probability
" } }
Calcul simultané des métriques de biais et de l'importance des fonctionnalités
Vous pouvez combiner toutes les méthodes précédentes dans un fichier de configuration d'analyse unique et les calculer toutes à l'aide d'une seule tâche. L'exemple suivant montre une configuration d'analyse avec toutes les étapes combinées. Dans cet exemple, le paramètre probability
est défini. Cependant, comme l'analyse des biais nécessite une étiquette prédite, le paramètre probability_threshold
est défini sur 0.5
pour convertir le score de probabilité en étiquette binaire. Dans cet exemple, le paramètre top_k_features
de la méthode pdp
est défini sur 2
. Cela indique à la tâche de traitement SageMaker Clarify de calculer PDPs les principales 2
entités présentant les SHAP valeurs globales les plus élevées.
{ "dataset_type": "
application/jsonlines
", "headers": ["Age","Gender","Income","Occupation","Target"
], "label": "Label
", "features": "Features
", "probability_threshold":0.5
, "label_values_or_threshold": [1
], "facet": [ { "name_or_index": "Gender
", "value_or_threshold": [0
] } ], "methods": { "pre_training_bias": { "methods": "all
" }, "post_training_bias": { "methods": "all
" }, "shap": { "num_clusters":1
}, "pdp": { "top_k_features":2
, "grid_resolution":10
}, "report": { "name": "report
" } }, "predictor": { "endpoint_name": "your_endpoint
", "content_template": "{\"Features\":$features}
", "probability": "probability
" } }
Les exemples suivants montrent comment configurer l'analyse du biais et de l'explicabilité d'un jeu de données tabulaire au format. JSON Dans ces exemples, le jeu de données entrant contient les mêmes données que dans la section précédente, mais elles sont au format SageMaker AI JSON dense. Pour plus d'informations sur JSON Lines, consultezJSONLINESformat de demande.
L'ensemble de la demande d'entrée est valide JSON lorsque la structure externe est une liste et que chaque élément correspond aux données d'un enregistrement. Dans chaque enregistrement, la clé Features
pointe sur un tableau de valeurs de fonctionnalités et la clé Label
pointe sur l'étiquette de vérité terrain. L'ensemble de données est fourni à la tâche SageMaker Clarify par l'entrée dataset
de traitement.
[ {"Features":[25,0,2850,2],"Label":0}, {"Features":[36,0,6585,0],"Label":1}, {"Features":[22,1,1759,1],"Label":1}, {"Features":[48,0,3446,1],"Label":0}, ... ]
Les sections suivantes montrent comment calculer les mesures de biais, les SHAP valeurs et les diagrammes de dépendance partielle (PDPs) avant et après l'entraînement qui montrent l'importance des fonctionnalités pour un ensemble de données au format JSON Lignes.
Calcul des métriques de biais de pré-entraînement
Spécifiez l'étiquette, les fonctionnalités, le format et les méthodes pour mesurer les métriques de biais de pré-entraînement pour une valeur Gender
de 0
. Dans l'exemple suivant, le paramètre headers
fournit d'abord les noms des fonctionnalités. Le nom d'étiquette est fourni en dernier. Pour les JSON ensembles de données, le dernier en-tête est l'en-tête de l'étiquette.
Le features
paramètre est défini sur l'JMESPathexpression qui extrait un tableau ou une matrice 2D. Chaque ligne de cette matrice doit contenir la liste de Features
pour chaque enregistrement. Le label
paramètre est défini sur une JMESPath expression qui extrait une liste d'étiquettes de vérité fondamentale. Chaque élément de cette liste doit contenir l'étiquette d'un enregistrement.
Utilisez un nom de facette pour spécifier l'attribut sensible, comme suit.
{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }
Calcul de toutes les métriques de biais
Vous devez disposer d'un modèle entraîné pour calculer les métriques de biais de post-entraînement. L'exemple de code suivant provient d'un modèle de classification binaire qui produit JSON des données au format de l'exemple. Dans cet exemple, chaque élément sous predictions
est la sortie de prédiction d'un enregistrement. Cet exemple de code contient la clé predicted_label
, qui pointe vers l'étiquette prédite, et la clé probability
pointe vers la valeur de probabilité.
{ "predictions": [ {"predicted_label":0,"probability":0.028986845165491}, {"predicted_label":1,"probability":0.825382471084594}, ... ] }
Vous pouvez déployer le modèle sur un point de terminaison d' SageMaker IA nomméyour_endpoint
.
Dans l'exemple suivant, les paramètres content_type
et accept_type
ne sont pas définis. Par conséquent, content_type
et accept_type
sont définis automatiquement pour utiliser la valeur du paramètre dataset_type
, qui est application/json
. La tâche de traitement SageMaker Clarify utilise ensuite le content_template
paramètre pour composer l'entrée du modèle.
Dans l'exemple suivant, l'entrée du modèle est composée en remplaçant l'espace réservé $records
par un tableau d'enregistrements. Le record_template
paramètre compose ensuite la JSON structure de chaque enregistrement et remplace l'$features
espace réservé par le tableau de fonctionnalités de chaque enregistrement.
L'exemple de configuration d'analyse suivant indique à la tâche de traitement SageMaker Clarify de calculer toutes les mesures de biais possibles pour le jeu de données et le modèle.
{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "label": "predictions[*].predicted_label" } }
Calculez les SHAP valeurs
Il n'est pas nécessaire de spécifier une étiquette pour SHAP l'analyse. Dans l'exemple suivant, le paramètre headers
n'est pas spécifié. Par conséquent, la tâche de traitement SageMaker Clarify générera des espaces réservés utilisant des noms génériques tels que column_0
ou column_1
pour les en-têtes de fonctionnalités et label0
pour un en-tête d'étiquette. Vous pouvez spécifier des valeurs pour headers
et pour label
afin d'améliorer la lisibilité du résultat de l'analyse.
Dans l'exemple de configuration suivant, le paramètre de probabilité est défini sur une JMESPath expression qui extrait les probabilités de chaque prédiction pour chaque enregistrement. Voici un exemple de calcul de SHAP valeurs.
{ "dataset_type": "application/json", "features": "[*].Features", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }
Calculer des diagrammes de dépendance partielle (PDPs)
L'exemple suivant vous montre comment afficher l'importance d'une fonctionnalité dansPDPs. Dans cet exemple, les en-têtes des fonctionnalités ne sont pas fournis. Par conséquent, le paramètre features
de la méthode pdp
doit utiliser un index basé sur zéro pour faire référence à l'emplacement de la colonne de fonctionnalités. Le paramètre grid_resolution
divise la plage des valeurs des fonctionnalités en 10
compartiments.
Ensemble, les paramètres de l'exemple suivant indiquent à la tâche de traitement SageMaker Clarify de générer un rapport contenant un PDP graphique pour les Income
10
segments sur l'axe X. L'axe Y montre l'impact marginal de Income
sur les prédictions.
L'exemple de configuration suivant montre comment évaluer l'importance de Income
onPDPs.
{ "dataset_type": "application/json", "features": "[*].Features", "methods": { "pdp": { "features": [2], "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }
Calcul simultané des métriques de biais et de l'importance des fonctionnalités
Vous pouvez combiner toutes les méthodes de configuration précédentes dans un fichier de configuration d'analyse unique et les calculer toutes à l'aide d'une seule tâche. L'exemple suivant montre une configuration d'analyse avec toutes les étapes combinées.
Dans cet exemple, le paramètre probability
est défini. Comme l'analyse des biais nécessite une étiquette prédite, le paramètre probability_threshold
est défini sur 0.5
et est utilisé pour convertir le score de probabilité en étiquette binaire. Dans cet exemple, le paramètre top_k_features
de la méthode pdp
est défini sur 2
. Cela indique à la tâche de traitement SageMaker Clarify de calculer PDPs les principales 2
entités présentant les SHAP valeurs globales les plus élevées.
{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "probability_threshold": 0.5, "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" }, "shap": { "num_clusters": 1 }, "pdp": { "top_k_features": 2, "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }
L'exemple suivant montre un fichier de configuration d'analyse destiné à calculer l'importance des fonctionnalités pour le traitement du langage naturel (NLP). Dans cet exemple, le jeu de données entrant est un jeu de données tabulaire au CSV format tabulaire, avec une colonne d'étiquette binaire et deux colonnes d'entités, comme suit. L'ensemble de données est fourni à la tâche SageMaker Clarify par le paramètre d'entrée de dataset
traitement.
0,2,"They taste gross" 1,3,"Flavor needs work" 1,5,"Taste is awful" 0,1,"The worst" ...
Dans cet exemple, un modèle de classification binaire a été entraîné sur le jeu de données précédent. Le modèle accepte CSV les données et produit un score unique compris entre 0
et1
, comme suit.
0.491656005382537 0.569582343101501 ...
Le modèle est utilisé pour créer un modèle d' SageMaker IA nommé « your_model ». La configuration d'analyse suivante montre comment exécuter une analyse d'explicabilité par jeton à l'aide du modèle et du jeu de données. Le text_config
paramètre active l'analyse d'NLPexplicabilité. Le paramètre granularity
indique que l'analyse doit analyser les jetons.
En anglais, chaque jeton est un mot. L'exemple suivant montre également comment fournir une instance SHAP « de référence » sur place en utilisant une « note » moyenne de 4. Un jeton de masque spécial « [MASK] » est utilisé pour remplacer un jeton (mot) dans « Commentaires ». Cet exemple utilise également un type d'instance de point de GPU terminaison pour accélérer l'inférence.
{ "dataset_type": "
text/csv
", "headers": ["Target","Rating","Comments"
] "label": "Target
", "methods": { "shap": { "text_config": { "granularity": "token
", "language": "english
" } "baseline": [[4,"[MASK]"
]], } }, "predictor": { "model_name": "your_nlp_model
", "initial_instance_count":1
, "instance_type": "ml.g4dn.xlarge
" } }
L'exemple suivant montre un fichier de configuration d'analyse calculant l'importance des fonctionnalités pour la vision par ordinateur. Dans cet exemple, le jeu de données en entrée est constitué d'JPEGimages. L'ensemble de données est fourni à la tâche SageMaker Clarify par le paramètre d'entrée de dataset
traitement. L'exemple montre comment configurer une analyse d'explicabilité à l'aide d'un modèle de classification d'images basé sur l' SageMaker IA. Dans l'exemple, un modèle nomméyour_cv_ic_model
, a été entraîné pour classer les animaux sur les JPEG images d'entrée.
{ "dataset_type": "
application/x-image
", "methods": { "shap": { "image_config": { "model_type": "IMAGE_CLASSIFICATION
", "num_segments":20
, "segment_compactness":10
} }, "report": { "name": "report
" } }, "predictor": { "model_name": "your_cv_ic_model
", "initial_instance_count":1
, "instance_type": "ml.p2.xlarge
", "label_headers": ["bird","cat","dog"
] } }
Pour plus d'informations sur la classification des images, consultezClassification des images - MXNet.
Dans cet exemple, un modèle de détection d'objets basé sur l'SageMaker IA your_cv_od_model
est entraîné sur les mêmes JPEG images pour identifier les animaux qui s'y trouvent. L'exemple suivant montre comment configurer une analyse d'explicabilité pour le modèle de détection d'objet.
{ "dataset_type": "
application/x-image
", "probability_threshold":0.5
, "methods": { "shap
": { "image_config": { "model_type": "OBJECT_DETECTION
", "max_objects":3
, "context":1.0
, "iou_threshold":0.5
, "num_segments":20
, "segment_compactness":10
} }, "report": { "name": "report
" } }, "predictor": { "model_name": "your_cv_od_model
", "initial_instance_count":1
, "instance_type": "ml.p2.xlarge
", "label_headers": ["bird","cat","dog"
] } }
L'exemple suivant montre un fichier de configuration d'analyse permettant de calculer l'importance des fonctionnalités pour une série chronologique (TS). Dans cet exemple, le jeu de données entrant est un jeu de données de série JSON chronologique au format avec un ensemble de covariables dynamiques et statiques. L'ensemble de données est fourni à la tâche SageMaker Clarify par le paramètre d'entrée de traitement de l'ensemble de donnéesdataset_uri
.
[ { "item_id": "item1", "timestamp": "2019-09-11", "target_value": 47650.3, "dynamic_feature_1": 0.4576, "dynamic_feature_2": 0.2164, "dynamic_feature_3": 0.1906, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item1", "timestamp": "2019-09-12", "target_value": 47380.3, "dynamic_feature_1": 0.4839, "dynamic_feature_2": 0.2274, "dynamic_feature_3": 0.1889, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item2", "timestamp": "2020-04-23", "target_value": 35601.4, "dynamic_feature_1": 0.5264, "dynamic_feature_2": 0.3838, "dynamic_feature_3": 0.4604, "static_feature_1": 1, "static_feature_2": 2 }, ]
Les sections suivantes expliquent comment calculer les attributions d'entités pour un modèle de prévision à l'aide de l'algorithme de valeurs asymétriques de Shapley pour un ensemble de données. JSON
Calculez les explications des modèles de prévision de séries chronologiques
L'exemple de configuration d'analyse suivant affiche les options utilisées par la tâche pour calculer les explications des modèles de prévision de séries chronologiques.
{ 'dataset_type': 'application/json', 'dataset_uri': 'DATASET_URI', 'methods': { 'asymmetric_shapley_value': { 'baseline': { "related_time_series": "zero", "static_covariates": { "item1": [0, 0], "item2": [0, 0] }, "target_time_series": "zero" }, 'direction': 'chronological', 'granularity': 'fine_grained', 'num_samples': 10 }, 'report': {'name': 'report', 'title': 'Analysis Report'} }, 'predictor': { 'accept_type': 'application/json', 'content_template': '{"instances": $records}', 'endpoint_name': 'ENDPOINT_NAME', 'content_type': 'application/json', 'record_template': '{ "start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates }', 'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'} }, 'time_series_data_config': { 'dataset_format': 'timestamp_records', 'item_id': '[].item_id', 'related_time_series': ['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'], 'static_covariates': ['[].static_feature_1', '[].static_feature_2'], 'target_time_series': '[].target_value', 'timestamp': '[].timestamp' } }
Configuration de l'explicabilité des séries chronologiques
L'exemple précédent utilise asymmetric_shapley_value
in methods
pour définir les arguments d'explicabilité des séries chronologiques tels que la ligne de base, la direction, la granularité et le nombre d'échantillons. Les valeurs de référence sont définies pour les trois types de données : séries chronologiques associées, covariables statiques et séries temporelles cibles. Ces champs indiquent au processeur SageMaker Clarify de calculer les attributions de fonctionnalités pour un élément à la fois.
Configuration du prédicteur
Vous pouvez contrôler entièrement la structure de charge utile envoyée par le processeur SageMaker Clarify à l'aide de JMESPath la syntaxe. Dans l'exemple précédent, la predictor
configuration indique à Clarify d'agréger les enregistrements dans '{"instances": $records}'
lesquels chaque enregistrement est défini avec les arguments donnés record_template
dans l'exemple. Notez que$start_time
, $target_time_series
$related_time_series
, et $static_covariates
sont des jetons internes utilisés pour mapper les valeurs du jeu de données aux valeurs des demandes de point de terminaison.
De même, l'attribut forecast
in time_series_predictor_config
est utilisé pour extraire les prévisions du modèle à partir de la réponse du point final. Par exemple, la réponse groupée de votre point de terminaison peut être la suivante :
{ "predictions": [ {"mean": [13.4, 3.6, 1.0]}, {"mean": [23.0, 4.7, 3.0]}, {"mean": [3.4, 5.6, 2.0]} ] }
Supposons que vous spécifiez la configuration de prédicteur de série chronologique suivante :
'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}
La valeur de prévision est analysée comme suit :
[ [13.4, 3.6], [23.0, 4.7], [3.4, 5.6] ]
Configuration des données
Utilisez l'time_series_data_config
attribut pour demander au processeur SageMaker Clarify d'analyser correctement les données à partir des données transmises en tant que S3URI. dataset_uri