Configurer l'analyse - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer l'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é. Reportez-vous Configurer un Job de traitement SageMaker Clarify à la section 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 pour en générer un pour vous avec le SageMaker ClarifyProcessorAPI. 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 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/jsonlinespour le format SageMaker JSON Lines dense

      • 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 de SageMaker 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 fournieheaders, 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 seront column_0column_1, et ainsi de suite.

      Note

      Par convention, if dataset_type is application/jsonlines orapplication/json, then headers doit contenir les noms suivants dans l'ordre :

      1. noms des fonctionnalités

      2. nom de l'étiquette (s'labelil est spécifié)

      3. nom d'étiquette prédit (s'il 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é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 :

      1. identifiant de l'article

      2. timestamp

      3. séries chronologiques cibles

      4. toutes les colonnes de séries chronologiques 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 tel dataset_type est application/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 est application/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ètre predicted_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è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 l'estapplication/jsonlines, il predicted_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 est application/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 cas application/jsonlines ouapplication/json. Expression de JMESPath chaîne écrite pour localiser les entités dans le jeu de données en entrée. En application/jsonlines effet, une JMESPath expression sera appliquée à chaque ligne pour extraire les caractéristiques de cet enregistrement. Carapplication/json, 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 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 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 par joinsource_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ètre joinsource_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ée 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 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 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.

  • 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 et 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) 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ètre facet 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 sontcolumns, 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 qui dataset_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 dansMesure 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. La description détaillée des métriques se trouve dansMesure des 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 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. Si baseline 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 par granularity. 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 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, 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è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 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 entre 1 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_logitaffirmativetrue, 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 ou paragraph. 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. Entrez multi-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 la global_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 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 lorsque model_type est la métrique OBJECT_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 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 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 la shap 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 est 10.

      • 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 chronologicalanti_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_grainedles explications ne soutiennent que chronological 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> and <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 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 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_valuepdp, 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 SageMaker modèle 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, le target_model paramètre doit être spécifié. Pour de plus amples informations à propos de l'utilisation des points de terminaison multimodèles, consultez Hébergez plusieurs modèles dans un conteneur derrière un point de terminaison.

    • 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 EndpointNamemodèle et sa longueur maximale est 23 de. 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 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 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).

    • accelerator_type : (facultatif) spécifie le type d'accélérateur Elastic Inference (EI) à attacher au point de terminaison miroir. Applicable si vous spécifiez model_name à la place de endpoint_name pour accelerator_type. ml.eia2.large est un exemple de valeur pour accelerator_type. La valeur par défaut est de ne pas utiliser d'accélérateur.

    • endpoint_name — Le nom de votre SageMaker point de terminaison créé par le. CreateEndpointAPI 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 production existant pour l'analyse SageMaker Clarify.

    • target_model — La valeur de chaîne transmise au TargetModel paramètre du. 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 Hébergez plusieurs modèles dans un conteneur derrière un point de terminaison.

    • 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 du SageMaker 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 du SageMaker InvokeEndpointAPI.

      • 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 chronologiques, 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 c'dataset_typeest le casapplication/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 Accept paramètre du SageMaker InvokeEndpointAPI.

      • Pour l'explicabilité de la vision par ordinateur, si model_type est « OBJECT _ DETECTION », la accept_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 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 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 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 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 valeur text/csv, label est l'index de toutes les étiquettes prédites dans la sortie du modèle.

      • If accept_type is application/jsonlines orapplication/json, then label 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 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"].

    • 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è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).

      • S'il s'accept_typeagit de JSON données (application/jsonlinesouapplication/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 SageMaker point de terminaisonyour_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 SHAP baseline paramètre est omis et sa valeur est1. num_clusters 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 SageMaker modèle à 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 JSON Lignes. 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 SageMaker terminaison 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'$featuresespace 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 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 SageMaker terminaison 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'$featuresespace 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 SageMaker modèle 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' SageMaker images. 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'SageMaker objets 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_configattribut pour demander au processeur SageMaker Clarify d'analyser correctement les données à partir des données transmises en tant que S3URI. dataset_uri