Parametri per monitorare la deriva dell'attribuzione - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Parametri per monitorare la deriva dell'attribuzione

Amazon SageMaker Clarify Explainability Monitor riutilizza un sottoinsieme dei parametri utilizzati nella configurazione di analisi di. File di configurazione dell'analisi I seguenti parametri devono essere forniti in un JSON file e il percorso deve essere fornito nel parametro di. ConfigUri ModelExplainabilityAppSpecification

  • "version": (facoltativo) versione dello schema del file di configurazione. Se non viene fornita, viene utilizzata l'ultima versione supportata.

  • "headers": (facoltativo) un elenco di nomi di funzionalità nel set di dati. L'analisi della spiegabilità non richiede etichette.

  • "methods": un elenco di metodi e dei relativi parametri per le analisi e i report. Se una sezione viene omessa, non viene calcolata.

    • "shap"— (Facoltativo) Sezione sul calcolo dei SHAP valori.

      • "baseline"— (Facoltativo) Un elenco di righe (almeno una) o un oggetto Amazon S3 di Amazon Simple Storage Service. URI Da utilizzare come set di dati di base (noto anche come set di dati in background) nell'algoritmo Kernel. SHAP Il formato deve essere uguale a quello del set di dati. Ogni riga deve contenere solo le colonne (o i valori) delle funzionalità. Prima di inviare ogni riga al modello, omettete qualsiasi colonna che deve essere esclusa.

      • "num_samples"— Numero di campioni da utilizzare nell'algoritmo Kernel. SHAP Questo numero determina la dimensione del set di dati sintetico generato per calcolare i valori. SHAP Se non viene fornito, un job SageMaker Clarify sceglie il valore in base a un numero di funzionalità.

      • "agg_method"— Metodo di aggregazione per valori globali. SHAP I valori validi sono:

        • "mean_abs"— Media dei SHAP valori assoluti per tutte le istanze.

        • "median"— Mediana dei SHAP valori per tutte le istanze.

        • "mean_sq"— Media dei SHAP valori al quadrato per tutte le istanze.

      • "use_logit": (facoltativo) valore booleano per indicare se la funzione logit deve essere applicata alle previsioni del modello. In caso "use_logit" true affermativo, i SHAP valori hanno unità log-odds. Il valore predefinito è false.

      • "save_local_shap_values"— (Facoltativo) Valore booleano per indicare se SHAP i valori locali devono essere salvati nella posizione di output. Utilizzare true per salvarli. Utilizzare false per non salvarli. Il valore predefinito è false.

  • "predictor": (facoltativo per l'endpoint in tempo reale, necessario per la trasformazione di batch) sezione sui parametri del modello, necessaria se sono presenti le sezioni "shap" e "post_training_bias".

    • "model_name"— Nome del modello creato da CreateModelAPI, con modalità contenitore come. SingleModel

    • "instance_type": tipo di istanza per l'endpoint shadow.

    • "initial_instance_count": conteggio istanze per l'endpoint shadow.

    • "content_type": (facoltativo) il formato di input del modello da utilizzare per ottenere inferenze con l'endpoint shadow. I valori validi sono "text/csv" perCSV, "application/jsonlines" per JSON Lines, application/x-parquet per Apache Parquet e per application/x-image abilitare la spiegabilità di Computer Vision. Il valore predefinito è uguale al formato di dataset_type.

    • "accept_type": (facoltativo) il formato di input del modello da utilizzare per ottenere inferenze con l'endpoint shadow. I valori validi sono "text/csv" perCSV, "application/jsonlines" per Lines. JSON Se omesso, SageMaker Clarify utilizza il tipo di dati di risposta dei dati acquisiti.

    • "content_template": (facoltativo) una stringa modello utilizzata per costruire l'input del modello dalle istanze del set di dati. Utilizzato solo quando "content_type" è "application/jsonlines". Il modello deve avere un solo segnaposto, $features, che viene sostituito dall'elenco delle funzionalità in fase di esecuzione. Ad esempio"content_template":"{\"myfeatures\":$features}", se un'istanza (senza etichetta) lo è1,2,3, l'input del modello diventa JSON Lines. '{"myfeatures":[1,2,3]}'

    • "label_headers": (facoltativo) un elenco di valori che "label" utilizza nel set di dati. Associa i punteggi restituiti dall'endpoint del modello o dal processo di trasformazione di batch ai valori delle etichette corrispondenti. Se viene fornito, il report di analisi utilizza le intestazioni anziché i segnaposti come “label0”.

Gli altri parametri devono essere forniti in EndpointInput (per gli endpoint in tempo reale) o BatchTransformInput (per i lavori di trasformazione in batch) di ModelExplainabilityJobInputAPI.

  • FeaturesAttribute: questo parametro è obbligatorio se il formato dei dati di input dell'endpoint o del processo di batch è "application/jsonlines". Viene JMESPath utilizzato per individuare le colonne delle funzionalità se il formato del set di dati è JSON Linee.

  • ProbabilityAttribute— Indice o JMESPath posizione nell'output del modello per le probabilità. Se l'output del modello è JSON Linee con un elenco di etichette e probabilità, ad esempio, per il calcolo delle distorsioni viene selezionata l'etichetta che corrisponde alla probabilità massima.

File di JSON configurazione di esempio per CSV set di dati e linee JSON

Di seguito sono riportati alcuni esempi dei JSON file utilizzati per la configurazione CSV e dei set di dati JSON Lines per monitorarli per individuare eventuali variazioni nell'attribuzione delle funzionalità.

CSVSet di dati

Consideriamo un set di dati con tre colonne di funzionalità numeriche, come nell'esempio seguente.

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

Supponiamo che l'output del modello abbia due colonne, dove la prima è l'etichetta prevista e la seconda è la probabilità, come nell'esempio seguente.

1, 0.5385257417814224

Il seguente file di JSON configurazione di esempio mostra come è possibile configurare questo CSV set di dati.

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

L'etichetta prevista viene selezionata dal parametro "ProbabilityAttribute". Viene utilizzata la numerazione a base zero, quindi 1 indica la seconda colonna dell'output del modello.

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

JSONLines Datasets

Consideriamo un set di dati con quattro colonne di funzionalità e una colonna di etichette, in cui la prima funzionalità e l'etichetta sono binarie, come nell'esempio seguente.

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

L'input del modello è lo stesso del formato del set di dati e l'output del modello è JSON Lines, come nell'esempio seguente.

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

Nell'esempio seguente, il file di JSON configurazione mostra come è possibile configurare questo set di dati JSON Lines.

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

Quindi il valore del parametro "features" in EndpointInput (per gli endpoint in tempo reale) o BatchTransformInput (per i processi di trasformazione di batch) viene utilizzato per individuare le funzionalità nel set di dati e il valore del parametro "probability" seleziona il valore di probabilità dall'output del modello.

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