Archivos de configuración de análisis - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Archivos de configuración de análisis

Para analizar la explicabilidad y el sesgo de sus datos y modelos con SageMaker Clarify, debe configurar un trabajo de procesamiento. Parte de la configuración de este trabajo de procesamiento incluye la configuración de un archivo de análisis. El archivo de análisis especifica los parámetros para el análisis de sesgos y la explicabilidad. Consulte Configurar un trabajo de SageMaker procesamiento de Clarify para obtener información sobre cómo configurar un trabajo de procesamiento y un archivo de análisis.

Esta guía describe el esquema y los parámetros de este archivo de configuración de análisis. Esta guía también incluye ejemplos de archivos de configuración de análisis para calcular las métricas de sesgo de un conjunto de datos tabular y generar explicaciones sobre problemas de procesamiento del lenguaje natural (NLP), visión artificial (CV) y series temporales (TS).

Puede crear el archivo de configuración del análisis o utilizar SageMaker Python SDK para generar uno para usted con SageMaker ClarifyProcessorAPI. Ver el contenido del archivo puede resultar útil para comprender la configuración subyacente utilizada en el trabajo de SageMaker Clarify.

Esquema del archivo de configuración de análisis

En la siguiente sección se describe el esquema del archivo de configuración de análisis, incluidos los requisitos y las descripciones de los parámetros.

Requisitos del archivo de configuración de análisis

El trabajo SageMaker de procesamiento de Clarify espera que el archivo de configuración del análisis esté estructurado con los siguientes requisitos:

  • El nombre de la entrada de procesamiento debe ser analysis_config.

  • El archivo de configuración del análisis tiene el JSON formato y está codificado en UTF -8.

  • El archivo de configuración de análisis es un objeto de Amazon S3.

Puede especificar parámetros adicionales en el archivo de configuración de análisis. La siguiente sección proporciona varias opciones para adaptar el trabajo de procesamiento SageMaker de Clarify a su caso de uso y a los tipos de análisis deseados.

