Konfigurieren Sie die Analyse - 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.

Konfigurieren Sie die Analyse

Um Ihre Daten und Modelle mit SageMaker Clarify auf Erklärbarkeit und Verzerrungen zu analysieren, müssen Sie einen Verarbeitungsauftrag konfigurieren. Ein Teil der Konfiguration für diesen Verarbeitungsauftrag umfasst die Konfiguration einer Analysedatei. Die Analysedatei spezifiziert die Parameter für die Verzerrungsanalyse und die Erklärbarkeit. Unter erfahren SieKonfigurieren eines SageMaker Clarify-Verarbeitungsauftrags, wie Sie einen Verarbeitungsauftrag und eine Analysedatei konfigurieren.

In diesem Handbuch werden das Schema und die Parameter für diese Analysekonfigurationsdatei beschrieben. Dieses Handbuch enthält auch Beispiele für Analysekonfigurationsdateien zur Berechnung von Verzerrungsmetriken für einen tabellarischen Datensatz und zur Generierung von Erklärungen für Probleme mit natürlicher Sprachverarbeitung (NLP) und Computer Vision (CV).

Sie können die Analysekonfigurationsdatei erstellen oder das SageMaker Python SDK verwenden, um eine für Sie mit der SageMaker ClarifyProcessor API zu generieren. Das Anzeigen des Dateiinhalts kann hilfreich sein, um die zugrunde liegende Konfiguration zu verstehen, die vom SageMaker Clarify-Auftrag verwendet wird.

Schema für die Analysekonfigurationsdatei

Im folgenden Abschnitt wird das Schema für die Analysekonfigurationsdatei beschrieben, einschließlich der Anforderungen und Beschreibungen der Parameter.

Anforderungen an die Analysekonfigurationsdatei

Der Verarbeitungsauftrag SageMaker Clarify erwartet, dass die Analysekonfigurationsdatei mit den folgenden Anforderungen strukturiert ist:

  • Der Name der Verarbeitungseingabe muss analysis_config. lauten.

  • Die Konfigurationsdatei für die Analyse liegt im JSON-Format vor und ist in UTF-8 codiert.

  • Die Analysekonfigurationsdatei ist ein Amazon S3-Objekt.

Sie können zusätzliche Parameter in der Analysekonfigurationsdatei angeben. Der folgende Abschnitt enthält verschiedene Optionen, um den SageMaker Clarif-Verarbeitungsauftrag an Ihren Anwendungsfall und die gewünschten Analysetypen anzupassen.

