Fichiers de configuration d’analyse - Amazon SageMaker AI

Fichiers de configuration d’analyse

Pour analyser vos données et modèles afin de déterminer l’explicabilité et les biais à 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 Configuration d’une tâche 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 pour le calcul des indicateurs de biais pour un jeu de données tabulaire et la génération d’explications pour les problèmes liés au traitement du langage naturel (NLP), à la vision par ordinateur et aux séries temporelles (TS).

Vous pouvez créer le fichier de configuration d’analyse ou utiliser le kit SageMaker Python SDK pour en générer un pour vous à l’aide de l’API SageMaker ClarifyProcessor. L'affichage du contenu du fichier peut être utile pour comprendre la configuration sous-jacente utilisée par la tâche SageMaker Clarify.

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 format JSON 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 JSON Lines de SageMaker AI

      • 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 de séries temporelles

      • application/json pour JSON

  • dataset_uri : (facultatif) identifiant de ressource uniforme (URI) du jeu de données principal. Si vous fournissez un préfixe d'URI S3, la tâche de traitement SageMaker Clarify collecte de façon récursive tous les fichiers S3 situés sous le préfixe. Vous pouvez fournir un préfixe d'URI S3 ou un URI S3 vers 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. Pour tous les types de format, à l’exception des cas d’utilisation d’images et de séries temporelles, la tâche de traitement SageMaker Clarify charge le jeu de données d’entrée dans un dataframe tabulaire, en tant que jeu de données tabulaire. Ce format permet à SageMaker AI de manipuler et d’analyser facilement le jeu de données d’entrée.

  • headers : (facultatif)

    • Tabular : tableau de chaînes contenant les noms de colonnes d’un jeu de données tabulaire. Si aucune valeur n’est fournie pour headers, la tâche de traitement SageMaker Clarify lit les en-têtes du jeu de données. Si le jeu 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 indice de colonne basé sur zéro. Par exemple, les noms des espaces réservés pour les première et deuxième colonnes seront column_0, column_1, etc.

      Note

      Par convention, if dataset_type a pour valeur application/jsonlines ou application/json, alors headers doit contenir les noms suivants dans l’ordre :

      1. noms des caractéristiques

      2. nom de l’étiquette (si label est spécifié)

      3. nom de l’étiquette prédite (si predicted_label est spécifié)

      Un exemple de headers pour un type de jeu de données application/jsonlines si label est spécifié est : ["feature1","feature2","feature3","target_label"].

    • Série temporelle : liste des noms de colonnes du jeu de données. Si ces données ne sont pas fournies, Clarify génère des en-têtes à utiliser en interne. Pour les cas d’explicabilité d’une série temporelle, fournissez les en-têtes dans l’ordre suivant :

      1. identifiant de l’élément

      2. timestamp

      3. série temporelle cible

      4. toutes les colonnes des séries temporelles associées

      5. 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 pour label est spécifiée en fonction de la valeur du paramètre dataset_type, comme suit.

    • Si dataset_type a pour valeur text/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 valeur application/parquet, label doit être un nom de colonne valide.

    • Si dataset_type a pour valeur application/jsonlines, label doit être une expression JMESPath écrite pour extraire l'étiquette de vérité terrain du jeu de données. Par convention, si headers est spécifié, il doit contenir le nom de l'étiquette.

    • Si dataset_type a pour valeur application/json, label doit être une expression JMESPath écrite pour extraire l'étiquette de vérité terrain pour chaque enregistrement figurant dans le jeu de données. Cette expression JMESPath doit produire une liste d'étiquettes où la ie étiquette est en corrélation avec le ie 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ètre predicted_label est facultatif si le jeu de données n'inclut pas l'étiquette prédite. Si les é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ètre dataset_type, comme suit :

    • Si dataset_type a pour valeur text/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 que predicted_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 a pour valeur application/jsonlines, predicted_label doit être une expression JMESPath valide écrite pour extraire l'étiquette prédite du jeu de données. Par convention, si headers est spécifié, il doit contenir le nom de l'étiquette prédite.

    • Si dataset_type a pour valeur application/json, predicted_label doit être une expression JMESPath écrite pour extraire l'étiquette prédite pour chaque enregistrement figurant dans le jeu de données. L'expression JMESPath doit produire une liste d'étiquettes prédites où la ie étiquette prédite est destinée au ie enregistrement.

  • features : (facultatif) obligatoire pour les cas d’utilisation autres que les séries temporelles, si dataset_type a pour valeur application/jsonlines ou application/json. Expression de chaîne JMESPath écrite pour localiser les fonctionnalités dans le jeu de données en entrée. Pour application/jsonlines, une expression JMESPath sera appliquée à chaque ligne pour extraire les fonctionnalités pour cet enregistrement. Pour application/json, une expression JMESPath sera appliquée à l'ensemble du jeu de données en entrée. L'expression JMESPath doit extraire une liste de listes ou un tableau / une matrice 2D de fonctionnalités où la ie ligne contient les fonctionnalités en corrélation avec le ie enregistrement. Pour un dataset_type défini sur text/csv ou application/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 a pour valeur text/csv. URI S3 d’un jeu de données contenant les étiquettes prédites utilisées pour calculer les indicateurs de biais de post-entraînement. La tâche de traitement SageMaker Clarify chargera les prédictions à partir de l'URI fourni au lieu d'obtenir les 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 par joinsource_name_or_index pour joindre les deux jeux de données.

  • predicted_label_headers : (facultatif) applicable uniquement quand predicted_label_dataset_uri est spécifié. 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ètre joinsource_name_or_index.

  • joinsource_name_or_index : (facultatif) nom ou indice basé sur zéro de la colonne dans les jeux de données tabulaires à utiliser comme colonne d’identification dans le cadre 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 Clarify InstanceCount 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 caractéristique n’est pas prise en charge pour les séries temporelles.

  • 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 utilise probability_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 indicateurs de biais. Pour plus d’informations, consultez les valeurs d’étiquette positives dans Termes utilisés par Amazon SageMaker Clarify en lien avec le biais 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 et 1. Si la valeur d'étiquette 1 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 et dog. 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 et 1. 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 sur 0.5.

  • facet : (facultatif) requis 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, consultez Facette dans Termes utilisés par Amazon SageMaker Clarify en lien avec le biais et l’équité. Cet objet facette inclut les champs suivants :

    • name_or_index : (facultatif) nom ou indice basé sur 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) requis si facet est numérique et si label_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 que value_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éfinir value_or_threshold pour différents types de données de facet, reportez-vous aux exemples suivants :

      • Pour un type de données de facette binaire, la fonctionnalité a deux valeurs possibles, 0 et 1. 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 et dog. 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 valeur bird ou cat, tandis que celle du groupe défavorisé a la valeur dog.

      • Pour un type de données de facette numérique, la valeur de la fonctionnalité est continue, comprise entre 0 et 1. Par exemple, si une valeur supérieure à 0.5 doit indiquer qu'un échantillon est favorisé, value_or_threshold doit être défini sur 0.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) nom ou indice basé sur zéro de la colonne qui indique le sous-groupe à utiliser pour l’indicateur de biais Disparité démographique conditionnelle (CDD) ou Disparité démographique conditionnelle dans les étiquettes prédites (CDDPL).

  • facet_dataset_uri : (facultatif) applicable uniquement lorsque dataset_type a pour valeur text/csv. URI S3 d’un jeu 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ètre facet pour identifier chaque facette du jeu de données de facettes.

  • facet_headers : (facultatif) applicable uniquement quand facet_dataset_uri est spécifié. Tableau de chaînes contenant les noms de colonnes pour le jeu de données de facettes et, éventuellement, en-tête de colonne d’identifiants pour joindre le jeu de données de facettes et le jeu de données principal. Consultez joinsource_name_or_index.

  • time_series_data_config : (facultatif) spécifie la configuration à utiliser pour le traitement des données d’une série temporelle.

    • item_id : chaîne ou indice 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 : chaîne ou indice 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 jeu de données JSON, qui est le seul format pris en charge pour l’explicabilité des séries temporelles.

    • target_time_series : chaîne JMESPath ou indice entier basé sur zéro. Ce champ est utilisé pour localiser la série temporelle 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 dataset_format, doivent être des chaînes ou des listes de chaînes. Si ce paramètre est un entier, tous les autres paramètres, à l’exception de dataset_format, doivent être des entiers ou des listes d’entiers.

    • related_time_series : (facultatif) tableau d’expressions JMESPath. Ce champ est utilisé pour localiser toutes les séries temporelles associées dans le jeu de données d’entrée partagé, le cas échéant.

    • static_covariates : (facultatif) 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 temporelles.

  • 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. Vous trouverez la description détaillée des métriques dans Indicateurs de biais de pré-entraînement. L’objet possède les paramètres suivants :

    • post_training_bias : incluez cette méthode si vous souhaitez calculer des métriques de biais de post-entraînement. Vous trouverez la description détaillée des métriques dans Indicateurs de biais de post-entraînement dans les données et les modèles. L’objet post_training_bias possède les paramètres suivants.

    • shap : incluez cette méthode si vous souhaitez calculer des valeurs SHAP. La tâche de traitement SageMaker Clarify prend en charge l'algorithme Kernel SHAP. L'objet shap possède les paramètres suivants.

      • baseline : (facultatif) jeu de données de référence SHAP, é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 références SHAP, consultez Bases de référence SHAP pour l’explicabilité

        • Pour un jeu de données tabulaire, baseline peut correspondre aux données de référence sur place ou à l’URI S3 d’un fichier de référence. Si baseline n'est pas fourni, la tâche de traitement SageMaker Clarify calcule une base de référence en mettant en cluster 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 par granularity. Par exemple, un espace réservé courant est "[MASK]". Il est utilisé pour représenter un mot ou un extrait 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 valeur text/csv ou application/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 valeur application/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 valeur application/json, le jeu de données baseline 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, baseline peut être l'URI S3 d'une image utilisée pour masquer des fonctionnalités (segments) de l'image en entrée. La tâche de traitement SageMaker Clarify charge l'image de masque et la redimensionne à la même résolution que l'image en entrée. Si aucune base de référence 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 en entrée.

      • features_to_explain : (facultatif) tableau de chaînes ou d'index basés sur zéro de colonnes de fonctionnalités pour lesquelles calculer les valeurs SHAP. Si features_to_explain n'est pas fourni, les valeurs SHAP sont calculées pour toutes les colonnes de fonctionnalités. Ces colonnes de fonctionnalités ne peuvent pas inclure la colonne d'étiquettes ni la colonne d'étiquettes prédites. Le paramètre features_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 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 entre 1 et 12. Le nombre d'instances de référence affecte directement l'exécution de l'analyse SHAP.

      • num_samples : (facultatif) nombre d'échantillons à utiliser dans l'algorithme Kernel SHAP. Si num_samples n'est pas fourni, la tâche de traitement SageMaker Clarify choisit ce nombre 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'outil d'explication SHAP afin de générer des valeurs SHAP cohérentes pour une même tâche. Si seed n'est pas spécifié, chaque fois qu'une même tâche s'exécute, le modèle peut générer des valeurs SHAP légèrement différentes.

      • 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. Si use_logit a pour valeur true, les valeurs SHAP 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) valeur booléenne qui indique si vous souhaitez que les valeurs SHAP locales de chaque enregistrement du jeu 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'identifiants et les valeurs SHAP locales sont enregistrées dans le résultat de l'analyse. Ainsi, vous pouvez mapper chaque enregistrement à ses valeurs SHAP locales.

      • agg_method : (facultatif) méthode utilisée pour agréger les valeurs SHAP locales (valeurs SHAP pour chaque instance) de toutes les instances avec les valeurs SHAP globales (valeurs SHAP pour le jeu de données entier). La valeur par défaut est mean_abs. Les méthodes suivantes peuvent être utilisées pour agréger les valeurs SHAP.

        • mean_abs : moyenne des valeurs SHAP locales absolues de toutes les instances.

        • mean_sq : moyenne des valeurs SHAP locales au carré de toutes les instances.

        • median : médiane des valeurs SHAP 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, consultez 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 ou paragraph. Chaque unité de texte est considérée comme une fonctionnalité et les valeurs SHAP 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. Entrez multi-language pour un mélange de plusieurs langues.

        • max_top_tokens : (facultatif) nombre maximal de jetons principaux, basé sur les valeurs SHAP globales. 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 valeurs SHAP de chaque jeton, puis sélectionne les jetons principaux en fonction de leurs valeurs SHAP globales. Les valeurs SHAP globales des jetons principaux sélectionnés sont incluses dans la section global_top_shap_text du fichier analysis.json.

        • Valeur SHAP locale d'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 est 3.

        • 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 sont 0 pour tout masquer, ou 1 pour ne rien masquer. La valeur par défaut est 1.

        • iou_threshold : applicable uniquement quand model_type a pour valeur OBJECT_DETECTION. Métrique d'intersection minimale sur union (IOU) pour évaluer les prédictions par rapport à la détection initiale. Une métrique IOU élevée correspond à un chevauchement important entre le cadre de détection de valeur prédite et le cadre de détection de vérité terrain. La valeur par défaut est 0.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 fonctionnalité et les valeurs SHAP 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 graphiques de dépendance partielle (PDP). Pour un exemple de configuration d’analyse permettant de générer des PDP, consultez Calcul de graphiques de dépendance partielle (PDP) .

      • features : obligatoire si la méthode shap n’est pas demandée. Tableau de noms de fonctionnalités ou d'index permettant de calculer et de tracer des graphiques PDP.

      • top_k_features : (facultatif) spécifie le nombre de fonctionnalités principales utilisées pour générer des graphiques PDP. Si features n'est pas fourni, mais que la méthode shap est demandée, la tâche de traitement SageMaker Clarify choisit les fonctionnalités principales en fonction de leurs attributions SHAP. La valeur par défaut est 10.

      • grid_resolution : nombre de compartiments dans lesquels diviser la plage de valeurs numériques. Cela spécifie la granularité de la grille pour les graphiques PDP.

    • 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 temporelles. La tâche de traitement SageMaker Clarify prend en charge l’algorithme des valeurs de Shapley asymétriques. 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, consultez Asymmetric Shapley values: incorporating causal knowledge into model-agnostic explainability. Utilisez ces valeurs pour déterminer dans quelle mesure les caractéristiques contribuent aux résultats des prévisions. Les valeurs de Shapley asymétriques prennent en compte les dépendances temporelles des données de séries temporelles que les modèles de prévision acceptent en entrée.

      L’algorithme inclut les paramètres suivants :

      • direction : les types disponibles sont chronological, anti_chronological et bidirectional. La structure temporelle peut être parcourue dans l’ordre chronologique, antichronologique ou les deux. Les explications chronologiques sont élaborées en ajoutant des informations de manière itérative dès la première étape temporelle. 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 du cours des actions.

      • granularity : la granularité des explications à utiliser. Les options de granularité disponibles sont les suivantes :

        • timewise : les explications timewise 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 nième jour dans le passé ont contribué à la prévision du m-iè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 temporelles cibles et associées.

        • fine_grained : les explications fine_grained 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 num_samples suivant.

          Note

          Les explications fine_grained prennent en charge uniquement l’ordre chronological.

      • num_samples : (facultatif) cet argument est obligatoire pour les explications fine_grained. Plus le nombre est élevé, plus l’approximation est précise. Ce nombre doit évoluer proportionnellement à la dimensionnalité des caractéristiques d’entrée. En règle générale, définissez cette variable sur (1 + max(nombre de séries temporelles associées, nombre de covariables statiques))^2 si le résultat n’est pas trop important.

      • baseline : (facultatif) configuration de référence devant remplacer les valeurs hors coalition pour les jeux de données correspondants (également appelée données en arrière-plan). L’extrait de code suivant montre un exemple de configuration de référence :

        { "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 temporelles cibles ou les séries temporelles associées, les types de valeur de référence peuvent être l’une des valeurs suivantes :

          • zero : toutes les valeurs hors coalition sont remplacées par 0,0.

          • mean : toutes les valeurs hors coalition sont remplacées par la moyenne d’une série temporelle.

        • Pour les covariables statiques, une entrée de référence ne doit être fournie que lorsque la demande de modèle prend les valeurs des covariables statiques, auquel cas ce champ est requis. La référence doit être fournie pour chaque élément sous forme de liste. Par exemple, si vous avez un jeu 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 du jeu 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 temporelles. Le résultat de l’analyse contient trois copies du même rapport : un rapport de bloc-notes Jupyter, un rapport HTML et un rapport PDF. L'objet possède les paramètres suivants :

      • name : nom de fichier des fichiers de rapport. Par exemple, si name a pour valeur MyReport, les fichiers de rapport sont MyReport.ipynb, MyReport.html et MyReport.pdf. La valeur par défaut est report.

      • 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, quand la méthode shap, asymmetric_shapley_value, pdp ou post_training_bias est demandée, mais que les étiquettes prédites ne sont pas fournies dans le cadre du jeu de données d’entrée. Les paramètres suivants doivent être utilisés conjointement à predictor :

    • model_name : nom de votre modèle SageMaker AI créé par l’API CreateModel. Si vous spécifiez model_name au lieu de 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 miroir, 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 multi-modèle, le paramètre target_model doit être spécifié. Pour plus d’informations à propos de l’utilisation des points de terminaison multimodèles, consultez Points de terminaison multimodè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 de endpoint_name. Par exemple, spécifiez endpoint_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 modèle EndpointName et sa longueur maximale est 23. La valeur par défaut est sm-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 la valeur InstanceCount de 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 de endpoint_name. Par exemple, instance_type peut être défini sur "ml.m5.large". Dans certains cas, la valeur spécifiée pour instance_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 : nom de votre point de terminaison SageMaker AI créé par l’API CreateEndpoint. S’il est fourni, endpoint_name a priorité sur le paramètre model_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 que shap et pdp) 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 terminaison de production existant pour l’analyse SageMaker Clarify.

    • target_model : valeur de chaîne transmise au paramètre TargetModel de l’API InvokeEndpoint de SageMaker AI. 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 plus d’informations à propos de l’utilisation des points de terminaison multimodèles, consultez Points de terminaison multimodè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 chaîne est transmise au paramètre CustomAttributes de l’API InvokeEndpoint de SageMaker AI.

    • 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 paramètre ContentType de l’API InvokeEndpoint de SageMaker AI.

      • Pour l’explicabilité de la vision par ordinateur, les valeurs valides sont image/jpeg, image/png ou application/x-npy. Si content_type n’est pas fourni, la valeur par défaut est image/jpeg.

      • Pour l’explicabilité des prévisions de séries temporelles, la valeur valide est application/json.

      • Pour les autres types d’explicabilité, les valeurs valides sont text/csv, application/jsonlines, et application/json. Une valeur pour content_type est requise si dataset_type a pour valeur application/x-parquet. Dans le cas contraire, content_type a pour valeur par défaut la valeur du paramètre dataset_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 au paramètre Accept de l’API InvokeEndpoint de SageMaker AI.

      • Pour l’explicabilité de la vision par ordinateur, si model_type a pour valeur "OBJECT_DETECTION", accept_type a pour valeur par défaut application/json.

      • Pour l’explicabilité des prévisions de séries temporelles, la valeur valide est application/json.

      • Pour les autres types d’explicabilité, les valeurs valides sont text/csv, application/jsonlines et application/json. Si aucune valeur n'est fournie pour accept_type, accept_type a pour valeur par défaut la valeur du paramètre content_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ètre content_type est application/jsonlines ou application/json.

      Quand le paramètre content_type a pour valeur application/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 qu'un enregistrement comporte trois valeurs de fonctionnalités numériques : 1, 2 et 3, l'enregistrement est envoyé au modèle sous forme de ligne JSON {"myfeatures":[1,2,3]}.

      Quand content_type a pour valeur application/json, le modèle peut avoir l'espace réservé $record ou records. Si l'espace réservé est record, un enregistrement individuel est remplacé par un enregistrement auquel le modèle figurant dans record_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 par record_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 valeur application/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é pour A.

      La valeur pour record_template est utilisée avec content_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 et record_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 et record_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 temporelles aux points de terminaison.

    • label : (facultatif) indice entier basé sur zéro ou chaîne d’expression JMESPath servant à extraire les étiquettes prédites à partir de la sortie du modèle pour l’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 caractéristique n’est pas prise en charge pour les séries temporelles.

      • 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 valeur text/csv, label est l'index de toutes les étiquettes prédites dans la sortie du modèle.

      • Si accept_type a pour valeur application/jsonlines ou application/json, label est une expression JMESPath appliquée à la sortie du modèle pour obtenir les étiquettes prédites.

    • label_headers : (facultatif) tableau de valeurs que l’étiquette peut prendre dans le jeu 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 pour label_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 et dog, label_headers doit être défini sur ["bird","cat","dog"].

    • probability : (facultatif) indice entier basé sur zéro ou chaîne d’expression JMESPath servant à extraire des probabilités (scores) pour l’analyse de l’explicabilité (mais pas pour l’explicabilité des séries temporelles), ou pour choisir l’étiquette prédite pour l’analyse des biais. La valeur de probability dépend de la valeur du paramètre accept_type, comme suit.

      • Si accept_type a pour valeur text/csv, probability est l'index des probabilités (scores) figurant dans la sortie du modèle. Si probability n'est pas fourni, la totalité de la sortie du modèle est considérée comme les probabilités (scores).

      • Si accept_type correspond à des données JSON (application/jsonlines ou application/json), probability doit être une expression JMESpath 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 temporelles. Utilisé pour indiquer au processeur SageMaker Clarify comment analyser correctement les données à partir des données transmises sous forme d’URI S3 dans dataset_uri.

      • forecast : expression JMESPath 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 des données au format CSV et au format JSON Lines, ainsi que pour l’explicabilité du traitement du langage naturel (NLP), de la vision par ordinateur et des séries temporelles (TS).

