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 du biais
La surveillance des biais d'Amazon SageMaker Clarify réutilise un sous-ensemble des paramètres utilisés dans la configuration d'analyse deFichiers de configuration d'analyse. Après avoir décrit les paramètres de configuration, cette rubrique fournit des exemples de JSON fichiers. Ces fichiers sont utilisés pour configurer les ensembles de données CSV et JSON Lines pour surveiller la dérive des biais lorsque des modèles d'apprentissage automatique sont en production.
Les paramètres suivants doivent être fournis dans un JSON fichier. Le chemin d'accès à ce JSON fichier doit être indiqué dans le ConfigUri
paramètre du ModelBiasAppSpecification
API.
-
"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 colonnes dans le jeu de données. Sidataset_type
est"application/jsonlines"
et que"label"
est spécifié, le dernier en-tête devient l'en-tête de la colonne d'étiquettes. -
"label"
– (Facultatif) Attribut cible du modèle à utiliser pour les métriques de biais. Spécifié soit sous forme de nom de colonne, soit d'index (si le format de jeu de données estCSV), soit sous forme de JMESPath (si le format de jeu de données est JSON Lines). -
"label_values_or_threshold"
– (Facultatif) Liste des valeurs d'étiquette ou du seuil. Indique le résultat positif utilisé pour les métriques de biais. -
"facet"
– (Facultatif) Liste des fonctions qui sont des attributs sensibles, appelées facettes. Les facettes sont utilisées pour les métriques de biais sous forme de paires, et comprennent les éléments suivants :-
"name_or_index"
– Nom ou index de la colonne facette. -
"value_or_threshold"
– (Facultatif) Liste des valeurs ou des seuils que la colonne de facettes peut prendre. Indique le groupe sensible, tel que le groupe par rapport auquel le biais est mesuré. Si elles ne sont pas fournies, les métriques de biais sont calculées comme un groupe pour chaque valeur unique (plutôt que toutes les valeurs). Si la colonne facette est numérique, cette valeur de seuil sert de limite inférieure pour sélectionner le groupe sensible.
-
-
"group_variable"
– (Facultatif) Nom de colonne ou index pour indiquer la variable de groupe à utiliser pour la métrique de biais Disparité démographique conditionnelle.
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 ModelBiasJobInput
API.
-
FeaturesAttribute
– Ce paramètre est requis si le format des données d'entrée du point de terminaison 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. -
InferenceAttribute
— Indice ou JMESPath emplacement dans la sortie du modèle pour l'attribut cible à utiliser pour surveiller le biais à l'aide de métriques de biais. Si ce n'est pas le CSVaccept_type
cas, on suppose que le résultat du modèle est une valeur numérique unique correspondant à un score ou à une probabilité. -
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. -
ProbabilityThresholdAttribute
– (Facultatif) Valeur float indiquant le seuil de sélection de l'étiquette binaire dans le cas d'une classification binaire. La valeur par défaut est 0,5.
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 des biais.
CSVEnsembles de données
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.
0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499, 0 1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713, 1 0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576, 1 1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697, 1
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
Le fichier JSON de configuration suivant montre ensuite un exemple de configuration de cet CSV ensemble de données.
{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }
L'étiquette prédite est sélectionnée par le paramètre "InferenceAttribute"
. La numérotation basée sur zéro est utilisée, donc 0 indique la première colonne de la sortie du modèle.
"EndpointInput": { ... "InferenceAttribute": 0 ... }
Vous pouvez également utiliser des paramètres différents pour convertir les valeurs de probabilité en étiquettes prédites binaires. La numérotation basée sur zéro est utilisée : 1 indique la deuxième colonne ; une valeur de ProbabilityThresholdAttribute
de 0,6 indique qu'une probabilité supérieure à 0,6 prédit que l'étiquette binaire est 1.
"EndpointInput": { ... "ProbabilityAttribute": 1, "ProbabilityThresholdAttribute": 0.6 ... }
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}
Supposons que la sortie du modèle comporte deux colonnes, la première étant une étiquette prédite et la seconde une probabilité.
{"predicted_label":1, "probability":0.5385257417814224}
Le fichier JSON de configuration suivant montre un exemple de la manière dont ce jeu de données JSON Lines peut être configuré.
{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "label", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }
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 "predicted_label"
sélectionne l'étiquette prédite à partir de la sortie du modèle.
"EndpointInput": { ... "FeaturesAttribute": "features", "InferenceAttribute": "predicted_label" ... }
Vous pouvez également convertir les valeurs de probabilité en étiquettes binaires prédites à l'aide de la valeur de paramètre ProbabilityThresholdAttribute
. Une valeur de 0,6, par exemple, indique qu'une probabilité supérieure à 0,6 prédit que l'étiquette binaire est 1.
"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", "ProbabilityThresholdAttribute": 0.6 ... }