In der Analysekonfigurationsdatei können Sie die folgenden Parameter angeben.

  • Version — (Optional) Die Versionszeichenfolge des Schemas der Analysekonfigurationsdatei. Wenn keine Version angegeben wird, verwendet SageMaker Clarify die neueste unterstützte Version. Derzeit wird nur die Version 1.0 unterstützt.

  • dataset_type — Das Format des Datensatzes. Das Eingabedatensatzformat kann jeder der folgenden Werte sein:

    • text/csv für CSV

    • application/jsonlines für SageMaker JSON Lines dichtes Format

    • application/json für JSON

    • application/x-parquet für Apache Parquet

    • application/x-image um die Erklärbarkeit bei Computer-Vision-Problemen zu aktivieren

  • dataset_uri — (Optional) Der Uniform Resource Identifier (URI) des Hauptdatensatzes. Wenn Sie ein S3-URI-Präfix angeben, sammelt der SageMaker Clarif-Verarbeitungsauftrag rekursiv alle S3-Dateien, die sich unter dem Präfix befinden. Sie können entweder ein S3-URI-Präfix oder einen S3-URI für eine Image-Manifest-Datei für Computer-Vision-Probleme angeben. Wenn dataset_uri angegeben, hat es Vorrang vor der Auftragseingabe für die Datensatzverarbeitung. Für jeden Formattyp außer Bild lädt der Verarbeitungsauftrag SageMaker Clarify den Eingabedatensatz als tabellarischen Datensatz in einen tabellarischen Datenrahmen. Dieses Format ermöglicht es SageMaker , den Eingabedatensatz einfach zu bearbeiten und zu analysieren.

  • headers — (Optional) Ein Array von Zeichenketten, das die Spaltennamen eines tabellarischen Datensatzes enthält. Wenn kein Wert für angegeben headers wird, liest der Verarbeitungsauftrag SageMaker Clarify die Header aus dem Datensatz. Wenn der Datensatz keine Header enthält, generiert der Verarbeitungsauftrag SageMaker Clarify automatisch Platzhalternamen basierend auf dem nullbasierten Spaltenindex. Die Platzhalternamen für die erste und zweite Spalte lauten column_0 column_1 beispielsweise.

    Anmerkung

    Konventionell gilt, wenn dataset_type application/jsonlines oder application/json ist, so sollte headers die folgenden Namen in der angegebenen Reihenfolge enthalten: Feature-Namen, Labelname (falls label angegeben ist) und vorhergesagter Labelname (falls predicted_label angegeben ist). Ein Beispiel headers für einen application/jsonlines Datensatztyp, falls label angegeben ist: ["feature1","feature2","feature3","target_label"].

  • label — (Optional) Eine Zeichenfolge oder ein auf Null basierender Integer-Index. Falls label angegeben, wird es verwendet, um die Ground-Truth-Beschriftung, das auch als beobachtete Beschriftung oder Zielattribut bezeichnet wird, in einem tabellarischen Datensatz zu lokalisieren. Das Ground-Truth-Etikett wird zur Berechnung von Bias-Metriken verwendet. Der Wert für label wird abhängig vom Wert des dataset_type Parameters wie folgt angegeben.

    • Falls dataset_type text/csv ist, label kann eine der folgenden Optionen angegeben werden:

      • Ein gültiger Spaltenname

      • Ein Index, der innerhalb des Bereichs der Datensatzspalten liegt

    • Falls dataset_type application/parquet ist, label muss es sich um einen gültigen Spaltennamen handeln.

    • Falls dataset_type application/jsonlines ist, label muss es sich um einen JMESPath-Ausdruck handeln, der geschrieben wurde, um die Ground-Truth-Beschriftung aus dem Datensatz zu extrahieren. Gemäß der Konvention sollte headers es den Labelnamen enthalten.

    • Falls dataset_type application/json ist, label muss ein JMESPath-Ausdruck geschrieben werden, um das Ground-Truth-Label für jeden Datensatz im Datensatz zu extrahieren. Dieser JMESPath-Ausdruck muss eine Liste von Bezeichnungen erzeugen, bei denen die ite Beschriftung mit dem iten Datensatz korreliert.

  • predicted_label — (Optional) Eine Zeichenfolge oder ein auf Null basierender Integer-Index. Wenn angegeben wird, wird predicted_label die Spalte mit der vorhergesagten Bezeichnung in einem Tabellendatensatz gesucht. Die vorhergesagte Beschriftung wird verwendet, um Messwerte für Verzerrungen nach der Schulung zu berechnen. Der Parameter predicted_label ist optional, wenn der Datensatz keine vorhergesagte Beschriftung enthält. Wenn vorhergesagte Beschriftungen für die Berechnung erforderlich sind, erhält der Verarbeitungsauftrag SageMaker Clarify Vorhersagen aus dem Modell.

    Der Wert für predicted_label wird abhängig vom Wert von dataset_type wie folgt angegeben:

    • Falls dataset_type text/csv ist, predicted_label kann eine der folgenden Optionen angegeben werden:

      • Ein gültiger Spaltenname. Wenn predicted_label_dataset_uri angegeben, aber predicted_label nicht bereitgestellt wird, lautet der standardmäßige vorhergesagte Labelname „predicted_label“.

      • Ein Index, der innerhalb des Bereichs der Datensatzspalten liegt. Wenn predicted_label_dataset_uri angegeben, wird der Index verwendet, um die vorhergesagte Labelspalte im vorhergesagten Beschriftung-Datensatz zu finden.

    • Wenn dataset_type den Wert application/x-parquet hat, predicted_label muss es sich um einen gültigen Spaltennamen handeln.

    • Wenn dataset_type den Wert application/jsonlines hat, predicted_label muss es sich um einen gültigen JMESPath Ausdruck handeln, der geschrieben wurde, um die vorhergesagte Beschriftung aus dem Datensatz zu extrahieren. Wenn headers angegeben ist, sollte es vereinbarungsgemäß den vorausgesagten Etikettennamen enthalten.

    • Falls dataset_type application/json ist, predicted_label muss ein JMESPath Ausdruck geschrieben werden, um die vorhergesagte Bezeichnung für jeden Datensatz im Datensatz zu extrahieren. Der JMESPath-Ausdruck sollte eine Liste von vorhergesagten Labels erzeugen, wobei die ith vorhergesagte Beschriftung für sie im ith Datensatz ist.

  • features — Erforderlich, wenn dataset_type application/jsonlines oder application/json ist. Ein JMESPath-Zeichenfolgenausdruck, der geschrieben wurde, um die Features im Eingabe-Dataset zu lokalisieren. Denn application/jsonlines auf jede Zeile wird ein JMESPath-Ausdruck angewendet, um die Features für diesen Datensatz zu extrahieren. Denn application/json ein JMESPath-Ausdruck wird auf den gesamten Eingabedatensatz angewendet. Der JMESPath-Ausdruck sollte eine Liste von Listen oder ein 2D-Array/eine Matrix von Features extrahieren, wobei th Zeile die Merkmale enthält, mit dem ith Datensatz korrelieren. Bei einem Wert dataset_type von text/csv oder application/x-parquet werden alle Spalten mit Ausnahme der Ground-Truth-Beschriftungen und der vorhergesagten Labelspalten automatisch Features zugewiesen.

  • predicted_label_dataset_uri — Gilt nur, wenn dataset_type den Wert text/csv hat. Der S3-URI für einen Datensatz, der vorhergesagte Labels enthält, die zur Berechnung von Bias-Metriken nach der Schulung verwendet werden. Der Verarbeitungsauftrag SageMaker Clarify lädt die Vorhersagen aus dem bereitgestellten URI, anstatt Vorhersagen aus dem Modell zu erhalten. In diesem Fall predicted_label ist es erforderlich, die Spalte mit der vorhergesagten Bezeichnung im Datensatz mit der vorhergesagten Bezeichnung zu finden. Wenn der Datensatz für das vorhergesagte Etikett oder der Hauptdatensatz auf mehrere Dateien aufgeteilt ist, muss eine Kennungsspalte von joinsource_name_or_index angegeben werden, um die beiden Datensätze zu verbinden.

  • predicted_label_headers — Gilt nur, wenn predicted_label_dataset_uri angegeben. Ein Array von Strings, die die Spaltennamen des vorhergesagten Label-Datasets enthalten. Neben der Kopfzeile des vorhergesagten Labels kann predicted_label_headers auch die Kopfzeile der Identifizierungsspalte enthalten, um den vorhergesagten Label-Datensatz und den Hauptdatensatz zu verbinden. Weitere Informationen finden Sie in der folgenden Beschreibung für den Parameter joinsource_name_or_index.

  • joinsource_name_or_index — Der Name oder der auf Null basierende Index der Spalte in tabellarischen Datensätzen, die bei der Durchführung einer inneren Verknüpfung als Kennungsspalte verwendet werden soll. Diese Spalte wird nur als Bezeichner verwendet. Sie wird nicht für andere Berechnungen wie Verzerrungsanalysen oder Merkmalszuordnungsanalysen verwendet. In den folgenden Fällen ist ein Wert für joinsource_name_or_index erforderlich:

    • Es gibt mehrere Eingabe-Datasets, und jeder ist auf mehrere Dateien aufgeteilt.

    • Die verteilte Verarbeitung wird aktiviert, indem der Verarbeitungsauftrag SageMaker Clarify InstanceCount auf einen Wert größer als gesetzt wird1.

  • excluded_columns — (Optional) Ein Array von Namen oder auf Null basierenden Indizes von Spalten, die vom Senden an das Modell als Eingabe für Vorhersagen ausgeschlossen werden sollen. Ground-Truth-Beschriftung und Prognose-Beschriftung sind bereits automatisch ausgeschlossen.

  • probability_threshold — (Optional) Eine Fließkommazahl, über der eine Bezeichnung oder ein Objekt ausgewählt wird. Der Standardwert ist 0.5. Der Verarbeitungsauftrag SageMaker Clarify verwendet probability_threshold in den folgenden Fällen:

    • Bei der Bias-Analyse nach der Schulung wird eine numerische Modellvorhersage (Wahrscheinlichkeitswert oder Punktzahl) in eine binäre Bezeichnung probability_threshold umgewandelt, wenn das Modell ein binärer Klassifikator ist. Ein Wert, der über dem Schwellenwert liegt, wird in 1 umgerechnet. Dagegen wird eine Punktzahl, die kleiner oder gleich dem Schwellenwert ist, in 0 umgerechnet.

    • Bei Erklärungsproblemen in der Computer Vision werden Objekte, deren Konfidenzwerte unter dem Schwellenwert liegen, OBJECT_DETECTION, probability_threshold herausgefiltert, wenn model_type steht.

  • label_values_or_threshold — Erforderlich für die Bias-Analyse. Eine Reihe von Labelwerten oder eine Schwellenzahl, die auf ein positives Ergebnis bei Ground-Truth-Werten und auf vorhergesagte Kennzeichnungen für Bias-Metriken hinweisen. Weitere Informationen finden Sie unter Positive Beschriftungswerte in Begriffe von Amazon SageMaker Clarify für Verzerrungen und Fairness. Wenn das Etikett numerisch ist, wird der Schwellenwert als Untergrenze verwendet, um das positive Ergebnis auszuwählen. Informationen zur Einstellung label_values_or_threshold für verschiedene Problemtypen finden Sie in den folgenden Beispielen:

    • Bei einem binären Klassifizierungsproblem hat das Label zwei mögliche Werte, 0 und 1. Wenn der Labelwert für eine in einer Stichprobe beobachtete demografische Gruppe günstig 1 ist, label_values_or_threshold sollte er auf [1] gesetzt werden.

    • Bei einem Klassifizierungsproblem mit mehreren Klassen hat das Label drei mögliche Werte: bird, cat, und dog. Wenn die beiden letztgenannten eine demografische Gruppe definieren, die von Vorurteilen bevorzugt wird, label_values_or_threshold sollte der Wert auf ["cat","dog"] eingestellt werden.

    • Bei einem Regressionsproblem ist der Labelwert kontinuierlich und reicht von 0 bis 1. Wenn ein Wert, der größer als ist, darauf hinweisen 0.5 sollte, dass eine Stichprobe ein positives Ergebnis erzielt hat, label_values_or_threshold sollte der Wert auf 0.5 gesetzt werden.

  • Facet — Erforderlich für die Bias-Analyse. Eine Reihe von Facettenobjekten, die sich aus empfindlichen Attributen zusammensetzen, anhand derer die systematische Abweichung gemessen wird. Sie können Facetten verwenden, um die Verzerrungseigenschaften Ihres Datensatzes und Modells zu verstehen, auch wenn Ihr Modell ohne Verwendung sensibler Attribute trainiert wurde. Weitere Informationen finden Sie unter Facet in Begriffe von Amazon SageMaker Clarify für Verzerrungen und Fairness. Jedes Facettenobjekt umfasst die folgenden Felder:

    • name_or_index — Der Name oder der auf Null basierende Index der vertraulichen Attributspalte in einem tabellarischen Datensatz. Wenn facet_dataset_uri angegeben, bezieht sich der Index auf den Facettendatensatz und nicht auf den Hauptdatensatz.

    • value_or_threshold — Erforderlich, wenn facet es sich um einen numerischen Wert handelt und label_values_or_thresholdals Untergrenze für die Auswahl der sensitiven Gruppe verwendet wird. Eine Reihe von Facettenwerten oder eine Schwellenzahl, die die sensible demografische Gruppe angibt, die von der Voreingenommenheit bevorzugt wird. Wenn der Facettendatentyp kategorisch ist und nicht angegeben value_or_threshold wird, werden die Messwerte für verzerrte Werte als eine Gruppe für jeden Einzelwert berechnet (und nicht für alle Werte). Informationen zur Einstellung value_or_threshold für verschiedene facet Datentypen finden Sie in den folgenden Beispielen:

      • Bei einem binären Facettendatentyp hat das Feature zwei mögliche Werte, 0 und 1. Wenn Sie die Messwerte für die systematische Abweichung für jeden Wert berechnen möchten, value_or_threshold können sie entweder weggelassen oder auf ein leeres Array gesetzt werden.

      • Bei einem kategorialen Facettendatentyp hat das Feature drei mögliche Werte bird, cat, und dog. Wenn die ersten beiden eine demografische Gruppe definieren, die von der Voreingenommenheit bevorzugt wird, value_or_threshold sollte der Wert auf ["bird", "cat"] festgelegt werden. In diesem Beispiel werden die Datensatzstichproben in zwei demografische Gruppen aufgeteilt. Die Facette in der begünstigten Gruppe hat einen Wert bird oder cat, während die Facette in der benachteiligten Gruppe einen Wert dog hat.

      • Bei einem numerischen Facettendatentyp ist der Feature-Wert kontinuierlich und reicht von 0 bis 1. Wenn beispielsweise ein Wert, der größer als 0.5 ist, eine Stichprobe als bevorzugt kennzeichnen soll, value_or_threshold sollte er auf 0.5 gesetzt werden. In diesem Beispiel werden die Datensatzstichproben in zwei demografische Gruppen aufgeteilt. Die Facette in der begünstigten Gruppe hat einen Wert größer als 0.5, während der Wert der Facette in der benachteiligten Gruppe kleiner oder gleich wie 0.5 ist.

  • group_variable – Der Name oder der nullbasierte Index der Spalte, die die Untergruppe angibt, die für die Bias-Metrik Bedingte demografische Disparität (CDD) oder verwendet werden sollBedingte demografische Disparität bei prognostizierten Beschriftungen (CDDPL).

  • facet_dataset_uri — Gilt nur, wenn dataset_type den Wert text/csv hat. Der S3-URI für einen Datensatz, der sensible Attribute für die Bias-Analyse enthält. Sie können Facetten verwenden, um die Verzerrungsmerkmale Ihres Datensatzes und Modells zu verstehen, auch wenn Ihr Modell ohne Verwendung sensibler Attribute trainiert wurde.

    Anmerkung

    Wenn der Facettendatensatz oder der Hauptdatensatz auf mehrere Dateien aufgeteilt ist, muss eine Kennungsspalte von joinsource_name_or_index angegeben werden, um die beiden Datensätze zu verbinden. Sie müssen den Parameter facet verwenden, um jede Facette im Facettendatensatz zu identifizieren.

  • facet_headers — (Gilt nur, wenn facet_dataset_uri angegeben) Eine Reihe von Zeichenketten, die Spaltennamen für den Facettendatensatz und optional die Spaltenüberschrift zur Verknüpfung des Facettendatensatzes und des Hauptdatensatzes enthalten, siehe joinsource_name_or_index.

  • Methoden — Ein Objekt, das eine oder mehrere Analysemethoden und deren Parameter enthält. Wenn eine Methode ausgelassen wird, wird sie weder für die Analyse verwendet noch gemeldet.

    • pre_training_bias — Fügen Sie diese Methode hinzu, wenn Sie Messwerte für Verzerrungen vor der Schulung berechnen möchten. Die detaillierte Beschreibung der Metriken finden Sie unter Messen Sie die Voreingenommenheit vor der Schulung. Das Objekt hat die folgenden Parameter:

    • post_training_bias — Verwenden Sie diese Methode, wenn Sie Messwerte für Verzerrungen nach der Schulung berechnen möchten. Die detaillierte Beschreibung der Metriken finden Sie unter Messen Sie Daten nach dem Training und modellieren Sie Verzerrungen. Das post_training_bias Objekt hat die folgenden Parameter.

    • shap — Schließen Sie diese Methode ein, wenn Sie SHAP-Werte berechnen möchten. Der Verarbeitungsauftrag SageMaker Clarify unterstützt den Kernel-SHAP-Algorithmus. Das shap Objekt hat die folgenden Parameter.

      • Baseline – (Optional) Der SHAP-Baseline-Datensatz, auch bekannt als Hintergrunddatensatz. Zusätzliche Anforderungen für den Basisdatensatz in einem tabellarischen Datensatz oder bei einem Computer-Vision-Problem lauten wie folgt. Weitere Informationen zu SHAP-Baselines finden Sie unter SHAP-Baselines zur Erläuterbarkeit

        • Bei einem tabellarischen Datensatz, baseline können dies entweder die direkten Basisdaten oder der S3-URI einer Basisdatei sein. Wenn nicht angegeben baseline wird, berechnet der Verarbeitungsauftrag SageMaker Clarify eine Baseline durch Clustering des Eingabedatensatzes. Folgendes ist für die Baseline erforderlich:

          • Das Format muss mit dem von dataset_type angegebenen Datensatzformat identisch sein.

          • Die Basislinie kann nur Features enthalten, die das Modell als Eingabe akzeptieren kann.

          • Der Baseline-Datensatz kann über eine oder mehrere Instances verfügen. Die Anzahl der Baseline-Instances wirkt sich direkt auf die Größe des synthetischen Datensatzes und die Laufzeit des Auftrages aus.

          • Wenn text_config angegeben wird, ist der Basiswert einer Textspalte eine Zeichenkette, die die durch granularity angegebene Texteinheit ersetzt. Ein gängiger Platzhalter ist beispielsweise „[MASK]“, der verwendet wird, um ein fehlendes oder unbekanntes Wort oder einen Textabschnitt darzustellen.

          Die folgenden Beispiele verdeutlichen, wie Sie direkte Basisdaten für verschiedene dataset_type Parameter festlegen:

          • Wenn dataset_type entweder text/csv oder application/x-parquet ist, akzeptiert das Modell vier numerische Features, und die Basislinie hat zwei Instanzen. Wenn in diesem Beispiel ein Datensatz alle Feature-Werte Null und der andere Datensatz nur einen Feature-Wert hat, dann sollte der Basiswert auf [[0,0,0,0],[1,1,1,1]] ohne Header gesetzt werden.

          • Wenn dataset_type application/jsonlines ist, und features ist der Schlüssel zu einer Liste mit vier numerischen Featureswerten. Wenn die Basislinie in diesem Beispiel außerdem einen Datensatz mit allen Nullwerten enthält, baseline sollte dies [{"features":[0,0,0,0]}] sein.

          • Falls dataset_type application/json ist, sollte der baseline Datensatz dieselbe Struktur und dasselbe Format wie der Eingabedatensatz haben.

        • Bei Problemen mit Computer Vision baseline kann dies der S3-URI eines Bilds sein, der verwendet wird, um Features (Segmente) aus dem Eingabebild auszublenden. Der Verarbeitungsauftrag SageMaker Clarify lädt das Maskenbild und ändert seine Größe auf dieselbe Auflösung wie das Eingabebild. Wenn keine Baseline angegeben wird, generiert der SageMaker Clarify-Verarbeitungsauftrag ein Maskenbild mit Leerzeichen in derselben Auflösung wie das Eingabebild.

      • features_to_explain — (Optional) Ein Array von Zeichenketten oder nullbasierten Indizes von Feature-Spalten, für die SHAP-Werte berechnet werden sollen. Wenn features_to_explain nicht angegeben, werden SHAP-Werte für alle Feature-Spalten berechnet. Diese Feature-Spalten können weder die Beschriftung-Spalte noch die vorhergesagte Beschriftung-Spalte enthalten. Der features_to_explain Parameter wird nur für tabellarische Datasets mit numerischen und kategorialen Spalten unterstützt.

      • num_clusters — (Optional) Die Anzahl der Cluster, in die der Datensatz aufgeteilt wird, um den Baseline-Datensatz zu berechnen. Jeder Cluster wird zur Berechnung einer Basisinstance verwendet. Wenn nicht angegeben baseline ist, versucht der Verarbeitungsauftrag SageMaker Clarify, den Basisdatensatz zu berechnen, indem er den tabellarischen Datensatz in eine optimale Anzahl von Clustern zwischen 1 und dividiert12. Die Anzahl der Basisinstances wirkt sich direkt auf die Laufzeit der SHAP-Analyse aus.

      • num_samples — (Optional) Die Anzahl der Samples, die im Kernel-SHAP-Algorithmus verwendet werden sollen. Wenn nicht angegeben num_samples wird, wählt der Verarbeitungsauftrag SageMaker Clarify die Nummer für Sie aus. Die Anzahl der Stichproben wirkt sich direkt sowohl auf die Größe des synthetischen Datensatzes als auch auf die Laufzeit des Auftrages aus.

      • seed — (Optional) Eine Ganzzahl, die zur Initialisierung des Pseudo-Zufallszahlengenerators im SHAP-Explainer verwendet wird, um konsistente SHAP-Werte für denselben Auftrag zu generieren. Wenn kein Startwert angegeben ist, kann das Modell jedes Mal, wenn derselbe Auftrag ausgeführt wird, leicht unterschiedliche SHAP-Werte ausgeben.

      • use_logit — (Optional) Ein boolescher Wert, der angibt, dass die Logit-Funktion auf die Modellvorhersagen angewendet werden soll. Standardeinstellung auf false. Wenn use_logit true ist, werden die SHAP-Werte anhand der logistischen Regressionskoeffizienten berechnet, die als Log-Odd-Ratio interpretiert werden können.

      • save_local_shap_values — (Optional) Ein boolescher Wert, der angibt, dass die lokalen SHAP-Werte jedes Datensatzes im Datensatz in das Analyseergebnis aufgenommen werden sollen. Standardeinstellung: false.

        Wenn der Hauptdatensatz auf mehrere Dateien aufgeteilt ist oder die verteilte Verarbeitung aktiviert ist, geben Sie mit dem Parameter joinsource_name_or_index auch eine Kennungsspalte an. Die Kennungsspalte und die lokalen SHAP-Werte werden im Analyseergebnis gespeichert. Auf diese Weise können Sie jeden Datensatz seinen lokalen SHAP-Werten zuordnen.

      • agg_method — (Optional) Die Methode, mit der die lokalen SHAP-Werte (die SHAP-Werte für jede Instance) aller Instances zu den globalen SHAP-Werten (den SHAP-Werten für den gesamten Datensatz) aggregiert werden. Standardeinstellung: mean_abs. Die folgenden Methoden können verwendet werden, um SHAP-Werte zu aggregieren.

        • mean_abs — Der Mittelwert der absoluten lokalen SHAP-Werte aller Instanzen.

        • mean_sq — Der Mittelwert der quadrierten lokalen SHAP-Werte aller Instanzen.

        • Median — Der Median der lokalen SHAP-Werte aller Instanzen.

      • text_config – Erforderlich für die Erklärbarkeit der Verarbeitung natürlicher Sprache. Schließen Sie diese Konfiguration ein, wenn Sie Textspalten als Text behandeln möchten und Erklärungen für einzelne Texteinheiten bereitgestellt werden sollten. Ein Beispiel für eine Analysekonfiguration für die Erklärbarkeit der Verarbeitung natürlicher Sprache finden Sie unter . Analysekonfiguration für die natürliche Sprachverarbeitung (Erklärbarkeit)

        • Granularität — Die Granularitätseinheit für die Analyse von Textspalten. Gültige Werte sind token, sentence oder paragraph. Jede Texteinheit wird als Feature betrachtet, und für jede Einheit werden lokale SHAP-Werte berechnet.

        • Sprache — Die Sprache der Textspalten. Gültige Werte sind chinese, danish, dutch, english, french, german, greek, italian, japanese, lithuanian, multi-language, norwegian bokmål, polish, portuguese, romanian, russian, spanish, afrikaans, albanian, arabic, armenian, basque, bengali, bulgarian, catalan, croatian, czech, estonian, finnish, gujarati, hebrew, hindi, hungarian, icelandic, indonesian, irish, kannada, kyrgyz, latvian, ligurian, luxembourgish, macedonian, malayalam, marathi, nepali, persian, sanskrit, serbian, setswana, sinhala, slovak, slovenian, swedish, tagalog, tamil, tatar, telugu, thai, turkish, ukrainian, urdu, vietnamese, yoruba. Geben Sie multi-language ein, um eine Mischung aus mehreren Sprachen zu erhalten.

        • max_top_tokens — (Optional) Die maximale Anzahl von Top-Token, basierend auf globalen SHAP-Werten. Standardeinstellung: 50. Es ist möglich, dass ein Token mehrmals im Datensatz erscheint. Der Verarbeitungsauftrag SageMaker Clarify aggregiert die SHAP-Werte jedes Tokens und wählt dann die Top-Token auf der Grundlage ihrer globalen SHAP-Werte aus. Die globalen SHAP-Werte der ausgewählten Top-Tokens sind im Abschnitt der Datei analysis.json enthalten. global_top_shap_text

        • Der lokale SHAP-Wert der Aggregation.

      • image_config — Erforderlich für die Erklärbarkeit von Computer Vision. Fügen Sie diese Konfiguration hinzu, wenn Sie einen Eingabedatensatz haben, der aus Bildern besteht, und Sie diese auf ihre Erklärbarkeit bei einem Computer-Vision-Problem analysieren möchten.

        • model_type — Der Typ des Modells. Gültige Werte sind:

          • IMAGE_CLASSIFICATION für ein Bildklassifizierungsmodell.

          • OBJECT_DETECTION für ein Objekterkennungsmodell.

        • max_objects — Gilt nur, wenn model_type den Wert OBJECT_DETECTION ist.Die maximale Anzahl von Objekten, geordnet nach dem Konfidenzwert, die vom Computer-Vision-Modell erkannt werden. Alle Objekte, die nach dem Konfidenzwert niedriger eingestuft sind als die höchsten max_objects, werden herausgefiltert. Standardeinstellung: 3.

        • context — Gilt nur, wenn model_type den Wert OBJECT_DETECTION hat. Es gibt an, ob der Bereich um den Begrenzungsrahmen des erkannten Objekts durch das Basisbild maskiert wird oder nicht. Gültige Werte sind 0 alles maskieren oder 1 nichts maskieren. Standardeinstellung: 1.

        • iou_threshold — Gilt nur, wenn dies der Wert model_type OBJECT_DETECTION ist. Die Mindestkennzahl der Schnittmenge über die Union (IOU) für die Auswertung von Vorhersagen anhand der ursprünglichen Erkennung. Eine hohe IOU-Metrik entspricht einer großen Überschneidung zwischen dem Feld für die Erkennung vorhergesagter Daten und der Ground-Truth-Erkennung. Standardeinstellung: 0.5.

        • num_segments — (Optional) Eine Ganzzahl, die die ungefähre Anzahl der Segmente bestimmt, die im Eingabebild beschriftet werden sollen. Jedes Segment des Bildes wird als Merkmal betrachtet, und für jedes Segment werden lokale SHAP-Werte berechnet. Standardeinstellung: 20.

        • segment_compactness — (Optional) Eine Ganzzahl, die die Form und Größe der mit der scikit-image-Slic Methode generierten Bildsegmente bestimmt. Standardeinstellung: 5.

    • pdp – Fügen Sie diese Methode ein, um partielle Abhängigkeitsdiagramme (PDPs) zu berechnen. Ein Beispiel für eine Analysekonfiguration zum Generieren von PDPs finden Sie unter . Berechnet partielle Abhängigkeitsdiagramme (PDPs)

      • features — Obligatorisch, wenn die shap Methode nicht angefordert wird. Eine Reihe von Feature-Namen oder Indizes zur Berechnung und Darstellung von PDP-Plots.

      • top_k_features — (Optional) Gibt die Anzahl der Top-Features an, die zur Generierung von PDP-Plots verwendet werden. Wenn nicht angegeben features wird, aber die shap Methode angefordert wird, wählt der Verarbeitungsauftrag SageMaker Clarify die wichtigsten Features basierend auf ihren SHAP-Zuweisungen aus. Standardeinstellung: 10.

      • grid_resolution — Die Anzahl der Buckets, in die der Bereich numerischer Werte unterteilt werden soll. Dies gibt die Granularität des Rasters für die PDP-Plots an.

    • Bericht — (Optional) Verwenden Sie dieses Objekt, um den Analysebericht anzupassen. Es gibt drei Kopien desselben Berichts als Teil des Analyseergebnisses: Jupyter Notebook-Bericht, HTML-Bericht und PDF-Bericht. Die Funktion hat die folgenden Parameter.

      • name — Dateiname der Berichtsdateien. Wenn dies beispielsweise der name MyReport ist, lauten die Berichtsdateien MyReport.ipynb, MyReport.html, undMyReport.pdf. Standardeinstellung: report.

      • title — (Optional) Titelzeichenfolge für den Bericht. Standardeinstellung: SageMaker Analysis Report.

  • Prädiktor — Erforderlich, wenn für die Analyse Vorhersagen aus dem Modell erforderlich sind. Zum Beispiel, wenn shap, pdp, oder post_training_bias Methode , oder angefordert wird, die vorhergesagten Beschriftungen jedoch nicht als Teil des Eingabe-Datasets bereitgestellt werden. Die folgenden Parameter können in Verbindung mit predictor verwendet werden:

    • model_name – Der Name Ihres SageMaker Modells, das von der CreateModel API erstellt wurde. Wenn Sie model_name anstelle von endpoint_name angeben, erstellt der Verarbeitungsauftrag SageMaker Clarify einen kurzlebigen Endpunkt mit dem Modellnamen, der als Schattenendpunkt bezeichnet wird, und ruft Vorhersagen vom Endpunkt ab. Der Auftrag löscht den Schattenendpunkt, nachdem die Berechnungen abgeschlossen sind. Wenn es sich bei dem Modell um ein Multimodell handelt, muss der target_model Parameter angegeben werden. Weitere Informationen zu Multimodell-Endpunkten finden Sie unter Hosten Sie mehrere Modelle in einem Container hinter einem Endpunkt.

    • endpoint_name_prefix — (Optional) Ein benutzerdefiniertes Namenspräfix für den Schattenendpunkt. Anwendbar, wenn Sie anstelle von model_name endpoint_name angeben. Geben Sie beispielsweise an, endpoint_name_prefix ob Sie den Zugriff auf den Endpunkt anhand des Endpunktnamens einschränken möchten. Das Präfix muss mit dem EndpointName Muster übereinstimmen und seine maximale Länge ist 23. Standardeinstellung: sm-clarify.

    • initial_instance_count — Gibt die Anzahl der Instanzen für den Shadow-Endpunkt an. Erforderlich, wenn Sie model_name statt endpoint_name angeben. Der Wert für initial_instance_count kann sich von dem des Auftrags unterscheiden, wir empfehlen jedoch ein Verhältnis InstanceCount von 1:1.

    • instance_type — Gibt den Instance-Typ für denSchattenendpunkt an. Erforderlich, wenn Sie anstelle von model_name endpoint_name angeben. Als Beispiel kann instance_type auf "ml.m5.large" gesetzt werden. In einigen Fällen instance_type kann der für angegebene Wert dazu beitragen, die Inferenzzeit des Modells zu reduzieren. Um beispielsweise effizient ausgeführt zu werden, benötigen Modelle zur Verarbeitung natürlicher Sprache und Modelle für maschinelles Sehen in der Regel einen Instance-Typ „Graphics Processing Unit“ (GPU).

    • accelerator_type — (Optional) Gibt den Typ des Elastic Inference (EI) -Beschleunigers an, der an den Schattenendpunkt angehängt werden soll. Anwendbar, wenn Sie anstelle model_name von endpoint_name für accelerator_type zur Verfügung stellen. Ein Beispielwert für accelerator_type ml.eia2.large ist. Standardmäßig wird kein Beschleuniger verwendet.

    • endpoint_name – Der Name Ihres SageMaker Endpunkts, der von der CreateEndpoint API erstellt wurde. Falls endpoint_name angegeben, hat er Vorrang vor dem model_name Parameter. Die Verwendung eines vorhandenen Endpunkts reduziert die Bootstrap-Zeit für den Schattenendpunkt, kann aber auch zu einer erheblichen Erhöhung der Last für diesen Endpunkt führen. Darüber hinaus generieren einige Analysemethoden (wie shap undpdp) synthetische Datensätze, die an den Endpunkt gesendet werden. Dies kann dazu führen, dass die Metriken oder erfassten Daten des Endpunkts durch synthetische Daten verunreinigt werden, die die tatsächliche Nutzung möglicherweise nicht genau wiedergeben. Aus diesen Gründen wird im Allgemeinen nicht empfohlen, einen vorhandenen Produktionsendpunkt für die SageMaker Clarify-Analyse zu verwenden.

    • target_model – Der Zeichenfolgenwert, der an den TargetModel Parameter der SageMaker InvokeEndpoint API übergeben wird. Erforderlich, wenn es sich bei Ihrem Modell (angegeben durch den Parameter model_name) oder Ihrem Endpoint (angegeben durch den Parameter endpoint_name) um ein Multi-Modell handelt. Weitere Informationen zu Multimodell-Endpunkten finden Sie unter Hosten Sie mehrere Modelle in einem Container hinter einem Endpunkt.

    • custom_attributes — (Optional) Eine Zeichenfolge, mit der Sie zusätzliche Informationen zu einer Inferenzanforderung angeben können, die an den Endpunkt gesendet wird. Der Zeichenfolgenwert wird an den CustomAttributes Parameter der SageMaker InvokeEndpoint API übergeben.

    • content_type — content_type — Das Modelleingabeformat, das zum Abrufen von Vorhersagen vom Endpunkt verwendet werden soll. Falls angegeben, wird sie an den ContentType Parameter der SageMaker InvokeEndpoint API übergeben.

      • Zur besseren Erklärung des maschinellen Sehens sind image/jpeg, image/png oder application/x-npy gültige Werte. Falls content_type nicht angegeben, ist der Standardwert image/jpeg.

      • Für andere Arten der Erklärbarkeit sind text/csv, application/jsonlines, und application/json gültige Werte. Ein Wert für content_type ist erforderlich, wenn der Wert dataset_type „application/x-parquet“ lautet. Andernfalls wird content_type standardmäßig mit dem Wert des Parameters dataset_type belegt.

    • accept_type — Das Modellausgabeformat, das zum Abrufen von Vorhersagen vom Endpunkt verwendet werden soll. Der Wert für accept_type wird an den Accept Parameter der SageMaker InvokeEndpoint API übergeben.

      • Wenn model_type "OBJECT_DETECTION" ist, dann ist accept_type standardmäßig application/json für die Erklärung von Computer Vision.

      • Für andere Arten der Erklärbarkeit sind text/csv, application/jsonlines, und application/json gültige Werte. Wenn kein Wert für angegeben accept_type wird, wird accept_type standardmäßig der Wert des content_type Parameters verwendet.

    • content_template — Eine Vorlagenzeichenfolge, die verwendet wird, um die Modelleingabe aus Datensätzen zu erstellen. Der Parameter content_template wird nur verwendet und ist erforderlich, wenn der Wert des content_type Parameters entweder application/jsonlines oder application/json ist.

      Wenn der content_type Parameter application/jsonlines ist, sollte die Vorlage nur einen Platzhalter haben, $features, der zur Laufzeit durch eine Feature-Liste ersetzt wird. Ist "{\"myfeatures\":$features}" die Vorlage beispielsweise und hat ein Datensatz drei numerische Feature-Werte: 1, 2 und 3, dann wird der Datensatz als JSON-Zeile {"myfeatures":[1,2,3]} an das Modell gesendet.

      Wenn content_type application/json ist, kann die Vorlage entweder einen Platzhalter $record oder records enthalten. Wenn der Platzhalter record ist, wird ein einzelner Datensatz durch einen Datensatz ersetzt, auf den die Vorlage record_template angewendet wurde. In diesem Fall wird jeweils nur ein einziger Datensatz an das Modell gesendet. Wenn der Platzhalter $records ist, werden die Datensätze durch eine Liste von Datensätzen ersetzt, für die jeweils eine Vorlage von record_template bereitgestellt wird.

    • record_template — Eine Vorlagenzeichenfolge, die verwendet wird, um jeden Datensatz der Modelleingabe aus Datensatzinstanzen zu erstellen. Sie wird nur verwendet und benötigt, wenn content_type application/json ist. Die Vorlagenzeichenfolge kann einen der folgenden Werte enthalten:

      • Ein $features Platzhalterparameter, der durch eine Reihe von Feature-Werten ersetzt wird. Ein zusätzlicher optionaler Platzhalter kann die Namen der Feature-Spaltenüberschriften in $feature_names ersetzen. Dieser optionale Platzhalter wird durch eine Reihe von Feature-Namen ersetzt.

      • Genau ein Platzhalter $features_kvp, der durch die Schlüssel-Wert-Paare Feature-Name und Feature-Wert ersetzt wird.

      • Eine Funktion in der headers Konfiguration. Beispielsweise wird ein Feature-Name A, der in der Platzhaltersyntax "${A}" notiert ist, durch den Feature-Wert für A ersetzt.

      Der Wert für record_template wird mit verwendet, um die content_template Modelleingabe zu konstruieren. Es folgt ein Konfigurationsbeispiel, das zeigt, wie eine Modelleingabe mithilfe einer Inhalts- und Datensatzvorlage erstellt wird.

      Im folgenden Codebeispiel sind die Header und Features wie folgt definiert.

      • `headers`:["A", "B"]

      • `features`:[[0,1], [3,4]]

      Die Eingabe des Modells sieht wie folgt aus.

      { "instances": [[0, 1], [3, 4]], "feature_names": ["A", "B"] }

      Das Beispiel content_template und die record_template Parameterwerte für die Konstruktion der vorherigen Beispielmodelleingabe folgen.

      • content_template: "{\"instances\": $records, \"feature_names\": $feature_names}"

      • record_template: "$features"

      Im folgenden Codebeispiel sind die Header und Features wie folgt definiert.

      [ { "A": 0, "B": 1 }, { "A": 3, "B": 4 }, ]

      Das Beispiel content_template und record_template Parameterwerte für die Konstruktion der vorherigen Beispielmodelleingabe folgen.

      • content_template: "$records"

      • record_template: "$features_kvp"

      Es folgt ein alternatives Codebeispiel zum Konstruieren der vorherigen Beispielmodelleingabe.

      • content_template: "$records"

      • record_template: "{\"A\": \"${A}\", \"B\": \"${B}\"}"

      Im folgenden Codebeispiel sind die Header und Features wie folgt definiert.

      { "A": 0, "B": 1 }

      Die oben zu erstellenden Beispielwerte der Parameter content_template und record_template: Es folgt die Eingabe des vorherigen Beispielmodells.

      • content_template: "$record"

      • record_template: "$features_kvp"

    • label — Ein auf Null basierender Integer-Index oder eine JMESPath-Ausdruckszeichenfolge, die verwendet wird, um vorhergesagte Beschriftungen aus der Modellausgabe für die Bias-Analyse zu extrahieren. Wenn es sich bei dem Modell um ein Mehrklassenmodell handelt und der label Parameter alle vorhergesagten Beschriftungen aus der Modellausgabe extrahiert, gilt Folgendes.

      • Der probability Parameter ist erforderlich, um die entsprechenden Wahrscheinlichkeiten (oder Werte) aus der Modellausgabe abzurufen.

      • Die vorhergesagte Beschriftung mit der höchsten Punktzahl wird ausgewählt.

      Der Wert für label hängt wie folgt vom Wert des Parameters accept_type ab.

      • Wenn accept_type text/csv ist, ist label der Index aller vorhergesagten Labels in der Modellausgabe.

      • Wenn accept_type application/jsonlines oder application/json ist, dann label ist es ein JMESPath-Ausdruck, der auf die Modellausgabe angewendet wird, um die vorhergesagten Beschriftungen zu erhalten.

    • label_headers — Ein Array von Werten, die die Beschriftung im Datensatz annehmen kann. Wenn eine Bias-Analyse angefordert wird, muss der probability Parameter auch die entsprechenden Wahrscheinlichkeitswerte (Werte) aus der Modellausgabe abrufen, und es wird die vorhergesagte Beschriftung mit der höchsten Punktzahl ausgewählt. Wenn eine Erklärbarkeitsanalyse angefordert wird, werden die Beschriftung-Header verwendet, um den Analysebericht zu verschönern. Für die Erklärbarkeit von Computer Vision label_headers ist ein Wert für erforderlich. Wenn die Bezeichnung beispielsweise bei einem Klassifizierungsproblem mit mehreren Klassen drei mögliche Werte hat, bird, cat, und dog, label_headers soll auf ["bird","cat","dog"] gesetzt werden.

    • Wahrscheinlichkeit — (Optional) Ein auf Null basierender Integer-Index oder eine JMESPath-Ausdruckszeichenfolge, die verwendet wird, um Wahrscheinlichkeiten (Punktzahlen) für die Erklärbarkeitsanalyse zu extrahieren oder um die vorhergesagte Bezeichnung für die Bias-Analyse auszuwählen. Der Wert von probability hängt wie folgt vom Wert des accept_type Parameters ab.

      • Wenn accept_type text/csv ist, ist probability der Index der Wahrscheinlichkeiten (Werte) in der Modellausgabe. Falls probability nicht angegeben, wird die gesamte Modellausgabe als Wahrscheinlichkeiten (Punktzahlen) verwendet.

      • Falls accept_type es sich um JSON-Daten handelt (entweder application/jsonlines oder application/json), probability sollte es sich um einen JMESPath-Ausdruck handeln, der verwendet wird, um die Wahrscheinlichkeiten (Werte) aus der Modellausgabe zu extrahieren.