Les exemples suivants montrent comment configurer l'analyse des biais et de l'explicabilité pour 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. Le jeu de données est fourni à la tâche SageMaker Clarify par l’entrée de traitement dataset.

"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 métriques de biais de pré-entraînement et de post-entraînement, les valeurs SHAP et les graphiques de dépendance partielle (PDP) indiquant l'importance des fonctionnalités pour un jeu de données au format CSV.

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 métriques de biais de pré-entraînement pour le jeu 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 fournit en sortie des données au format CSV. 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 tous les indicateurs de biais possibles à l’aide du jeu de données et des prédictions issus de la sortie du modèle. Dans cet exemple, le modèle est déployé sur un point de terminaison SageMaker AI your_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 } }

Calcul des valeurs SHAP

L'exemple de configuration d'analyse suivant indique à la tâche de calculer les valeurs SHAP désignant la colonne Target comme des étiquettes et toutes les autres colonnes comme des fonctionnalité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 seul échantillon de référence SHAP. 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).

Calcul de graphiques de dépendance partielle (PDP)

L'exemple suivant montre comment visualiser l'importance de la fonctionnalité Income dans le rapport d'analyse à l'aide des graphiques PDP. 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 de valeurs des caractéristiques 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 graphique PDP pour Income avec 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 graphiques de dépendance partielle (PDP) pour les 2 fonctionnalités principales dotées des valeurs SHAP globales 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 SageMaker AI à la tâche de traitement SageMaker Clarify à l’aide du paramètre model_name. 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 miroir à 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 de l’explicabilité pour un jeu de données tabulaire au format JSON Lines. 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 JSON Lines de SageMaker AI. Chaque ligne est un objet JSON 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. Le jeu de données est fourni à la tâche SageMaker Clarify par l’entrée de traitement "dataset". Pour plus d’informations sur les lignes JSON, consultez Format de demande JSONLINES.