Puede especificar parámetros adicionales en el archivo de configuración de análisis.

  • version: (opcional) la cadena de versión del esquema del archivo de configuración de análisis. Si no se proporciona una versión, SageMaker Clarify utiliza la última versión compatible. Actualmente, solo se admite la versión 1.0.

  • dataset_type: el formato del conjunto de datos. El formato del conjunto de datos de entrada puede ser cualquiera de los siguientes valores:

    • Tabular

      • text/csv para CSV

      • application/jsonlinespara formato denso de SageMaker JSON líneas

      • application/json para JSON

      • application/x-parquet para Apache Parquet

      • application/x-image para activar la explicabilidad de los problemas de visión artificial

    • Explicaciones del modelo de previsión de series temporales

      • application/json para JSON

  • dataset_uri: (opcional) El identificador uniforme de recursos (URI) del conjunto de datos principal. Si proporciona un URI prefijo S3, el trabajo de procesamiento de SageMaker Clarify recopila de forma recursiva todos los archivos S3 ubicados debajo del prefijo. Si tiene problemas de visión artificial, puede proporcionar un URI prefijo S3 o S3 URI a un archivo de manifiesto de imagen. Si se proporciona dataset_uri, tiene prioridad sobre la entrada del trabajo de procesamiento del conjunto de datos. Para cualquier tipo de formato, excepto en los casos de uso de imágenes y series temporales, el trabajo de SageMaker procesamiento Clarify carga el conjunto de datos de entrada en un marco de datos tabular, como un conjunto de datos tabular. Este formato permite manipular y SageMaker analizar fácilmente el conjunto de datos de entrada.

  • encabezados: (opcional)

    • Tabular: matriz de cadenas que contiene los nombres de las columnas de un conjunto de datos tabular. Si no se proporciona un valorheaders, el trabajo de procesamiento de SageMaker Clarify lee los encabezados del conjunto de datos. Si el conjunto de datos no tiene encabezados, el trabajo de procesamiento de Clarify genera automáticamente los nombres de los marcadores de posición en función del índice de columnas de base cero. Por ejemplo, los nombres de los marcadores de posición para la primera y la segunda columnas serán column_0column_1, y así sucesivamente.

      nota

      Por convención, si dataset_type es application/jsonlines oapplication/json, headers debe contener los siguientes nombres en orden:

      1. nombres de funciones

      2. nombre de etiqueta (si label se especifica)

      3. nombre de etiqueta previsto (si predicted_label se especifica)

      Un ejemplo de headers para un conjunto de datos application/jsonlines si label está especificado es: ["feature1","feature2","feature3","target_label"].

    • Serie temporal: una lista de nombres de columnas del conjunto de datos. Si no se proporciona, Clarify genera encabezados para usarlos internamente. Para los casos de explicabilidad de series temporales, proporcione los encabezados en el siguiente orden:

      1. identificador del artículo

      2. Marca de tiempo

      3. serie temporal objetivo

      4. todas las columnas de series temporales relacionadas

      5. todas las columnas de covariables estáticas

  • label: (opcional) una cadena o un índice entero basado en cero. Si se proporciona, label se utiliza para localizar la etiqueta de verdad fundamental, también conocida como etiqueta observada o atributo objetivo en un conjunto de datos tabular. La etiqueta de verdad fundamental se utiliza para calcular las métricas de sesgo. El valor de label se especifica en función del valor del parámetro dataset_type de la siguiente manera.

    • Si dataset_type es text/csv, label se puede especificar de la siguiente manera:

      • Un nombre de columna válido

      • Un índice que se encuentra dentro del rango de columnas del conjunto de datos

    • Si dataset_type es application/parquet, label debe ser un nombre de columna válido.

    • Si dataset_type es asíapplication/jsonlines, label debe ser una JMESPathexpresión escrita para extraer la etiqueta de verdad fundamental del conjunto de datos. Por convención, si se especifica headers, debe contener el nombre de la etiqueta.

    • Si dataset_type es application/json así, label debe ser una JMESPathexpresión escrita para extraer la etiqueta de verdad fundamental de cada registro del conjunto de datos. Esta JMESPath expresión debe producir una lista de etiquetas en las que la etiqueta esté correlacionada con la del registro.

  • predicted_label: (opcional) una cadena o un índice entero basado en cero. Si se proporciona, predicted_label se usa para ubicar la columna que contiene la etiqueta predicha en un conjunto de datos tabular. La etiqueta predicha se usa para calcular las métricas de sesgo posteriores al entrenamiento. El parámetro predicted_label es opcional si el conjunto de datos no incluye la etiqueta predicha. Si se requieren etiquetas predichas para el cálculo, el trabajo de procesamiento SageMaker de Clarify obtendrá las predicciones del modelo.

    El valor de predicted_label se especifica en función del valor de dataset_type de la siguiente manera.

    • Si dataset_type es text/csv, predicted_label se puede especificar de la siguiente manera:

      • Un nombre de columna válido. Si se especifica predicted_label_dataset_uri, pero no se proporciona predicted_label, el nombre de etiqueta predicha predeterminado es “predicted_label”.

      • Un índice que se encuentra dentro del rango de columnas del conjunto de datos. Si se especifica predicted_label_dataset_uri, el índice se usa para localizar la columna de la etiqueta predicha en el conjunto de datos de la etiqueta predicha.

    • Si dataset_type es application/x-parquet, predicted_label debe ser un nombre de columna válido.

    • Si dataset_type esapplication/jsonlines, predicted_label debe ser una JMESPathexpresión válida escrita para extraer la etiqueta pronosticada del conjunto de datos. Por convención, si se especifica headers, debe contener el nombre de la etiqueta predicha.

    • Si dataset_type es asíapplication/json, predicted_label debe ser una JMESPathexpresión escrita para extraer la etiqueta prevista para cada registro del conjunto de datos. La JMESPath expresión debe generar una lista de etiquetas pronosticadas en la que la si la etiqueta pronosticada es para el registro.

  • características: (opcional) Necesario para los casos de non-time-series uso, si es dataset_type o. application/jsonlines application/json Una expresión de JMESPath cadena escrita para localizar las entidades en el conjunto de datos de entrada. Para application/jsonlines ello, se aplicará una JMESPath expresión a cada línea para extraer las características de ese registro. Para application/json ello, se aplicará una JMESPath expresión a todo el conjunto de datos de entrada. La JMESPath expresión debe extraer una lista de listas o una matriz/matriz 2D de entidades en la que la fila I contenga las entidades que se correlacionan con las del registro. En el caso dataset_type de text/csv o application/x-parquet, todas las columnas, excepto las columnas de la etiqueta de verdad fundamental y de la etiqueta predicha, se asignan automáticamente como características.

  • predicted_label_dataset_uri: (opcional) Solo se aplica cuando dataset_type es. text/csv El S3 de un conjunto de datos que contiene etiquetas de predicción que se utilizan URI para calcular las métricas de sesgo posteriores al entrenamiento. El trabajo SageMaker de procesamiento de Clarify cargará las predicciones a partir de lo proporcionado URI en lugar de obtener las predicciones del modelo. En este caso, predicted_label tiene que ubicar la columna de etiquetas predichas en el conjunto de datos de etiquetas predichas. Si el conjunto de datos de etiquetas predichas o el conjunto de datos principal está divididos en varios archivos, joinsource_name_or_index debe especificar una columna de identificación para unir los dos conjuntos de datos.

  • predicted_label_headers: (opcional) solo se aplica cuando se especifica. predicted_label_dataset_uri Una matriz de cadenas que contiene los nombres de columna del conjunto de datos de etiquetas predichas. Además del encabezado de etiqueta predicha, predicted_label_headers también puede contener el encabezado de la columna de identificación para unir el conjunto de datos de etiquetas predichas y el conjunto de datos principal. Para obtener más información, consulte la siguiente descripción del parámetro joinsource_name_or_index.

  • joinsource_name_or_index: (opcional) el nombre o el índice de base cero de la columna en los conjuntos de datos tabulares que se utilizará como columna de identificación al realizar una unión interna. Esta columna solo se usa como un identificador. No se utiliza para ningún otro cálculo, como el análisis de sesgo o el análisis de atribución de características. Se necesita un valor para joinsource_name_or_index en los siguientes casos:

    • Hay varios conjuntos de datos de entrada y alguno de ellos está dividido en varios archivos.

    • El procesamiento distribuido se activa al establecer el trabajo de procesamiento de Clarify en un valor superior a. SageMaker InstanceCount1

  • excluded_columns: (opcional) una matriz de nombres o índices de columna de base cero que se excluirán del envío al modelo como entrada para las predicciones. La etiqueta de verdad fundamental y la etiqueta predicha ya se excluyeron automáticamente. Esta función no es compatible con las series temporales.

  • probability_threshold: (opcional) un número de coma flotante por encima del cual se selecciona una etiqueta o un objeto. El valor predeterminado es 0.5. El trabajo SageMaker de procesamiento Clarify probability_threshold se utiliza en los siguientes casos:

    • En el análisis de sesgo posterior al entrenamiento, probability_threshold convierte la predicción de un modelo numérico (valor de probabilidad o puntuación) en una etiqueta binaria, si el modelo es un clasificador binario. Una puntuación superior al umbral se convierte en 1. Mientras que una puntuación inferior o igual al umbral se convierte en 0.

    • En los problemas de explicabilidad de la visión artificial, si model_type es OBJECT_DETECTION, , probability_threshold filtra los objetos detectados con puntuaciones de confianza inferiores al valor umbral.

  • label_values_or_threshold: (opcional) obligatorio para el análisis de sesgos. Una matriz de valores de etiqueta o un número umbral, que indican un resultado positivo para etiquetas de verdad fundamental y predichas para las métricas de sesgo. Para obtener más información, consulte los valores de etiqueta positivos en. Amazon SageMaker aclara los términos de sesgo y equidad Si la etiqueta es numérica, el umbral se aplica como límite inferior para seleccionar el resultado positivo. Para configurar label_values_or_threshold para distintos tipos de problemas, consulte los siguientes ejemplos:

    • Para un problema de clasificación binaria, la etiqueta tiene dos valores posibles: 0 y 1. Si el valor de la etiqueta 1 es favorable para un grupo demográfico observado en una muestra, label_values_or_threshold debe establecerse en [1].

    • Para un problema de clasificación multiclase, la etiqueta tiene tres valores posibles: bird, cat y dog. Si los dos últimos definen un grupo demográfico que el sesgo favorece, entonces label_values_or_threshold debe configurarse en ["cat","dog"].

    • En el caso de un problema de regresión, el valor de la etiqueta es continuo y oscila entre 0 y 1. Si un valor superior a 0.5 debe designar una muestra como de resultado positivo, entonces label_values_or_threshold debe establecerse en 0.5.

  • faceta: (opcional) necesaria para el análisis de sesgos. Una matriz de objetos facetados, que se componen de atributos sensibles con los que se mide el sesgo. Puede utilizar las facetas para comprender las características de sesgo del conjunto de datos y el modelo, incluso si el modelo se ha entrenado sin utilizar atributos sensibles. Para obtener más información, consulte Facet in. Amazon SageMaker aclara los términos de sesgo y equidad Este objeto de faceta incluye los siguientes campos:

    • name_or_index: (opcional) el nombre o el índice de base cero de la columna de atributos sensibles de un conjunto de datos tabular. Si se especifica facet_dataset_uri, el índice se refiere al conjunto de datos de facetas en lugar del conjunto de datos principal.

    • value_or_threshold: (opcional) (obligatorio si facet es numérico y label_values_or_threshold se aplica como límite inferior para seleccionar el grupo sensible). Una matriz de valores de faceta o un número umbral que indica el grupo demográfico sensible que el sesgo favorece. Si el tipo de datos de faceta es categórico y no se proporciona value_or_threshold, las métricas de sesgo se calculan como un grupo para cada valor único (en lugar de todos los valores). Para configurar value_or_threshold para distintos tipos de datos de facet, consulte los siguientes ejemplos:

      • Para un tipo de datos de faceta binarios, la característica tiene dos valores posibles: 0 y 1. Si desea calcular las métricas de sesgo para cada valor, puede omitir value_or_threshold o establecer una matriz vacía.

      • Para un tipo de datos de faceta categóricos, la característica tiene tres valores posibles: bird, cat y dog. Si los dos primeros definen un grupo demográfico que el sesgo favorece, entonces value_or_threshold debe configurarse en ["bird", "cat"]. En este ejemplo, las muestras del conjunto de datos se dividen en dos grupos demográficos. La faceta del grupo favorecido tiene un valor bird o cat, mientras que la faceta del grupo desfavorecido tiene el valor dog.

      • En el caso de un tipo de datos de faceta numéricos, el valor de la característica es continuo y oscila entre 0 y 1. Por ejemplo, si un valor superior a 0.5 debe designar una muestra como de resultado positivo, entonces value_or_threshold debe establecerse en 0.5. En este ejemplo, las muestras del conjunto de datos se dividen en dos grupos demográficos. La faceta del grupo favorecido tiene un valor superior a 0.5, mientras que la faceta del grupo desfavorecido tiene un valor inferior o igual a 0.5.

  • group_variable: (opcional) el nombre o el índice de base cero de la columna que indica el subgrupo que se utilizará para la métrica de sesgo o. Disparidad demográfica condicional () CDD Disparidad demográfica condicional en las etiquetas previstas () CDDPL

  • facet_dataset_uri: (opcional) Solo se aplica cuando dataset_type es. text/csv El S3 para un conjunto de datos que contiene atributos sensibles URI para el análisis de sesgos. Puede utilizar las facetas para comprender las características de sesgo del conjunto de datos y el modelo, incluso si el modelo se ha entrenado sin utilizar atributos sensibles.

    nota

    Si el conjunto de datos de la faceta o el conjunto de datos principal está divididos en varios archivos, joinsource_name_or_index debe especificar una columna de identificación para unir los dos conjuntos de datos. Debe usar el parámetro facet para identificar cada faceta del conjunto de datos de facetas.

  • facet_headers: (opcional) solo se aplica cuando se especifica. facet_dataset_uri Una matriz de cadenas que contiene los nombres de las columnas del conjunto de datos de facetas y, opcionalmente, el encabezado de la columna identificadora para unir el conjunto de datos de facetas y el conjunto de datos principal, consulte. joinsource_name_or_index

  • time_series_data_config: (opcional) especifica la configuración que se utilizará para el procesamiento de datos de una serie temporal.

    • item_id: una cadena o un índice entero de base cero. Este campo se utiliza para localizar un identificador de elemento en el conjunto de datos de entrada compartido.

    • marca de tiempo: una cadena o un índice entero de base cero. Este campo se utiliza para localizar una marca de tiempo en el conjunto de datos de entrada compartido.

    • dataset_format: los valores posibles son, o. columns item_records timestamp_records Este campo se usa para describir el formato de un JSON conjunto de datos, que es el único formato compatible para explicar las series temporales.

    • target_time_series: índice entero basado en cero o JMESPath cadena. Este campo se utiliza para localizar la serie temporal objetivo en el conjunto de datos de entrada compartido. Si este parámetro es una cadena, todos los demás parámetros excepto dataset_format deben ser cadenas o listas de cadenas. Si este parámetro es un número entero, todos los demás parámetros excepto dataset_format deben ser números enteros o listas de números enteros.

    • related_time_series: (opcional) una matriz de expresiones. JMESPath Este campo se utiliza para localizar todas las series temporales relacionadas en el conjunto de datos de entrada compartido, si están presentes.

    • static_covariates: (opcional) una matriz de expresiones. JMESPath Este campo se utiliza para localizar todos los campos de covariables estáticas del conjunto de datos de entrada compartido, si están presentes.

    Para ver ejemplos, consulte Ejemplos de configuración de conjuntos de datos de series temporales.

  • methods: un objeto que contiene uno o más métodos de análisis y sus parámetros. Si se omite algún método, no se utiliza para el análisis ni se informa.

    • pre_training_bias: incluya este método si quiere calcular las métricas de sesgo previas al entrenamiento. La descripción detallada de las métricas se encuentra en. Métricas de sesgo previas al entrenamiento El objeto tiene los siguientes parámetros:

    • pre_training_bias: incluya este método si quiere calcular las métricas de sesgo posteriores al entrenamiento. La descripción detallada de las métricas se encuentra enDatos posteriores al entrenamiento y métricas de sesgo del modelo. El objeto post_training_bias tiene los siguientes parámetros:

    • shap: incluya este método si desea calcular SHAP valores. El trabajo de SageMaker procesamiento Clarify es compatible con el SHAP algoritmo Kernel. El objeto shap tiene los siguientes parámetros:

      • línea base: (opcional) el conjunto de datos de SHAP referencia, también conocido como conjunto de datos de fondo. Los requisitos adicionales para el conjunto de datos de referencia en un conjunto de datos tabular o un problema de visión artificial son los siguientes. Para obtener más información sobre las SHAP líneas base, consulte SHAPLíneas de base para la explicabilidad

        • En el caso de un conjunto de datos tabular, baseline pueden ser los datos de referencia in situ o el S3 URI de un archivo de referencia. Si no baseline se proporciona, el trabajo de procesamiento de SageMaker Clarify calcula una línea base agrupando el conjunto de datos de entrada. La referencia debe cumplir los siguientes requisitos:

          • El formato debe ser el mismo que el formato del conjunto de datos especificado por dataset_type.

          • La referencia solo puede contener características que el modelo pueda aceptar como entrada.

          • El conjunto de datos de referencia puede tener una o más instancias. La cantidad de instancias de referencia afecta directamente al tamaño del conjunto de datos sintético y al tiempo de ejecución del trabajo.

          • Si se especifica text_config, el valor de referencia de una columna de texto es una cadena que se utiliza para reemplazar la unidad de texto especificada por granularity. Por ejemplo, un marcador de posición común es «[MASK]», que se utiliza para representar una palabra o un fragmento de texto desconocido o que falta.

          En los siguientes ejemplos se muestra cómo configurar datos de referencia in situ para diferentes parámetros dataset_type:

          • Si dataset_type es text/csv o application/x-parquet, el modelo acepta cuatro características numéricas y la referencia tiene dos instancias. En este ejemplo, si un registro tiene todos los valores de característica cero y el otro registro tiene todos los valores de característica uno, entonces la referencia debe establecerse en [[0,0,0,0],[1,1,1,1]], sin ningún encabezado.

          • Si dataset_type es application/jsonlines, y features es la clave de una lista de cuatro valores de característica numéricos. Además, en este ejemplo, si la referencia tiene un registro con todos los valores cero, entonces baseline debe ser [{"features":[0,0,0,0]}].

          • Si dataset_type es application/json, el conjunto de datos baseline debe tener la misma estructura y formato que el conjunto de datos de entrada.

        • En el caso de problemas de visión artificial, baseline puede ser la posición S3 URI de una imagen que se utiliza para ocultar características (segmentos) de la imagen de entrada. El trabajo SageMaker de procesamiento Clarify carga la imagen de la máscara y cambia su tamaño a la misma resolución que la imagen de entrada. Si no se proporciona una línea base, el trabajo SageMaker de procesamiento Clarify genera una imagen de máscara de ruido blanco con la misma resolución que la imagen de entrada.

      • features_to_explain: (opcional) matriz de cadenas o índices de base cero de columnas de entidades para calcular valores. SHAP Si no features_to_explain se proporciona, los SHAP valores se calculan para todas las columnas de entidades. Estas columnas de características no pueden incluir la columna de etiquetas ni la columna de etiquetas predichas. El parámetro features_to_explain solo se admite para conjuntos de datos tabulares con columnas numéricas y categóricas.

      • num_clusters: (opcional) el número de clústeres en los que se divide el conjunto de datos para calcular el conjunto de datos de referencia. Cada clúster se usa para calcular una instancia de referencia. Si no baseline se especifica, el trabajo de SageMaker procesamiento de Clarify intenta calcular el conjunto de datos de referencia dividiendo el conjunto de datos tabular en un número óptimo de clústeres entre 1 y12. El número de instancias de referencia afecta directamente al tiempo de ejecución del SHAP análisis.

      • num_samples: (opcional) el número de muestras que se utilizarán en el algoritmo SHAP Kernel. Si no num_samples se proporciona, el trabajo de procesamiento de SageMaker Clarify elegirá el número por usted. La cantidad de muestras afecta directamente al tamaño del conjunto de datos sintético y al tiempo de ejecución del trabajo.

      • seed: (opcional) un número entero que se utiliza para inicializar el generador de números pseudoaleatorios del SHAP explicador a fin de generar SHAP valores consistentes para el mismo trabajo. Si no se especifica la semilla, cada vez que se ejecute el mismo trabajo, el modelo puede generar valores ligeramente diferentes. SHAP

      • use_logit: (opcional) un valor booleano que indica que desea que la función logit se aplique a las predicciones del modelo. El valor predeterminado es false. Si use_logit es asítrue, los SHAP valores se calculan utilizando los coeficientes de regresión logística, que pueden interpretarse como coeficientes logarítmicos de probabilidades.

      • save_local_shap_values: (opcional) un valor booleano que indica que desea que los SHAP valores locales de cada registro del conjunto de datos se incluyan en el resultado del análisis. El valor predeterminado es false.

        Si el conjunto de datos principal está dividido en varios archivos o si está activado el procesamiento distribuido, especifique también una columna de identificación mediante el parámetro joinsource_name_or_index. La columna de identificación y los valores locales se guardan en el resultado del análisisSHAP. De esta forma, puede asignar cada registro a sus SHAP valores locales.

      • agg_method: (opcional) el método utilizado para agregar SHAP los valores locales (los SHAP valores de cada instancia) de todas las instancias a los SHAP valores globales (los valores de todo el SHAP conjunto de datos). El valor predeterminado es mean_abs. Se pueden usar los siguientes métodos para agregar valores. SHAP

        • mean_abs: la media de los SHAP valores locales absolutos de todas las instancias.

        • mean_sq: la media de los valores locales SHAP cuadrados de todas las instancias.

        • median: la mediana de los SHAP valores locales de todas las instancias.

      • text_config: obligatorio para la explicabilidad del procesamiento del lenguaje natural. Incluya esta configuración si desea tratar las columnas de texto como texto y se deben proporcionar explicaciones para cada unidad de texto. Para ver un ejemplo de una configuración de análisis para explicar el procesamiento del lenguaje natural, consulte Configuración del análisis para la explicabilidad del procesamiento de lenguaje natural

        • granularity: la unidad de granularidad para el análisis de las columnas de texto. Los valores válidos son token, sentence o paragraph. Cada unidad de texto se considera una característica y SHAP los valores locales se calculan para cada unidad.

        • language: el idioma de las columnas de texto. Los valores válidos son 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. Ingrese multi-language para obtener una combinación de varios idiomas.

        • max_top_tokens: (opcional) el número máximo de fichas principales, en función de los valores globales. SHAP El valor predeterminado es 50. Es posible que un token aparezca varias veces en el conjunto de datos. El trabajo SageMaker de procesamiento de Clarify suma los SHAP valores de cada token y, a continuación, selecciona los principales en función de sus valores globales. SHAP SHAPLos valores globales de los principales tokens seleccionados se incluyen en la global_top_shap_text sección del archivo analysis.json.

        • El SHAP valor local de la agregación.

      • image_config: necesario para la explicabilidad de la visión artificial. Incluya esta configuración si tiene un conjunto de datos de entrada compuesto por imágenes y desea analizarlas para determinar su explicabilidad en un problema de visión artificial.

        • model_type: el tipo de modelo. Los valores válidos son:

          • IMAGE_CLASSIFICATION para un modelo de clasificación de imágenes.

          • OBJECT_DETECTION para un modelo de detección de objetos.

        • max_objects: solo se aplica cuando el tipo de modelo es OBJECT_DETECTION. El número máximo de objetos, ordenados por la puntuación de confianza, detectados por el modelo de visión artificial. Se filtran todos los objetos clasificados por debajo de max_objects según su puntuación máxima de confianza. El valor predeterminado es 3.

        • context: solo se aplica cuando model_type es OBJECT_DETECTION. Indica si el área alrededor del cuadro delimitador del objeto detectado está enmascarada por la imagen de referencia o no. Los valores válidos son 0 para enmascararlo todo o 1 para no enmascarar nada. El valor predeterminado es 1.

        • iou_threshold: solo se aplica cuando model_type esOBJECT_DETECTION. La métrica mínima de intersección sobre union (IOU) para evaluar las predicciones en función de la detección original. Una IOU métrica alta corresponde a una gran superposición entre el cuadro de detección de la verdad pronosticada y el campo de detección de la verdad fundamental. El valor predeterminado es 0.5.

        • num_segments: (opcional) un entero que determina el número aproximado de segmentos que se etiquetarán en la imagen de entrada. Cada segmento de la imagen se considera una característica y SHAP los valores locales se calculan para cada segmento. El valor predeterminado es 20.

        • segment_compactness: (opcional) un entero que determina la forma y el tamaño de los segmentos de la imagen generados por el método scikit-image slic. El valor predeterminado es 5.

    • pdp: incluya este método para calcular las gráficas de dependencia parcial (PDPs). Para ver un ejemplo de una configuración de análisis que se va a generarPDPs, consulte Calcule las gráficas de dependencia parcial () PDPs

      • features: obligatorio si no se solicita el método shap. Matriz de nombres o índices de características para calcular y trazar PDP gráficos.

      • top_k_features: (opcional) especifica el número de entidades principales que se utilizan para generar los gráficos. PDP Si no features se proporciona, pero se solicita el shap método, el trabajo de procesamiento de SageMaker Clarify elige las principales características en función de sus atribuciones. SHAP El valor predeterminado es 10.

      • grid_resolution: el número de buckets en los que se va a dividir el rango de valores numéricos. Esto especifica la granularidad de la cuadrícula de las PDP gráficas.

    • asymmetric_shapley_value: incluya este método si desea calcular las métricas de explicabilidad para los modelos de previsión de series temporales. El trabajo de procesamiento Clarify admite el algoritmo de valores asimétricos de Shapley. SageMaker Los valores asimétricos de Shapley son una variante del valor de Shapley que descarta el axioma de simetría. Para obtener más información, consulte Valores asimétricos de Shapley: incorporación del conocimiento causal a la explicabilidad independiente del modelo. Utilice estos valores para determinar cómo contribuyen las características al resultado de la previsión. Los valores asimétricos de Shapley tienen en cuenta las dependencias temporales de los datos de series temporales que los modelos de previsión toman como entrada.

      El algoritmo incluye los siguientes parámetros:

      • dirección: los tipos disponibles son chronologicalanti_chronological, ybidirectional. Se puede navegar por la estructura temporal en orden cronológico o anticronológico o en ambos. Las explicaciones cronológicas se crean agregando información de forma iterativa desde el primer paso de tiempo en adelante. Las explicaciones anticronológicas añaden información empezando por el último paso y retrocediendo. Este último orden puede ser más apropiado en presencia de un sesgo reciente, por ejemplo, para pronosticar los precios de las acciones.

      • granularidad: la granularidad de la explicación que se utilizará. Las opciones de granularidad disponibles se muestran a continuación:

        • En cuanto al tiempo: timewise las explicaciones son económicas y solo proporcionan información sobre intervalos de tiempo específicos, por ejemplo, averiguar en qué medida la información del enésimo día del pasado contribuyó a la previsión del día m en el futuro. Las atribuciones resultantes no explican las covariables estáticas de forma individual ni diferencian entre series temporales objetivo y series temporales relacionadas.

        • pormenorizado: fine_grained las explicaciones son computacionalmente más intensivas, pero proporcionan un desglose completo de todas las atribuciones de las variables de entrada. El método calcula las explicaciones aproximadas para reducir el tiempo de ejecución. Para obtener más información, consulte el siguiente parámetronum_samples.

          nota

          fine_grainedlas explicaciones solo respaldan chronological el orden.

      • num_samples: (opcional) este argumento es obligatorio para fine_grained las explicaciones. Cuanto mayor sea el número, más precisa será la aproximación. Este número debe escalarse con la dimensionalidad de las entidades de entrada. Una regla general es establecer esta variable en (1 + max (número de series temporales relacionadas, número de covariables estáticas) ^2 si el resultado no es demasiado grande.

      • línea base: (opcional) la configuración de referencia para reemplazar out-of-coalition los valores de los conjuntos de datos correspondientes (también conocidos como datos de fondo). En el siguiente fragmento se muestra un ejemplo de una configuración de referencia:

        { "related_time_series": "zero", "static_covariates": { <item_id_1>: [0, 2], <item_id_2>: [-1, 1] }, "target_time_series": "zero" }
        • Para los datos temporales, como las series temporales objetivo o las series temporales relacionadas, los tipos de valores de referencia pueden ser uno de los siguientes valores:

          • zero— Todos los out-of-coalition valores se sustituyen por 0.0.

          • mean— Todos out-of-coalition los valores se sustituyen por el promedio de una serie temporal.

        • En el caso de las covariables estáticas, solo se debe proporcionar una entrada de referencia cuando la solicitud del modelo tome valores de covariables estáticas, en cuyo caso este campo es obligatorio. La línea base debe proporcionarse para cada elemento en forma de lista. Por ejemplo, si tienes un conjunto de datos con dos covariables estáticas, tu configuración de referencia podría ser la siguiente:

          "static_covariates": { <item_id_1>: [1, 1], <item_id_2>: [0, 1] }

          En el ejemplo anterior, <item_id_1> y <item_id_2> son los identificadores de los elementos del conjunto de datos.

    • report: (opcional) utilice este objeto para personalizar el informe de análisis. Este parámetro no se admite en los trabajos de explicación de series temporales. Hay tres copias del mismo informe como parte del resultado del análisis: informe, HTML informe e PDF informe de Jupyter Notebook. El objeto tiene los siguientes parámetros:

      • name: nombre de archivo de los archivos del informe. Por ejemplo, si name es MyReport, los archivos del informe son MyReport.ipynb, MyReport.html y MyReport.pdf. El valor predeterminado es report.

      • title: (opcional) cadena de título del informe. El valor predeterminado es SageMaker Analysis Report.

  • predictor: obligatorio si el análisis requiere predicciones del modelo. Por ejemplo, cuando se solicita el post_training_bias método shapasymmetric_shapley_value,pdp, o, pero las etiquetas de previsión no se proporcionan como parte del conjunto de datos de entrada. Los siguientes son parámetros que se deben usar junto conpredictor:

    • model_name: el nombre del SageMaker modelo creado por. CreateModelAPI Si especifica model_name en lugar de endpoint_name, el trabajo de procesamiento de SageMaker Clarify crea un punto final efímero con el nombre del modelo, conocido como punto final oculto, y obtiene las predicciones del punto final. El trabajo elimina el punto de conexión de sombra una vez finalizados los cálculos. Si el modelo es multimodelo, se debe especificar el parámetro. target_model Para obtener más información sobre los puntos finales multimodelo, consulte. Puntos de conexión multimodelo

    • endpoint_name_prefix: (opcional) un prefijo de nombre personalizado para el punto de conexión de sombra. Aplicable si proporciona model_name en lugar de endpoint_name. Por ejemplo, proporcione endpoint_name_prefix si desea restringir el acceso al punto de conexión por nombre de punto de conexión. El prefijo debe coincidir con el EndpointNamepatrón y su longitud máxima es. 23 El valor predeterminado es sm-clarify.

    • initial_instance_count: especifica el número de instancias del punto de conexión de sombra. Se requiere si se proporciona model_name en lugar de endpoint_name. El valor de initial_instance_count puede ser diferente al InstanceCountdel trabajo, pero recomendamos una proporción de 1:1.

    • instance_type: especifica el tipo de instancia del punto de conexión de sombra. Se requiere si se proporciona model_name en lugar de endpoint_name. Por ejemplo, instance_type se puede configurar en “ml.m5.large”. En algunos casos, el valor especificado para instance_type puede ayudar a reducir el tiempo de inferencia del modelo. Por ejemplo, para funcionar de manera eficiente, los modelos de procesamiento de lenguaje natural y los modelos de visión artificial suelen requerir un tipo de instancia de unidad de procesamiento gráfico (GPU).

    • endpoint_name: el nombre del SageMaker punto final creado por. CreateEndpointAPI Si se proporciona, endpoint_name tiene prioridad sobre el parámetro model_name. El uso de un punto de conexión existente reduce el tiempo de arranque del punto de conexión de sombra, pero también puede provocar un aumento significativo de la carga de ese punto de conexión. Además, algunos métodos de análisis (como shap y pdp) generan conjuntos de datos sintéticos que se envían al punto de conexión. Esto puede provocar que las métricas del punto de conexión o los datos capturados se vean contaminados por datos sintéticos, lo que puede no reflejar con precisión el uso en el mundo real. Por estas razones, generalmente no se recomienda utilizar un punto final de producción existente para el análisis de Clarify. SageMaker

    • target_model: el valor de cadena que se transfiere al TargetModel parámetro de. SageMaker InvokeEndpointAPI Necesario si el modelo (especificado mediante el parámetro model_name) o el punto de conexión (especificado mediante el parámetro endpoint_name) es multimodelo. Para obtener más información sobre los puntos finales multimodelo, consulte. Puntos de conexión multimodelo

    • custom_attributes: (opcional) cadena que permite proporcionar información adicional sobre una solicitud de inferencia que se envía al punto de conexión. El valor de la cadena se pasa al CustomAttributes parámetro de. SageMaker InvokeEndpointAPI

    • content_type: formato de entrada del modelo que se utilizará para obtener las predicciones del punto de conexión. Si se proporciona, se pasa al ContentType parámetro de SageMaker InvokeEndpointAPI.

      • Para facilitar la explicabilidad de la visión artificial, los valores válidos son image/jpeg, image/png o application/x-npy. Si no se proporciona content_type, el valor predeterminado es image/jpeg.

      • Para explicar la previsión de series temporales, el valor válido es. application/json

      • Para otros tipos de explicabilidad, los valores válidos son text/csv, application/jsonlines, y application/json. Si es, content_type se requiere un valor para. dataset_type application/x-parquet De no ser así, content_type toma el valor predeterminado del parámetro dataset_type.

    • accept_type: el formato de salida del modelo que se utilizará para obtener las predicciones del punto de conexión. El valor de accept_type se pasa al Accept parámetro de SageMaker InvokeEndpointAPI.

      • Para explicar la visión artificial, si model_type es "OBJECT_DETECTION", el accept_type valor predeterminado es. application/json

      • Para la explicabilidad de la previsión de series temporales, el valor válido es. application/json

      • Para otros tipos de explicabilidad, los valores válidos son text/csv, application/jsonlines y application/json. Si no se proporciona un valor para accept_type, el valor predeterminado de accept_type es el valor del parámetro content_type.

    • content_template: cadena de plantilla que se utiliza para construir la entrada del modelo a partir de los registros del conjunto de datos. El parámetro content_template solo se usa y es obligatorio si el valor del parámetro content_type es application/jsonlines o application/json.

      Si el parámetro content_type es application/jsonlines, la plantilla solo debe tener un marcador de posición, $features, que se sustituye por una lista de características en tiempo de ejecución. Por ejemplo, si la plantilla es"{\"myfeatures\":$features}", y si un registro tiene tres valores de entidad numéricos: 2 y 13, entonces el registro se enviará al modelo como Línea. JSON {"myfeatures":[1,2,3]}

      Cuando content_type es application/json, la plantilla puede tener un marcador de posición $record o records. Si el marcador de posición es record, se sustituye un único registro por un registro al que se le haya aplicado la plantilla de record_template. En este caso, solo se enviará un registro al modelo cada vez. Si el marcador de posición es $records, los registros se sustituyen por una lista de registros, cada uno con una plantilla proporcionada por record_template.

    • record_template: cadena de plantilla que se utiliza para construir cada registro del modelo a partir de las instancias del conjunto de datos. Solo se usa y se requiere cuando content_type es application/json. La cadena de plantilla puede contener uno de los siguientes valores:

      • Un parámetro $features marcador de posición que se sustituye por una matriz de valores de características. Un marcador de posición opcional adicional puede sustituir los nombres de los encabezados de las columnas de características en $feature_names. Este marcador de posición opcional se sustituirá por una serie de nombres de características.

      • Exactamente un marcador de posición $features_kvp que se sustituye por los pares clave-valor, el nombre de la característica y el valor de la característica.

      • Una característica de la configuración headers. Por ejemplo, un nombre de característica A, anotado mediante la sintaxis del marcador de posición "${A}" se sustituirá por el valor de la característica correspondiente para A.

      El valor para record_template se usa con content_template para construir la entrada del modelo. A continuación, se muestra un ejemplo de configuración que muestra cómo construir una entrada de modelo mediante una plantilla de contenido y registro.

      En el siguiente ejemplo de código, los encabezados y las características se definen de la siguiente manera.

      • `headers`:["A", "B"]

      • `features`:[[0,1], [3,4]]

      Un ejemplo de entrada del modelo sería el siguiente.

      { "instances": [[0, 1], [3, 4]], "feature_names": ["A", "B"] }

      A continuación, se muestran el ejemplo content_template y los valores del parámetro record_template para construir el ejemplo anterior de entrada del modelo.

      • content_template: "{\"instances\": $records, \"feature_names\": $feature_names}"

      • record_template: "$features"

      En el siguiente ejemplo de código, los encabezados y las características se definen de la siguiente manera.

      [ { "A": 0, "B": 1 }, { "A": 3, "B": 4 }, ]

      A continuación, se muestran el ejemplo content_template y los valores del parámetro record_template para construir el ejemplo anterior de entrada del modelo.

      • content_template: "$records"

      • record_template: "$features_kvp"

      A continuación, se muestra un ejemplo de código alternativo para construir la entrada del modelo del ejemplo anterior.

      • content_template: "$records"

      • record_template: "{\"A\": \"${A}\", \"B\": \"${B}\"}"

      En el siguiente ejemplo de código, los encabezados y las características se definen de la siguiente manera.

      { "A": 0, "B": 1 }

      Los valores de los parámetros content_template y record_template de ejemplo que se va a construir están arriba: a continuación, la entrada del modelo del ejemplo anterior.

      • content_template: "$record"

      • record_template: "$features_kvp"

      Para obtener más ejemplos, consulte Solicitudes de datos de series temporales en el punto final.

    • etiqueta: (opcional) cadena de índice o JMESPath expresión de enteros de base cero que se utiliza para extraer las etiquetas pronosticadas de la salida del modelo para el análisis de sesgo. Si el modelo es multiclase y el parámetro label extrae todas las etiquetas predichas de la salida del modelo, se aplica lo siguiente. Esta función no es compatible con las series temporales.

      • El parámetro probability es necesario para obtener las probabilidades (o puntuaciones) correspondientes de la salida del modelo.

      • Se elige la etiqueta predicha de la puntuación más alta.

      El valor de label dependen del valor del parámetro accept_type de la siguiente manera.

      • Si accept_type es text/csv, entonces label es el índice de cualquier etiqueta predicha en la salida del modelo.

      • Si accept_type es application/jsonlines oapplication/json, entonces label es una JMESPath expresión que se aplica a la salida del modelo para obtener las etiquetas pronosticadas.

    • label_headers: (opcional) una matriz de valores que la etiqueta puede incluir en el conjunto de datos. Si se solicita un análisis del sesgo, el parámetro probability también es necesario para obtener los valores de probabilidad (puntuaciones) correspondientes de la salida del modelo, y se elige la etiqueta predicha de la puntuación más alta. Si se solicita un análisis de explicabilidad, los encabezados de las etiquetas se utilizan para embellecer el informe de análisis. Se requiere un valor para label_headers para la explicabilidad de la visión artificial. Por ejemplo, en el caso de un problema de clasificación multiclase, si la etiqueta tiene tres valores posibles, bird, cat y dog, entonces label_headers se debe establecer en ["bird","cat","dog"].

    • probabilidad: (opcional) un índice entero basado en cero o una cadena de JMESPath expresión que se utiliza para extraer probabilidades (puntuaciones) para el análisis de explicabilidad (pero no para la explicabilidad de las series temporales), o para elegir la etiqueta de predicción para el análisis de sesgo. El valor de probability dependen del valor del parámetro accept_type de la siguiente manera.

      • Si accept_type es text/csv, probability es el índice de las probabilidades (puntuaciones) en la salida del modelo. Si no se proporciona probability, toda la salida del modelo se toma como probabilidades (puntuaciones).

      • Si accept_type se trata de JSON datos (uno application/jsonlines u otroapplication/json), probability debe ser una JMESPath expresión que se utilice para extraer las probabilidades (puntuaciones) del resultado del modelo.

    • time_series_predictor_config: (opcional) Se usa solo para explicar series temporales. Se utiliza para indicar al procesador SageMaker Clarify cómo analizar correctamente los datos a partir de los datos transmitidos como entrada S3. URI dataset_uri

      • previsión: JMESPath expresión que se utiliza para extraer el resultado de la previsión.

Archivos de configuración del análisis de ejemplo

Las siguientes secciones contienen ejemplos de archivos de configuración de análisis para datos en CSV formato, formato de JSON líneas y para la explicabilidad del procesamiento del lenguaje natural (NLP), la visión artificial (CV) y las series temporales (TS).

Los siguientes ejemplos muestran cómo configurar el análisis de sesgo y explicabilidad para un conjunto de datos tabular en formato. CSV En estos ejemplos, el conjunto de datos entrante tiene cuatro columnas de características y una columna de etiquetas binarias, Target. El contenido del conjunto de datos es el siguiente. Un valor de etiqueta de 1 indica un resultado positivo. La entrada de procesamiento proporciona el conjunto de datos al SageMaker trabajo de Clarify. 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 ...

En las siguientes secciones se muestra cómo calcular las métricas de sesgo, SHAP los valores y las gráficas de dependencia parcial (PDPs) antes y después del entrenamiento, que muestran la importancia de las características de un conjunto de datos en CSV formato.

Cálculo de todas las métricas de sesgo previas al entrenamiento

Este ejemplo de configuración muestra cómo medir si el conjunto de datos de muestra anterior está sesgado favorablemente hacia muestras con un valor de Gender de 0. La siguiente configuración de análisis indica al trabajo de procesamiento de SageMaker Clarify que calcule todas las métricas de sesgo previas al entrenamiento para el conjunto de datos.

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

Cálculo de todas las métricas de sesgo posteriores al entrenamiento

Puede calcular las métricas de sesgo previas al entrenamiento antes del entrenamiento. Sin embargo, debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento. El siguiente ejemplo de salida proviene de un modelo de clasificación binaria que genera datos en CSV formato. En este ejemplo de salida, cada fila contiene dos columnas. La primera columna contiene la etiqueta predicha y la segunda columna contiene el valor de probabilidad de esa etiqueta.

0,0.028986845165491 1,0.825382471084594 ...

El siguiente ejemplo de configuración indica al trabajo de procesamiento SageMaker de Clarify que calcule todas las métricas de sesgo posibles utilizando el conjunto de datos y las predicciones de la salida del modelo. En el ejemplo, el modelo se implementa en un SageMaker punto finalyour_endpoint.

nota

En el siguiente código de ejemplo, los parámetros content_type y accept_type no están configurados. Por lo tanto, utilizan automáticamente el valor del parámetro dataset_type, que es 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 } }

