Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
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 ou de transformation par lots, 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 de 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 du jeu de données), son format (c'est-à-dire JSON Lines), ses en-têtes (le cas échéant) et son étiquette. CSV
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 de 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. Pour les sorties plus complexes, il existe quelques options supplémentaires, comme « label » pour l'index, le nom ou JMESPath pour localiser l'étiquette prévue 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 de 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.