{"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 indicateurs de biais de pré-entraînement et de post-entraînement, les valeurs SHAP et les graphiques de dépendance partielle (PDP) indiquant l’importance des caractéristiques pour un jeu de données au format JSON Lines.

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 paramètre features est défini sur l'expression JMESPath "Features" afin que la tâche de traitement SageMaker Clarify puisse extraire le tableau de fonctionnalités de chaque enregistrement. Le paramètre label est défini sur l'expression JMESPath "Label" afin que la tâche de traitement SageMaker Clarify puisse extraire l'étiquette de vérité terrain 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 fournit en sortie des données JSON Lines dans le format de l'exemple. Chaque ligne de la sortie du modèle est un objet JSON 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 SageMaker AI nommé your_endpoint. L’exemple de configuration d’analyse suivant indique à la tâche de traitement SageMaker Clarify de calculer tous les indicateurs 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 paramètre content_template pour composer l'entrée du modèle, en remplaçant l'espace réservé $features par un tableau 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" } }

Calcul des valeurs SHAP

Comme l'analyse SHAP ne nécessite pas d'étiquette de vérité terrain, le paramètre label 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 en 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 l'expression JMESpath probability, la valeur de probabilité sera extraite de la sortie du modèle. Voici un exemple de calcul des valeurs SHAP.

{ "dataset_type": "application/jsonlines", "features": "Features", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "{\"Features\":$features}", "probability": "probability" } }