Calcule los SHAP valores

El siguiente ejemplo de configuración de análisis indica al trabajo que calcule los SHAP valores designando la Target columna como etiquetas y todas las demás columnas como características.

{ "dataset_type": "text/csv", "label": "Target", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "probability": 1 } }

En este ejemplo, se omite el SHAP baseline parámetro y su valor es. num_clusters 1 Esto indica al procesador SageMaker Clarify que calcule una muestra de SHAP referencia. En este ejemplo, la probabilidad se establece en 1. Esto indica al trabajo de procesamiento de SageMaker Clarify que extraiga la puntuación de probabilidad de la segunda columna del resultado del modelo (mediante una indexación basada en cero).

Calcule las gráficas de dependencia parcial () PDPs

El siguiente ejemplo muestra cómo ver la importancia de la Income función en el informe de análisis mediantePDPs. El parámetro de informe indica al trabajo de procesamiento SageMaker de Clarify que genere un informe. Una vez finalizado el trabajo, el informe generado se guarda como report.pdf en la ubicación analysis_result. El parámetro grid_resolution divide el rango de valores de las características en 10 buckets. En conjunto, los parámetros especificados en el siguiente ejemplo indican al trabajo de procesamiento SageMaker de Clarify que genere un informe que contenga un PDP gráfico Income con 10 segmentos en el eje x. El eje y mostrará el impacto marginal de Income en las predicciones.