Beispielkonfigurationsdateien

Die folgenden Abschnitte enthalten Beispieldateien für Analysekonfigurationen für Daten im CSV-Format, im Format JSON Lines und für die Erklärbarkeit von natürlicher Sprache (NLP) und Computer Vision.

Die folgenden Beispiele zeigen, wie Sie Verzerrungs- und Erklärbarkeitsanalysen für einen tabellarischen Datensatz im CSV-Format konfigurieren. In diesen Beispielen hat der eingehende Datensatz vier Feature-Spalten und eine binäre Beschriftungsspalte, Target. Der Inhalt des Datensatzes ist wie folgt. Ein Labelwert von 1 weist auf ein positives Ergebnis hin. Der Datensatz wird dem SageMaker Clarify-Auftrag durch die dataset Verarbeitungseingabe zur Verfügung gestellt.

"Target","Age","Gender","Income","Occupation" 0,25,0,2850,2 1,36,0,6585,0 1,22,1,1759,1 0,48,0,3446,1 ...

In den folgenden Abschnitten wird gezeigt, wie Verzerrungsmetriken vor und nach dem Training, SHAP-Werte und partielle Abhängigkeitsdiagramme (PDPs) berechnet werden, die die Bedeutung von Merkmalen für einen Datensatz im CSV-Format zeigen.

