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á.
Criar uma linha de base de desvio de polarização
Depois de configurar seu aplicativo para capturar dados de inferência em tempo real ou de transformação em lote, a primeira tarefa para monitorar o desvio de polarização é criar uma linha de base. Isso envolve configurar as entradas de dados, quais grupos são confidenciais, como as previsões são capturadas e o modelo e suas métricas de desvio pós-treinamento. Em seguida, você precisa iniciar o trabalho de linha de base.
O monitor de desvio de modelo pode detectar o desvio de polarização dos modelos de ML regularmente. Semelhante aos outros tipos de monitoramento, o procedimento padrão para criar um modelo de monitor de polarização é primeiro estabelecer uma linha de base e, em seguida, estabelecer uma programação de monitoramento.
model_bias_monitor = ModelBiasMonitor( role=role, sagemaker_session=sagemaker_session, max_runtime_in_seconds=1800, )
DataConfig
armazena informações sobre o conjunto de dados a ser analisado (por exemplo, o arquivo do conjunto de dados), seu formato (CSVou seja, JSON linhas), cabeçalhos (se houver) e rótulo.
model_bias_baselining_job_result_uri = f"{baseline_results_uri}/model_bias" model_bias_data_config = DataConfig( s3_data_input_path=validation_dataset, s3_output_path=model_bias_baselining_job_result_uri, label=label_header, headers=all_headers, dataset_type=dataset_type, )
A BiasConfig
é a configuração dos grupos confidenciais no conjunto de dados. Normalmente, o desvio é medido computando uma métrica e comparando-a entre grupos. O grupo de interesse é chamado de faceta. Para o desvio pós-treinamento, você também deve levar em consideração o rótulo positivo.
model_bias_config = BiasConfig( label_values_or_threshold=[1], facet_name="Account Length", facet_values_or_threshold=[100], )
A ModelPredictedLabelConfig
especifica como extrair um rótulo previsto da saída do modelo. Neste exemplo, o limite de 0,8 foi escolhido com a expectativa de rotatividade de clientes com frequência. Para saídas mais complicadas, há mais algumas opções, como “rótulo” é o índice, nome ou JMESPath localização do rótulo previsto na carga de resposta do endpoint.
model_predicted_label_config = ModelPredictedLabelConfig( probability_threshold=0.8, )
A ModelConfig
é a configuração relacionada ao modelo a ser usado para inferência. Para calcular as métricas de desvio pós-treinamento, o cálculo precisa obter inferências para o nome do modelo fornecido. Para fazer isso, o trabalho de processamento usa o modelo para criar um endpoint efêmero (também conhecido como endpoint de sombra). O trabalho de processamento exclui o endpoint de sombra após a conclusão dos cálculos. Essa configuração também é usada pelo monitor de explicabilidade.
model_config = ModelConfig( model_name=model_name, instance_count=endpoint_instance_count, instance_type=endpoint_instance_type, content_type=dataset_type, accept_type=dataset_type, )
Agora você pode iniciar o trabalho de definição de linha de base.
model_bias_monitor.suggest_baseline( model_config=model_config, data_config=model_bias_data_config, bias_config=model_bias_config, model_predicted_label_config=model_predicted_label_config, ) print(f"ModelBiasMonitor baselining job: {model_bias_monitor.latest_baselining_job_name}")
O monitor programado pega automaticamente o nome do trabalho de linha de base e o aguarda antes do início do monitoramento.