{ "dataset_type": "text/csv", "label": "Target", "methods": { "pdp": { "features": ["Income"], "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "probability": 1 }, }

Cálculo de las métricas de sesgo y de la importancia de las características

Puede combinar todos los métodos de los ejemplos de configuración anteriores en un único archivo de configuración de análisis y calcularlos todos en un solo trabajo. El siguiente ejemplo muestra una configuración de análisis con todos los pasos combinados.

En este ejemplo, el parámetro probability se establece 1 para indicar que las probabilidades están contenidas en la segunda columna (mediante la indexación basada en cero). Sin embargo, dado que el análisis del sesgo necesita una etiqueta predicha, el parámetro probability_threshold se establece en 0.5 para convertir la puntuación de probabilidad en una etiqueta binaria. En este ejemplo, el parámetro top_k_features del método de los gráficos de dependencia parcial pdp se establece en 2. Esto indica al trabajo de procesamiento SageMaker de Clarify que calcule las gráficas de dependencia parcial (PDPs) para las principales 2 entidades con los valores globales más altos. SHAP

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

En lugar de implementar el modelo en un punto final, puede proporcionar el nombre del SageMaker modelo al trabajo de procesamiento de SageMaker Clarify mediante el model_name parámetro. En el siguiente ejemplo se muestra cómo especificar un modelo denominado your_model. El trabajo SageMaker de procesamiento de Clarify creará un punto final oculto mediante la configuración.

{ ... "predictor": { "model_name": "your_model", "initial_instance_count": 1, "instance_type": "ml.m5.large", "probability": 1 } }

Los siguientes ejemplos muestran cómo configurar el análisis de sesgo y el análisis de explicabilidad para un conjunto de datos tabular en JSON formato Lines. En estos ejemplos, el conjunto de datos entrante tiene los mismos datos que en la sección anterior, pero están en el formato denso de SageMaker JSON líneas. Cada línea es un JSON objeto válido. La clave “Features” apunta a una matriz de valores de características, y la clave “Label” apunta a la etiqueta de verdad fundamental. La entrada de procesamiento del «conjunto de datos» proporciona el conjunto de datos al trabajo de SageMaker Clarify. Para obtener más información sobre JSON las líneas, consulteJSONLINESformato de solicitud.

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

Las siguientes secciones muestran cómo calcular las métricas de sesgo, los SHAP valores y las gráficas de dependencia parcial (PDPs) antes y después del entrenamiento que muestran la importancia de las características para un conjunto de datos en formato JSON Lines.

Cálculo de las métricas de sesgo previas al entrenamiento

Especifique la etiqueta, las características, el formato y los métodos para medir las métricas de sesgo previas al entrenamiento con un valor Gender de 0. En el siguiente ejemplo, el parámetro headers proporciona primero los nombres de las características. El nombre de la etiqueta se proporciona en último lugar. Por convención, el último encabezado es el encabezado de la etiqueta.

El features parámetro se establece en la JMESPath expresión «Características» para que el trabajo de procesamiento de SageMaker Clarify pueda extraer la matriz de entidades de cada registro. El label parámetro se establece en la JMESPath expresión «Etiqueta» para que el trabajo SageMaker de procesamiento de Clarify pueda extraer la etiqueta fundamental de cada registro. Utilice un nombre de faceta para especificar el atributo sensible, como se indica a continuación.

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

Cálculo de todas las métricas de sesgo

Debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento. El siguiente ejemplo es de un modelo de clasificación binaria que genera datos de JSON Lines en el formato del ejemplo. Cada fila de la salida del modelo es un JSON objeto válido. La clave predicted_label apunta a la etiqueta predicha y la clave probability apunta al valor de probabilidad.

{"predicted_label":0,"probability":0.028986845165491} {"predicted_label":1,"probability":0.825382471084594} ...

Puede implementar el modelo en un SageMaker punto final denominadoyour_endpoint. El siguiente ejemplo de configuración de análisis indica al trabajo de procesamiento SageMaker de Clarify que calcule todas las métricas de sesgo posibles tanto para el conjunto de datos como para el modelo. En el ejemplo, los parámetros content_type y accept_type no están definidos. Por lo tanto, utilizan automáticamente el valor del parámetro dataset_type, que es application/jsonlines. El trabajo SageMaker de procesamiento de Clarify usa el content_template parámetro para componer la entrada del modelo, reemplazando el $features marcador de posición por una matriz de características.

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

Calcule los valores SHAP

Como el SHAP análisis no necesita una etiqueta de verdad fundamental, se omite el label parámetro. En este ejemplo, también se omite el parámetro headers. Por lo tanto, el SageMaker trabajo de procesamiento de Clarify debe generar marcadores de posición utilizando nombres genéricos, como column_0 o column_1 para encabezados de entidades, y label0 para un encabezado de etiqueta. Puede especificar valores para headers y para label a fin de mejorar la legibilidad del resultado del análisis. Como el parámetro de probabilidad está establecido en JMESPath expresiónprobability, el valor de probabilidad se extraerá de la salida del modelo. A continuación se muestra un ejemplo para calcular SHAP valores.

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

Calcule las gráficas de dependencia parcial () PDPs

El siguiente ejemplo muestra cómo ver la importancia de los «ingresos» enPDP. En este ejemplo, no se proporcionan los encabezados de las características. Por lo tanto, el parámetro features del método pdp debe utilizar un índice de base cero para hacer referencia a la ubicación de la columna de características. El parámetro grid_resolution divide el rango de valores de las características en 10 buckets. En conjunto, los parámetros del ejemplo indican al trabajo de procesamiento SageMaker de Clarify que genere un informe que contenga un PDP gráfico Income con 10 segmentos en el eje x. El eje y mostrará el impacto marginal de Income en las predicciones.

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

Cálculo de las métricas de sesgo y de la importancia de las características

Puede combinar todos los métodos anteriores en un único archivo de configuración de análisis y calcularlos todos en un solo trabajo. El siguiente ejemplo muestra una configuración de análisis con todos los pasos combinados. En el ejemplo, el parámetro probability está definido. Dado que el análisis del sesgo necesita una etiqueta predicha, el parámetro probability_threshold se establece en 0.5 para convertir la puntuación de probabilidad en una etiqueta binaria. En este ejemplo, el parámetro top_k_features del método pdp se establece en 2. Esto indica al trabajo de procesamiento SageMaker de Clarify que calcule PDPs las 2 entidades principales con los valores globales más altos. SHAP

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

Los siguientes ejemplos muestran cómo configurar el análisis de sesgo y explicabilidad para un conjunto de datos tabular en formato. JSON En estos ejemplos, el conjunto de datos entrante tiene los mismos datos que en la sección anterior, pero están en formato denso. SageMaker JSON Para obtener más información sobre JSON las líneas, consulteJSONLINESformato de solicitud.

Toda la solicitud de entrada es válida JSON cuando la estructura exterior es una lista y cada elemento son los datos de un registro. Dentro de cada registro, la clave Features apunta a una matriz de valores de características, y la clave Label apunta a la etiqueta de verdad fundamental. La entrada de dataset procesamiento proporciona el conjunto de datos al trabajo de SageMaker Clarify.

[ {"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}, ... ]

En las siguientes secciones, se muestra cómo calcular las métricas de sesgo, SHAP los valores y las gráficas de dependencia parcial (PDPs) antes y después del entrenamiento que muestran la importancia de las características de un conjunto de datos en formato JSON Lines.

Cálculo de las métricas de sesgo previas al entrenamiento

Especifique la etiqueta, las características, el formato y los métodos para medir las métricas de sesgo previas al entrenamiento con un valor Gender de 0. En el siguiente ejemplo, el parámetro headers proporciona primero los nombres de las características. El nombre de la etiqueta se proporciona en último lugar. En el caso JSON de los conjuntos de datos, el último encabezado es el encabezado de la etiqueta.

El features parámetro se establece en la JMESPath expresión que extrae una matriz o matriz 2D. Cada fila de esta matriz debe contener la lista de Features para cada registro. El label parámetro se establece en una JMESPath expresión que extrae una lista de etiquetas de verdad fundamental. Cada elemento de esta lista debe contener la etiqueta de un registro.

Utilice un nombre de faceta para especificar el atributo sensible, como se indica a continuación.

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

Cálculo de todas las métricas de sesgo

Debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento. El siguiente ejemplo de código proviene de un modelo de clasificación binaria que genera JSON datos en el formato del ejemplo. En el ejemplo, cada uno de los elementos en predictions es el resultado de la predicción de un registro. El código de ejemplo contiene la clave predicted_label, que apunta a la etiqueta predicha, y la clave probability que apunta al valor de probabilidad.

{ "predictions": [ {"predicted_label":0,"probability":0.028986845165491}, {"predicted_label":1,"probability":0.825382471084594}, ... ] }

Puede implementar el modelo en un SageMaker punto final denominadoyour_endpoint.

En el siguiente ejemplo, los parámetros content_type y accept_type no están configurados. Por lo tanto, content_type y accept_type utilizan automáticamente el valor del parámetro dataset_type, que es application/json. A continuación SageMaker , el trabajo de procesamiento de Clarify utiliza el content_template parámetro para componer la entrada del modelo.

En el siguiente ejemplo, la entrada del modelo se compone a través de la sustitución del marcador de posición $records por una matriz de registros. A continuación, el record_template parámetro compone la JSON estructura de cada registro y reemplaza el $features marcador de posición por la matriz de características de cada registro.

El siguiente ejemplo de configuración de análisis indica al trabajo de procesamiento de SageMaker Clarify que calcule todas las métricas de sesgo posibles tanto para el conjunto de datos como para el modelo.

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

Calcule los valores SHAP

No es necesario especificar una etiqueta para el SHAP análisis. En el siguiente ejemplo, el parámetro headers no está configurado. Por lo tanto, el trabajo SageMaker de procesamiento de Clarify generará marcadores de posición con nombres genéricos, como column_0 o column_1 para los encabezados de las funciones, y label0 para el encabezado de una etiqueta. Puede especificar valores para headers y para label a fin de mejorar la legibilidad del resultado del análisis.

En el siguiente ejemplo de configuración, el parámetro de probabilidad se establece en una JMESPath expresión que extrae las probabilidades de cada predicción para cada registro. El siguiente es un ejemplo para calcular SHAP valores.

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

Calcule las gráficas de dependencia parcial (PDPs)

El siguiente ejemplo muestra cómo ver la importancia de una característica enPDPs. En el ejemplo, no se proporcionan los encabezados de las características. Por lo tanto, el parámetro features del método pdp debe utilizar un índice de base cero para hacer referencia a la ubicación de la columna de características. El parámetro grid_resolution divide el rango de valores de las características en 10 buckets.

En conjunto, los parámetros del siguiente ejemplo indican al trabajo de procesamiento SageMaker de Clarify que genere un informe que contenga un PDP gráfico Income con 10 segmentos en el eje x. El eje y muestra el impacto marginal de Income en las predicciones.

El siguiente ejemplo de configuración muestra cómo ver la importancia de Income encendido. PDPs

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

Cálculo de las métricas de sesgo y de la importancia de las características

Puede combinar todos los métodos de configuración anteriores en un único archivo de configuración de análisis y calcularlos todos en un solo trabajo. El siguiente ejemplo muestra una configuración de análisis con todos los pasos combinados.

En el ejemplo, el parámetro probability está definido. Como el análisis del sesgo necesita una etiqueta predicha, el parámetro probability_threshold se establece en 0.5 para convertir la puntuación de probabilidad en una etiqueta binaria. En este ejemplo, el parámetro top_k_features del método pdp se establece en 2. Esto indica al trabajo de SageMaker procesamiento de Clarify que calcule PDPs las 2 características principales con los SHAP valores globales más altos.

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

El siguiente ejemplo muestra un archivo de configuración de análisis para calcular la importancia de las funciones en el procesamiento del lenguaje natural (NLP). En este ejemplo, el conjunto de datos entrante es un conjunto de datos tabular en CSV formato tabular, con una columna de etiqueta binaria y dos columnas de entidades, como se indica a continuación. El parámetro de entrada de dataset procesamiento proporciona el conjunto de datos al trabajo de SageMaker Clarify.

0,2,"They taste gross" 1,3,"Flavor needs work" 1,5,"Taste is awful" 0,1,"The worst" ...

En este ejemplo, se entrenó un modelo de clasificación binaria en el conjunto de datos anterior. El modelo acepta CSV datos y genera una puntuación única entre 0 y1, de la siguiente manera.

0.491656005382537 0.569582343101501 ...

El modelo se utiliza para crear un SageMaker modelo denominado «your_model». La siguiente configuración de análisis muestra cómo ejecutar un análisis de explicabilidad simbólica utilizando el modelo y el conjunto de datos. El text_config parámetro activa el análisis de NLP explicabilidad. El parámetro granularity indica que el análisis debe analizar los tokens.

En inglés, cada token es una palabra. El siguiente ejemplo también muestra cómo proporcionar una instancia SHAP «de referencia» in situ utilizando una «valoración» media de 4. Se utiliza un símbolo de máscara especial «[MASK]» para reemplazar un símbolo (palabra) en «Comentarios». En este ejemplo también se utiliza un tipo de instancia de GPU punto final para acelerar la inferencia.

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

El siguiente ejemplo muestra un archivo de configuración de análisis que calcula la importancia de las características para la visión artificial. En este ejemplo, el conjunto de datos de entrada consta de JPEG imágenes. El parámetro de entrada de dataset procesamiento proporciona el SageMaker conjunto de datos al trabajo de Clarify. El ejemplo muestra cómo configurar un análisis de explicabilidad mediante un modelo de clasificación de SageMaker imágenes. En el ejemplo, un modelo denominadoyour_cv_ic_model, ha sido entrenado para clasificar los animales en las imágenes de entradaJPEG.

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

Para obtener más información sobre la clasificación de imágenes, consulteClasificación de imágenes - MXNet.

En este ejemplo, un modelo de detección de SageMaker objetos your_cv_od_model se basa en las mismas JPEG imágenes para identificar los animales que aparecen en ellas. En el siguiente ejemplo se muestra cómo configurar un análisis de explicabilidad para el modelo de detección de objetos.

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

El siguiente ejemplo muestra un archivo de configuración de análisis para calcular la importancia de las características en una serie temporal (TS). En este ejemplo, el conjunto de datos entrante es un conjunto de datos de series temporales en JSON formato con un conjunto de características covariables dinámicas y estáticas. El parámetro de entrada de procesamiento del conjunto de datos proporciona SageMaker el conjunto de datos al trabajo de Clarify. dataset_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 }, ]

En las siguientes secciones, se explica cómo calcular las atribuciones de características para un modelo de pronóstico con el algoritmo de valores asimétricos de Shapley para un conjunto de datos. JSON

Calcule las explicaciones de los modelos de previsión de series temporales

El siguiente ejemplo de configuración de análisis muestra las opciones utilizadas por el trabajo para calcular las explicaciones de los modelos de previsión de series temporales.

{ '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' } }
Configuración de explicabilidad de series temporales

asymmetric_shapley_valueEn el ejemplo anterior se utilizan methods para definir los argumentos de explicabilidad de las series temporales, como la línea base, la dirección, la granularidad y el número de muestras. Los valores de referencia se establecen para los tres tipos de datos: series temporales relacionadas, covariables estáticas y series temporales objetivo. Estos campos indican al procesador SageMaker Clarify que calcule las atribuciones de características de un elemento a la vez.

Configuración del predictor

Puede controlar completamente la estructura de carga útil que envía el procesador SageMaker Clarify mediante la sintaxis. JMESPath En el ejemplo anterior, la predictor configuración indica a Clarify que agregue los registros'{"instances": $records}', donde cada registro se define con los argumentos dados record_template en el ejemplo. Tenga en cuenta que$start_time, $target_time_series$related_time_series, y $static_covariates son símbolos internos que se utilizan para asignar los valores del conjunto de datos a los valores de las solicitudes de punto final.

Del mismo modo, el atributo forecast in time_series_predictor_config se utiliza para extraer la previsión del modelo a partir de la respuesta del punto final. Por ejemplo, la respuesta del lote de puntos finales podría ser la siguiente:

{ "predictions": [ {"mean": [13.4, 3.6, 1.0]}, {"mean": [23.0, 4.7, 3.0]}, {"mean": [3.4, 5.6, 2.0]} ] }

Supongamos que especifica la siguiente configuración de predictores de series temporales:

'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}

El valor de la previsión se analiza de la siguiente manera:

[ [13.4, 3.6], [23.0, 4.7], [3.4, 5.6] ]
Configuración de datos

Utilice el time_series_data_config atributo para indicar al procesador SageMaker Clarify que analice los datos correctamente a partir de los datos transmitidos como entrada S3. URI dataset_uri