Berechnet alle Messwerte für Verzerrungen vor der Schulung

Diese Beispielkonfiguration zeigt, wie gemessen wird, ob der Datensatz der vorherigen Stichprobe positiv auf Stichproben mit einem Gender Wert von 0 ausgerichtet ist. Die folgende Analysekonfiguration weist den Verarbeitungsauftrag SageMaker Clarify an, alle Bias-Metriken vor dem Training für den Datensatz zu berechnen.

{ "dataset_type": "text/csv", "label": "Target", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }

Berechnet alle Messwerte für Verzerrungen nach der Schulung

Sie können vor der Schulung Messwerte für Verzerrungen vor der Schulung berechnen. Sie benötigen jedoch ein geschultes Modell, um die Messwerte für Verzerrungen nach der Schulung berechnen zu können. Die folgende Beispielausgabe stammt aus einem binären Klassifikationsmodell, das Daten im CSV-Format ausgibt. In dieser Beispielausgabe enthält jede Zeile zwei Spalten. Die erste Spalte enthält die vorhergesagte Beschriftung und die zweite Spalte enthält den Wahrscheinlichkeitswert für diese Beschriftung.

0,0.028986845165491 1,0.825382471084594 ...

Das folgende Konfigurationsbeispiel weist den Verarbeitungsauftrag SageMaker Clarify an, alle möglichen Bias-Metriken anhand des Datensatzes und der Vorhersagen aus der Modellausgabe zu berechnen. Im Beispiel wird das Modell auf einem SageMaker Endpunkt bereitgestelltyour_endpoint.

