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.
Konfigurationsdateien für 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. Dieser Leitfaden 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 SageMaker Python
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 Analysekonfigurationsdatei hat JSON das Format UTF -8 und ist 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-Verarbeitungsauftrag 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/jsonlines
für das dichte Format SageMaker AI 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) Die einheitliche Ressourcenkennung (URI) des Hauptdatensatzes. Wenn Sie ein URI S3-Präfix angeben, sammelt der SageMaker Clarif-Verarbeitungsauftrag rekursiv alle S3-Dateien, die sich unter dem Präfix befinden. Sie können einer Image-Manifestdatei für Probleme mit maschinellem Sehen entweder ein URI URI S3-Präfix oder ein S3-Präfix hinzufügen. Wenn
dataset_uri
angegeben, hat es Vorrang vor der Auftragseingabe für die Datensatzverarbeitung. Für jeden Formattyp, mit Ausnahme von Anwendungsfällen für Bilder und Zeitreihen, lädt der Verarbeitungsjob SageMaker Clarify den Eingabedatensatz als tabellarischen Datensatz in einen tabellarischen Datenrahmen. Dieses Format ermöglicht SageMaker KI 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 wird
headers
, 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 ifdataset_type
isapplication/jsonlines
orapplication/json
die folgenden Namen in der angegebenen Reihenfolge enthalten:Namen von Funktionen
Labelname (falls
label
angegeben)vorhergesagter Labelname (falls
predicted_label
angegeben)
Ein Beispiel
headers
für einenapplication/jsonlines
Datensatztyp, fallslabel
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:
Artikel-ID
Zeitstempel
Zielzeitreihe
alle zugehörigen Zeitreihenspalten
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ürlabel
wird abhängig vom Wert desdataset_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 ja
application/jsonlines
,label
mussdataset_type
es sich um einen JMESPathAusdruck handeln, der geschrieben wurde, um das Ground-Truth-Etikett aus dem Datensatz zu extrahieren. Gemäß der Konvention sollte headers
es den Labelnamen enthalten. -
Falls ja
application/json
,label
mussdataset_type
es sich um einen JMESPathAusdruck handeln, der geschrieben wurde, um das Ground-Truth-Etikett für jeden Datensatz im Datensatz zu extrahieren. Dieser JMESPath Ausdruck muss eine Liste von Bezeichnungen erzeugen, bei denen das i-th-Label mit dem i-th-Label 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 Parameterpredicted_label
ist optional, wenn der Datensatz keine vorhergesagte Beschriftung enthält. Wenn vorhergesagte Labels für die Berechnung erforderlich sind, erhält der SageMaker Clarify-Verarbeitungsjob Vorhersagen aus dem Modell.Der Wert für
predicted_label
wird abhängig vom Wert vondataset_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, aberpredicted_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 hat
application/jsonlines
,predicted_label
muss ein gültiger JMESPathAusdruck geschrieben werden, um das vorhergesagte Label aus dem Datensatz zu extrahieren. Wenn headers
angegeben ist, sollte es vereinbarungsgemäß den vorausgesagten Etikettennamen enthalten. -
Falls ja
dataset_type
application/json
,predicted_label
muss ein JMESPathAusdruck geschrieben werden, um das vorhergesagte Label für jeden Datensatz im Datensatz zu extrahieren. Der JMESPath Ausdruck sollte eine Liste von vorhergesagten Labels erzeugen, wobei das i das vorhergesagte Label für sie im Datensatz ist.
-
-
features — (Optional) Für non-time-series Anwendungsfälle erforderlich, wenn es oder ist.
dataset_type
application/jsonlines
application/json
Ein JMESPath Zeichenkettenausdruck, der geschrieben wurde, um die Features im Eingabe-Dataset zu lokalisieren. Dennapplication/jsonlines
auf jede Linie wird ein JMESPath Ausdruck angewendet, um die Features für diesen Datensatz zu extrahieren. Dennapplication/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 die i-te Zeile die Merkmale enthält, die mit dem i-th-Datensatz korrelieren. Bei einem Wertdataset_type
vontext/csv
oderapplication/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 Verzerrungsmetriken nach dem Training verwendet werden. Der Verarbeitungsjob SageMaker Clarify lädt die Vorhersagen aus dem bereitgestellten, URI anstatt Vorhersagen aus dem Modell abzurufen. In diesem Fallpredicted_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 vonjoinsource_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 kannpredicted_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 Parameterjoinsource_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 InstanceCount
1
-
-
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 wirdprobability_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 in1
umgerechnet. Dagegen wird eine Punktzahl, die kleiner oder gleich dem Schwellenwert ist, in0
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
und1
. Wenn der Labelwert für eine in einer Stichprobe beobachtete demografische Gruppe günstig1
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
, unddog
. 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
bis1
. Wenn ein Wert, der größer als ist, darauf hinweisen0.5
sollte, dass eine Stichprobe ein positives Ergebnis erzielt hat,label_values_or_threshold
sollte der Wert auf0.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 verwendetlabel_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 angegebenvalue_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 Einstellungvalue_or_threshold
für verschiedenefacet
Datentypen finden Sie in den folgenden Beispielen:-
Bei einem binären Facettendatentyp hat das Feature zwei mögliche Werte,
0
und1
. 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
, unddog
. 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 Wertbird
odercat
, während die Facette in der benachteiligten Gruppe einen Wertdog
hat. -
Bei einem numerischen Facettendatentyp ist der Feature-Wert kontinuierlich und reicht von
0
bis1
. Wenn beispielsweise ein Wert, der größer als0.5
ist, eine Stichprobe als bevorzugt kennzeichnen soll,value_or_threshold
sollte er auf0.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 als0.5
, während der Wert der Facette in der benachteiligten Gruppe kleiner oder gleich wie0.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 Bezeichnungen () CDDPL
-
facet_dataset_uri — (Optional) Gilt nur, wenn dataset_type
text/csv
Das 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 Parameterfacet
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 sind
columns
, oder.item_records
timestamp_records
Dieses Feld wird verwendet, um das Format eines JSON Datensatzes zu beschreiben. Dies ist das einzige Format, das aus Gründen der 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 Ausdrücken. JMESPath Dieses Feld wird verwendet, um alle zugehörigen Zeitreihen im gemeinsam genutzten Eingabedatensatz zu finden, sofern vorhanden.
static_covariates — (Optional) Eine Reihe von Ausdrücken. JMESPath 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. Messwerte zu Verzerrungen vor dem Training Das Objekt hat die folgenden Parameter:
-
Methoden – Ein Array, das alle Messwerte für Verzerrungen vor dem Training aus der folgenden Liste enthält, die Sie berechnen möchten. Stellen Sie
methods
aufall
ein, um alle Messwerte für Verzerrungen vor dem Training zu berechnen. Das Array["CI", "DPL"]
berechnet beispielsweise das Klassenungleichgewicht und den Unterschied in den Proportionen von Beschriftungen.-
DPL
für Unterschied in den Proportionen der Etiketten () DPL -
LP
für Lp-Norm (LP) -
KS
für Kolmogorow-Smirnow (KS)
-
-
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 unterDaten und Modellverzerrungsmetriken nach dem Training. Das
post_training_bias
Objekt hat die folgenden Parameter.-
Methoden – Ein Array, das alle Messwerte für Verzerrungen nach dem Training aus der folgenden Liste enthält, die Sie berechnen möchten. Stellen Sie
methods
aufall
ein, um alle Messwerte für Verzerrungen nach dem Training zu berechnen. Beispielsweise["DPPL", "DI"]
berechnet das Array den Unterschied zwischen positiven Proportionen bei vorhergesagten Kennzeichnungen und unterschiedlichen Auswirkungen. Die verfügbaren Methoden sind:-
DPPL
für Unterschied bei den positiven Anteilen bei den vorhergesagten Kennzeichnungen () DPPL -
DI
für Disparate Impact (DI) -
SD
für Spezifitätsunterschied (SD) -
RD
für Unterschied zurückrufen (RD) -
AD
für Genauigkeitsunterschied (AD) -
TE
für Gleichbehandlung (TE) -
CDDPL
für Bedingte demografische Disparität bei prognostizierten Bezeichnungen () CDDPL -
GE
für Generalisierte Entropie (GE)
-
-
-
shap — Fügen Sie diese Methode hinzu, wenn Sie SHAP Werte berechnen möchten. Der SageMaker Clarify-Verarbeitungsjob unterstützt den SHAP Kernel-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 SHAPGrundlinien für die Erklärbarkeit
-
Bei einem tabellarischen Datensatz
baseline
kann es sich entweder um die direkten Basisdaten oder um die S3-Daten URI einer Basisdatei handeln. Falls nichtbaseline
angegeben, berechnet der Verarbeitungsauftrag SageMaker Clarify eine Basislinie, indem der Eingabedatensatz geclustert 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 durchgranularity
angegebene Texteinheit ersetzt. Ein gängiger Platzhalter ist beispielsweise „[MASK]“, der für ein fehlendes oder unbekanntes Wort oder einen Textteil verwendet wird.
Die folgenden Beispiele verdeutlichen, wie Sie direkte Basisdaten für verschiedene
dataset_type
Parameter festlegen:-
Wenn
dataset_type
entwedertext/csv
oderapplication/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, undfeatures
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 derbaseline
Datensatz dieselbe Struktur und dasselbe Format wie der Eingabedatensatz haben.
-
-
Bei Problemen mit dem maschinellen Sehen
baseline
kann dies der Wert S3 URI eines Bilds sein, der verwendet wird, um Merkmale (Segmente) aus dem Eingabebild auszublenden. Bei der Verarbeitung von SageMaker Clarify wird das Maskenbild geladen und seine Größe auf dieselbe Auflösung wie das Eingabebild angepasst. Wenn keine Basislinie angegeben ist, generiert der SageMaker Clarify-Verarbeitungsauftrag ein Maskenbild mit weißem Rauschenmit derselben Auflösung wie das Eingabebild.
-
-
features_to_explain — (Optional) Ein Array von Zeichenketten oder nullbasierten Indizes von Feature-Spalten, für die Werte berechnet werden sollen. SHAP 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. Derfeatures_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. Wenn nicht
baseline
angegeben, versucht der Verarbeitungsjob SageMaker Clarify, den Baseline-Datensatz zu berechnen, indem er den tabellarischen Datensatz in eine optimale Anzahl von Clustern zwischen und1
unterteilt.12
Die Anzahl der Basisinstanzen wirkt sich direkt auf die Laufzeit der SHAP Analyse aus. -
num_samples — (Optional) Die Anzahl der Samples, die im SHAP Kernel-Algorithmus verwendet werden sollen. Falls nicht
num_samples
angegeben, wählt der SageMaker Clarif-Verarbeitungsjob die Anzahl 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 Job zu generieren. Wenn kein Startwert angegeben ist, kann das Modell jedes Mal, wenn derselbe Job ausgeführt wird, leicht unterschiedliche Werte ausgeben. SHAP
-
use_logit – (Optional) Ein boolescher Wert, der angibt, dass die Logit-Funktion auf die Modellvorhersagen angewendet werden soll. Standardeinstellung auf
false
.use_logit
Ist dies dertrue
Fall, werden die SHAP Werte anhand der logistischen Regressionskoeffizienten berechnet, die als logarithmische Chancenverhältnisse 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, die verwendet wird, um die lokalen SHAP Werte (die SHAP Werte für jede Instanz) aller Instanzen zu den globalen SHAP Werten (den SHAP Werten für den gesamten Datensatz) zu aggregieren. Standardeinstellung:
mean_abs
. Die folgenden Methoden können verwendet werden, um Werte zu aggregieren. SHAP-
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 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
oderparagraph
. 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 Siemulti-language
ein, um eine Mischung aus mehreren Sprachen zu erhalten. -
max_top_tokens — (Optional) Die maximale Anzahl von Top-Tokens, basierend auf globalen Werten. SHAP 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 Top-Tokens auf der Grundlage ihrer globalen Werte aus. SHAP Die globalen SHAP Werte der ausgewählten Top-Tokens sind imglobal_top_shap_text
Abschnitt der Datei analysis.json enthalten. -
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 sind0
alles maskieren oder1
nichts maskieren. Standardeinstellung: 1. -
iou_threshold — Gilt nur, wenn dies der Wert
model_type
ist.OBJECT_DETECTION
Der kleinste Schnittpunkt der Kennzahl 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 zu berechnen ()PDPs. Ein Beispiel für eine zu generierende Analysekonfiguration finden Sie PDPs 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 Diagrammen. -
top_k_features — (Optional) Gibt die Anzahl der Top-Features an, die zur Generierung von Diagrammen verwendet werden. PDP Wenn
features
nicht angegeben, aber dieshap
Methode angefordert wird, wählt der SageMaker Clarify-Verarbeitungsjob die Top-Features auf der Grundlage ihrer Attributionen aus. SHAP 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 Diagramme an.
-
-
asymmetric_shapley_value — Verwenden Sie diese Methode, 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
chronological
anti_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, die verwendet werden soll. Die verfügbaren Granularitätsoptionen werden wie folgt angezeigt:
Zeitlich —
timewise
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_grained —
fine_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_grained
Erklärungen unterstützen nur diechronological
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_2>
sind dies die<item_id_1>
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, Bericht und HTML Bericht. PDF Die Funktion hat die folgenden Parameter.
-
name – Dateiname der Berichtsdateien. Wenn dies beispielsweise der
name
MyReport
ist, lauten die BerichtsdateienMyReport.ipynb
,MyReport.html
, undMyReport.pdf
. Standardeinstellung:report
. -
title – (Optional) Titelzeichenfolge für den Bericht. Standardeinstellung:
SageMaker AI 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_value
, oder angefordert wirdpdp
, die vorhergesagten Labels jedoch nicht als Teil des Eingabe-Datasets bereitgestellt werden. Die folgenden Parameter können in Verbindung mitpredictor
verwendet werden:-
model_name — Der Name Ihres SageMaker KI-Modells, das von der erstellt wurde. CreateModelAPI 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. Multimodell-Endpunkte -
endpoint_name_prefix – (Optional) Ein benutzerdefiniertes Namenspräfix für den Schattenendpunkt. Anwendbar, wenn Sie anstelle von
model_name
endpoint_name
angeben. Geben Sie beispielsweiseendpoint_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 kanninstance_type
auf "ml.m5.large" gesetzt werden. In einigen Fällen kann der fürinstance_type
angegebene Wert dazu beitragen, die Inferenzzeit des Modells zu reduzieren. Um beispielsweise effizient arbeiten zu können, benötigen Modelle zur Verarbeitung natürlicher Sprache und Computer-Vision-Modelle in der Regel einen Instance-Typ Graphics Processing Unit (GPU). -
endpoint_name — Der Name Ihres SageMaker KI-Endpunkts, der von der erstellt wurde. CreateEndpointAPI Falls
endpoint_name
angegeben, hat er Vorrang vor demmodel_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 (wieshap
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 Parameter der SageMaker KI weitergegeben wird. InvokeEndpointAPI 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 Endpunkten mit mehreren Modellen finden Sie unter. Multimodell-Endpunkte
-
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
Parameter der SageMaker KI übergeben. InvokeEndpointAPI -
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 KI übergeben InvokeEndpointAPI.-
Zur besseren Erklärung des maschinellen Sehens sind
image/jpeg
,image/png
oderapplication/x-npy
gültige Werte. Fallscontent_type
nicht angegeben, ist der Standardwertimage/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,
undapplication/json
gültige Werte. Ein Wert fürcontent_type
ist erforderlich, wenn dies der Fall ist.dataset_type
application/x-parquet
Andernfalls wirdcontent_type
standardmäßig mit dem Wert des Parametersdataset_type
belegt.
-
-
accept_type – Das Modellausgabeformat, das zum Abrufen von Vorhersagen vom Endpunkt verwendet werden soll. Der Wert für
accept_type
wird an denAccept
Parameter der SageMaker KI übergeben InvokeEndpointAPI.-
Wenn aus Gründen der Computer-Vision-Erklärung "OBJECT_DETECTION"
model_type
ist, dann ist deraccept_type
Standardwert.application/json
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
, undapplication/json
gültige Werte. Wenn kein Wert für angegebenaccept_type
wird, wirdaccept_type
standardmäßig der Wert descontent_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 descontent_type
Parameters entwederapplication/jsonlines
oderapplication/json
ist.Wenn der
content_type
Parameterapplication/jsonlines
ist, sollte die Vorlage nur einen Platzhalter haben,$features
, der zur Laufzeit durch eine Feature-Liste ersetzt wird. Wenn die Vorlage beispielsweise: und ein Datensatz hat drei numerische Feature-Werte:1
3
,2
dann wird der Datensatz als Linie an das Modell gesendet."{\"myfeatures\":$features}"
JSON{"myfeatures":[1,2,3]}
Wenn
content_type
application/json
ist, kann die Vorlage entweder einen Platzhalter$record
oderrecords
enthalten. Wenn der Platzhalterrecord
ist, wird ein einzelner Datensatz durch einen Datensatz ersetzt, auf den die Vorlagerecord_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 vonrecord_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-NameA
, der in der Platzhaltersyntax"${A}"
notiert ist, durch den Feature-Wert fürA
ersetzt.
Der Wert für
record_template
wird mit verwendet, um diecontent_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 dierecord_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
undrecord_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, istlabel
der Index aller vorhergesagten Labels in der Modellausgabe. -
Wenn
accept_type
esapplication/jsonlines
oder istapplication/json
, dannlabel
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 Visionlabel_headers
ist ein Wert für erforderlich. Wenn die Bezeichnung beispielsweise bei einem Klassifizierungsproblem mit mehreren Klassen drei mögliche Werte hat,bird
,cat
, unddog
,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 (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 desaccept_type
Parameters ab.-
Wenn
accept_type
text/csv
ist, istprobability
der Index der Wahrscheinlichkeiten (Werte) in der Modellausgabe. Fallsprobability
nicht angegeben, wird die gesamte Modellausgabe als Wahrscheinlichkeiten (Punktzahlen) verwendet. -
Wenn
accept_type
es sich um JSON Daten handelt (entwederapplication/jsonlines
oderapplication/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 zur Erklärung von Zeitreihen verwendet. Wird verwendet, um dem Clarif-Prozessor mitzuteilen, wie SageMaker Daten aus den als S3 übergebenen Daten korrekt analysiert werden. URI
dataset_uri
Prognose — Ein JMESPath Ausdruck, der verwendet wird, um das Prognoseergebnis zu extrahieren.
-
Beispielkonfigurationsdateien
Die folgenden Abschnitte enthalten Beispieldateien für Analysekonfigurationen für Daten im CSV Format JSON Lines und für die Erklärbarkeit von natürlicher Sprachverarbeitung (NLP), Computer Vision (CV) und Zeitreihen (TS).
Die folgenden Beispiele zeigen, wie die Verzerrungs- und Erklärbarkeitsanalyse für einen tabellarischen Datensatz im Format konfiguriert wird. CSV 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 durch die Verarbeitungseingabe für den SageMaker Clarif-Job bereitgestellt. dataset
"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 Messgrößen, SHAP Werte und partielle Abhängigkeitsdiagramme (PDPs) berechnet werden, die die Bedeutung von Merkmalen für einen Datensatz im CSV Format veranschaulichen, vor und nach dem Training.
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 Verarbeitungsjob SageMaker Clarify 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 systematische Abweichungen anhand des Datensatzes und der Vorhersagen aus der Modellausgabe zu berechnen. Im Beispiel wird das Modell auf einem SageMaker KI-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
} }
Berechne 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 bezeichnet werden.
{ "dataset_type": "
text/csv
", "label": "Target
", "methods": { "shap": { "num_clusters":1
} }, "predictor": { "endpoint_name": "your_endpoint
", "probability":1
} }
In diesem Beispiel wird der SHAP baseline
Parameter weggelassen und der Wert des num_clusters
Parameters 1
ist . Dadurch wird der SageMaker Clarify-Prozessor angewiesen, eine SHAP Ausgangsstichprobe 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
Merkmals im Analysebericht mithilfe von angezeigt wirdPDPs. 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 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.5
eingestellt, 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 Werten zu berechnen. SHAP
{ "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 mithilfe des Parameters den Namen Ihres SageMaker KI-Modells für den SageMaker Clarif-Verarbeitungsjob angeben. model_name
Das folgende Beispiel zeigt, wie Sie ein Modell mit dem Namen your_model
angeben. Der SageMaker Clarif-Verarbeitungsjob 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 Format SageMaker AI JSON Lines Dense 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 Clarif-Job SageMaker durch die Verarbeitungseingabe „Datensatz“ zur Verfügung gestellt. Weitere Informationen zu JSON Linien finden Sie unterJSONLINESFormat der Anfrage.
{"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 SHAP Messwerte, Werte und partielle Abhängigkeitsdiagramme (PDPs) berechnet werden, die die Bedeutung von Merkmalen für einen Datensatz im JSON Linienformat veranschaulichen, vor und nach dem Training.
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 die Feature-Reihe aus jedem Datensatz extrahieren kann. Der label
Parameter ist auf den JMESPath Ausdruck „Label“ gesetzt, sodass der SageMaker Clarify-Verarbeitungsauftrag das Ground-Truth-Etikett 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 Klassifikationsmodell, 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 KI-Endpunkt mit dem Namen bereitstellenyour_endpoint
. Die folgende Beispielanalysekonfiguration weist den Verarbeitungsjob SageMaker Clarify an, 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 Werte SHAP
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 gesetzt istprobability
, wird der Wahrscheinlichkeitswert aus der Modellausgabe extrahiert. Im Folgenden finden Sie ein Beispiel für die 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 die Bedeutung von „Einkommen“ dargestellt werden kann. PDP 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.5
eingestellt, 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, die wichtigsten 2
Features mit den größten globalen Werten zu berechnenPDPs. SHAP
{ "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 Format konfiguriert wird. JSON In diesen Beispielen enthält der eingehende Datensatz dieselben Daten wie im vorherigen Abschnitt, sie liegen jedoch im SageMaker JSON AI-Dense-Format vor. Weitere Informationen zu JSON Linien finden Sie unterJSONLINESFormat der Anfrage.
Die gesamte Eingabeanforderung ist gültigJSON, wenn die äußere Struktur eine Liste ist und jedes Element die Daten für einen Datensatz darstellt. 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 SHAP Messwerte, Werte und partielle Abhängigkeitsdiagramme (PDPs) berechnet werden, die die Bedeutung von Merkmalen für einen Datensatz im JSON Linienformat veranschaulichen, vor und nach dem Training.
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 Label-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 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 KI-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 die Feature-Anordnung jedes Datensatzes.
Die folgende Beispielanalysekonfiguration weist den Verarbeitungsjob SageMaker Clarify an, 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 Werte SHAP
Sie müssen kein Label 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. Das Folgende ist ein Beispiel für die 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 Ihnen, wie Sie die Wichtigkeit eines Merkmals in anzeigenPDPs. 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 wichtig ein ist. Income
PDPs
{ "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 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 Merkmalen für die Verarbeitung natürlicher Sprache (NLP). In diesem Beispiel handelt es sich bei dem eingehenden Datensatz um einen tabellarischen Datensatz im CSV Format mit einer binären Labelspalte und zwei Feature-Spalten, wie folgt. Der Datensatz wird dem Clarify-Job SageMaker über den Eingabeparameter für die dataset
Verarbeitung 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 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 KI-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 die Analyse Tokens analysieren soll.
Im Englischen ist jedes Token ein Wort. Das folgende Beispiel zeigt auch, wie eine direkte Basisinstanz mit einer durchschnittlichen SHAP „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-Instanztyp 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 Clarify-Job SageMaker durch den dataset
Verarbeitungs-Eingabeparameter zur Verfügung gestellt. Das Beispiel zeigt, wie eine Erklärbarkeitsanalyse mithilfe eines SageMaker KI-Bildklassifizierungsmodells konfiguriert wird. Im Beispiel wurde ein Modell mit dem Namenyour_cv_ic_model
, darauf trainiert, die Tiere auf den Eingabebildern zu klassifizieren. JPEG
{ "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 unterBildklassifizierung - MXNet.
In diesem Beispiel your_cv_od_model
wird ein SageMaker KI-Modell zur Objekterkennung 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 Algorithmus für asymmetrische Shapley-Werte für einen Datensatz berechnet werden. JSON
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, die Merkmalsattributionen für jeweils ein Element zu berechnen.
Konfiguration des Prädiktors
Sie können die Payload-Struktur, die der Clariy-Prozessor sendet, mithilfe der Syntax SageMaker vollständig steuern. JMESPath Im vorherigen Beispiel weist die predictor
Konfiguration Clarify an, Datensätze zu aggregieren'{"instances": $records}'
, wobei jeder Datensatz mit den record_template
im Beispiel 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 SageMaker Clarify-Prozessor anzuweisen, Daten aus den als S3 übergebenen Daten korrekt zu analysieren. URI dataset_uri