Featurebasierte Erläuterungen verbessern

Wenn Sie mit benutzerdefinierten Modellen arbeiten, können Sie bestimmte Parameter konfigurieren, um Ihre Erläuterungen zu verbessern. In diesem Leitfaden wird beschrieben, wie Sie die Erläuterungen von Vertex Explainable AI auf Fehler überprüfen. Außerdem wird beschrieben, wie Sie Ihre Vertex Explainable AI-Konfiguration anpassen, um Fehler zu minimieren.

Um Vertex Explainable AI mit einem tabellarischen AutoML-Modell zu verwenden, müssen Sie keine Konfiguration vornehmen. Vertex AI konfiguriert das Modell für Vertex Explainable AI automatisch. Überspringen Sie dieses Dokument und lesen Sie Erläuterungen.

Die Methoden zur Feature-Attribution in Vertex Explainable AI basieren auf Varianten von Shapley-Werten. Da Shapley-Werte sehr rechenintensiv sind, bietet Vertex Explainable AI Näherungswerte anstelle von exakten Werten.

Sie können den Wert für den Näherungsfehler reduzieren und sich den exakten Werten annähern, wenn Sie die folgenden Eingaben ändern:

  • Erhöhen der Anzahl der integralen Schritte oder der Anzahl der Pfade
  • Ändern der ausgewählten Eingabereferenz(en)
  • Hinzufügen weiterer Eingabereferenzen. Mit den Methoden "Integrierte Gradienten" und "XRAI" wird durch die Verwendung zusätzlicher Referenzen die Latenz erhöht. Wenn Sie zusätzliche Referenzen mit der Methode "Sampled Shapley" verwenden, wird die Latenz nicht erhöht.

Erläuterungen auf Fehler prüfen

Nachdem Sie Erläuterungen von Vertex Explainable AI angefordert und erhalten haben, können Sie die Erläuterungen auf Näherungsfehler prüfen. Wenn die Erklärungen einen hohen Näherungsfehler haben, sind die Erläuterungen möglicherweise nicht zuverlässig. In diesem Abschnitt werden verschiedene Möglichkeiten zur Prüfung auf Fehler beschrieben.

Prüfen Sie das Feld approximationError.

Für jede Attribution gibt Vertex Explainable AI einen Näherungsfehler im Feld approximationError zurück. Wenn der Näherungsfehler 0,05 überschreitet, sollten Sie die Konfiguration von Vertex Explainable AI entsprechend anpassen.

Beim integrierte Gradientenverfahren wird der Näherungsfehler berechnet, indem die Summe der Featureattributionen mit der Differenz zwischen den vorhergesagten Werten für den Eingabewert und dem Referenzwert verglichen wird. Beim integrierten Gradientenverfahren ist die Featureattribution eine Näherung des Integrals der Gradientenwerte zwischen der Referenz und der Eingabe. Für die Näherung des Integrals verwenden wir die Regel Gauß-Quadratur, da es genauer als die Methode "Riemann-Summe" ist.

Unterschied zwischen Vorhersagen und der Ausgangsausgabe überprüfen

Für jede Attribution gibt Vertex Explainable AI einen instanceOutputValue zurück, der den Teil der Vorhersageausgabe darstellt, für die Feature-Attributen vorgesehen sind. Außerdem wird ein baselineOutputValue zurückgegeben, der diesen Teil des Vorhersageergebnisses für den Fall darstellt, dass die Vorhersage auf einer Eingabe-Baseline statt auf der tatsächlichen Eingabeinstanz durchgeführt wurde.

Wenn der Unterschied zwischen instanceOutputValue und baselineOutputValue für eine Quellenangabe unter 0,05 liegt, müssen Sie möglicherweise Ihre Eingabe-Baselines ändern.

Konfiguration anpassen

In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Vertex Explainable AI-Konfiguration anpassen, um Fehler zu reduzieren. Wenn Sie eine der folgenden Änderungen vornehmen möchten, müssen SieNeue Konfiguration Model Ressource mit aktualisierter ExplanationSpec oderüberschreiben ExplanationSpec Ihrer bestehenden Model, indem Sie sie in einer Endpoint-Ressource neu bereitstellen oder neue Batchvorhersagen abrufen.

Schritte oder Pfade erhöhen

Erhöhen Sie Folgendes, um den Wert für den Näherungsfehler zu verringern:

Baselines anpassen

Eingabe-Baselines stellen ein Feature dar, das keine zusätzlichen Informationen liefert. Baselines für tabellarische Modelle können Medianwerte, Mindest-, Höchst- oder Zufallswerte in Bezug auf Ihre Trainingsdaten sein. Ebenso können Sie bei Bildmodellen ein schwarzes Bild, ein weißes Bild, ein graues Bild oder ein Bild mit zufälligen Pixelwerten als Baseline verwenden.

Wenn Sie Vertex Explainable AI konfigurieren, können Sie optional das Feld input_baselines angeben. Andernfalls wählt Vertex AI die Eingabe-Baselines für Sie aus. Wenn Sie die in den vorherigen Abschnitten dieses Leitfadens beschriebenen Probleme lösen, können Sie das input_baselines für jede Eingabe von Model anpassen.

Allgemein gilt:

  • Beginnen Sie mit einer Referenz, die die Medianwerte darstellt.
  • Ändern Sie diese in eine Referenz, die Zufallswerte darstellt.
  • Probieren Sie zwei Referenzen aus, die die Mindest- und Höchstwerte darstellen.
  • Fügen Sie eine weitere Referenz hinzu, die Zufallswerte darstellt.

Beispiel für tabellarische Daten

Der folgende Python-Code erstellt eine ExplanationMetadata-Nachricht für ein hypothetisches TensorFlow-Modell, das mit Tabellendaten trainiert wurde.

Beachten Sie, dass input_baselines eine Liste ist, in der Sie mehrere Referenzen angeben können. In diesem Beispiel wird nur eine Referenz festgelegt. Die Referenz ist eine Liste der Medianwerte für die Trainingsdaten (in diesem Beispiel train_data).

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "input_baselines": [train_data.median().values.tolist()],
            "encoding": "bag_of_features",
            "index_feature_mapping": train_data.columns.tolist()
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Weitere Informationen zur Verwendung von ExplanationMetadata finden Sie unter Erläuterungen für benutzerdefinierte trainierte Modelle konfigurieren.

Legen Sie input_baselines so fest, um zwei Referenzen anzugeben, die die Mindest- und Höchstwerte darstellen: [train_data.min().values.tolist(), train_data.max().values.tolist()]

Beispiel für Bilddaten

Der folgende Python-Code erstellt eine ExplanationMetadata-Nachricht für ein hypothetisches TensorFlow-Modell, das mit Bilddaten trainiert wurde.

Beachten Sie, dass input_baselines eine Liste ist, in der Sie mehrere Referenzen angeben können. In diesem Beispiel wird nur eine Referenz festgelegt. Die Referenz ist eine Liste von Zufallswerten. Verwenden Sie Zufallswerte für eine Bildreferenz, wenn Ihr Trainings-Dataset sehr viele Schwarz-Weiß-Bilder enthält.

Setzen Sie andernfalls input_baselines auf [0, 1], um Schwarz-Weiß-Bilder darzustellen.

random_baseline = np.random.rand(192,192,3)

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "modality": "image",
            "input_baselines": [random_baseline.tolist()]
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Nächste Schritte