Anmerkung

Im folgenden Beispielcode sind die Parameter content_type und accept_type nicht festgelegt. Daher verwenden sie automatisch den Wert des Parameters dataset_type, nämlich text/csv ist.

{ "dataset_type": "text/csv", "label": "Target", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" } }, "predictor": { "endpoint_name": "your_endpoint", "label": 0 } }

Berechnet die SHAP-Werte

In der folgenden Beispielanalysekonfiguration wird der Job angewiesen, die SHAP-Werte zu berechnen, wobei die Target Spalte als Beschriftungen und alle anderen Spalten als Features gekennzeichnet werden.

{ "dataset_type": "text/csv", "label": "Target", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "probability": 1 } }

In diesem Beispiel wird der baseline SHAP-Parameter weggelassen und der Wert des num_clusters Parameters 1 ist. Dadurch wird der SageMaker Clarify-Prozessor angewiesen, ein SHAP-Baseline-Beispiel zu berechnen. In diesem Beispiel ist die Wahrscheinlichkeit auf 1 gesetzt. Dadurch wird der Verarbeitungsauftrag SageMaker Clarify angewiesen, den Wahrscheinlichkeitswert aus der zweiten Spalte der Modellausgabe zu extrahieren (mit nullbasierter Indizierung).

Berechnet partielle Abhängigkeitsdiagramme (PDPs)

