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 Verzerrung zu analysieren, müssen Sie einen Verarbeitungsjob 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. Weitere Informationen Einen SageMaker Clarif-Verarbeitungsjob konfigurieren zur Konfiguration eines Verarbeitungsauftrags und einer Analysedatei finden Sie unter.

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), Computer Vision (CV) und Zeitreihen (TS).

Sie können die Analysekonfigurationsdatei erstellen oder das SageMaker Python-SDK verwenden, um eine für Sie mit der SageMaker ClarifyProcessorAPI zu generieren. Das Anzeigen des Dateiinhalts kann hilfreich sein, um die zugrunde liegende Konfiguration zu verstehen, die vom SageMaker Clarify-Job 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

Für den Verarbeitungsauftrag SageMaker Clarify wird 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, mit denen Sie den SageMaker Clarif-Verarbeitungsjob an Ihren Anwendungsfall und die gewünschten Analysetypen anpassen können.

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

  • Version – (Optional) Die Versionszeichenfolge des Schemas der Analysekonfigurationsdatei. Wenn keine Version bereitgestellt 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:

    • Tabellarisch

      • text/csv für CSV

      • application/jsonlinesfür das dichte Format SageMaker JSON Lines

      • 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

    • Erläuterungen zum Prognosemodell für Zeitreihen

      • application/json für JSON

  • 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 alle Formattypen mit Ausnahme von Bild- und Zeitreihenanwendungen lädt der Verarbeitungsjob SageMaker Clarify den Eingabedatensatz als tabellarischer Datensatz in einen tabellarischen Datenrahmen. Dieses Format ermöglicht SageMaker die einfache Bearbeitung und Analyse des Eingabedatensatzes.

  • Überschriften — (Optional)

    • Tabellarisch: Eine Reihe von Zeichenketten, die die Spaltennamen eines tabellarischen Datensatzes enthalten. Wenn kein Wert angegeben wirdheaders, liest der SageMaker Clarif-Verarbeitungsjob die Header aus dem Datensatz. Wenn der Datensatz keine Kopfzeilen hat, generiert der Clarif-Verarbeitungsauftrag automatisch Platzhalternamen, die auf einem nullbasierten Spaltenindex basieren. Platzhalternamen für die erste und zweite Spalte lauten beispielsweisecolumn_0, column_1 und so weiter.

      Anmerkung

      Konventionell headers sollte if dataset_type is application/jsonlines or application/json die folgenden Namen in der angegebenen Reihenfolge enthalten:

      1. Namen von Funktionen

      2. Labelname (falls label angegeben)

      3. vorhergesagter Labelname (falls predicted_label angegeben)

      Ein Beispiel headers für einen application/jsonlines Datensatztyp, falls label angegeben ist: ["feature1","feature2","feature3","target_label"].

    • Zeitreihe: Eine Liste von Spaltennamen im Datensatz. Falls nicht angegeben, generiert Clarify Header zur internen Verwendung. Für Fälle, in denen Zeitreihen erklärbar sind, geben Sie die Header in der folgenden Reihenfolge an:

      1. Artikel-ID

      2. Zeitstempel

      3. Zielzeitreihe

      4. alle zugehörigen Zeitreihenspalten

      5. alle statischen Kovariatenspalten

  • 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 dem Training zu berechnen. Der Parameter predicted_label ist optional, wenn der Datensatz keine vorhergesagte Beschriftung enthält. Wenn vorhergesagte Labels für die Berechnung erforderlich sind, ruft der Verarbeitungsjob SageMaker Clarify Vorhersagen aus dem Modell ab.

    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.

  • Funktionen — (optional) Für non-time-series Anwendungsfälle erforderlich, wenn dies application/jsonlines oder dataset_type application/json ist. Ein JMESPath-Zeichenfolgenausdruck, der geschrieben wurde, um die Features im Eingabedatensatz 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 — (Optional) Gilt nur, wenn dataset_type ist. text/csv Der S3-URI für einen Datensatz, der vorhergesagte Labels enthält, die zur Berechnung von Bias-Metriken nach dem Training verwendet werden. Der Verarbeitungsjob SageMaker Clarify lädt die Vorhersagen aus dem angegebenen URI, anstatt Vorhersagen aus dem Modell abzurufen. 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 — (Optional) Gilt nur, wenn angegeben. predicted_label_dataset_uri Ein Array von Strings, die die Spaltennamen des vorhergesagten Label-Datensatzes 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 — (Optional) 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 Eingabedatensätze, und jeder ist auf mehrere Dateien aufgeteilt.

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

  • 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. Diese Funktion wird für Zeitreihen nicht unterstützt.

  • 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 wird probability_threshold in den folgenden Fällen verwendet:

    • Bei der Bias-Analyse nach dem Training 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 — (Optional) 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 Labelwerte unter. Amazon SageMaker klärt die Bedingungen für Voreingenommenheit 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 — (Optional) 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. Amazon SageMaker klärt die Bedingungen für Voreingenommenheit und Fairness Jedes Facettenobjekt umfasst die folgenden Felder:

    • name_or_index — (Optional) 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 — (Optional) Erforderlich, wenn es sich um einen numerischen Wert facet handelt und als Untergrenze für die Auswahl der sensitiven Gruppe verwendet label_values_or_threshold 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 — (Optional) Der Name oder der auf Null basierende Index der Spalte, die die Untergruppe angibt, die für die systematische Messgröße verwendet werden soll, oder. Bedingte demografische Disparität (CDD) Bedingte demografische Disparität bei prognostizierten Beschriftungen (CDDPL)

  • facet_dataset_uri — (Optional) Gilt nur, wenn dataset_type ist. text/csv 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 — (Optional) Gilt nur, wenn angegeben. facet_dataset_uri Eine Reihe von Zeichenketten, die Spaltennamen für den Facettendatensatz und optional den Bezeichner-Spaltenkopf enthalten, um den Facettendatensatz und den Hauptdatensatz zu verbinden, siehe. joinsource_name_or_index

  • time_series_data_config — (Optional) Gibt die Konfiguration an, die für die Datenverarbeitung einer Zeitreihe verwendet werden soll.

    • item_id — Eine Zeichenfolge oder ein auf Null basierender Integer-Index. Dieses Feld wird verwendet, um eine Element-ID im gemeinsam genutzten Eingabedatensatz zu finden.

    • timestamp — Eine Zeichenfolge oder ein auf Null basierender Integer-Index. Dieses Feld wird verwendet, um einen Zeitstempel im gemeinsam genutzten Eingabedatensatz zu finden.

    • dataset_format — Mögliche Werte sindcolumns, oder. item_records timestamp_records Dieses Feld wird verwendet, um das Format eines JSON-Datensatzes zu beschreiben. Dies ist das einzige Format, das für die Erklärbarkeit von Zeitreihen unterstützt wird.

    • target_time_series — Eine JMESPath-Zeichenfolge oder ein auf Null basierender Integer-Index. Dieses Feld wird verwendet, um die Zielzeitreihe im gemeinsam genutzten Eingabe-Dataset zu finden. Wenn dieser Parameter eine Zeichenfolge ist, dataset_format müssen alle anderen Parameter außer Zeichenketten oder Zeichenkettenlisten sein. Wenn dieser Parameter eine Ganzzahl ist, dataset_format müssen alle anderen Parameter außer Ganzzahlen oder Listen von ganzen Zahlen sein.

    • related_time_series — (Optional) Ein Array von JMESPath-Ausdrücken. Dieses Feld wird verwendet, um alle zugehörigen Zeitreihen im gemeinsam genutzten Eingabedatensatz zu finden, sofern vorhanden.

    • static_covariates — (Optional) Ein Array von JMESPath-Ausdrücken. Dieses Feld wird verwendet, um alle statischen Kovariatenfelder im gemeinsam genutzten Eingabedatensatz zu finden, sofern vorhanden.

    Beispiele finden Sie unter Beispiele für die Konfiguration von Zeitreihen-Datensätzen.

  • 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 dem Training berechnen möchten. Die ausführliche Beschreibung der Metriken finden Sie unter. Messen Sie die Voreingenommenheit vor dem Training Das Objekt hat die folgenden Parameter:

    • post_training_bias – Verwenden Sie diese Methode, wenn Sie Messwerte für Verzerrungen nach dem Training berechnen möchten. Die ausführliche Beschreibung der Metriken finden Sie unterMessen 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 SageMaker Clarify-Verarbeitungsjob 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. Falls nicht baseline angegeben, berechnet der Verarbeitungsauftrag SageMaker Clarify eine Baseline, indem der Eingabedatensatz in Clustern zusammengefasst wird. 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 Instances. 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 Basislinie angegeben ist, generiert der SageMaker Clarify-Verarbeitungsauftrag ein Maskenbild mit weißem Rauschen mit 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 Datensätze 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. Falls nicht baseline angegeben, versucht der SageMaker Clarif-Verarbeitungsauftrag, den Basisdatensatz zu berechnen, indem der tabellarische Datensatz in eine optimale Anzahl von Clustern zwischen 1 und 12 aufgeteilt wird. 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. Falls nicht num_samples angegeben, wählt der SageMaker Clarify-Verarbeitungsjob die Zahl 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 Instances.

        • mean_sq – Der Mittelwert der quadrierten lokalen SHAP-Werte aller Instances.

        • Median – Der Median der lokalen SHAP-Werte aller Instances.

      • 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 zur 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 Verarbeitungsjob SageMaker Clarify aggregiert die SHAP-Werte jedes Tokens und wählt dann die wichtigsten 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 — Schließen Sie diese Methode ein, um partielle Abhängigkeitsdiagramme (PDPs) zu berechnen. Ein Beispiel für eine Analysekonfiguration zur Generierung 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 features nicht angegeben, aber die shap Methode angefordert wird, wählt der SageMaker Clarify-Verarbeitungsauftrag die wichtigsten Funktionen auf der Grundlage ihrer SHAP-Attributionen 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.

    • asymmetric_shapley_value — Fügen Sie diese Methode hinzu, wenn Sie Erklärbarkeitsmetriken für Zeitreihen-Prognosemodelle berechnen möchten. Der SageMaker Verarbeitungsjob Clarify unterstützt den Algorithmus für asymmetrische Shapley-Werte. Asymmetrische Shapley-Werte sind eine Variante des Shapley-Werts, bei der das Symmetrieaxiom wegfällt. Weitere Informationen finden Sie unter Asymmetrische Shapley-Werte: Einbeziehung von kausalem Wissen in modellunabhängige Erklärbarkeit. Verwenden Sie diese Werte, um zu ermitteln, wie Merkmale zum Prognoseergebnis beitragen. Asymmetrische Shapley-Werte berücksichtigen die zeitlichen Abhängigkeiten der Zeitreihendaten, die Prognosemodelle als Eingabe verwenden.

      Der Algorithmus umfasst die folgenden Parameter:

      • Richtung — Verfügbare Typen sind chronologicalanti_chronological, undbidirectional. Durch die zeitliche Struktur kann in chronologischer oder antichronologischer Reihenfolge oder in beidem navigiert werden. Chronologische Erklärungen werden erstellt, indem vom ersten Zeitschritt an iterativ Informationen hinzugefügt werden. Bei antichronologischen Erklärungen werden Informationen hinzugefügt, die vom letzten Schritt an beginnen und sich dann rückwärts bewegen. Die letztgenannte Reihenfolge ist möglicherweise besser geeignet, wenn es um Verzerrungen in jüngster Zeit geht, z. B. bei der Prognose von Aktienkursen.

      • Granularität — Die Granularität der Erklärung, die verwendet werden soll. Die verfügbaren Granularitätsoptionen werden wie folgt angezeigt:

        • Zeitlichtimewise Erklärungen sind kostengünstig und geben nur Auskunft über bestimmte Zeitschritte, z. B. um herauszufinden, wie viel die Informationen des n-ten Tages in der Vergangenheit zur Prognose des m-ten Tages in der future beigetragen haben. Die resultierenden Attributionen erklären keine individuellen statischen Kovariaten und unterscheiden nicht zwischen Zielzeitreihen und verwandten Zeitreihen.

        • fine_grainedfine_grained Erklärungen sind rechenintensiver, bieten jedoch eine vollständige Aufschlüsselung aller Attributionen der Eingabevariablen. Die Methode berechnet ungefähre Erklärungen, um die Laufzeit zu reduzieren. Weitere Informationen finden Sie unter dem folgenden Parameternum_samples.

          Anmerkung

          fine_grainedErklärungen unterstützen nur die chronological Reihenfolge.

      • num_samples — (Optional) Dieses Argument ist für fine_grained Erklärungen erforderlich. Je höher die Zahl, desto genauer die Näherung. Diese Zahl sollte mit der Dimensionalität der Eingabe-Features skalieren. Als Faustregel gilt, diese Variable auf (1 + max (Anzahl verwandter Zeitreihen, Anzahl der statischen Kovariaten)) ^2 zu setzen, wenn das Ergebnis nicht zu groß ist.

      • baseline — (Optional) Die Basiskonfiguration zum Ersetzen von out-of-coalition Werten für die entsprechenden Datensätze (auch bekannt als Hintergrunddaten). Der folgende Ausschnitt zeigt ein Beispiel für eine Baseline-Konfiguration:

        { "related_time_series": "zero", "static_covariates": { <item_id_1>: [0, 2], <item_id_2>: [-1, 1] }, "target_time_series": "zero" }
        • Für Zeitdaten wie Zielzeitreihen oder verwandte Zeitreihen kann es sich bei den Basiswerttypen um einen der folgenden Werte handeln:

          • zero— Alle out-of-coalition Werte werden durch 0,0 ersetzt.

          • mean— Alle out-of-coalition Werte werden durch den Durchschnitt einer Zeitreihe ersetzt.

        • Für statische Kovariaten sollte ein Basiswert nur angegeben werden, wenn die Modellanforderung statische Kovariatenwerte verwendet. In diesem Fall ist dieses Feld erforderlich. Die Basislinie sollte für jedes Element als Liste bereitgestellt werden. Wenn Sie beispielsweise einen Datensatz mit zwei statischen Kovariaten haben, könnte Ihre Basiskonfiguration wie folgt aussehen:

          "static_covariates": { <item_id_1>: [1, 1], <item_id_2>: [0, 1] }

          Im vorherigen Beispiel <item_id_1><item_id_2>sind dies die Element-IDs aus dem Datensatz.

    • Bericht – (Optional) Verwenden Sie dieses Objekt, um den Analysebericht anzupassen. Dieser Parameter wird für Jobs zur Erklärung von Zeitreihen nicht unterstützt. 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, und MyReport.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 die post_training_bias Methodeshap, asymmetric_shapley_valuepdp, oder angefordert wird, die vorhergesagten Labels 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 API erstellt wurde. CreateModel Wenn Sie model_name statt endpoint_name angeben, erstellt der SageMaker Clarify-Verarbeitungsauftrag 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 Modell mit mehreren Modellen handelt, muss der Parameter angegeben werden. target_model Weitere Informationen zu Endpunkten mit mehreren Modellen 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 endpoint_name_prefix an, wenn Sie den Zugriff auf den Endpunkt anhand des Endpunktnamens einschränken möchten. Das Präfix muss dem EndpointNameMuster entsprechen, und seine maximale Länge beträgt. 23 Standardeinstellung: sm-clarify.

    • initial_instance_count – Gibt die Anzahl der Instances für den Shadow-Endpunkt an. Erforderlich, wenn Sie model_name statt endpoint_name angeben. Der Wert für initial_instance_count kann sich vom Wert InstanceCountdes Jobs unterscheiden, wir empfehlen jedoch ein Verhältnis von 1:1.

    • instance_type – Gibt den Instance-Typ für den Schattenendpunkt 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 kann der für instance_type 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 model_name anstelle von endpoint_name für accelerator_type zur Verfügung stellen. Ein Beispielwert für accelerator_type ist ml.eia2.large. Standardmäßig wird kein Beschleuniger verwendet.

    • endpoint_name — Der Name Ihres SageMaker Endpunkts, der von der API erstellt wurde. CreateEndpoint 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 generell nicht empfohlen, einen vorhandenen Produktionsendpunkt für SageMaker die Clarify-Analyse zu verwenden.

    • target_model — Der Zeichenkettenwert, der an den TargetModel API-Parameter übergeben wird. SageMaker InvokeEndpoint 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 Hinweise zu Endpunkten mit mehreren Modellen 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 Zeichenkettenwert wird an den CustomAttributes API-Parameter übergeben. SageMaker InvokeEndpoint

    • content_type – content_type – Das Modelleingabeformat, das zum Abrufen von Vorhersagen vom Endpunkt verwendet werden soll. Falls angegeben, wird er an den ContentType Parameter der SageMaker InvokeEndpointAPI ü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 die Erklärbarkeit von Zeitreihenprognosen ist der gültige Wert. application/json

      • 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 dies der Fall ist. dataset_type application/x-parquet 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 InvokeEndpointAPI ü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 die Erklärbarkeit von Zeitreihenprognosen ist der gültige Wert. application/json

      • 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-Line {"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 Datensatz-Instances 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"

      Weitere Beispiele finden Sie unter Endpunktanforderungen für Zeitreihendaten.

    • label — (Optional) Ein auf Null basierender Integer-Index oder eine JMESPath-Ausdruckszeichenfolge, die verwendet wird, um vorhergesagte Labels 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. Diese Funktion wird für Zeitreihen nicht unterstützt.

      • 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 — (Optional) Ein Array von Werten, die das Label 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 (Werte) für die Erklärbarkeitsanalyse (aber nicht für die Erklärbarkeit von Zeitreihen) 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.

    • time_series_predictor_config — (Optional) Wird nur für die Erklärbarkeit von Zeitreihen verwendet. Wird verwendet, um dem Clarif-Prozessor mitzuteilen, wie Daten SageMaker aus den als S3-URI übergebenen Daten korrekt analysiert werden. dataset_uri

      • Prognose — Ein JMESPath-Ausdruck, der zum Extrahieren des Prognoseergebnisses verwendet wird.

Beispielkonfigurationsdateien

Die folgenden Abschnitte enthalten Beispieldateien zur Konfiguration von Analysen für Daten im CSV-Format, im Format JSON Lines und für die Erklärbarkeit von Natural Language Processing (NLP), Computer Vision (CV) und Zeitreihen (TS).

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 Clarify-Job durch die SageMaker Verarbeitungseingabe zur dataset 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 dem Training

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 SageMaker Clarify-Verarbeitungsjob an, alle vor dem Training vorgenommenen Verzerrungsmetriken 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 dem Training

Sie können vor dem Training Messwerte für Verzerrungen vor dem Training berechnen. Sie benötigen jedoch ein trainiertes Modell, um die Messwerte für Verzerrungen nach dem Training 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 ...

Im folgenden Konfigurationsbeispiel wird der Verarbeitungsjob SageMaker Clarify angewiesen, alle möglichen Messwerte für Verzerrungen anhand des Datensatzes und der Vorhersagen aus der Modellausgabe zu berechnen. In dem Beispiel wird das Modell auf einem SageMaker Endpunkt your_endpoint bereitgestellt.

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, eine SHAP-Basisprobe zu berechnen. In diesem Beispiel ist die Wahrscheinlichkeit auf 1 gesetzt. Dadurch wird der SageMaker Clarify-Verarbeitungsjob angewiesen, den Wahrscheinlichkeitswert aus der zweiten Spalte der Modellausgabe zu extrahieren (unter Verwendung einer nullbasierten 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 Verarbeitungsjob 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 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 2 Top-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 Parameters für den SageMaker Clarif-Verarbeitungsauftrag angeben. model_name Das folgende Beispiel zeigt, wie Sie ein Modell mit dem Namen your_model angeben. Der SageMaker Clarif-Verarbeitungsauftrag 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 enthält der eingehende Datensatz dieselben Daten wie im vorherigen Abschnitt, sie liegen jedoch im dichten Format SageMaker JSON Lines vor. 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-Job 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 dem Training berechnet werden, die die Bedeutung von Features für einen Datensatz im Format JSON Lines zeigen.

Berechnen von Verzerrungsmetriken vor dem Training

Geben Sie die Bezeichnung, die Merkmale, das Format und die Methoden zur Messung der Messwerte für Verzerrungen vor dem Training 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 Clarify-Verarbeitungsauftrag das Feature-Array aus jedem Datensatz extrahieren kann. Der label Parameter ist auf den JMESPath-Ausdruck „Label“ gesetzt, sodass der Clarify-Verarbeitungsauftrag SageMaker das Ground-Truth-Label 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 dem Training 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 bereitstellen. your_endpoint In der folgenden Beispielanalysekonfiguration wird der Verarbeitungsjob SageMaker Clarify angewiesen, alle möglichen Messwerte für Verzerrungen 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 er den $features Platzhalter durch eine Reihe von Funktionen ersetzt.

{ "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 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 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 2 Top-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 enthält der eingehende Datensatz dieselben Daten wie im vorherigen Abschnitt, sie liegen jedoch im dichten SageMaker JSON-Format vor. 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 durch die dataset Verarbeitungseingabe für den SageMaker Clarif-Job bereitgestellt.

[ {"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 dem Training berechnet werden, die die Bedeutung von Merkmalen für einen Datensatz im Format JSON Lines zeigen.

Berechnen von Verzerrungsmetriken vor dem Training

Geben Sie die Bezeichnung, die Merkmale, das Format und die Methoden zur Messung der Messwerte für Verzerrungen vor dem Training 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 trainiertes Modell, um die Messwerte für Verzerrungen nach dem Training 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 SageMaker Clarify-Verarbeitungsjob verwendet dann den content_template Parameter, um die Modelleingabe zu verfassen.

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.

In der folgenden Beispielanalysekonfiguration wird der Verarbeitungsjob SageMaker Clarify angewiesen, alle möglichen Messwerte für systematische Abweichungen 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 Verarbeitungsauftrag SageMaker Clarify Platzhalter mit generischen Namen wie column_0 oder column_1 für Feature-Header und label0 für 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 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 2 Top-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 Clarify-Job durch den SageMaker Eingabeparameter für die dataset Verarbeitung zur Verfügung gestellt.

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 trainiert. 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 Clarif-Job durch den SageMaker Eingabeparameter für die dataset Verarbeitung zur Verfügung gestellt. Das Beispiel zeigt, wie eine Erklärbarkeitsanalyse mithilfe eines SageMaker Bildklassifizierungsmodells konfiguriert wird. In diesem Beispiel wurde ein Modell mit dem Namen your_cv_ic_model, darauf trainiert, 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 anhand derselben JPEG-Bilder trainiert, um die Tiere auf den Bildern 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"] } }

Das folgende Beispiel zeigt eine Analysekonfigurationsdatei zur Berechnung der Merkmalswichtigkeit für eine Zeitreihe (TS). In diesem Beispiel handelt es sich bei dem eingehenden Datensatz um einen Zeitreihendatensatz im JSON-Format mit einer Reihe dynamischer und statischer Kovariatenmerkmale. Der Datensatz wird dem Clarify-Job durch SageMaker den Eingabeparameter für die Verarbeitung des Datensatzes bereitgestellt. dataset_uri

[ { "item_id": "item1", "timestamp": "2019-09-11", "target_value": 47650.3, "dynamic_feature_1": 0.4576, "dynamic_feature_2": 0.2164, "dynamic_feature_3": 0.1906, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item1", "timestamp": "2019-09-12", "target_value": 47380.3, "dynamic_feature_1": 0.4839, "dynamic_feature_2": 0.2274, "dynamic_feature_3": 0.1889, "static_feature_1": 3, "static_feature_2": 4 }, { "item_id": "item2", "timestamp": "2020-04-23", "target_value": 35601.4, "dynamic_feature_1": 0.5264, "dynamic_feature_2": 0.3838, "dynamic_feature_3": 0.4604, "static_feature_1": 1, "static_feature_2": 2 }, ]

In den folgenden Abschnitten wird erklärt, wie Feature-Attributionen für ein Prognosemodell mit dem asymmetrischen Shapley-Werte-Algorithmus für einen JSON-Datensatz berechnet werden.

Berechnen Sie die Erklärungen für Zeitreihen-Prognosemodelle

In der folgenden Beispielkonfiguration werden die Optionen dargestellt, die von dem Job zur Berechnung der Erklärungen für Zeitreihen-Prognosemodelle verwendet werden.

{ 'dataset_type': 'application/json', 'dataset_uri': 'DATASET_URI', 'methods': { 'asymmetric_shapley_value': { 'baseline': { "related_time_series": "zero", "static_covariates": { "item1": [0, 0], "item2": [0, 0] }, "target_time_series": "zero" }, 'direction': 'chronological', 'granularity': 'fine_grained', 'num_samples': 10 }, 'report': {'name': 'report', 'title': 'Analysis Report'} }, 'predictor': { 'accept_type': 'application/json', 'content_template': '{"instances": $records}', 'endpoint_name': 'ENDPOINT_NAME', 'content_type': 'application/json', 'record_template': '{ "start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates }', 'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'} }, 'time_series_data_config': { 'dataset_format': 'timestamp_records', 'item_id': '[].item_id', 'related_time_series': ['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'], 'static_covariates': ['[].static_feature_1', '[].static_feature_2'], 'target_time_series': '[].target_value', 'timestamp': '[].timestamp' } }
Konfiguration der Erklärbarkeit von Zeitreihen

Das vorherige Beispiel verwendet asymmetric_shapley_value inmethods, um die Erklärbarkeitsargumente für Zeitreihen wie Basislinie, Richtung, Granularität und Anzahl der Stichproben zu definieren. Die Basiswerte werden für alle drei Datentypen festgelegt: verwandte Zeitreihen, statische Kovariaten und Zielzeitreihen. Diese Felder weisen den Clarify-Prozessor SageMaker an, Feature-Attributionen für jeweils ein Element zu berechnen.

Konfiguration des Prädiktors

Sie können die Payload-Struktur, die der Clariy-Prozessor sendet, mithilfe der SageMaker JMESPath-Syntax vollständig steuern. Im vorherigen Beispiel weist die predictor Konfiguration Clarify an, Datensätze zu aggregieren'{"instances": $records}', wobei jeder Datensatz mit den im Beispiel record_template angegebenen Argumenten definiert wird. Beachten Sie$start_time, dass$target_time_series, und interne Token $static_covariates sind$related_time_series, die verwendet werden, um Datensatzwerte Endpunktanforderungswerten zuzuordnen.

In ähnlicher Weise time_series_predictor_config wird das Attribut forecast in verwendet, um die Modellprognose aus der Endpunktreaktion zu extrahieren. Ihre Endpunkt-Batch-Antwort könnte beispielsweise wie folgt aussehen:

{ "predictions": [ {"mean": [13.4, 3.6, 1.0]}, {"mean": [23.0, 4.7, 3.0]}, {"mean": [3.4, 5.6, 2.0]} ] }

Angenommen, Sie geben die folgende Konfiguration für Zeitreihenprädiktoren an:

'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}

Der Prognosewert wird wie folgt analysiert:

[ [13.4, 3.6], [23.0, 4.7], [3.4, 5.6] ]
Konfiguration der Daten

Verwenden Sie das time_series_data_config Attribut, um den Clarify-Prozessor anzuweisen, Daten anhand der SageMaker Daten, die als S3-URI übergeben wurden, korrekt zu analysieren. dataset_uri