Konfigurieren Sie Parameter zur Überwachung der Bias-Drift - 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 Parameter zur Überwachung der Bias-Drift

Die Amazon SageMaker Clarify Bias-Überwachung verwendet eine Teilmenge der Parameter, die in der Analysekonfiguration von verwendet werdenKonfigurieren Sie die Analyse. Nach der Beschreibung der Konfigurationsparameter enthält dieses Thema Beispiele für JSON-Dateien. Diese Dateien werden zur Konfiguration von CSV- und JSON-Lines-Datensätzen verwendet, um sie bei der Produktion von Modellen für maschinelles Lernen auf Verzerrungen zu überwachen.

Die folgenden Parameter müssen in einer JSON-Datei bereitgestellt werden. Der Pfad zu dieser JSON-Datei muss im ConfigUri Parameter der ModelBiasAppSpecification API angegeben werden.

  • "version" — (Optional) Schemaversion der Konfigurationsdatei. Ist dieser Parameter nicht angegeben, wird die neueste unterstützte Version verwendet.

  • "headers" — (Optional) Eine Liste von Spaltennamen im Datensatz. Wenn dataset_type "application/jsonlines" ist und "label" angegeben ist, wird der letzte Header zum Header der Beschriftung-Spalte.

  • "label" — (Optional) Zielattribut für das Modell, das für Bias-Metriken verwendet werden soll. Wird entweder als Spaltenname oder Index (wenn das Datensatzformat CSV ist) oder als JMESPath (wenn das Datensatzformat JSON Lines ist) angegeben.

  • "label_values_or_threshold" — (Optional) Liste von Labelwerten oder Schwellenwerten. Zeigt ein positives Ergebnis an, das für Bias-Metriken verwendet wurde.

  • "facet" — (Optional) Eine Liste von Features, bei denen es sich um sensible Attribute handelt, die als Facetten bezeichnet werden. Facetten werden für Bias-Metriken in Form von Paaren verwendet und beinhalten Folgendes:

    • "name_or_index" — Name oder Index der Facettenspalte.

    • "value_or_threshold" — (Optional) Liste von Werten oder Schwellenwerten, die die Facettenspalte annehmen kann. Gibt die sensible Gruppe an, z. B. die Gruppe, anhand derer die systematische Messabweichung gemessen wird. Falls nicht angegeben, werden Messwerte für systematische Abweichungen als eine Gruppe für jeden Einzelwert (und nicht für alle Werte) berechnet. Wenn die Facettenspalte numerisch ist, wird dieser Schwellenwert als Untergrenze für die Auswahl der sensitiven Gruppe verwendet.

  • "group_variable" — (Optional) Ein Spaltenname oder ein Index zur Angabe der Gruppenvariablen, die für die Verzerrungsmetrik Bedingte demografische Disparität verwendet werden soll.

Die anderen Parameter sollten in EndpointInput (für Echtzeit-Endpunkte) oder BatchTransformInput (für Batch-Transformationsauftrag) der ModelBiasJobInput API bereitgestellt werden.

  • FeaturesAttribute — Dieser Parameter ist erforderlich, wenn das Endpunkt-Eingabedatenformat lautet "application/jsonlines". Es ist der JMESPath, der zum Suchen der Feature-Spalten verwendet wird, wenn das Datensatzformat JSON Lines ist.

  • InferenceAttribute — Index- oder JMESPath-Speicher in der Modellausgabe für das Zielattribut, das für die Überwachung auf Verzerrungen mithilfe von Bias-Metriken verwendet werden soll. Wenn sie im CSV-Fall accept_type nicht angegeben wird, wird davon ausgegangen, dass es sich bei der Modellausgabe um einen einzelnen numerischen Wert handelt, der einem Wert oder einer Wahrscheinlichkeit entspricht.

  • ProbabilityAttribute — Index- oder JMESPath-Position in der Modellausgabe für Wahrscheinlichkeiten. Handelt es sich bei der Modellausgabe beispielsweise um JSON-Linien mit einer Liste von Bezeichnungen und Wahrscheinlichkeiten, dann wird die Bezeichnung, die der maximalen Wahrscheinlichkeit entspricht, für Bias-Berechnungen ausgewählt.

  • ProbabilityThresholdAttribute — (Optional) Ein Gleitkommawert, der den Schwellenwert für die Auswahl des binären Labels im Fall einer binären Klassifizierung angibt. Der Standardwert lautet 0.5.