Das folgende Beispiel zeigt, wie die Wichtigkeit des Income Features im Analysebericht mithilfe von PDPs angezeigt wird. Der Berichtsparameter weist den Verarbeitungsauftrag SageMaker Clarify an, einen Bericht zu generieren. Nach Abschluss des Auftrages wird der generierte Bericht als report.pdf an diesem analysis_result Speicherort gespeichert. Der grid_resolution Parameter unterteilt den Bereich der Feature-Werte in 10 Bereiche. Zusammen weisen die im folgenden Beispiel angegebenen Parameter den Verarbeitungsauftrag SageMaker Clarify an, einen Bericht zu generieren, der ein PDP-Diagramm für Income mit 10 Segmenten auf der x-Achse enthält. Auf der Y-Achse wird der geringfügige Einfluss von Income auf die Prognosen dargestellt.

{ "dataset_type": "text/csv", "label": "Target", "methods": { "pdp": { "features": ["Income"], "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "probability": 1 }, }

Berechnet sowohl Messwerte für Verzerrungen als auch die Bedeutung der Features

Sie können alle Methoden aus den vorherigen Konfigurationsbeispielen in einer einzigen Analysekonfigurationsdatei kombinieren und sie alle mit einem einzigen Auftrag berechnen. Das folgende Beispiel zeigt eine Analysekonfiguration, bei der alle Schritte kombiniert wurden.

In diesem Beispiel ist der probability Parameter so eingestellt, dass 1 angibt, dass Wahrscheinlichkeiten in der zweiten Spalte enthalten sind (unter Verwendung einer nullbasierten Indizierung). Da für die Bias-Analyse jedoch ein vorhergesagtes Label erforderlich ist, ist der probability_threshold Parameter auf 0.5eingestellt, dass er den Wahrscheinlichkeitswert in eine binäre Beschriftung umwandelt. In diesem Beispiel ist der top_k_features Parameter der pdp Methode partielle Abhängigkeitsdiagramme auf 2 festgelegt. Dadurch wird der Verarbeitungsauftrag SageMaker Clarify angewiesen, partielle Abhängigkeitsdiagramme (PDPs) für die wichtigsten 2 Features mit den größten globalen SHAP-Werten zu berechnen.

{ "dataset_type": "text/csv", "label": "Target", "probability_threshold": 0.5, "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" }, "shap": { "num_clusters": 1 }, "pdp": { "top_k_features": 2, "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "probability": 1 } }

Anstatt das Modell auf einem Endpunkt bereitzustellen, können Sie den Namen Ihres SageMaker Modells mithilfe des model_name Parameters für den Verarbeitungsauftrag SageMaker Clarify angeben. Das folgende Beispiel zeigt, wie Sie ein Modell mit dem Namen your_model angeben. Der Verarbeitungsauftrag SageMaker Clarify erstellt mithilfe der Konfiguration einen Schattenendpunkt.

{ ... "predictor": { "model_name": "your_model", "initial_instance_count": 1, "instance_type": "ml.m5.large", "probability": 1 } }

Die folgenden Beispiele zeigen, wie die Verzerrungsanalyse und die Erklärbarkeitsanalyse für einen tabellarischen Datensatz im JSON Lines-Format konfiguriert werden. In diesen Beispielen hat der eingehende Datensatz dieselben Daten wie der vorherige Abschnitt, sie haben jedoch das dichte Format SageMaker JSON Lines. Jede Zeile ist ein gültiges JSON-Objekt. Der Schlüssel „Features“ zeigt auf eine Reihe von Feature-Werten, und der Schlüssel „Beschriftung“ zeigt auf die Ground-Truth-Beschriftung. Der Datensatz wird dem SageMaker Clarify-Auftrag durch die Verarbeitungseingabe „Datensatz“ zur Verfügung gestellt. Weitere Informationen zu JSON-Zeilen finden Sie unter JSONLINES-Anforderungsformat.

{"Features":[25,0,2850,2],"Label":0} {"Features":[36,0,6585,0],"Label":1} {"Features":[22,1,1759,1],"Label":1} {"Features":[48,0,3446,1],"Label":0} ...

In den folgenden Abschnitten wird gezeigt, wie Verzerrungsmetriken, SHAP-Werte und partielle Abhängigkeitsdiagramme (PDPs) vor und nach der Schulung berechnet werden, die die Bedeutung von Features für einen Datensatz im Format JSON Lines zeigen.

Berechnen von Verzerrungsmetriken vor der Schulung

Geben Sie die Bezeichnung, die Merkmale, das Format und die Methoden zur Messung der Messwerte für Verzerrungen vor der Schulung für einen Gender Wert von 0 an. Im folgenden Beispiel gibt der headers Parameter zuerst die Feature-Namen an. Der Beschriftungsname wird zuletzt angegeben. Konventionell ist der letzte Header der Beschriftung-Header.

Der features Parameter ist auf den JMESPath-Ausdruck „Features“ gesetzt, sodass der SageMaker Clarif-Verarbeitungsauftrag das Feature-Array aus jedem Datensatz extrahieren kann. Der label Parameter ist auf den JMESPath-Ausdruck „Label“ gesetzt, sodass der SageMaker Clarif-Verarbeitungsauftrag die Ground-Truth-Beschriftung aus jedem Datensatz extrahieren kann. Verwenden Sie einen Facettennamen, um das sensible Attribut wie folgt anzugeben.

{ "dataset_type": "application/jsonlines", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "Label", "features": "Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }

Berechnet alle Messwerte für die systematische Abweichung

Sie benötigen ein trainiertes Modell, um die Messwerte für Verzerrungen nach der Schulung berechnen zu können. Das folgende Beispiel stammt aus einem binären Klassifizierungsmodell, das JSON-Lines-Daten im Format des Beispiels ausgibt. Jede Zeile der Modellausgabe ist ein gültiges JSON-Objekt. Die predicted_label Schlüsselpunkte weisen auf die vorhergesagte Beschriftung und die probability Schlüsselpunkte auf den Wahrscheinlichkeitswert hin.

{"predicted_label":0,"probability":0.028986845165491} {"predicted_label":1,"probability":0.825382471084594} ...

Sie können das Modell auf einem SageMaker Endpunkt mit dem Namen bereitstellenyour_endpoint. Die folgende Beispielanalysekonfiguration weist den Verarbeitungsauftrag SageMaker Clarify an, alle möglichen Bias-Metriken sowohl für den Datensatz als auch für das Modell zu berechnen. In diesem Beispiel sind die Parameter content_type und accept_type nicht enthalten. Daher werden sie automatisch so eingestellt, dass sie den Wert des Parameters dataset_type verwenden, nämlich application/jsonlines ist. Der Verarbeitungsauftrag SageMaker Clarify verwendet den content_template Parameter , um die Modelleingabe zu erstellen, indem der $features Platzhalter durch ein Array von Features ersetzt wird.

{ "dataset_type": "application/jsonlines", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "Label", "features": "Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "{\"Features\":$features}", "label": "predicted_label" } }

Berechnet die SHAP-Werte

Da für die SHAP-Analyse kein Ground-Truth-Etikett erforderlich ist, wird der label Parameter weggelassen. In diesem Beispiel wird der headers Parameter ebenfalls weggelassen. Daher muss der Verarbeitungsauftrag SageMaker Clarify Platzhalter mit generischen Namen wie column_0 oder column_1 für Feature-Header und label0 für einen Label-Header generieren. Sie können Werte für headers und für label angeben, um die Lesbarkeit des Analyseergebnisses zu verbessern. Da der Wahrscheinlichkeitsparameter auf JMESPath-Ausdruck probability gesetzt ist, wird der Wahrscheinlichkeitswert aus der Modellausgabe extrahiert. Im Folgenden finden Sie ein Beispiel zur Berechnung von SHAP-Werten.

{ "dataset_type": "application/jsonlines", "features": "Features", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "{\"Features\":$features}", "probability": "probability" } }

Berechnet partielle Abhängigkeitsdiagramme (PDPs)

Das folgende Beispiel zeigt, wie Sie die Bedeutung von „Einkommen“ für PDP betrachten können. In diesem Beispiel werden die Feature-Header nicht bereitgestellt. Daher muss der features Parameter der pdp Methode einen auf Null basierenden Index verwenden, um auf die Position der Feature-Spalte zu verweisen. Der grid_resolution Parameter unterteilt den Bereich der Feature-Werte in 10 Bereiche. Zusammen weisen die Parameter im Beispiel den Verarbeitungsauftrag SageMaker Clarify an, einen Bericht zu generieren, der ein PDP-Diagramm für Income mit 10 Segmenten auf der x-Achse enthält. Auf der Y-Achse wird der geringfügige Einfluss von Income auf die Prognosen dargestellt.

{ "dataset_type": "application/jsonlines", "features": "Features", "methods": { "pdp": { "features": [2], "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "{\"Features\":$features}", "probability": "probability" } }

Berechnet sowohl Messwerte für Verzerrungen als auch die Bedeutung der Features

Sie können alle vorherigen Methoden in einer einzigen Analysekonfigurationsdatei kombinieren und sie alle mit einem einzigen Auftrag berechnen. Das folgende Beispiel zeigt eine Analysekonfiguration, bei der alle Schritte kombiniert wurden. In diesem Beispiel ist der probability Parameter festgelegt. Da für die Bias-Analyse jedoch ein vorhergesagtes Label erforderlich ist, ist der probability_threshold Parameter auf 0.5eingestellt, dass er den Wahrscheinlichkeitswert in eine binäre Beschriftung umwandelt. In diesem Beispiel ist der top_k_features Parameter der pdp Methode auf 2 gesetzt. Dadurch wird der Verarbeitungsauftrag SageMaker Clarify angewiesen, PDPs für die wichtigsten 2 Features mit den größten globalen SHAP-Werten zu berechnen.

{ "dataset_type": "application/jsonlines", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "Label", "features": "Features", "probability_threshold": 0.5, "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" }, "shap": { "num_clusters": 1 }, "pdp": { "top_k_features": 2, "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "{\"Features\":$features}", "probability": "probability" } }

Die folgenden Beispiele zeigen, wie die Verzerrungs- und Erklärbarkeitsanalyse für einen tabellarischen Datensatz im JSON-Format konfiguriert wird. In diesen Beispielen hat der eingehende Datensatz die gleichen Daten wie im vorherigen Abschnitt, sie haben jedoch das dichte SageMaker JSON-Format. Weitere Informationen zu JSON-Zeilen finden Sie unter JSONLINES-Anforderungsformat.

Die gesamte Eingabeanforderung ist gültiges JSON, wobei die äußere Struktur eine Liste ist und jedes Element die Daten für einen Datensatz ist. In jedem Datensatz verweisen die Features Schlüsselpunkte auf eine Reihe von Featureswerten und die Label Schlüsselpunkte auf die Ground-Truth-Beschriftung. Der Datensatz wird dem SageMaker Clarify-Auftrag durch die dataset Verarbeitungseingabe zur Verfügung gestellt.

[ {"Features":[25,0,2850,2],"Label":0}, {"Features":[36,0,6585,0],"Label":1}, {"Features":[22,1,1759,1],"Label":1}, {"Features":[48,0,3446,1],"Label":0}, ... ]

In den folgenden Abschnitten wird gezeigt, wie Verzerrungsmetriken, SHAP-Werte und partielle Abhängigkeitsdiagramme (PDPs) vor und nach der Schulung berechnet werden, die die Bedeutung von Merkmalen für einen Datensatz im Format JSON Lines zeigen.

Berechnen von Verzerrungsmetriken vor der Schulung

Geben Sie die Bezeichnung, die Merkmale, das Format und die Methoden zur Messung der Messwerte für Verzerrungen vor der Schulung für einen Gender Wert von 0 an. Im folgenden Beispiel gibt der headers Parameter zuerst die Feature-Namen an. Der Beschriftungsname wird zuletzt angegeben. Bei JSON-Datensätzen ist der letzte Header der Beschriftung-Header.

Der features Parameter ist auf den JMESPath-Ausdruck gesetzt, der ein 2D-Array oder eine 2D-Matrix extrahiert. Jede Zeile in dieser Matrix muss die Liste von Features für jeden Datensatz enthalten. Der label Parameter ist auf den JMESPath-Ausdruck gesetzt, der eine Liste von Ground-Truth-Bezeichnungen extrahiert. Jedes Element in dieser Liste muss die Bezeichnung für einen Datensatz enthalten.

Verwenden Sie einen Facettennamen, um das sensible Attribut wie folgt anzugeben.

{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" } } }

Berechnet alle Messwerte für die systematische Abweichung

Sie benötigen ein geschultes Modell, um die Messwerte für Verzerrungen nach der Schulung berechnen zu können. Das folgende Codebeispiel stammt aus einem binären Klassifikationsmodell, das JSON-Daten im Format des Beispiels ausgibt. Im Beispiel predictions ist jedes Element unter die Prognoseausgabe für einen Datensatz. Der Beispielcode enthält den Schlüssel predicted_label, der auf die vorhergesagte Beschriftung verweist, und den Schlüssel, der auf den Wahrscheinlichkeitswert probability verweist.

{ "predictions": [ {"predicted_label":0,"probability":0.028986845165491}, {"predicted_label":1,"probability":0.825382471084594}, ... ] }

Sie können das Modell auf einem SageMaker Endpunkt mit dem Namen bereitstellenyour_endpoint.

Im folgenden Beispiel sind die Parameter content_type und accept_type nicht gesetzt. Daher werden content_type und accept_type automatisch so eingestellt, dass sie den Wert des Parameters dataset_type verwenden, nämlich application/json ist. Der Verarbeitungsauftrag SageMaker Clarify verwendet dann den content_template Parameter , um die Modelleingabe zu erstellen.

Im folgenden Beispiel wird die Modelleingabe erstellt, indem der $records Platzhalter durch ein Array von Datensätzen ersetzt wird. Anschließend erstellt der record_template Parameter die JSON-Struktur jedes Datensatzes und ersetzt den $features Platzhalter durch das Feature-Array jedes Datensatzes.

Die folgende Beispielanalysekonfiguration weist den Verarbeitungsauftrag SageMaker Clarify an, alle möglichen Bias-Metriken sowohl für den Datensatz als auch für das Modell zu berechnen.

{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "label": "predictions[*].predicted_label" } }

Berechnet die SHAP-Werte

Sie müssen keine Beschriftung für die SHAP-Analyse angeben. Im folgenden Beispiel ist der headers Parameter nicht angegeben. Daher generiert der SageMaker Clarify-Verarbeitungsauftrag Platzhalter mit generischen Namen wie column_0 oder column_1 für Feature-Header und label0 für einen Label-Header. Sie können Werte für headers und für label angeben, um die Lesbarkeit des Analyseergebnisses zu verbessern.

Im folgenden Konfigurationsbeispiel ist der Wahrscheinlichkeitsparameter auf einen JMESPath-Ausdruck festgelegt, der die Wahrscheinlichkeiten aus jeder Vorhersage für jeden Datensatz extrahiert. Im Folgenden finden Sie ein Beispiel zur Berechnung von SHAP-Werten.

{ "dataset_type": "application/json", "features": "[*].Features", "methods": { "shap": { "num_clusters": 1 } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }

Berechnet partielle Abhängigkeitsdiagramme (PDPs)

Das folgende Beispiel zeigt, wie Sie die Wichtigkeit eines Features in PDPs anzeigen können. In dem Beispiel werden die Feature-Header nicht bereitgestellt. Daher muss der features Parameter der pdp Methode einen auf Null basierenden Index verwenden, um auf die Position der Feature-Spalte zu verweisen. Der grid_resolution Parameter unterteilt den Bereich der Feature-Werte in 10 Bereiche.

Zusammen weisen die Parameter im folgenden Beispiel den Verarbeitungsauftrag SageMaker Clarify an, einen Bericht zu generieren, der ein PDP-Diagramm für Income mit 10 Segmenten auf der x-Achse enthält. Die Y-Achse zeigt die marginalen Auswirkungen von Income auf die Prognosen.

Das folgende Konfigurationsbeispiel zeigt, wie die Bedeutung von Income auf PDPs angezeigt wird.

{ "dataset_type": "application/json", "features": "[*].Features", "methods": { "pdp": { "features": [2], "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }

Berechnet sowohl Messwerte für Verzerrungen als auch die Bedeutung von Features

Sie können alle vorherigen Konfigurationsmethoden in einer einzigen Analysekonfigurationsdatei kombinieren und sie alle mit einem einzigen Auftrag berechnen. Das folgende Beispiel zeigt eine Analysekonfiguration, bei der alle Schritte kombiniert wurden.

In diesem Beispiel ist der probability Parameter festgelegt. Da für die Bias-Analyse eine vorhergesagte Beschriftung erforderlich ist, ist der probability_threshold Parameter auf festgelegt. Dieser Wert wird 0.5 verwendet, um den Wahrscheinlichkeitswert in eine binäre Beschriftung umzuwandeln. In diesem Beispiel ist der top_k_features Parameter der pdp Methode auf 2 festgelegt. Dadurch wird der Verarbeitungsauftrag SageMaker Clarify angewiesen, PDPs für die wichtigsten 2 Features mit den größten globalen SHAP-Werten zu berechnen.

{ "dataset_type": "application/json", "headers": ["Age","Gender","Income","Occupation","Target"], "label": "[*].Label", "features": "[*].Features", "probability_threshold": 0.5, "label_values_or_threshold": [1], "facet": [ { "name_or_index": "Gender", "value_or_threshold": [0] } ], "methods": { "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" }, "shap": { "num_clusters": 1 }, "pdp": { "top_k_features": 2, "grid_resolution": 10 }, "report": { "name": "report" } }, "predictor": { "endpoint_name": "your_endpoint", "content_template": "$records", "record_template": "{\"Features\":$features}", "probability": "predictions[*].probability" } }

Das folgende Beispiel zeigt eine Analysekonfigurationsdatei zur Berechnung der Bedeutung von Features für die Verarbeitung natürlicher Sprache (NLP). In diesem Beispiel ist der eingehende Datensatz ein tabellarischer Datensatz im CSV-Format mit einer binären Beschriftungsspalte und zwei Feature-Spalten, wie im Folgenden dargestellt. Der Datensatz wird dem SageMaker Clarify-Auftrag durch den dataset Verarbeitungseingabeparameter bereitgestellt.

0,2,"They taste gross" 1,3,"Flavor needs work" 1,5,"Taste is awful" 0,1,"The worst" ...

In diesem Beispiel wurde ein binäres Klassifikationsmodell anhand des vorherigen Datensatzes geschult. Das Modell akzeptiert CSV-Daten und gibt wie folgt eine einzelne Punktzahl zwischen 0 und 1 aus.

0.491656005382537 0.569582343101501 ...

Das Modell wird verwendet, um ein SageMaker Modell mit dem Namen „your_model“ zu erstellen. Die folgende Analysekonfiguration zeigt, wie Sie mithilfe des Modells und des Datensatzes eine Token-basierte Erklärbarkeitsanalyse durchführen. Der text_config Parameter aktiviert die NLP-Erklärbarkeitsanalyse. Der granularity Parameter gibt an, dass bei der Analyse Tokens analysiert werden sollen.

Im Englischen ist jedes Token ein Wort. Das folgende Beispiel zeigt auch, wie eine direkte SHAP-Instance mit einer durchschnittlichen „Bewertung“ von 4 bereitgestellt wird. Ein spezielles Maskentoken „[MASK]“ wird verwendet, um ein Token (Wort) in „Kommentaren“ zu ersetzen. In diesem Beispiel wird auch ein GPU-Endpunkt-Instance-Typ verwendet, um die Inferenz zu beschleunigen.

{ "dataset_type": "text/csv", "headers": ["Target","Rating","Comments"] "label": "Target", "methods": { "shap": { "text_config": { "granularity": "token", "language": "english" } "baseline": [[4,"[MASK]"]], } }, "predictor": { "model_name": "your_nlp_model", "initial_instance_count": 1, "instance_type": "ml.g4dn.xlarge" } }

Das folgende Beispiel zeigt eine Analysekonfigurationsdatei, die die Bedeutung von Rechenfunktionen für Computer Vision zeigt. In diesem Beispiel besteht der Eingabedatensatz aus JPEG-Bildern. Der Datensatz wird dem SageMaker Clarify-Auftrag durch den dataset Verarbeitungseingabeparameter zur Verfügung gestellt. Das Beispiel zeigt, wie Sie eine Erklärbarkeitsanalyse mit einem SageMaker Bildklassifizierungsmodell konfigurieren. In diesem Beispiel wurde ein Modell mit dem Namen your_cv_ic_model, darauf geschult, die Tiere auf den JPEG-Eingabebildern zu klassifizieren.

{ "dataset_type": "application/x-image", "methods": { "shap": { "image_config": { "model_type": "IMAGE_CLASSIFICATION", "num_segments": 20, "segment_compactness": 10 } }, "report": { "name": "report" } }, "predictor": { "model_name": "your_cv_ic_model", "initial_instance_count": 1, "instance_type": "ml.p2.xlarge", "label_headers": ["bird","cat","dog"] } }

Weitere Informationen zur Bildklassifizierung finden Sie unter Bildklassifikation - MXNet.

In diesem Beispiel your_cv_od_model wird ein SageMaker Objekterkennungsmodell auf denselben JPEG-Bildern trainiert, um die auf ihnen befindlichen Arzt zu identifizieren. Das folgende Beispiel zeigt, wie eine Erklärbarkeitsanalyse für das Objekterkennungsmodell konfiguriert wird.

{ "dataset_type": "application/x-image", "probability_threshold": 0.5, "methods": { "shap": { "image_config": { "model_type": "OBJECT_DETECTION", "max_objects": 3, "context": 1.0, "iou_threshold": 0.5, "num_segments": 20, "segment_compactness": 10 } }, "report": { "name": "report" } }, "predictor": { "model_name": "your_cv_od_model", "initial_instance_count": 1, "instance_type": "ml.p2.xlarge", "label_headers": ["bird","cat","dog"] } }