In diesem Leitfaden wird beschrieben, wie Sie Erläuterungen von einer Model
-Ressource in Vertex AI abrufen. Es gibt zwei Möglichkeiten, Erläuterungen zu erhalten:
Online-Erläuterungen: Synchrone Anfragen an die Vertex AI API, ähnlich wie Onlinevorhersagen, die Vorhersagen mit Featureattributionen zurückgeben.
Batcherläuterungen: Asynchrone Anfragen an die Vertex AI API, die Vorhersagen mit Featureattributionen zurückgeben. Batcherläuterungen sind ein optionaler Teil von Batchvorhersageanfragen.
Hinweis
Bevor Sie Erläuterungen abrufen, müssen Sie Folgendes tun:
Dieser Schritt unterscheidet sich, je nachdem, welche Art von maschinellem Lernmodell Sie verwenden:
Wenn Sie Erläuterungen von einem benutzerdefinierten Modell abrufen möchten, folgen Sie entweder Beispielbasierte Erläuterungen konfigurieren oder Featurebasierte Erläuterungen konfigurieren, um ein
Model
zu erstellen, das Vertex Explainable AI unterstützt.Wenn Sie Erläuterungen aus einem AutoML-Modell für tabellarische Klassifizierung oder Regression abrufen möchten, trainieren Sie ein AutoML-Modell anhand eines tabellarischen Datasets. Für die Verwendung von Vertex Explainable AI ist keine bestimmte Konfiguration erforderlich. Erklärungen für Prognosemodelle werden nicht unterstützt.
Wenn Sie Erläuterungen aus einem AutoML-Bildklassifizierungsmodell abrufen möchten,trainieren Sie ein AutoML-Modell für ein Bild-Dataset und aktivieren Sie Erläuterungen, wenn Sie das Modell bereitstellen Für die Verwendung von Vertex Explainable AI ist keine bestimmte Konfiguration erforderlich. Erläuterungen zu Objekterkennungsmodellen werden nicht unterstützt.
Wenn Sie Onlineerläuterungen erhalten möchten, stellen Sie die im vorherigen Schritt erstellte Datei
Model
in einerEndpoint
-Ressource bereit.
Online-Erläuterungen abrufen
Wenn Sie Onlineerläuterungen erhalten möchten, folgen Sie größtenteils den gleichen Schritten wie bei Onlinevorhersagen. Statt eine projects.locations.endpoints.predict
-Anfrage an die Vertex AI API zu senden, senden Sie jedoch eine projects.locations.endpoints.explain
-Anfrage.
Die folgenden Leitfäden enthalten ausführliche Anleitungen zum Vorbereiten und Senden von Onlineerläuterungsanfragen:
Informationen zu AutoML-Bildklassifizierungsmodellen finden Sie unter Onlinevorhersagen aus AutoML-Modellen abrufen.
Informationen zu Tabellarischen Klassifizierungs- und Regressionsmodellen von AutoML finden Sie unter Onlinevorhersagen aus AutoML-Modellen abrufen.
Für benutzerdefiniert trainierte Modelle finden Sie weitere Informationen unter Onlinevorhersagen aus benutzerdefinierten Modellen abrufen.
Batch-Erklärungen abrufen
Es werden nur featurebasierte Batcherläuterungen unterstützt. Beispielbasierte Batcherläuterungen sind nicht verfügbar.
Setzen Sie das Feld generateExplanation
beim Erstellen eines Batchvorhersagejobs auf true
, um Batcherläuterungen zu erhalten.
Ausführliche Anleitungen zum Vorbereiten und Erstellen von Batchvorhersagejobs finden Sie unter Batchvorhersagen abrufen.
Erläuterungen lokal in nutzerverwalteten Vertex AI Workbench-Notebooks abrufen
In von Nutzern verwalteten Vertex AI Workbench-Notebooks können Sie Erläuterungen für Ihr benutzerdefiniertes Modell generieren. Führen Sie dazu Vertex Explainable AI im lokalen Kernel oder in der Laufzeit Ihres Notebooks aus, ohne das Modell für Vertex AI bereitzustellen, um Erläuterungen zu erhalten. Mit lokalen Erläuterungen können Sie verschiedene Vertex Explainable AI-Einstellungen testen, ohne Ihre Vertex AI-Modellbereitstellung für jede Änderung anzupassen. Dies macht es einfacher und schneller, die Auswirkungen der Verwendung verschiedener Baselines zu bewerten, verschiedene Visualisierungseinstellungen für Ihre Erläuterungen auszuprobieren oder die Anzahl der für Ihren Algorithmus verwendeten Schritte oder Pfade anzupassen.
Lokale Erläuterungen sind nur in vom Nutzer verwalteten Notebooks verfügbar. Daher funktioniert dieses Feature nicht in Jupyter-Notebooks, die außerhalb einer vom Nutzer verwalteten Notebooks-Instanz ausgeführt werden.
So generieren Sie Erläuterungen lokal in einer nutzerverwalteten Notebookinstanz:
- Nutzerverwaltete Notebookinstanz erstellen
- Starten Sie die JupyterLab-Umgebung von Ihrer nutzerverwalteten Notebookinstanz und erstellen oder importieren Sie dann ein Notebook.
- Speichern Sie das Modellartefakt in der lokalen Umgebung Ihres Notebooks oder in einem Cloud Storage-Bucket.
- Generieren und speichern Sie Metadaten, um Ihr Modell zu beschreiben und Ihre Erläuterungsanfrage zu konfigurieren.
Parallele Erläuterungen abrufen
Explainable AI unterstützt parallele Erläuterungen. Mit parallelen Erläuterungen können Sie sowohl featurebasierte als auch beispielbasierte Erläuterungen vom selben bereitgestellten Modellendpunkt anfordern, ohne Ihr Modell für jede Erläuterungsmethode separat bereitstellen zu müssen.
Wenn Sie gleichzeitige Erläuterungen erhalten möchten, laden Sie Ihr Modell hoch und konfigurieren Sie entweder beispielbasierte oder featurebasierte Erläuterungen. Stellen Sie dann Ihr Modell wie gewohnt bereit.
Nachdem das Modell bereitgestellt wurde, können Sie die konfigurierten Erläuterungen wie gewohnt anfordern.
Außerdem können Sie gleichzeitige Erläuterungen anfordern, indem Sie concurrent_explanation_spec_override
angeben.
Beachten Sie bei der Verwendung gleichzeitiger Erläuterungen Folgendes:
- Gleichzeitige Erklärungen sind nur mit der
v1beta1
API-Version verfügbar. Wenn Sie das Vertex Python SDK verwenden, müssen Sie daspreview
-Modell verwenden, um gleichzeitige Erläuterungen zu verwenden. - Beispielbasierte Erläuterungen können nicht angefordert werden, nachdem die Funktion mit beispielbasierten Erläuterungen bereitgestellt wurde. Wenn Sie sowohl beispielbasierte als auch featurebasierte Erläuterungen benötigen, stellen Sie Ihr Modell mit beispielbasierten Erläuterungen bereit und fordern Sie featurebasierte Erläuterungen über das Feld „concurrent_explanation“ an.
- Batcherläuterungen werden für parallele Erläuterungen nicht unterstützt. Diese Funktion kann nur mithilfe von Onlineerläuterungen verwendet werden.
Explainable AI SDK in nutzerverwalteten Notebooks verwenden
Das Explainable AI SDK ist in nutzerverwalteten Notebookinstanzen vorinstalliert. In Ihrem Notebook können Sie das Explainable AI SDK verwenden, um Ihr Modellartefakt zu speichern und automatisch Metadaten zu Eingaben und Ausgaben Ihres Modells für die Erläuterungsanfrage zu identifizieren. Sie können auch andere Parameter angeben, um Ihre Erklärungsanfrage zu konfigurieren, und dann die Erläuterungsergebnisse visualisieren.
Sie können Modelle und Metadaten entweder in der lokalen Umgebung Ihres Notebooks oder in einem Cloud Storage-Bucket speichern. Wenn Sie TensorFlow verwenden, können Sie die Ein- und Ausgaben Ihres Modells mit der Methode save_model_with_metadata()
ableiten und diese Erklärungsmetadaten mit Ihrem Modell speichern.
Als Nächstes laden Sie das Modell mit load_model_from_local_path()
in das Explainable AI SDK. Bei Bedarf können Sie die Konfiguration für den jeweiligen Vertex Explainable AI-Algorithmus anpassen. Sie können beispielsweise die Anzahl der Pfade für Sampled Shapley oder die Anzahl der Schritte für integrierte Gradienten oder XRAI ändern.
Rufen Sie abschließend explain()
mit Dateninstanzen auf und visualisieren Sie die Featurezuordnungen.
Mit dem folgenden Beispielcode können Sie lokale Erläuterungen für ein TensorFlow 2-Modell in einer nutzerverwalteten Notebooks-Instanz abrufen:
# This sample code only works within a user-managed notebooks instance.
import explainable_ai_sdk
from explainable_ai_sdk.metadata.tf.v2 import SavedModelMetadataBuilder
metadata_and_model_builder = SavedModelMetadataBuilder('LOCAL_PATH_TO_MODEL')
metadata_and_model_builder.save_model_with_metadata('LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT')
# Load the model and adjust the configuration for Explainable AI parameters
num_paths = 20
model_artifact_with_metadata = explainable_ai_sdk.load_model_from_local_path(
'LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT',
explainable_ai_sdk.SampledShapleyConfig(num_paths))
# Explainable AI supports generating explanations for multiple predictions
instances = [{feature_a: 10, feature_2: 100,...}, ... ]
explanations = model_artifact_with_metadata.explain(instances)
explanations[0].visualize_attributions()
Weitere Informationen zum Explainable AI SDK, einschließlich verschiedener Konfigurationen und Parameter, finden Sie in der Datei config.py des SDK auf GitHub. Weitere Informationen zu nutzerverwalteten Vertex AI Workbench-Notebooks
Fehlerbehebung
In diesem Abschnitt werden Schritte zur Fehlerbehebung beschrieben, die möglicherweise hilfreich sind, wenn Sie Probleme beim Abrufen von Erläuterungen haben.
Fehler: Listenindex außerhalb des Bereichs
Wenn Sie beim Anfordern von Erläuterungen die folgende Fehlermeldung erhalten:
"error": "Explainability failed with exception: listindex out of range"
Achten Sie darauf, ein leeres Array nicht an ein Feld zu übergeben, das ein Array von Objekten erwartet. Wenn field1
zum Beispiel ein Array von Objekten akzeptiert, kann der folgende Anfragetext zu einem Fehler führen:
{
"instances": [
{
"field1": [],
}
]
}
Achten Sie stattdessen darauf, dass das Array nicht leer ist. Beispiel:
{
"instances": [
{
"field1": [
{}
],
}
]
}
Nächste Schritte
- Basierend auf den erhaltenen Erläuterungen können Sie nachlesen, wie Sie Ihre
Model
anpassen, um Erläuterungen zu verbessern. - Probieren Sie ein Beispiel-Notebook mit Vertex Explainable AI für tabellarische Daten oder Bilddaten aus.