Featurebasierte Erläuterungen konfigurieren

Wenn Sie Vertex Explainable AI mit einem benutzerdefinierten Modell verwenden möchten, müssen Sie bestimmte Optionen konfigurieren, wenn Sie die Ressource Model erstellen, von der Sie Erläuterungen anfordern möchten, wenn Sie das Modell bereitstellen oder einen Batch-Erläuterungsjob senden möchten. Auf dieser Seite wird die Konfiguration dieser Optionen beschrieben.

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.

Wann und wo kann ich Erklärungen konfigurieren?

Erklärungen werden beim Erstellen oder Importieren eines Modells konfiguriert. Sie können Erklärungen auch für ein bereits erstelltes Modell konfigurieren, selbst wenn Sie zuvor keine Erklärungen konfiguriert haben.

Erläuterungen beim Erstellen oder Importieren von Modellen konfigurieren

Wenn Sie ein Model erstellen oder importieren, können Sie eine Standardkonfiguration für alle ihre Erklärungen festlegen, die das Feld explanationSpec des Model verwenden.

Sie haben folgende Möglichkeiten, ein benutzerdefiniertes Model in Vertex AI zu erstellen:

In beiden Fällen können Sie das Model so konfigurieren, dass Vertex Explainable AI unterstützt wird. In den Beispielen in diesem Dokument wird davon ausgegangen, dass Sie ein Model importieren. Um Vertex Explainable AI beim Erstellen eines benutzerdefinierten Model mithilfe einer TrainingPipeline zu konfigurieren, verwenden Sie die Konfigurationseinstellungen, die in diesem Dokument im modelToUpload-Feld der TrainingPipeline beschrieben werden.

Erläuterungen beim Bereitstellen von Modellen oder beim Abrufen von Batchvorhersagen konfigurieren

Wenn Sie ein Model für eine Endpoint-Ressource bereitstellen, haben Sie folgende Möglichkeiten:

  • Konfigurieren Sie Erläuterungen, unabhängig davon, ob das Modell zuvor für Erläuterungen konfiguriert wurde. Dies ist nützlich, wenn Sie ursprünglich keine Erklärungen erhalten wollten (und das explanationSpec-Feld bei der Erstellung des Modells ausgelassen haben), sich aber später entscheiden, dass Sie Erklärungen für das Modell wünschen, oder wenn Sie einige der Erklärungseinstellungen außer Kraft setzen möchten.
  • Erläuterungen deaktivieren. Dies ist nützlich, wenn Ihr Modell für Erläuterungen konfiguriert ist, Sie aber keine Erläuterungen vom Endpunkt abrufen möchten. Wenn Sie Erläuterungen beim Bereitstellen des Modells auf einem Endpunkt deaktivieren möchten, entfernen Sie entweder die Optionen für die Erklärbarkeit in der Cloud Console oder setzen Sie DeployedModel.disableExplanations auf true.

Ebenso können Sie beim Abrufen von Batchvorhersagen von einem Model Erläuterungen konfigurieren, indem Sie das BatchPredictionJob.explanationSpec-Feld ausfüllen oder Erläuterungen deaktivieren, indem Sie BatchPredictionJob.generateExplanation auf false setzen.

Konfiguration beim Abrufen von Online-Erläuterungen überschreiben

Unabhängig davon, ob Sie die Model mit Erläuterungseinstellungen erstellt oder importiert haben und ob Sie die Erläuterungseinstellungen während der Bereitstellung konfiguriert haben, können Sie die anfänglichen Erläuterungseinstellungen von Model überschreiben, wenn Sie Online-Erläuterungen erhalten.

Wenn Sie eine explain-Anfrage an Vertex AI senden, können Sie einen Teil der Erklärungskonfiguration überschreiben, die Sie zuvor für Model oder DeployedModel festgelegt haben.

In der explain-Anfrage können Sie folgende Felder überschreiben:

Überschreiben Sie diese Einstellungen im Feld "explanationSpecOverride" der Erklärungsanfrage.

Modell mit einem explanationSpec-Feld importieren

Je nachdem, ob Sie Vorhersagen mithilfe eines vordefinierten Containers oder eines benutzerdefinierten Containers bereitstellen, geben Sie leicht unterschiedliche Details für die ExplanationSpec an. Wählen Sie den entsprechenden Tab für den von Ihnen verwendeten Container aus:

Vordefinierter TensorFlow-Container

Sie können eine der folgenden Attributionsmethoden für Vertex Explainable AI verwenden. Lesen Sie den Vergleich der Methoden für die Attribution von Features, um die entsprechende Methode für Ihr Model auszuwählen:

Sampled Shapley

Wählen Sie abhängig davon, mit welchem Tool Sie das Model erstellen oder importieren möchten, einen der folgenden Tabs aus:

Console

Folgen Sie der Anleitung Modell mithilfe der Google Cloud Console importieren. Führen Sie im Schritt Erklärbarkeit die folgenden Schritte aus:

  1. Wählen Sie für die Methode der Feature-Attribution Sampled Shapely (für tabellarische Modelle).

  2. Legen Sie die Pfadanzahl auf die Anzahl der Feature-Permutationen fest, die für die Attributionsmethode "Sampled Shapley" verwendet werden sollen. Diese muss eine Ganzzahl im Bereich [1, 50] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 25.

  3. Konfigurieren Sie die einzelnen Eingabefeatures in Ihrem Modell:

    1. Geben Sie den Namen des Eingabefeatures ein.

    2. Optional können Sie eine oder mehrere Eingabereferenzen hinzufügen. Andernfalls wählt Vertex Explainable AI eine Standardeingabe-baseline von lauter Nullwerten aus. Dies ist ein schwarzes Bild für Bilddaten.

    3. Wenn Sie ein TensorFlow-Modell importieren, gibt es zusätzliche Eingabefelder:

      1. Füllen Sie den Namen des Eingabetensors aus.

      2. Geben Sie gegebenenfalls den Namen des Tensors für Indexe und/oder den Name des Tensors für vollbesetzte Formen ein.

      3. Die Modalität kann hier nicht aktualisiert werden. Sie wird automatisch auf NUMERIC für Tabellenmodelle oder auf IMAGE für Bildmodelle festgelegt.

      4. Legen Sie gegebenenfalls das Feld Codierung fest. Der Standardwert ist IDENTITY, wenn nichts anderes festgelegt ist.

      5. Legen Sie ggf. das Feld Gruppenname fest.

  4. Wenn Sie ein TensorFlow-Modell importieren, geben Sie Ausgabefelder an:

    1. Legen Sie den Namen der Ausgabe Ihres Features fest.
    2. Legen Sie den Namen des Ausgabetensors Ihres Features fest.
    3. Legen Sie gegebenenfalls die Zuordnung des angezeigten Namens für den Index fest.
    4. Legen Sie gegebenenfalls den Zuordnungsschlüssel für den Anzeigenamen fest.

  5. Klicken Sie auf die Schaltfläche Importieren, wenn Sie die Konfiguration der Erklärungseinstellungen abgeschlossen haben.

gcloud

  1. Für TensorFlow 2 ist ExplanationMetadata optional.

    Schreiben Sie die folgenden ExplanationMetadata in eine JSON-Datei in Ihrer lokalen Umgebung. Der Dateiname spielt keine Rolle, aber in diesem Beispiel wird die Datei explanation-metadata.json aufgerufen:

    explanation-metadata.json

    {
      "inputs": {
        "FEATURE_NAME": {
          "inputTensorName": "INPUT_TENSOR_NAME",
        }
      },
      "outputs": {
        "OUTPUT_NAME": {
          "outputTensorName": "OUTPUT_TENSOR_NAME"
        }
      }
    }
    

    Dabei gilt:

    • FEATURE_NAME: Einprägsamer Name für das Eingabefeature.
    • INPUT_TENSOR_NAME: Der Name des Eingabetensors in TensorFlow. Wie Sie den richtigen Wert für dieses Feld ermitteln, erfahren Sie unter TensorFlow mit Vertex Explainable AI verwenden.
    • OUTPUT_NAME: Einprägsamer Name für die Ausgabe Ihres Modells.
    • OUTPUT_TENSOR_NAME: Der Name des Ausgabetensors in TensorFlow. Wie Sie den richtigen Wert für dieses Feld ermitteln, erfahren Sie unter TensorFlow mit Vertex Explainable AI verwenden.

    Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

  2. Führen Sie folgenden Befehl aus, um eine Model-Ressource zu erstellen, die Vertex Explainable AI unterstützt. Die Flags, die für Vertex Explainable AI am relevantesten sind, werden hervorgehoben.

    gcloud ai models upload \
      --region=LOCATION \
      --display-name=MODEL_NAME \
      --container-image-uri=IMAGE_URI \
      --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \
      --explanation-method=sampled-shapley \
      --explanation-path-count=PATH_COUNT \
      --explanation-metadata-file=explanation-metadata.json
    

    Dabei gilt:

    Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

Bei TensorFlow 2-Modellen ist das Feld metadata optional. Wenn keine Angabe gemacht wird, leitet Vertex AI inputs und outputs automatisch aus dem Modell ab.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload

