Führen Sie Folgendes aus: SageMaker Klärung von Verarbeitungsaufträgen für Bias-Analyse und Erklärbarkeit - 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.

Führen Sie Folgendes aus: SageMaker Klärung von Verarbeitungsaufträgen für Bias-Analyse und Erklärbarkeit

Du benutzt SageMaker Klären Sie Verarbeitungsjobs, um potenzielle Verzerrungsquellen in Ihren Trainingsdaten zu analysieren und Ihr trainiertes Modell auf Bias zu überprüfen. Für das Verfahren zur Analyse der Daten in SageMaker Studio, sieheGenerieren Sie Berichte für Bias in Vortrainingsdaten in SageMaker Studioaus. Der Schwerpunkt liegt hier auf Bias-Metrik und SHAP-Werten nach dem Training zur Erklärbarkeit. Modellvorhersagen können eine Quelle für Verzerrungen sein (z. B. wenn sie Vorhersagen treffen, die für eine Gruppe häufiger zu einem negativen Ergebnis führen als für eine andere). SageMaker Clarify ist integriert in SageMaker Experimente, damit Sie nach dem Training eines Modells Attribute identifizieren können, die Sie auf Verzerrungen überprüfen möchten (z. B. SageMaker führt eine Reihe von Algorithmen aus, um das trainierte Modell zu überprüfen, und liefert Ihnen einen visuellen Bericht über die verschiedenen Arten von Verzerrungen für jedes Attribut, z. B. ob einkommensstarke Verdiener im Vergleich zu einkommensschwachen Verdienern positivere Vorhersagen erhalten.

Datenverarbeitungsressourcen erforderlich für SageMaker Ermitteln von Verarbeitungsaufgaben

Berücksichtigen Sie Folgendes, wenn Sie die Rechenressourcen ermitteln, die Sie ausführen müssen SageMaker Erläutern von Verarbeitungsaufgaben:

  • Die Verarbeitung von Aufträgen kann mehrere Minuten oder länger in Anspruch nehmen.

  • Die Berechnung von Erklärungen kann zeitintensiver sein als die eigentliche Schlussfolgerung. Dies beinhaltet die Zeit zum Starten von Rechenressourcen.

  • Rechenerklärungen können rechenintensiver sein als die eigentliche Schlussfolgerung. Überprüfen und überwachen Sie die Gebühren, die Ihnen durch die Nutzung entstehen können SageMakerRessourcen schätzen. Weitere Informationen finden Sie unterAmazon SageMaker Preiseaus.

Ausführen des Clarify-Verarbeitungsjobs

Ein Beispiel-Notebook mit Anweisungen zum Ausführen eines SageMaker Erläutern des Verarbeitungsjobs in Studio zur Erkennung von Modellverzerrungen nach dem Training, sieheErklärbarkeit und Bias-Erkennung mit Amazon SageMaker Klärenaus.

Wenn Sie Anleitungen zum Öffnen eines Notebooks in Amazon benötigen SageMaker Studio, sieheAmazon erstellen oder öffnen SageMaker Studio-Notebookaus. Die folgenden Codebeispiele stammen aus dem zuvor aufgelisteten Beispielnotizbuch.

Nachdem Sie Ihr Modell trainiert haben, instanziieren Sie den SageMaker Klären Sie den Prozessor mit dem folgenden Befehl:

from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor( role=role, instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=session)

Als nächstes konfigurieren Sie den Eingabedatensatz, in dem die Ausgabe gespeichert werden soll, wobei die Labelspalte mit einemDataConfig-Objekt, spezifizieren Sie Informationen über Ihr trainiertes Modell mitModelConfig, und informieren Sie über die Formate Ihrer Vorhersagen mitModelPredictedLabelConfigaus.

bias_report_output_path = 's3://{}/{}/clarify-bias'.format(bucket, prefix) bias_data_config = clarify.DataConfig( s3_data_input_path=train_uri, s3_output_path=bias_report_output_path, label='Target', headers=training_data.columns.to_list(), dataset_type='text/csv') model_config = clarify.ModelConfig( model_name=model_name, instance_type='ml.c5.xlarge', instance_count=1, accept_type='text/csv') predictions_config = clarify.ModelPredictedLabelConfig(probability_threshold=0.8)

Verwenden vonBiasConfigum Informationen darüber bereitzustellen, welche Spalten die Facetten enthalten (sensible Gruppen,Sex), was die sensiblen Merkmale (facet_values_or_threshold) sein könnte, und was sind die wünschenswerten Ergebnisse (label_values_or_threshold) enthalten.

bias_config = clarify.BiasConfig( label_values_or_threshold=[1], facet_name='Sex', facet_values_or_threshold=[0])

Sie können sowohl die Vor- als auch die Nachtrainingsanalyse im Verarbeitungsjob gleichzeitig ausführen mitrun_bias()aus.

clarify_processor.run_bias( data_config=bias_data_config, bias_config=bias_config, model_config=model_config, model_predicted_label_config=predictions_config, pre_training_methods='all', post_training_methods='all')

Sehen Sie sich die Ergebnisse in Studio an oder laden Sie sie von derbias_report_output_pathS3 bucket

Ausführen des Clarify-Verarbeitungsjobs mit Spark

Apache Sparkist eine einheitliche Analyse-Engine für die Datenverarbeitung in großem Maßstab. Wenn Sie mit großen Datenmengen arbeiten, können Sie die Spark-Verarbeitungsfunktionen von SageMaker Clarify, damit Ihre Clarify-Verarbeitungsjobs schneller ausgeführt werden können Um die Spark-Verarbeitung für Clarify-Jobs zu verwenden, setzen Sie die Instanzzahl auf eine Zahl größer als eins. Clarify verwendet Spark Distributed Computing, wenn es mehr als eine Instanz pro Clarify-Prozessor

Im folgenden Beispiel wird gezeigt, wie SieSageMakerClarifyProcessorum einen Clarify Prozessor mit 5 Instanzen zu erstellen.

Clarify führt alle mit diesem Prozessor verbundenen Jobs mithilfe der verteilten Spark-Verarbeitung aus.

from sagemaker import clarify clarify_processor = clarify.SageMakerClarifyProcessor( role=role, instance_count=5, instance_type='ml.c5.xlarge', max_runtime_in_seconds=1200, volume_size_in_gb=100)

Wenn Sie einen Clarify-Job zum Speichern lokaler SHAP-Werte imShapConfigKlasse speichert Spark den lokalen SHAP-Wert als mehrere Teildateien parallel.

Wenn Sie weitere Instanzen hinzufügen, empfehlen wir Ihnen, auch die Anzahl der Instanzen in der Modellkonfiguration zu erhöhen.ModelConfigfür den Schattenendpunkt. Dies soll verhindern, dass die Verarbeitungsinstanzen vom Schattenendpunkt in einen Engpass geraten. Insbesondere empfehlen wir Ihnen, zu verwenden one-to-one Verhältnis von Endpunkt zu Verarbeitungsinstanzen.

Ermitteln der Analyseergebnisse

Wenn der Verarbeitungsauftrag abgeschlossen ist, können Sie die Ausgabedateien herunterladen, um die Ergebnisse in Studio zu überprüfen oder zu visualisieren. Das Ausgabeverzeichnis enthält die folgenden Dateien:

  • analysis.json— Bias-Metriken und SHAP-Werte im JSON-Format.

  • report.ipynb— Statisches Notizbuch zur Visualisierung der Bias-Metriken und SHAP-Werte.

  • explanations_shap/out.csv— Lokale (pro Instanz) SHAP-Werte für jede Zeile in der Datenmenge im gleichen Format wie der Eingabedatensatz. In jeder Zeile enthält die Ausgabedatei SHAP-Werte für jedes Feature und das vorhergesagte Label.

In der JSON-Analysedatei sind die Bias-Metriken und SHAP-Werte in drei separate Abschnitte unterteilt.

{ "explanations": { . . . } "pre_training_bias_metrics": { . . . } "post_training_bias_metrics": { . . . } }

SHAP-Werte befinden sich im“explanations”Abschnitts erstellt. Die Werte entsprechen dem globalen SHAP-Wert für jede Feature-Spalte.

"explanations": { "kernel_shap": { "label0": { "global_shap_values": { "feature_0": 0.022486410860333206, "feature_1": 0.007381025261958729, "feature_2": 0.006843906804137847 }, "expected_value": 0.508233428001 } } }

Die Bias-Metriken befinden sich in den Abschnitten Bias-Metriken vor und nach dem Training.

{ "post_training_bias_metrics": { "label": "target", "label_value_or_threshold": "1", "facets": { "feature_2": [ { "value_or_threshold": "1", "metrics": [ { "name": "DI", "description": "Disparate Impact (DI)", "value": 0.711340206185567 }, { "name": "DCR", "description": "Difference in Conditional Rejections (DCR)", "value": -0.34782608695652184 } { . . . } ] } ] } } }

Weitere Informationen zu Bias-Metriken und SHAP-Werten und wie Sie diese interpretieren finden Sie imWhitepaper zu Fairness und Erklärbarkeit von Amazon KIaus.

Ein Balkendiagramm mit den wichtigsten SHAP-Werten und Tabellen mit den Bias-Metriken sind im Berichtsnotizbuch enthalten.