Créer une référence de dérive de biais - Amazon SageMaker

Créer une référence de dérive de biais

Après avoir configuré votre application pour capturer des données d'inférence en temps réel, la première tâche de surveillance de la dérive de biais consiste à créer une référence. Cela implique de configurer les entrées de données, les groupes sensibles, la capture des prédictions, ainsi que le modèle et ses métriques de biais post-entraînement. Ensuite, vous devez démarrer la tâche de baselining.

Le moniteur de biais de modèle peut détecter régulièrement la dérive de biais de modèles ML. Comme pour les autres types de surveillance, la procédure standard de création d'un moniteur de biais de modèle consiste d'abord à établir un baselining, puis un programme de surveillance.

model_bias_monitor = ModelBiasMonitor( role=role, sagemaker_session=sagemaker_session, max_runtime_in_seconds=1800, )

DataConfig stocke des informations sur le jeu de données à analyser (par exemple, le fichier de jeu de données), son format (CSV ou JSONLines), les en-têtes (le cas échéant) et l'étiquette.

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, )

BiasConfig est la configuration des groupes sensibles dans le jeu de données. Généralement, le biais est mesuré en calculant une métrique et en la comparant entre les groupes. Le groupe d'intérêts est appelé la facette. Pour le biais post-entraînement, vous devez également prendre en compte l'étiquette positive.

model_bias_config = BiasConfig( label_values_or_threshold=[1], facet_name="Account Length", facet_values_or_threshold=[100], )

ModelPredictedLabelConfig spécifie la façon d'extraire une étiquette prédite à partir de la sortie du modèle. Dans cet exemple, nous avons choisi un seuil de 0,8 pour anticiper le renouvellement fréquent des clients. Les sorties plus compliquées comportent des options supplémentaires, comme « label » pour désigner l'index, le nom ou le JSONPath permettant de localiser l'étiquette prédite dans la charge utile de réponse du point de terminaison.

model_predicted_label_config = ModelPredictedLabelConfig( probability_threshold=0.8, )

ModelConfig est la configuration associée au modèle devant être utilisé pour l'inférence. Afin de calculer les métriques de biais post-entraînement, le calcul doit obtenir des inférences pour le nom de modèle fourni. Pour ce faire, la tâche de traitement utilise le modèle pour créer un point de terminaison éphémère (également connu comme shadow endpoint (point de terminaison fantôme). Une fois les calculs terminés, la tâche de traitement supprime le point de terminaison fantôme. Cette configuration est également utilisée par le moniteur d'explicabilité.

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, )

La tâche de baselining proprement dite peut maintenant commencer.

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

Le moniteur programmé prend automatiquement le nom de la tâche de baselining et l'attend avant le début de la surveillance.