Erstellen einer SHAP-Baseline für Modelle in der Produktion - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen einer SHAP-Baseline für Modelle in der Produktion

Erklärungen sind in der Regel kontrastiv, das heißt, sie berücksichtigen Abweichungen von einer Basislinie. Weitere Informationen zu Erklärbarkeits-Baselines finden Sie unterSHAP-Baselines für Erklärbarkeit.

Neben der Bereitstellung von Erklärungen für Instance-Schlussfolgerungen, SageMaker Clarify unterstützt auch globale Erklärungen für ML-Modelle, die Ihnen helfen, das Verhalten eines Modells als Ganzes in Bezug auf seine Funktionen zu verstehen. SageMaker Clarify generiert eine globale Erklärung eines ML-Modells, indem die Shapley-Werte über mehrere Instanzen aggregiert werden. SageMaker Clarify unterstützt die folgenden verschiedenen Aggregationsmethoden, mit denen Sie Baselines definieren können:

  • mean_abs— Mittelwert der absoluten SHAP-Werte für alle Instanzen.

  • median— Median der SHAP-Werte für alle Instanzen.

  • mean_sq— Mittelwert der SHAP-Werte im Quadrat für alle Instanzen.

Nachdem Sie Ihre Anwendung so konfiguriert haben, dass Inferenzdaten in Echtzeit erfasst werden, besteht die erste Aufgabe zur Überwachung auf Abweichungen bei der Feature-Zuordnung darin, eine Baseline zu erstellen, mit der verglichen werden kann. Dazu müssen die Dateneingaben konfiguriert werden, welche Gruppen sensibel sind, wie die Vorhersagen erfasst werden, sowie das Modell und seine Bias-Metriken nach dem Training. Dann müssen Sie den Baselining-Job starten. Der Modellerklärbarkeitsmonitor kann die Vorhersagen eines bereitgestellten Modells erklären, das Rückschlüsse erzeugt, und regelmäßig Abweichungen der Merkmalszuordnung erkennen.

model_explainability_monitor = ModelExplainabilityMonitor( role=role, sagemaker_session=sagemaker_session, max_runtime_in_seconds=1800, )

In diesem Beispiel teilt der Erklärbarkeits-Baselining-Job den Testdatensatz mit dem Bias-Baselining-Job, sodass er dasselbe verwendet.DataConfig, und der einzige Unterschied ist die Auftragsausgabe-URI.

model_explainability_baselining_job_result_uri = f"{baseline_results_uri}/model_explainability" model_explainability_data_config = DataConfig( s3_data_input_path=validation_dataset, s3_output_path=model_explainability_baselining_job_result_uri, label=label_header, headers=all_headers, dataset_type=dataset_type, )

Derzeit ist das SageMaker Clarify Explainer bietet eine skalierbare und effiziente Implementierung von SHAP, daher ist die Erklärbarkeitskonfiguration ShapConfig, einschließlich der folgenden:

  • baseline— Eine Liste von Zeilen (mindestens eine) oder S3-Objekt-URI, die als Basisdatensatz im Kernel-SHAP-Algorithmus verwendet werden sollen. Das Format sollte das gleiche wie das Datensatzformat sein. Jede Zeile sollte nur die Feature-Spalten/-werte enthalten und die Labelspalten/-werte weglassen.

  • num_samples— Anzahl der Samples, die im Kernel-SHAP-Algorithmus verwendet werden sollen. Diese Zahl bestimmt die Größe des generierten synthetischen Datasets zur Berechnung der SHAP-Werte.

  • agg_method — Aggregationsmethode für globale SHAP-Werte. Die folgenden Werte sind gültig:

    • mean_abs— Mittelwert der absoluten SHAP-Werte für alle Instanzen.

    • median— Median der SHAP-Werte für alle Instanzen.

    • mean_sq— Mittelwert der SHAP-Werte im Quadrat für alle Instanzen.

  • use_logit— Indikator, ob die Logit-Funktion auf die Modellvorhersagen angewendet werden soll. Der Standardwert ist False. Wennuse_logitistTruehaben die SHAP-Werte Log-Odds-Einheiten.

  • save_local_shap_values(bool) — Indikator, ob die lokalen SHAP-Werte im Ausgabeverzeichnis gespeichert werden sollen. Der Standardwert ist False.

# Here use the mean value of test dataset as SHAP baseline test_dataframe = pd.read_csv(test_dataset, header=None) shap_baseline = [list(test_dataframe.mean())] shap_config = SHAPConfig( baseline=shap_baseline, num_samples=100, agg_method="mean_abs", save_local_shap_values=False, )

Starten Sie einen Baselining-Job. Identisch mitmodel_configist erforderlich, da der Erklärbarkeits-Baselining-Job einen Schattenendpunkt erstellen muss, um Vorhersagen für den generierten synthetischen Datensatz zu erhalten.

model_explainability_monitor.suggest_baseline( data_config=model_explainability_data_config, model_config=model_config, explainability_config=shap_config, ) print(f"ModelExplainabilityMonitor baselining job: {model_explainability_monitor.latest_baselining_job_name}")