Beispiel für JSON-Konfigurationsdateien für CSV- und JSON-Lines-Datensätze

Im Folgenden finden Sie Beispiele für JSON-Dateien, die zur Konfiguration von CSV- und JSON-Lines-Datensätzen verwendet werden, um sie auf Verzerrungen zu überwachen.

CSV-Datensätze

Stellen Sie sich ein Dataset mit vier Feature-Spalten und einer Beschriftung-Spalte vor, wobei das erste Feature und die Beschriftung binär sind, wie im folgenden Beispiel.

0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499, 0 1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713, 1 0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576, 1 1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697, 1

Gehen Sie davon aus, dass die Modellausgabe aus zwei Spalten besteht, wobei die erste Spalte die vorhergesagte Beschriftung und die zweite die Wahrscheinlichkeit darstellt, wie im folgenden Beispiel.

1, 0.5385257417814224

Dann zeigt die folgende JSON-Konfigurationsdatei ein Beispiel dafür, wie dieser CSV-Datensatz konfiguriert werden kann.

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

Die vorhergesagte Beschriftung wird durch den "InferenceAttribute" Parameter ausgewählt. Es wird eine auf Null basierende Nummerierung verwendet, sodass 0 für die erste Spalte der Modellausgabe steht.

"EndpointInput": { ... "InferenceAttribute": 0 ... }

Alternativ können Sie verschiedene Parameter verwenden, um Wahrscheinlichkeitswerte in binäre vorhergesagte Bezeichnungen umzurechnen. Es wird eine auf Null basierende Nummerierung verwendet: 1 steht für die zweite Spalte; der ProbabilityThresholdAttribute Wert 0,6 gibt an, dass bei einer Wahrscheinlichkeit von mehr als 0,6 die binäre Bezeichnung als 1 vorhergesagt wird.

"EndpointInput": { ... "ProbabilityAttribute": 1, "ProbabilityThresholdAttribute": 0.6 ... }

JSON-Lines-Datensätze

Stellen Sie sich einen Datensatz mit vier Feature-Spalten und einer Beschriftung-Spalte vor, wobei das erste Feature und die Beschriftungen binär sind, wie im folgenden Beispiel.

{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0} {"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1} {"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1} {"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}

Gehen Sie davon aus, dass die Modellausgabe aus zwei Spalten besteht, wobei die erste Spalte eine vorhergesagte Beschriftung und die zweite eine Wahrscheinlichkeit ist.

{"predicted_label":1, "probability":0.5385257417814224}

Die folgende JSON-Konfigurationsdatei zeigt ein Beispiel dafür, wie dieser JSON Lines-Datensatz konfiguriert werden kann.

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "label", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

Anschließend wird der "features" Parameterwert in EndpointInput (für Echtzeit-Endpunkte) oder BatchTransformInput (für Batch-Transformationsauftrag) verwendet, um die Features im Datensatz zu lokalisieren, und der "predicted_label" Parameterwert wählt die vorhergesagte Beschriftung aus der Modellausgabe aus.

"EndpointInput": { ... "FeaturesAttribute": "features", "InferenceAttribute": "predicted_label" ... }

Alternativ können Sie Wahrscheinlichkeitswerte mithilfe des ProbabilityThresholdAttribute Parameterwerts in die vorhergesagte binäre Beschriftung konvertieren. Ein Wert von 0,6 gibt beispielsweise an, dass bei einer Wahrscheinlichkeit von mehr als 0,6 das binäre Label als 1 vorhergesagt wird.

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", "ProbabilityThresholdAttribute": 0.6 ... }