Parámetros para supervisar la desviación de atribución - 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.

Parámetros para supervisar la desviación de atribución

El monitor SageMaker de explicabilidad de Amazon Clarify reutiliza un subconjunto de los parámetros utilizados en la configuración de análisis de. Archivos de configuración de análisis Los siguientes parámetros deben proporcionarse en un JSON archivo y la ruta debe proporcionarse en el parámetro de. ConfigUri ModelExplainabilityAppSpecification

  • "version": versión esquemática (opcional) del archivo de configuración. Si no se proporciona, se utiliza la versión más reciente compatible.

  • "headers": una lista de nombres de características del conjunto de datos (opcional). El análisis de explicabilidad no requiere etiquetas.

  • "methods": una lista de métodos y sus parámetros para los análisis e informes. Si se omite alguna sección, no se computará.

    • "shap"— (Opcional) Sección sobre el cálculo de SHAP valores.

      • "baseline"— (Opcional) Una lista de filas (al menos una) o un objeto Amazon S3 de Amazon Simple Storage ServiceURI. Se utilizará como conjunto de datos de referencia (también conocido como conjunto de datos de fondo) en el SHAP algoritmo de Kernel. El formato debe ser el mismo que el del conjunto de datos. Cada fila debe contener solo las columnas de características (o valores). Antes de enviar cada fila al modelo, omita cualquier columna que deba excluirse.

      • "num_samples"— Número de muestras que se utilizarán en el SHAP algoritmo Kernel. Este número determina el tamaño del conjunto de datos sintético generado para calcular los SHAP valores. Si no se proporciona, un trabajo de SageMaker Clarify elige el valor en función de un recuento de características.

      • "agg_method"— Método de agregación de SHAP valores globales. Los valores válidos son los siguientes:

        • "mean_abs"— Media de los SHAP valores absolutos de todas las instancias.

        • "median"— Mediana de SHAP los valores de todas las instancias.

        • "mean_sq"— Media de los SHAP valores cuadrados de todas las instancias.

      • "use_logit": (opcional) valor booleano para indicar si la función logit se va a aplicar a las predicciones del modelo. Si "use_logit" es asítrue, los SHAP valores tienen unidades logarítmicas de probabilidades. El valor predeterminado es false.

      • "save_local_shap_values"— (Opcional) Valor booleano para indicar si SHAP los valores locales se van a guardar en la ubicación de salida. Use true para guardarlos. Use false para no guardarlos. El valor predeterminado es false.

  • "predictor": (opcional para el punto de conexión en tiempo real, necesario para la transformación por lotes). Sección sobre los parámetros del modelo, obligatoria si las secciones "shap" y "post_training_bias" están presentes.

    • "model_name"— Nombre del modelo creado por CreateModelAPI, con el modo contenedor como. SingleModel

    • "instance_type": tipo de instancia para el punto de conexión de sombra.

    • "initial_instance_count": recuento de instancia para el punto de conexión de sombra.

    • "content_type": (opcional) El formato de entrada del modelo que se utilizará para obtener inferencias con el punto de conexión de sombra. Los valores válidos son "text/csv" para JSON LinesCSV, "application/jsonlines" application/x-parquet para Apache Parquet y application/x-image para permitir la explicabilidad mediante Computer Vision. El valor predeterminado es el mismo que el formato dataset_type.

    • "accept_type": (opcional) El formato de salida del modelo que se utilizará para obtener inferencias con el punto de conexión de sombra. Los valores válidos son "text/csv" para y "application/jsonlines" para CSV JSON Lines. Si se omite, SageMaker Clarify utiliza el tipo de datos de respuesta de los datos capturados.

    • "content_template": (opcional) una cadena de plantilla utilizada para construir la entrada del modelo a partir de instancias del conjunto de datos. Se utiliza solo cuando "content_type" es "application/jsonlines". La plantilla debe tener solo un marcador de posición, $features, que se sustituye por la lista de características en tiempo de ejecución. Por ejemplo"content_template":"{\"myfeatures\":$features}", si una instancia (sin etiqueta) lo es1,2,3, la entrada del modelo se convierte en JSON Líneas'{"myfeatures":[1,2,3]}'.

    • "label_headers": (opcional) Una lista de valores que la "label" incluye en el conjunto de datos. Asocia las puntuaciones devueltas por el punto de conexión del modelo o el trabajo de transformación por lotes a sus valores de etiqueta correspondientes. Si se proporciona, el informe de análisis utiliza los encabezados en lugar de marcadores de posición, por ejemplo “label0”.