JSON-Text der Anfrage:

{
  "model": {
    "displayName": "MODEL_NAME",
    "containerSpec": {
      "imageUri": "IMAGE_URI"
    },
    "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY",
    "explanationSpec": {
      "parameters": {
        "sampledShapleyAttribution": {
          "pathCount": PATH_COUNT
        }
      },
      "metadata": {
        "inputs": {
          "FEATURE_NAME": {
            "inputTensorName": "INPUT_TENSOR_NAME",
          }
        },
        "outputs": {
          "OUTPUT_NAME": {
            "outputTensorName": "OUTPUT_TENSOR_NAME"
          }
        }
      }
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content

Integrierte Gradienten

Wählen Sie abhängig davon, mit welchem Tool Sie das Model erstellen oder importieren möchten, einen der folgenden Tabs aus:

Console

Folgen Sie der Anleitung Modell mithilfe der Google Cloud Console importieren. Führen Sie im Schritt Erklärbarkeit die folgenden Schritte aus:

  1. Wählen Sie für die Methode der Feature-Attribution Integrierte Gradienten (für tabellarische Modelle) oder Integrierte Gradienten (für Bildklassifizierungsmodelle) aus, je nachdem, was für Ihr Modell besser geeignet ist.

  2. Wenn Sie ein Bildklassifizierungsmodell importieren, gehen Sie so vor:

    1. Legen Sie den Visualisierungstyp und die Farbkarte fest.

    2. Sie können für den Clip unten, den Clip oben, den Overlay-Typ und die Anzahl der Integralschritte die Standardeinstellungen beibehalten.

    Weitere Informationen zu Visualisierungseinstellungen

  3. Legen Sie die Anzahl der Schritte fest, die zum Schätzen der Pfadintensität während der Feature-Attribution verwendet werden sollen. Diese muss eine Ganzzahl im Bereich [1, 100] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 50.

  4. Konfigurieren Sie die einzelnen Eingabefeatures in Ihrem Modell:

    1. Geben Sie den Namen des Eingabefeatures ein.

    2. Optional können Sie eine oder mehrere Eingabereferenzen hinzufügen. Andernfalls wählt Vertex Explainable AI eine Standardeingabe-baseline von lauter Nullwerten aus. Dies ist ein schwarzes Bild für Bilddaten.

    3. Wenn Sie ein TensorFlow-Modell importieren, gibt es zusätzliche Eingabefelder:

      1. Füllen Sie den Namen des Eingabetensors aus.

      2. Geben Sie gegebenenfalls den Namen des Tensors für Indexe und/oder den Name des Tensors für vollbesetzte Formen ein.

      3. Die Modalität kann hier nicht aktualisiert werden. Sie wird automatisch auf NUMERIC für Tabellenmodelle oder auf IMAGE für Bildmodelle festgelegt.

      4. Legen Sie gegebenenfalls das Feld Codierung fest. Der Standardwert ist IDENTITY, wenn nichts anderes festgelegt ist.

      5. Legen Sie ggf. das Feld Gruppenname fest.

  5. Wenn Sie ein TensorFlow-Modell importieren, geben Sie Ausgabefelder an:

    1. Legen Sie den Namen der Ausgabe Ihres Features fest.
    2. Legen Sie den Namen des Ausgabetensors Ihres Features fest.
    3. Legen Sie gegebenenfalls die Zuordnung des angezeigten Namens für den Index fest.
    4. Legen Sie gegebenenfalls den Zuordnungsschlüssel für den Anzeigenamen fest.

  6. Klicken Sie auf die Schaltfläche Importieren, wenn Sie die Konfiguration der Erklärungseinstellungen abgeschlossen haben.

gcloud

  1. Für TensorFlow 2 ist ExplanationMetadata optional.

    Schreiben Sie die folgenden ExplanationMetadata in eine JSON-Datei in Ihrer lokalen Umgebung. Der Dateiname spielt keine Rolle, aber in diesem Beispiel wird die Datei explanation-metadata.json aufgerufen:

    explanation-metadata.json

    {
      "inputs": {
        "FEATURE_NAME": {
          "inputTensorName": "INPUT_TENSOR_NAME",
          "modality": "MODALITY",
          "visualization": VISUALIZATION_SETTINGS
        }
      },
      "outputs": {
        "OUTPUT_NAME": {
          "outputTensorName": "OUTPUT_TENSOR_NAME"
        }
      }
    }
    

    Dabei gilt:

    • FEATURE_NAME: Einprägsamer Name für das Eingabefeature.
    • INPUT_TENSOR_NAME: Der Name des Eingabetensors in TensorFlow. Wie Sie den richtigen Wert für dieses Feld ermitteln, erfahren Sie unter TensorFlow mit Vertex Explainable AI verwenden.
    • MODALITY: image, wenn Model Bilder als Eingabe akzeptiert, oder numeric, wenn das Model tabellarische Daten als Eingabe akzeptiert. Die Standardeinstellung ist numeric.
    • VIZUALIZATION_OPTIONS: Optionen zum Visualisieren von Erklärungen. Wie Sie dieses Feld ausfüllen, erfahren Sie unter Einstellungen für die Visualisierung von Bilddaten konfigurieren.

      Wenn Sie das Feld modality weglassen oder das Feld modality auf numeric setzen, können Sie das Feld visualization vollständig weglassen.

    • OUTPUT_NAME: Einprägsamer Name für die Ausgabe Ihres Modells.
    • OUTPUT_TENSOR_NAME: Der Name des Ausgabetensors in TensorFlow. Wie Sie den richtigen Wert für dieses Feld ermitteln, erfahren Sie unter TensorFlow mit Vertex Explainable AI verwenden.

    Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

  2. Führen Sie folgenden Befehl aus, um eine Model-Ressource zu erstellen, die Vertex Explainable AI unterstützt. Die Flags, die für Vertex Explainable AI am relevantesten sind, werden hervorgehoben.

    gcloud ai models upload \
      --region=LOCATION \
      --display-name=MODEL_NAME \
      --container-image-uri=IMAGE_URI \
      --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \
      --explanation-method=integrated-gradients \
      --explanation-step-count=STEP_COUNT \
      --explanation-metadata-file=explanation-metadata.json
    

    Dabei gilt:

    Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

    Sie können optional Flags hinzufügen, um die SmoothGa-Näherung von Gradienten zu konfigurieren.

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • IMAGE_URI: Der URI eines vordefinierten TensorFlow-Containers für das Bereitstellen von Vorhersagen.
  • STEP_COUNT: Die Anzahl der Schritte, die zum Schätzen der Pfadintensität während der Feature-Attribution verwendet werden sollen. Muss eine Ganzzahl im Bereich [1, 100] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 50.

  • FEATURE_NAME: Einprägsamer Name für das Eingabefeature.
  • INPUT_TENSOR_NAME: Der Name des Eingabetensors in TensorFlow. Wie Sie den richtigen Wert für dieses Feld ermitteln, erfahren Sie unter TensorFlow mit Vertex Explainable AI verwenden.
  • MODALITY: image, wenn Model Bilder als Eingabe akzeptiert, oder numeric, wenn das Model tabellarische Daten als Eingabe akzeptiert. Die Standardeinstellung ist numeric.
  • VIZUALIZATION_OPTIONS: Optionen zum Visualisieren von Erklärungen. Wie Sie dieses Feld ausfüllen, erfahren Sie unter Einstellungen für die Visualisierung von Bilddaten konfigurieren.

    Wenn Sie das Feld modality weglassen oder das Feld modality auf numeric setzen, können Sie das Feld visualization vollständig weglassen.

  • OUTPUT_NAME: Einprägsamer Name für die Ausgabe Ihres Modells.
  • OUTPUT_TENSOR_NAME: Der Name des Ausgabetensors in TensorFlow. Wie Sie den richtigen Wert für dieses Feld ermitteln, erfahren Sie unter TensorFlow mit Vertex Explainable AI verwenden.

Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

Sie können den ExplanationParameters optional Felder hinzufügen, um die SmoothGa-Näherung von Gradienten zu konfigurieren.

Bei TensorFlow 2-Modellen ist das Feld metadata optional. Wenn keine Angabe gemacht wird, leitet Vertex AI inputs und outputs automatisch aus dem Modell ab.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload

JSON-Text der Anfrage:

{
  "model": {
    "displayName": "MODEL_NAME",
    "containerSpec": {
      "imageUri": "IMAGE_URI"
    },
    "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY",
    "explanationSpec": {
      "parameters": {
        "integratedGradientsAttribution": {
          "stepCount": STEP_COUNT
        }
      },
      "metadata": {
        "inputs": {
          "FEATURE_NAME": {
            "inputTensorName": "INPUT_TENSOR_NAME",
            "modality": "MODALITY",
            "visualization": VISUALIZATION_SETTINGS
          }
        },
        "outputs": {
          "OUTPUT_NAME": {
            "outputTensorName": "OUTPUT_TENSOR_NAME"
          }
        }
      }
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content

XRAI

Wählen Sie abhängig davon, mit welchem Tool Sie das Model erstellen oder importieren möchten, einen der folgenden Tabs aus:

Console

Folgen Sie der Anleitung Modell mithilfe der Google Cloud Console importieren. Führen Sie im Schritt Erklärbarkeit die folgenden Schritte aus:

  1. Wählen Sie als Methode für Feature-Attribution XRAI (für Bildklassifizierungsmodelle) aus.

  2. Legen Sie folgende Visualisierungsoptionen fest:

    1. Legen Sie die Farbkarte fest.

    2. Sie können für den Clip unten, den Clip oben, den Overlay-Typ und die Anzahl der Integralschritte die Standardeinstellungen beibehalten.

      Weitere Informationen zu Visualisierungseinstellungen

  3. Legen Sie die Anzahl der Schritte fest, die zum Schätzen der Pfadintensität während der Feature-Attribution verwendet werden sollen. Diese muss eine Ganzzahl im Bereich [1, 100] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 50.

  4. Konfigurieren Sie die einzelnen Eingabefeatures in Ihrem Modell:

    1. Geben Sie den Namen des Eingabefeatures ein.

    2. Optional können Sie eine oder mehrere Eingabereferenzen hinzufügen. Andernfalls wählt Vertex Explainable AI eine Standardeingabe-baseline von lauter Nullwerten aus. Dies ist ein schwarzes Bild für Bilddaten.

    3. Wenn Sie ein TensorFlow-Modell importieren, gibt es zusätzliche Eingabefelder:

      1. Füllen Sie den Namen des Eingabetensors aus.

      2. Geben Sie gegebenenfalls den Namen des Tensors für Indexe und/oder den Name des Tensors für vollbesetzte Formen ein.

      3. Die Modalität kann hier nicht aktualisiert werden. Sie wird automatisch auf NUMERIC für Tabellenmodelle oder auf IMAGE für Bildmodelle festgelegt.

      4. Legen Sie gegebenenfalls das Feld Codierung fest. Der Standardwert ist IDENTITY, wenn nichts anderes festgelegt ist.

      5. Legen Sie ggf. das Feld Gruppenname fest.

  5. Wenn Sie ein TensorFlow-Modell importieren, geben Sie Ausgabefelder an:

    1. Legen Sie den Namen der Ausgabe Ihres Features fest.
    2. Legen Sie den Namen des Ausgabetensors Ihres Features fest.
    3. Legen Sie gegebenenfalls die Zuordnung des angezeigten Namens für den Index fest.
    4. Legen Sie gegebenenfalls den Zuordnungsschlüssel für den Anzeigenamen fest.

  6. Klicken Sie auf die Schaltfläche Importieren, wenn Sie die Konfiguration der Erklärungseinstellungen abgeschlossen haben.

gcloud

  1. Für TensorFlow 2 ist ExplanationMetadata optional.

    Schreiben Sie die folgenden ExplanationMetadata in eine JSON-Datei in Ihrer lokalen Umgebung. Der Dateiname spielt keine Rolle, aber in diesem Beispiel wird die Datei explanation-metadata.json aufgerufen:

    explanation-metadata.json

    {
      "inputs": {
        "FEATURE_NAME": {
          "inputTensorName": "INPUT_TENSOR_NAME",
          "modality": "image",
          "visualization": VISUALIZATION_SETTINGS
        }
      },
      "outputs": {
        "OUTPUT_NAME": {
          "outputTensorName": "OUTPUT_TENSOR_NAME"
        }
      }
    }
    

    Dabei gilt:

    Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

  2. Führen Sie folgenden Befehl aus, um eine Model-Ressource zu erstellen, die Vertex Explainable AI unterstützt. Die Flags, die für Vertex Explainable AI am relevantesten sind, werden hervorgehoben.

    gcloud ai models upload \
      --region=LOCATION \
      --display-name=MODEL_NAME \
      --container-image-uri=IMAGE_URI \
      --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \
      --explanation-method=xrai \
      --explanation-step-count=STEP_COUNT \
      --explanation-metadata-file=explanation-metadata.json
    

    Dabei gilt:

    Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

    Sie können optional Flags hinzufügen, um die SmoothGa-Näherung von Gradienten zu konfigurieren.

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

Sie können den ExplanationParameters optional Felder hinzufügen, um die SmoothGa-Näherung von Gradienten zu konfigurieren.

Bei TensorFlow 2-Modellen ist das Feld metadata optional. Wenn keine Angabe gemacht wird, leitet Vertex AI inputs und outputs automatisch aus dem Modell ab.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload

JSON-Text der Anfrage:

{
  "model": {
    "displayName": "MODEL_NAME",
    "containerSpec": {
      "imageUri": "IMAGE_URI"
    },
    "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY",
    "explanationSpec": {
      "parameters": {
        "xraiAttribution": {
          "stepCount": STEP_COUNT
        }
      },
      "metadata": {
        "inputs": {
          "FEATURE_NAME": {
            "inputTensorName": "INPUT_TENSOR_NAME",
            "modality": "image",
            "visualization": VISUALIZATION_SETTINGS
          }
        },
        "outputs": {
          "OUTPUT_NAME": {
            "outputTensorName": "OUTPUT_TENSOR_NAME"
          }
        }
      }
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content

Vordefinierte Container von scikit-learn und XGBoost

Wenn Ihr Model tabellarische Daten als Eingabe akzeptiert und Vorhersagen mithilfe eines vordefinierten scikit-learn- oder XGBoost-Containers für die Vorhersage bereitstellt, können Sie es für die Verwendung der Attributionsmethode "Sampled Shapley" für Erläuterungen konfigurieren.

Wählen Sie abhängig davon, mit welchem Tool Sie das Model erstellen oder importieren möchten, einen der folgenden Tabs aus:

Console

Folgen Sie der Anleitung Modell mithilfe der Google Cloud Console importieren. Führen Sie im Schritt Erklärbarkeit die folgenden Schritte aus:

  1. Wählen Sie für die Methode der Feature-Attribution Sampled Shapely (für tabellarische Modelle).

  2. Legen Sie die Pfadanzahl auf die Anzahl der Feature-Permutationen fest, die für die Attributionsmethode "Sampled Shapley" verwendet werden sollen. Diese muss eine Ganzzahl im Bereich [1, 50] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 25.

  3. Konfigurieren Sie die einzelnen Eingabefeatures in Ihrem Modell:

    1. Geben Sie den Namen des Eingabefeatures ein.

      Wenn Ihre Modellartefakte keine Featurenamen enthalten, kann Vertex AI dem Modell die angegebenen Eingabefeaturenamen nicht zuordnen. In diesem Fall sollten Sie nur ein Eingabefeature mit einem beliebigen nutzerfreundlichen Namen wie input_features angeben. In der Erläuterungsantwort erhalten Sie eine n-dimensionale Liste von Attributionen. Dabei ist N die Anzahl der Features im Modell und die Elemente erscheinen in der Liste in derselben Reihenfolge wie das Trainings-Dataset.

    2. Optional können Sie eine oder mehrere Eingabereferenzen hinzufügen. Andernfalls wählt Vertex Explainable AI eine Standardeingabe-baseline von lauter Nullwerten aus. Dies ist ein schwarzes Bild für Bilddaten.

  4. Legen Sie den Namen der Ausgabe Ihres Features fest.

  5. Klicken Sie auf die Schaltfläche Importieren, wenn Sie die Konfiguration der Erklärungseinstellungen abgeschlossen haben.

gcloud

  1. Schreiben Sie die folgenden ExplanationMetadata in eine JSON-Datei in Ihrer lokalen Umgebung. Der Dateiname spielt keine Rolle, aber in diesem Beispiel wird die Datei explanation-metadata.json aufgerufen:

    explanation-metadata.json

    {
      "inputs": {
        "FEATURE_NAME": {
        }
      },
      "outputs": {
        "OUTPUT_NAME": {
        }
      }
    }
    

    Dabei gilt:

    • FEATURE_NAME: Einprägsamer Name für das Eingabefeature.
    • OUTPUT_NAME: Einprägsamer Name für die Ausgabe Ihres Modells.

    Wenn Sie Eingabe-Baselines angeben, achten Sie darauf, dass sie mit der Eingabe Ihres Modells übereinstimmen (in der Regel eine Liste von 2D-Matrizen). Andernfalls ist der Standardwert für die Eingabe-Baseline eine 0-Wert-2D-Matrix der Eingabeform.

  2. Führen Sie folgenden Befehl aus, um eine Model-Ressource zu erstellen, die Vertex Explainable AI unterstützt. Die Flags, die für Vertex Explainable AI am relevantesten sind, werden hervorgehoben.

    gcloud ai models upload \
      --region=LOCATION \
      --display-name=MODEL_NAME \
      --container-image-uri=IMAGE_URI \
      --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \
      --explanation-method=sampled-shapley \
      --explanation-path-count=PATH_COUNT \
      --explanation-metadata-file=explanation-metadata.json
    

    Dabei gilt:

    Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

Wenn Sie Eingabe-Baselines angeben, achten Sie darauf, dass sie mit der Eingabe Ihres Modells übereinstimmen (in der Regel eine Liste von 2D-Matrizen). Andernfalls ist der Standardwert für die Eingabe-Baseline eine 0-Wert-2D-Matrix der Eingabeform.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload

JSON-Text der Anfrage:

{
  "model": {
    "displayName": "MODEL_NAME",
    "containerSpec": {
      "imageUri": "IMAGE_URI"
    },
  "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY",
  "explanationSpec": {
    "parameters": {
      "sampledShapleyAttribution": {
        "pathCount": PATH_COUNT
      }
    },
    "metadata": {
       "inputs": {
         "FEATURE_NAME": {
         }
       },
       "outputs": {
         "OUTPUT_NAME": {
         }
       }
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content

Benutzerdefinierter Container

Wenn das Model tabellarische Daten als Eingabe akzeptiert und Vorhersagen mithilfe eines benutzerdefinierten Containers bereitstellt, können Sie es für die Verwendung der Attributionsmethode Sampled Shapley konfigurieren.

Feature- und Ausgabenamen bestimmen

In den folgenden Schritten müssen Sie Vertex AI mit die Namen der Features angeben, die Model als Eingabe erwartet. Sie müssen außerdem den Schlüssel angeben, der für die Ausgaben in den Vorhersagen des Model verwendet wird.

Featurenamen bestimmen

Wenn Ihr Model erwartet, dass jede Eingabeinstanz bestimmte Schlüssel auf oberster Ebene hat, sind diese Schlüssel die Featurenamen.

Betrachten Sie beispielsweise ein Model, das davon ausgeht, dass jede Eingabeinstanz das folgende Format hat:

{
  "length": <value>,
  "width": <value>
}

In diesem Fall lauten die Featurenamen length und width. Auch wenn die Werte dieser Felder verschachtelte Listen oder Objekte enthalten, sind length und width die einzigen Schlüssel, die Sie für die folgenden Schritte benötigen. Wenn Sie Erklärungen anfordern, stellt Vertex Explainable AI Attributionen für jedes verschachtelte Element Ihrer Features bereit.

Wenn Ihr Model eine Eingabe ohne Schlüssel erwartet, betrachtet Vertex Explainable AI das Model als einzelnes Feature. Sie können einen beliebigen einprägsamen String als Featurenamen verwenden.

Betrachten Sie beispielsweise ein Model, das davon ausgeht, dass jede Eingabeinstanz das folgende Format hat:

[
  <value>,
  <value>
]

Geben Sie in diesem Fall für Vertex Explainable AI einen einzigen Featurenamen Ihrer Wahl an, z. B. dimensions.

Ausgabenamen bestimmen

Wenn Ihr Model jede Onlinevorhersageinstanz mit einer Ausgabe mit Schlüssel zurückgibt, ist dieser Schlüssel der Ausgabename.

Betrachten Sie beispielsweise ein Model, das jede Vorhersage im folgenden Format zurückgibt:

{
  "scores": <value>
}

In diesem Fall lautet der Ausgabename scores. Wenn der Wert des Felds scores ein Array ist und Sie Erklärungen erhalten, gibt Vertex Explainable AI Feature-Attributionen für das Element mit dem höchsten Wert in jeder Vorhersage zurück. Für Vertex Explainable AI können Sie Feature-Attributionen für zusätzliche Elemente des Ausgabefelds bereitstellen, indem Sie das Feld topK oder outputIndices von ExplanationParameters angeben. Die Beispiele in diesem Dokument zeigen diese Optionen jedoch nicht an.

Wenn Ihr Model Vorhersagen ohne Schlüssel zurückgibt, können Sie einen beliebigen einprägsamen String für den Ausgabenamen verwenden. Dies gilt beispielsweise, wenn das Model ein Array oder einen Skalar für jede Vorhersage zurückgibt.

Model erstellen

Wählen Sie abhängig davon, mit welchem Tool Sie das Model erstellen oder importieren möchten, einen der folgenden Tabs aus:

Console

Folgen Sie der Anleitung Modell mithilfe der Google Cloud Console importieren. Führen Sie im Schritt Erklärbarkeit die folgenden Schritte aus:

  1. Wählen Sie für die Methode der Feature-Attribution Sampled Shapely (für tabellarische Modelle).

  2. Legen Sie die Pfadanzahl auf die Anzahl der Feature-Permutationen fest, die für die Attributionsmethode "Sampled Shapley" verwendet werden sollen. Diese muss eine Ganzzahl im Bereich [1, 50] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 25.

  3. Konfigurieren Sie die einzelnen Eingabefeatures in Ihrem Modell:

    1. Geben Sie den Namen des Eingabefeatures ein.

      Wenn Ihre Modellartefakte keine Featurenamen enthalten, kann Vertex AI dem Modell die angegebenen Eingabefeaturenamen nicht zuordnen. In diesem Fall sollten Sie nur ein Eingabefeature mit einem beliebigen nutzerfreundlichen Namen wie input_features angeben. In der Erläuterungsantwort erhalten Sie eine n-dimensionale Liste von Attributionen. Dabei ist N die Anzahl der Features im Modell und die Elemente erscheinen in der Liste in derselben Reihenfolge wie das Trainings-Dataset.

    2. Optional können Sie eine oder mehrere Eingabereferenzen hinzufügen. Andernfalls wählt Vertex Explainable AI eine Standardeingabe-baseline von lauter Nullwerten aus. Dies ist ein schwarzes Bild für Bilddaten.

  4. Legen Sie den Namen der Ausgabe Ihres Features fest.

  5. Klicken Sie auf die Schaltfläche Importieren, wenn Sie die Konfiguration der Erklärungseinstellungen abgeschlossen haben.

gcloud

  1. Schreiben Sie die folgenden ExplanationMetadata in eine JSON-Datei in Ihrer lokalen Umgebung. Der Dateiname spielt keine Rolle, aber in diesem Beispiel wird die Datei explanation-metadata.json aufgerufen:

    explanation-metadata.json

    {
      "inputs": {
        "FEATURE_NAME": {}
      },
      "outputs": {
        "OUTPUT_NAME": {}
      }
    }
    

    Dabei gilt:

    • FEATURE_NAME: Der Name des Features, wie im Abschnitt "Featurenamen bestimmen" in diesem Dokument beschrieben.
    • OUTPUT_NAME: Der Name der Ausgabe, wie im Abschnitt "Ausgabenamen bestimmen" in diesem Dokument beschrieben.

    Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

    Wenn Sie Eingabe-Baselines angeben, achten Sie darauf, dass sie mit der Eingabe Ihres Modells übereinstimmen (in der Regel eine Liste von 2D-Matrizen). Andernfalls ist der Standardwert für die Eingabe-Baseline eine 0-Wert-2D-Matrix der Eingabeform.

  2. Führen Sie folgenden Befehl aus, um eine Model-Ressource zu erstellen, die Vertex Explainable AI unterstützt. Die Flags, die für Vertex Explainable AI am relevantesten sind, werden hervorgehoben.

    gcloud ai models upload \
      --region=LOCATION \
      --display-name=MODEL_NAME \
      --container-image-uri=IMAGE_URI \
      --artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY \
      --explanation-method=sampled-shapley \
      --explanation-path-count=PATH_COUNT \
      --explanation-metadata-file=explanation-metadata.json
    

    Dabei gilt:

    • PATH_COUNT: Die Anzahl der Feature-Permutationen für die Attributionsmethode "Sampled Shapley". Muss eine Ganzzahl im Bereich [1, 50] sein.

      Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 25.

    Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • PATH_COUNT: Die Anzahl der Feature-Permutationen für die Attributionsmethode "Sampled Shapley". Muss eine Ganzzahl im Bereich [1, 50] sein.

    Ein höherer Wert kann den Näherungsfehler verringern, ist jedoch rechenintensiver. Wenn Sie nicht wissen, welchen Wert Sie verwenden sollen, versuchen Sie es mit 25.

  • FEATURE_NAME: Der Name des Features, wie im Abschnitt "Featurenamen bestimmen" in diesem Dokument beschrieben.
  • OUTPUT_NAME: Der Name der Ausgabe, wie im Abschnitt "Ausgabenamen bestimmen" in diesem Dokument beschrieben.

Informationen zu geeigneten Werten für die anderen Platzhalter finden Sie unter upload und Modelle importieren.

Sie können optional Eingabe-Baselines zu den ExplanationMetadata hinzufügen. Andernfalls wählt Vertex AI die Eingabe-Baselines für das Model aus.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload

JSON-Text der Anfrage:

{
  "model": {
    "displayName": "MODEL_NAME",
    "containerSpec": {
      "imageUri": "IMAGE_URI"
    },
  "artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY",
  "explanationSpec": {
    "parameters": {
      "sampledShapleyAttribution": {
        "pathCount": PATH_COUNT
      }
    },
    "metadata": {
       "inputs": {
         "FEATURE_NAME": {}
       },
       "outputs": {
         "OUTPUT_NAME": {}
       }
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/models:upload" | Select-Object -Expand Content

Nächste Schritte