Parâmetros para monitorar o desvio de atribuição - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Parâmetros para monitorar o desvio de atribuição

O monitor de SageMaker explicabilidade Amazon Clarify reutiliza um subconjunto dos parâmetros usados na configuração de análise do. Arquivos de configuração de análise Os parâmetros a seguir devem ser fornecidos em um JSON arquivo e o caminho deve ser fornecido no ConfigUri parâmetro de ModelExplainabilityAppSpecification.

  • "version" – (Opcional) Versão do esquema do arquivo de configuração. Se não for fornecida, a versão compatível mais recente será usada.

  • "headers" – (Opcional) Uma lista de nomes de recursos no conjunto de dados. A análise de explicabilidade não exige rótulos.

  • "methods" – Uma lista de métodos e seus parâmetros para as análises e relatórios. Se alguma seção for omitida, ela não será computada.

    • "shap"— (Opcional) Seção sobre cálculo de SHAP valores.

      • "baseline"— (Opcional) Uma lista de linhas (pelo menos uma) ou um objeto Amazon S3 do Amazon Simple Storage Service. URI Para ser usado como conjunto de dados de linha de base (também conhecido como conjunto de dados em segundo plano) no algoritmo Kernel. SHAP O formato deve ser igual ao formato do conjunto de dados. Cada linha deve conter somente as colunas (ou valores) dos recursos. Antes de enviar cada linha para o modelo, omita qualquer coluna que deva ser excluída.

      • "num_samples"— Número de amostras a serem usadas no SHAP algoritmo Kernel. Esse número determina o tamanho do conjunto de dados sintético gerado para calcular os SHAP valores. Se não for fornecido, um trabalho do SageMaker Clarify escolherá o valor com base em uma contagem de recursos.

      • "agg_method"— Método de agregação para SHAP valores globais. Os valores válidos são os seguintes:

        • "mean_abs"— Média dos SHAP valores absolutos para todas as instâncias.

        • "median"— Mediana dos SHAP valores para todas as instâncias.

        • "mean_sq"— Média dos SHAP valores quadrados para todas as instâncias.

      • "use_logit" – (Opcional) Valor boleano para indicar se a função logit deve ser aplicada às previsões do modelo. Se "use_logit" fortrue, então os SHAP valores têm unidades logarítmicas. O valor padrão é false.

      • "save_local_shap_values"— (Opcional) Valor booleano para indicar se SHAP os valores locais devem ser salvos no local de saída. Use true para salvá-los. Use false para não salvá-los. O padrão é false.

  • "predictor" – (Opcional para endpoint em tempo real, necessária para transformação de lotes) Seção sobre parâmetros do modelo, necessária se as seções "shap" e "post_training_bias" estiverem presentes.

    • "model_name"— Nome do modelo criado por CreateModelAPI, com o modo de contêiner comoSingleModel.

    • "instance_type" – Tipo de instância para o endpoint de sombra.

    • "initial_instance_count" – Contagem de instância para o endpoint de sombra.

    • "content_type" – (Opcional) O formato de entrada do modelo a ser usado para obter inferências com o endpoint de sombra. Os valores válidos são "text/csv" paraCSV, "application/jsonlines" para JSON Linhas, application/x-parquet para Apache Parquet e para permitir application/x-image a explicabilidade da Visão Computacional. O valor padrão é o mesmo do formato dataset_type.

    • "accept_type" – (Opcional) O formato de saída do modelo a ser usado para obter inferências com o endpoint de sombra. Os valores válidos são "text/csv" paraCSV, "application/jsonlines" para JSON Linhas. Se omitido, o SageMaker Clarify usa o tipo de dados de resposta dos dados capturados.

    • "content_template" – (Opcional) Uma string de modelo usada para construir a entrada do modelo a partir de instâncias do conjunto de dados. Usado apenas quando o "content_type" for "application/jsonlines". O modelo deve ter apenas um espaço reservado, $features, que é substituído pela lista de recursos em tempo de execução. Por exemplo"content_template":"{\"myfeatures\":$features}", se uma instância (sem rótulo) for1,2,3, a entrada do modelo se tornará JSON Linhas'{"myfeatures":[1,2,3]}'.

    • "label_headers" – (Opcional) Uma lista de valores que o "label" assumem no conjunto de dados. Associa as pontuações retornadas pelo endpoint do modelo ou pelo trabalho de transformação de lotes aos valores de rótulo correspondentes. Se for fornecido, o relatório de análise usará os cabeçalhos em vez de espaços reservados, como “label0”.

Os outros parâmetros devem ser fornecidos em EndpointInput (para endpoints em tempo real) ou BatchTransformInput (para trabalhos de transformação em lote) do ModelExplainabilityJobInputAPI.

  • FeaturesAttribute – Esse parâmetro é obrigatório se o formato de dados de entrada do endpoint ou do trabalho em lotes for "application/jsonlines". Ele é JMESPath usado para localizar as colunas do recurso se o formato do conjunto de dados for JSON Linhas.

  • ProbabilityAttribute— Índice ou JMESPath localização na saída do modelo para probabilidades. Se a saída do modelo for JSON Linhas com uma lista de rótulos e probabilidades, por exemplo, o rótulo que corresponde à probabilidade máxima será selecionado para cálculos de viés.

Exemplos JSON de arquivos de configuração para conjuntos de dados CSV e JSON linhas

Aqui estão alguns exemplos dos JSON arquivos usados para configurar CSV e dos conjuntos de dados do JSON Lines para monitorá-los quanto ao desvio de atribuição de recursos.

CSVConjuntos de dados

Considere um conjunto de dados que tenha três colunas de recursos numéricos, como no exemplo a seguir.

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

Suponha que a saída do modelo tenha duas colunas, onde a primeira é o rótulo previsto e a segunda é a probabilidade, como no exemplo a seguir.

1, 0.5385257417814224

O exemplo de arquivo JSON de configuração a seguir mostra como esse CSV conjunto de dados pode ser configurado.

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

O rótulo previsto é selecionado pelo parâmetro "ProbabilityAttribute". A numeração baseada em zero é usada, então 1 indica a segunda coluna da saída do modelo.

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

JSONConjuntos de dados de linhas

Considere um conjunto de dados que tenha quatro colunas de recursos e uma coluna de rótulo, em que o primeiro recurso e o rótulo sejam binários, como no exemplo a seguir.

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

A entrada do modelo é igual ao formato do conjunto de dados, e a saída do modelo é JSON Linhas, como no exemplo a seguir.

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

No exemplo a seguir, o arquivo de JSON configuração mostra como esse conjunto de dados JSON Lines pode ser configurado.

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

Então, o valor do parâmetro "features" em EndpointInput (para endpoints em tempo real) ou BatchTransformInput (para trabalhos de transformação de lotes) é usado para localizar os recursos no conjunto de dados, e o valor do parâmetro "probability" seleciona o valor de probabilidade na saída do modelo.

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