Calcul de graphiques de dépendance partielle (PDP)

L'exemple suivant montre comment visualiser l'importance de "Income" (revenus) sur un graphique PDP. 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 caractéristiques. Le paramètre grid_resolution divise la plage de valeurs des caractéristiques en 10 compartiments. Ensemble, les paramètres de cet exemple indiquent à la tâche de traitement SageMaker Clarify de générer un rapport contenant un graphique PDP pour Income avec 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 les graphiques PDP pour les 2 fonctionnalités principales dotées des valeurs SHAP 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 des biais et de l’explicabilité pour 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 dense JSON de SageMaker AI. Pour plus d’informations sur les lignes JSON, consultez Format de demande JSONLINES.

L’ensemble de la demande en entrée est une demande JSON valide où la structure externe est une liste et 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. Le jeu de données est fourni à la tâche SageMaker Clarify par l'entrée de traitement dataset.

[ {"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 métriques de biais de pré-entraînement et de post-entraînement, les valeurs SHAP et les graphiques de dépendance partielle (PDP) qui indiquent l'importance des fonctionnalités pour un jeu de données au format JSON Lines.

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 jeux de données JSON, le dernier en-tête est l'en-tête d'étiquette.

Le paramètre features est défini sur l'expression JMESpath qui extrait un tableau ou une matrice 2D. Chaque ligne de cette matrice doit contenir la liste de Features pour chaque enregistrement. Le paramètre label est défini sur l'expression JMESPath qui extrait la liste des étiquettes de vérité terrain. 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 fournit en sortie des données JSON dans le 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 SageMaker AI 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 paramètre content_template 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 paramètre record_template compose ensuite la structure JSON de chaque enregistrement et remplace l'espace réservé $features 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 métriques 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" } }

Calcul des valeurs SHAP

Vous n'avez pas besoin de spécifier d'étiquette pour l'analyse SHAP. 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ère des espaces réservés en 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 expression JMESpath qui extrait les probabilités de chaque prédiction pour chaque enregistrement. Voici un exemple de calcul des valeurs SHAP.

{ "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" } }

Calcul de graphiques de dépendance partielle (PDP)

L'exemple suivant vous montre comment visualiser l'importance d'une fonctionnalité dans les graphiques PDP. 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 graphique PDP pour Income avec 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 visualiser l'importance des revenus (Income) sur les graphiques PDP.

{ "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 les graphiques PDP pour les 2 fonctionnalités principales dotées des valeurs SHAP 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 permettant de 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 format CSV, avec une seule colonne d'étiquettes binaires et deux colonnes de fonctionnalités, comme suit. Le jeu de données est fourni à la tâche SageMaker Clarify par le paramètre d’entrée de traitement dataset.

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 les données CSV et produit un score unique compris entre 0 et 1, comme suit.

0.491656005382537 0.569582343101501 ...

Le modèle est utilisé pour créer un modèle SageMaker AI 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 paramètre text_config active l'analyse d'explicabilité du NLP. 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 "baseline" SHAP sur place en utilisant une note ("Rating") moyenne de 4. Un jeton de masque spécial "[MASK]" est utilisé pour remplacer un jeton (mot) dans les commentaires ("Comments"). Cet exemple utilise également un type d'instance de point de terminaison GPU 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'images JPEG. Le jeu de données est fourni à la tâche SageMaker Clarify par le paramètre d'entrée de traitement dataset. L'exemple montre comment configurer une analyse d'explicabilité à l'aide d'un modèle de classification d'image SageMaker. Dans cet exemple, un modèle nommé your_cv_ic_model a été entraîné pour classer les animaux sur les images JPEG en 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, consultez Classification des images – MXNet.

Dans cet exemple, un modèle de détection d’objet SageMaker AI, your_cv_od_model, est entraîné sur les mêmes images JPEG afin d’identifier les animaux qui y figurent. 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 pour le calcul de l’importance des caractéristiques pour une série temporelle (TS). Dans cet exemple, le jeu de données entrant est un jeu de données de séries temporelles au format JSON avec un jeu de caractéristiques de covariables dynamiques et statiques. Le jeu de données est fourni à la tâche SageMaker Clarify par le paramètre d’entrée de traitement dataset_uri du jeu de données.

[ { "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 de caractéristiques pour un modèle de prévision à l’aide de l’algorithme de valeurs de Shapley asymétriques pour un jeu de données JSON.

Calcul des explications pour les modèles de prévision de séries temporelles

L’exemple de configuration d’analyse suivant affiche les options utilisées par la tâche pour calculer les explications pour les modèles de prévision des séries temporelles.

{ '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 temporelles

L’exemple précédent utilise asymmetric_shapley_value dans methods pour définir les arguments d’explicabilité des séries temporelles tels que la référence, 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 temporelles associées, covariables statiques et séries temporelles cibles. Ces champs indiquent au processeur SageMaker Clarify de calculer les attributions de caractéristiques pour un seul élément à la fois.

Configuration du prédicteur

Vous pouvez contrôler entièrement la structure de données utiles envoyée par le processeur SageMaker Clarify à l’aide de la syntaxe JMESPath. Dans l’exemple précédent, la configuration predictor indique à Clarify d’agréger les enregistrements dans '{"instances": $records}', chaque enregistrement étant défini avec les arguments donnés pour 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 dans time_series_predictor_config est utilisé pour extraire la prévision du modèle à partir de la réponse du point de terminaison. Par exemple, la réponse par lots 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 du prédicteur de série temporelle 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’attribut time_series_data_config pour indiquer au processeur SageMaker Clarify d’analyser correctement les données à partir des données transmises sous forme d’URI S3 dans dataset_uri.