Los demás parámetros deben proporcionarse en EndpointInput (para puntos finales en tiempo real) o BatchTransformInput (para trabajos de transformación por lotes) del ModelExplainabilityJobInputAPI.

  • FeaturesAttribute: este parámetro es obligatorio si el formato de los datos de entrada del trabajo por lotes o punto de conexión es "application/jsonlines". Se JMESPath utiliza para localizar las columnas de entidades si el formato del conjunto de datos es JSON Líneas.

  • ProbabilityAttribute— Índice o JMESPath ubicación en la salida del modelo para las probabilidades. Si la salida del modelo es JSON Líneas con una lista de etiquetas y probabilidades, por ejemplo, se selecciona la etiqueta que corresponde a la probabilidad máxima para los cálculos de sesgo.

Ejemplos de archivos JSON de configuración para conjuntos de datos de líneas CSV y conjuntos de datos JSON

A continuación, se muestran ejemplos de los JSON archivos que se utilizan para configurar conjuntos de datos de JSON Lines CSV y supervisarlos para detectar desviaciones en la atribución de características.

CSVConjuntos de datos

Considere un conjunto de datos que tenga tres columnas de características numéricas, como en el siguiente ejemplo.

0.5814568701544718, 0.6651538910132964, 0.3138080342665499 0.6711642728531724, 0.7466687034026017, 0.1215477472819713 0.0453256543003371, 0.6377430803264152, 0.3558625219713576 0.4785191813363956, 0.0265841045263860, 0.0376935084990697

Suponga que la salida del modelo tiene dos columnas, donde la primera es la etiqueta predicha y la segunda es la probabilidad, como en el siguiente ejemplo.

1, 0.5385257417814224

El siguiente archivo de JSON configuración de ejemplo muestra cómo se puede configurar este CSV conjunto de datos.

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ [0.4441164946610942, 0.5190374448171748, 0.20722795300473712] ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1 } }

La etiqueta predicha se selecciona mediante el parámetro "ProbabilityAttribute". Se utiliza una numeración basada en cero, por lo que 1 indica la segunda columna de la salida del modelo.

"EndpointInput": { ... "ProbabilityAttribute": 1 ... }

JSONLíneas y conjuntos de datos

Considere un conjunto de datos que tiene cuatro columnas de características y una columna de etiquetas, donde la primera característica y etiqueta son binarias, como en el siguiente ejemplo.

{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0} {"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1} {"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1} {"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}

La entrada del modelo es la misma que el formato del conjunto de datos y la salida del modelo son JSON líneas, como en el siguiente ejemplo.

{"predicted_label":1, "probability":0.5385257417814224}

En el siguiente ejemplo, el archivo de JSON configuración muestra cómo se puede configurar este conjunto de datos de JSON líneas.

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ {"features":[0.4441164946610942, 0.5190374448171748, 0.20722795300473712]} ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1, "content_template":"{\"features\":$features}" } }

A continuación, el valor del parámetro "features" en EndpointInput (para los puntos de conexión en tiempo real) o BatchTransformInput (para los trabajos de transformación por lotes) se utiliza para localizar las características en el conjunto de datos, y el valor del parámetro "probability" selecciona el valor de probabilidad de la salida del modelo.

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", ... }