Erstellen Sie eine SHAP Basislinie 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 Sie eine SHAP Basislinie für Modelle in der Produktion

Die Erklärungen sind in der Regel kontrastiv, d. h. sie berücksichtigen Abweichungen von einer Ausgangsbasis. Informationen zu Ausgangswerten für die Erklärbarkeit finden Sie unter SHAPGrundlinien für die Erklärbarkeit.

Clarify bietet nicht nur Erklärungen für Inferenzen pro Instanz, SageMaker sondern 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 hinweg aggregiert werden. SageMaker Clarify unterstützt die folgenden verschiedenen Aggregationsarten, 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 quadrierten SHAP Werte für alle Instanzen.

Nachdem Sie Ihre Anwendung für die Erfassung von Echtzeit- oder Batch-Transformationsinferenzdaten konfiguriert haben, besteht die erste Aufgabe zur Überwachung von Abweichungen bei der Featureszuweisung darin, eine Ausgangsbasis für den Vergleich zu erstellen. Dazu gehören die Konfiguration der Dateneingaben, die sensitiven Gruppen, die Art und Weise, wie die Vorhersagen erfasst werden, sowie das Modell und seine Messwerte für Verzerrungen nach dem Schulen. Dann müssen Sie den Baselining-Auftrag starten. Der Model Explainability Monitor kann die Vorhersagen eines eingesetzten Modells erklären, das Rückschlüsse zieht, und erkennt regelmäßig Abweichungen bei der Merkmalszuweisung.

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

In diesem Beispiel teilt sich der Job mit dem Baselining-Job für Erklärbarkeit den Testdatensatz mit dem Bias-Baselining-Job, verwendet also denselbenDataConfig, und der einzige Unterschied besteht in der Job-Ausgabe. 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 bietet der SageMaker Clarify Explainer eine skalierbare und effiziente Implementierung vonSHAP, sodass die Konfiguration der Erklärbarkeit wie folgt aussieht: SHAPConfig

  • baseline— Eine Liste von Zeilen (mindestens eines) oder S3-ObjektsURI, die als Basisdatensatz im Kernel-Algorithmus verwendet werden sollen. SHAP Das Format sollte mit dem Datensatzformat identisch sein. Jede Zeile sollte nur die Feature-Spalten/Werte enthalten und die Labelspalten/Werte weglassen.

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

  • agg_method — Aggregationsmethode für globale Werte. SHAP 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 quadrierten SHAP Werte für alle Instanzen.

  • use_logit – Indikator dafür, ob die Logit-Funktion auf die Modellvorhersagen angewendet werden soll. Der Standardwert ist False. use_logitIst dies der FallTrue, werden die SHAP Werte in logarithmischen Odds-Einheiten angegeben.

  • save_local_shap_values(bool) — Indikator dafür, ob die lokalen SHAP Werte am Ausgabespeicherort 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, )

Startet einen Baselining-Auftrag. Dasselbe model_config ist erforderlich, da für den Auftrag mit dem Baselining der Erklärbarkeit ein Schattenendpunkt erstellt werden 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}")