Batchvorhersagen und -beschreibungen abrufen

Auf dieser Seite wird gezeigt, wie Sie mithilfe der Google Cloud Console oder der Vertex AI API eine Batchvorhersageanfrage an Ihr trainiertes AutoML-Klassifizierungs- oder Regressionsmodell stellen.

Die Anforderung einer Batchvorhersage ist eine asynchrone Anfrage (im Gegensatz zu einer Onlinevorhersagen, die eine synchrone Anfrage ist). Sie können Batchvorhersagen direkt von der Modellressource anfordern, ohne das Modell auf einem Endpunkt bereitstellen zu müssen. Verwenden Sie für tabellarische Daten Batchvorhersagen, wenn Sie nicht sofort eine Antwort benötigen und akkumulierte Daten in einer einzigen Anfrage verarbeiten möchten.

Für eine Batchvorhersage geben Sie eine Eingabequelle und einen Ausgabeort an, an dem Vertex AI Vorhersageergebnisse speichert.

Hinweis

Bevor Sie eine Batchvorhersageanfrage stellen können, müssen Sie zuerst ein Modell trainieren.

Eingabedaten

Die Eingabedaten für Batchvorhersageanfragen sind die Daten, die Ihr Modell zum Erstellen von Prognosen verwendet. Für Klassifizierungs- oder Regressionsmodelle können Sie Eingabedaten in einem von zwei Formaten bereitstellen:

  • BigQuery-Tabellen
  • CSV-Objekte in Cloud Storage

Wir empfehlen, dass Sie für Ihre Eingabedaten dasselbe Format verwenden, das Sie zum Trainieren des Modells verwendet haben. Wenn Sie Ihr Modell beispielsweise mit Daten in BigQuery trainiert haben, empfiehlt es sich, eine BigQuery-Tabelle als Quelle für Ihre Batchvorhersagen zu verwenden. Da Vertex AI alle CSV-Eingabefelder als Strings behandelt, kann eine Kombination der Formate von Trainings- und Eingabedaten zu Fehlern führen.

Die Datenquelle muss tabellarische Daten enthalten, die alle Spalten (in beliebiger Reihenfolge) enthalten, die zum Trainieren des Modells verwendet wurden. Sie können Spalten einfügen, die nicht in den Trainingsdaten enthalten waren, oder die in den Trainingsdaten enthalten waren, aber nicht für das Training verwendet wurden. Diese zusätzlichen Spalten sind in der Ausgabe enthalten, haben aber keinen Einfluss auf die Vorhersageergebnisse.

Anforderungen an Eingabedaten

BigQuery-Tabelle

Wenn Sie eine BigQuery-Tabelle als Eingabe auswählen, müssen Sie Folgendes beachten:

  • BigQuery-Datenquellentabellen dürfen nicht größer als 100 GB sein.
  • Wenn sich die Tabelle in einem anderen Projekt befindet, müssen Sie dem Vertex AI-Dienstkonto in diesem Projekt die Rolle BigQuery Data Editor zuweisen.

CSV-Datei

Wenn Sie ein CSV-Objekt in Cloud Storage als Eingabe auswählen, müssen Sie Folgendes beachten:

  • Die Datenquelle muss mit einer Kopfzeile mit den Spaltennamen beginnen.
  • Jede Datenquellendatei darf nicht größer als 10 GB sein. Sie können mehrere Dateien mit einer Gesamtgröße von maximal 100 GB importieren.
  • Wenn sich der Cloud Storage-Bucket in einem anderen Projekt befindet, müssen Sie dem Vertex AI-Dienstkonto in diesem Projekt die Rolle Storage Object Creator zuweisen.
  • Alle Strings müssen in doppelte Anführungszeichen (") gesetzt werden.

Ausgabeformat

Das Ausgabeformat Ihrer Batchvorhersageanfrage muss nicht mit dem für die Eingabe verwendeten Format übereinstimmen. Wenn Sie beispielsweise BigQuery-Tabelle als Eingabe verwendet haben, können Sie die Ergebnisse an ein CSV-Objekt in Cloud Storage ausgeben.

Batchvorhersageanfrage an das Modell stellen

Sie können die Google Cloud Console oder die Vertex AI API verwenden, um Batchvorhersageanfragen zu stellen. Die Eingabedatenquelle können CSV-Objekte sein, die in einem Cloud Storage-Bucket oder in BigQuery-Tabellen gespeichert sind. Abhängig von der Datenmenge, die Sie als Eingabe senden, kann eine Batchvorhersage einige Zeit in Anspruch nehmen.

Google Cloud Console

Verwenden Sie die Google Cloud Console, um eine Batchvorhersage anzufordern.

  1. Rufen Sie in der Google Cloud Console im Abschnitt "Vertex AI" die Seite Batchvorhersagen auf.

    Zur Seite "Batchvorhersagen"

  2. Klicken Sie auf Erstellen, um das Fenster Neue Batchvorhersage zu öffnen.
  3. Führen Sie für Batchvorhersage definieren folgende Schritte aus:
    1. Geben Sie einen Namen für die Batchvorhersage ein.
    2. Wählen Sie unter Modellname den Namen des Modells aus, das für diese Batchvorhersage verwendet werden soll.
    3. Wählen Sie für Version die Modellversion für diese Batchvorhersage aus.
    4. Wählen Sie unter Quelle auswählen aus, ob Ihre Quelleingabedaten eine CSV-Datei in Cloud Storage oder eine Tabelle in BigQuery sind.
      • Geben Sie bei CSV-Dateien den Cloud Storage-Speicherort an, in dem sich Ihre CSV-Eingabedatei befindet.
      • Geben Sie bei BigQuery-Tabellen die Projekt-ID an, in der sich die Tabelle befindet, die BigQuery-Dataset-ID sowie die BigQuery-Tabellen- oder -Ansichts-ID.
    5. Wählen Sie unter Ausgabe die Option CSV oder BigQuery aus.
      • Geben Sie für CSV den Cloud Storage-Bucket an, in dem Vertex AI Ihre Ausgabe speichert.
      • Für BigQuery können Sie eine Projekt-ID oder ein vorhandenes Dataset angeben:
        • Geben Sie die Projekt-ID in das Feld Google Cloud Project ID ein, um die Projekt-ID anzugeben. Vertex AI erstellt ein neues Ausgabe-Dataset.
        • Geben Sie den vorhandenen BigQuery-Pfad in das Feld Google Cloud-Projekt-ID ein, z. B. bq://projectid.datasetid, um ein vorhandenes Dataset anzugeben.
      • Optional: Sie können eine Vorhersage mit Erläuterungen anfordern, die auch als Featureattribute bezeichnet werden, um zu sehen, wie Ihr Modell zu einer Vorhersage gelangt ist. Die Werte der lokalen Merkmalwichtigkeit geben an, wie viel jedes Feature zum Vorhersageergebnis beigetragen hat. Feature-Attributionen sind in Vertex AI-Vorhersagen über Vertex Explainable AI enthalten.

        Wählen Sie Aktivieren Sie Feature-Attributionen für dieses Modell aus, um Feature-Attributionen zu aktivieren. Diese Option ist verfügbar, wenn das Ausgabeziel BigQuery oder JSONL in Cloud Storage ist. Feature-Attributionen werden für CSV in Cloud Storage nicht unterstützt.

  4. Optional: Die Modellmonitoring-Analyse für Batchvorhersagen ist in der Vorschau verfügbar. Informationen für das Hinzufügen einer Konfiguration zur Abweichungserkennung zu Ihrem Batchvorhersagejob finden Sie unter Voraussetzungen.
    1. Klicken Sie, um die Option Model Monitoring für diese Batchvorhersage aktivieren einzuschalten.
    2. Wählen Sie eine Quelle der Trainingsdaten aus. Geben Sie den Datenpfad oder den Speicherort für die ausgewählte Trainingsdatenquelle ein.
    3. (Optional) Geben Sie unter Benachrichtigungsgrenzwert Grenzwerte an, ab denen Benachrichtigungen ausgelöst werden sollen.
    4. Geben Sie unter Benachrichtigungs-E-Mails eine oder mehrere durch Kommas getrennte E-Mail-Adressen ein, um Benachrichtigungen zu erhalten, wenn ein Modell einen Benachrichtigungsgrenzwert überschreitet.
    5. Optional: Fügen Sie unter Benachrichtigungskanäle Cloud Monitoring-Kanäle hinzu, um Benachrichtigungen zu erhalten, wenn ein Modell einen Benachrichtigungsgrenzwert überschreitet. Sie können vorhandene Cloud Monitoring-Kanäle auswählen oder neue erstellen. Klicken Sie dazu auf Benachrichtigungskanäle verwalten. Die Console unterstützt PagerDuty-, Slack- und Pub/Sub-Benachrichtigungskanäle.
  5. Klicken Sie auf Erstellen.

API: BigQuery

REST

Mit der Methode batchPredictionJobs.create können Sie eine Batchvorhersage anfordern.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der das Modell gespeichert ist .und der Batchvorhersagejob ausgeführt wird. Beispiel: us-central1.
  • PROJECT_ID: Ihre Projekt-ID
  • BATCH_JOB_NAME: Anzeigename für den Batchjob
  • MODEL_ID: Die ID für das Modell, das für Vorhersagen verwendet werden soll
  • INPUT_URI: Referenz zur BigQuery-Datenquelle. Füllen Sie das Formular aus:
    bq://bqprojectId.bqDatasetId.bqTableId
    
  • OUTPUT_URI: Referenz zum BigQuery-Ziel, in das die Vorhersagen geschrieben werden Geben Sie die Projekt-ID und optional eine vorhandene Dataset-ID an. Wenn Sie nur die Projekt-ID angeben, erstellt Vertex AI ein neues Ausgabe-Dataset für Sie. Verwenden Sie das folgende Formular:
    bq://bqprojectId.bqDatasetId
    
  • MACHINE_TYPE: Die Maschinenressourcen, die für diesen Batchvorhersagejob zu verwenden sind. Weitere Informationen
  • STARTING_REPLICA_COUNT: Die Anzahl der Knoten für diesen Batchvorhersagejob. Die Knotenanzahl kann je nach Last erhöht (bis zur maximalen Knotenanzahl) oder verringert werden, niemals jedoch unter diese Zahl fallen.
  • MAX_REPLICA_COUNT: Die maximale Anzahl von Knoten für diesen Batchvorhersagejob. Die Anzahl der Knoten kann je nach Last erhöht oder verringert werden, überschreitet jedoch nie den Höchstwert. Optional; der Standardwert ist 10.
  • GENERATE_EXPLANATION: Sie können eine Vorhersage mit Erläuterungen anfordern, die auch als Featureattribute bezeichnet werden, um zu sehen, wie Ihr Modell zu einer Vorhersage gelangt ist. Die Werte der lokalen Merkmalwichtigkeit geben an, wie viel jedes Feature zum Vorhersageergebnis beigetragen hat. Feature-Attributionen sind in Vertex AI-Vorhersagen über Vertex Explainable AI enthalten.

    Der Standardwert ist false. Setzen Sie diesen Wert auf true, um Feature-Attributionen zu aktivieren.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs

JSON-Text der Anfrage:

{
  "displayName": "BATCH_JOB_NAME",
  "model": "MODEL_ID",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "OUTPUT_URI"
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "MACHINE_TYPE",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": STARTING_REPLICA_COUNT,
    "maxReplicaCount": MAX_REPLICA_COUNT
  },

  "generateExplanation": GENERATE_EXPLANATION

}

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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"

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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890",
  "displayName": "batch_job_1 202005291958",
  "model": "projects/12345/locations/us-central1/models/5678",
  "state": "JOB_STATE_PENDING",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
        "outputUri": bq://12345
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "n1-standard-32",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": 2,
    "maxReplicaCount": 6
  },
  "manualBatchTuningParameters": {
    "batchSize": 4
  },
  "generateExplanation": false,
  "outputInfo": {
    "bigqueryOutputDataset": "bq://12345.reg_model_2020_10_02_06_04
  }
  "state": "JOB_STATE_PENDING",
  "createTime": "2020-09-30T02:58:44.341643Z",
  "updateTime": "2020-09-30T02:58:44.341643Z",
}

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.

Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Ersetzen Sie im folgenden Beispiel INSTANCES_FORMAT und PREDICTIONS_FORMAT mit `bigquery`. Informationen zum Ersetzen der anderen Platzhalter finden Sie auf dem Tab „REST & CMD LINE“ in diesem Abschnitt.
import com.google.cloud.aiplatform.v1.BatchPredictionJob;
import com.google.cloud.aiplatform.v1.BigQueryDestination;
import com.google.cloud.aiplatform.v1.BigQuerySource;
import com.google.cloud.aiplatform.v1.JobServiceClient;
import com.google.cloud.aiplatform.v1.JobServiceSettings;
import com.google.cloud.aiplatform.v1.LocationName;
import com.google.cloud.aiplatform.v1.ModelName;
import com.google.gson.JsonObject;
import com.google.protobuf.Value;
import com.google.protobuf.util.JsonFormat;
import java.io.IOException;

public class CreateBatchPredictionJobBigquerySample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "PROJECT";
    String displayName = "DISPLAY_NAME";
    String modelName = "MODEL_NAME";
    String instancesFormat = "INSTANCES_FORMAT";
    String bigquerySourceInputUri = "BIGQUERY_SOURCE_INPUT_URI";
    String predictionsFormat = "PREDICTIONS_FORMAT";
    String bigqueryDestinationOutputUri = "BIGQUERY_DESTINATION_OUTPUT_URI";
    createBatchPredictionJobBigquerySample(
        project,
        displayName,
        modelName,
        instancesFormat,
        bigquerySourceInputUri,
        predictionsFormat,
        bigqueryDestinationOutputUri);
  }

  static void createBatchPredictionJobBigquerySample(
      String project,
      String displayName,
      String model,
      String instancesFormat,
      String bigquerySourceInputUri,
      String predictionsFormat,
      String bigqueryDestinationOutputUri)
      throws IOException {
    JobServiceSettings settings =
        JobServiceSettings.newBuilder()
            .setEndpoint("us-central1-aiplatform.googleapis.com:443")
            .build();
    String location = "us-central1";

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (JobServiceClient client = JobServiceClient.create(settings)) {
      JsonObject jsonModelParameters = new JsonObject();
      Value.Builder modelParametersBuilder = Value.newBuilder();
      JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder);
      Value modelParameters = modelParametersBuilder.build();
      BigQuerySource bigquerySource =
          BigQuerySource.newBuilder().setInputUri(bigquerySourceInputUri).build();
      BatchPredictionJob.InputConfig inputConfig =
          BatchPredictionJob.InputConfig.newBuilder()
              .setInstancesFormat(instancesFormat)
              .setBigquerySource(bigquerySource)
              .build();
      BigQueryDestination bigqueryDestination =
          BigQueryDestination.newBuilder().setOutputUri(bigqueryDestinationOutputUri).build();
      BatchPredictionJob.OutputConfig outputConfig =
          BatchPredictionJob.OutputConfig.newBuilder()
              .setPredictionsFormat(predictionsFormat)
              .setBigqueryDestination(bigqueryDestination)
              .build();
      String modelName = ModelName.of(project, location, model).toString();
      BatchPredictionJob batchPredictionJob =
          BatchPredictionJob.newBuilder()
              .setDisplayName(displayName)
              .setModel(modelName)
              .setModelParameters(modelParameters)
              .setInputConfig(inputConfig)
              .setOutputConfig(outputConfig)
              .build();
      LocationName parent = LocationName.of(project, location);
      BatchPredictionJob response = client.createBatchPredictionJob(parent, batchPredictionJob);
      System.out.format("response: %s\n", response);
      System.out.format("\tName: %s\n", response.getName());
    }
  }
}

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

Im folgenden Beispiel legen Sie die Parameter "instances_format" und "predictions_format" auf "bigquery" fest. Informationen zum Festlegen der anderen Parameter finden Sie auf dem Tab "REST UND BEFEHLSZEILE" in diesem Abschnitt.
from google.cloud import aiplatform_v1beta1
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value

def create_batch_prediction_job_bigquery_sample(
    project: str,
    display_name: str,
    model_name: str,
    instances_format: str,
    bigquery_source_input_uri: str,
    predictions_format: str,
    bigquery_destination_output_uri: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform_v1beta1.JobServiceClient(client_options=client_options)
    model_parameters_dict = {}
    model_parameters = json_format.ParseDict(model_parameters_dict, Value())

    batch_prediction_job = {
        "display_name": display_name,
        # Format: 'projects/{project}/locations/{location}/models/{model_id}'
        "model": model_name,
        "model_parameters": model_parameters,
        "input_config": {
            "instances_format": instances_format,
            "bigquery_source": {"input_uri": bigquery_source_input_uri},
        },
        "output_config": {
            "predictions_format": predictions_format,
            "bigquery_destination": {"output_uri": bigquery_destination_output_uri},
        },
        # optional
        "generate_explanation": True,
    }
    parent = f"projects/{project}/locations/{location}"
    response = client.create_batch_prediction_job(
        parent=parent, batch_prediction_job=batch_prediction_job
    )
    print("response:", response)

API: Cloud Storage

REST

Mit der Methode batchPredictionJobs.create können Sie eine Batchvorhersage anfordern.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION_ID: Region, in der das Modell gespeichert ist .und der Batchvorhersagejob ausgeführt wird. Beispiel: us-central1.
  • PROJECT_ID: Ihre Projekt-ID
  • BATCH_JOB_NAME: Anzeigename für den Batchjob
  • MODEL_ID: Die ID für das Modell, das für Vorhersagen verwendet werden soll
  • URI: Pfade (URIs) zu den Cloud Storage-Buckets mit den Trainingsdaten. Es können mehrere sein. Jeder URI hat das folgende Format:
    gs://bucketName/pathToFileName
    
  • OUTPUT_URI_PREFIX: Pfad zu einem Cloud Storage-Ziel, in das die Vorhersagen geschrieben werden. Vertex AI schreibt Batchvorhersagen in ein mit einem Zeitstempel versehenes Unterverzeichnis dieses Pfads. Geben Sie für diesen Wert einen String im folgenden Format an:
    gs://bucketName/pathToOutputDirectory
    
  • MACHINE_TYPE: Die Maschinenressourcen, die für diesen Batchvorhersagejob zu verwenden sind. Weitere Informationen
  • STARTING_REPLICA_COUNT: Die Anzahl der Knoten für diesen Batchvorhersagejob. Die Knotenanzahl kann je nach Last erhöht (bis zur maximalen Knotenanzahl) oder verringert werden, niemals jedoch unter diese Zahl fallen.
  • MAX_REPLICA_COUNT: Die maximale Anzahl von Knoten für diesen Batchvorhersagejob. Die Anzahl der Knoten kann je nach Last erhöht oder verringert werden, überschreitet jedoch nie den Höchstwert. Optional; der Standardwert ist 10.
  • GENERATE_EXPLANATION: Sie können eine Vorhersage mit Erläuterungen anfordern, die auch als Featureattribute bezeichnet werden, um zu sehen, wie Ihr Modell zu einer Vorhersage gelangt ist. Die Werte der lokalen Merkmalwichtigkeit geben an, wie viel jedes Feature zum Vorhersageergebnis beigetragen hat. Feature-Attributionen sind in Vertex AI-Vorhersagen über Vertex Explainable AI enthalten.

    Der Standardwert ist false. Setzen Sie diesen Wert auf true, um Feature-Attributionen zu aktivieren. Diese Option ist nur verfügbar, wenn das Ausgabeziel JSONL ist. Feature-Attributionen werden für CSV in Cloud Storage nicht unterstützt.

HTTP-Methode und URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs

JSON-Text der Anfrage:

{
  "displayName": "BATCH_JOB_NAME",
  "model": "MODEL_ID",
  "inputConfig": {
    "instancesFormat": "csv",
    "gcsSource": {
      "uris": [
        URI1,...
      ]
    },
  },
  "outputConfig": {
    "predictionsFormat": "csv",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_URI_PREFIX"
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "MACHINE_TYPE",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": STARTING_REPLICA_COUNT,
    "maxReplicaCount": MAX_REPLICA_COUNT
  },

  "generateExplanation": GENERATE_EXPLANATION

}

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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"

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_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT__ID/locations/LOCATION_ID/batchPredictionJobs/67890",
  "displayName": "batch_job_1 202005291958",
  "model": "projects/12345/locations/us-central1/models/5678",
  "state": "JOB_STATE_PENDING",
  "inputConfig": {
    "instancesFormat": "csv",
    "gcsSource": {
      "uris": [
        "gs://bp_bucket/reg_mode_test"
      ]
    }
  },
  "outputConfig": {
    "predictionsFormat": "csv",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_URI_PREFIX"
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "n1-standard-32",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": 2,
    "maxReplicaCount": 6
  },
  "manualBatchTuningParameters": {
    "batchSize": 4
  }
  "outputInfo": {
    "gcsOutputDataset": "OUTPUT_URI_PREFIX/prediction-batch_job_1 202005291958-2020-09-30T02:58:44.341643Z"
  }
  "state": "JOB_STATE_PENDING",
  "createTime": "2020-09-30T02:58:44.341643Z",
  "updateTime": "2020-09-30T02:58:44.341643Z",
}

Batchvorhersageergebnisse abrufen

Vertex AI sendet die Ausgabe von Batchvorhersagen an das von Ihnen angegebene Ziel, entweder BigQuery oder Cloud Storage.

BigQuery

Ausgabe-Dataset

Wenn Sie BigQuery verwenden, wird die Ausgabe der Batchvorhersage in einem Ausgabe-Dataset gespeichert. Wenn Sie ein Dataset für Vertex AI bereitgestellt haben, ist der Name des Datasets (BQ_DATASET_NAME) der Name, den Sie zuvor angegeben haben. Wenn Sie kein Ausgabe-Dataset angegeben haben, hat Vertex AI ein Dataset für Sie erstellt. Sie finden den Namen (BQ_DATASET_NAME) mit den folgenden Schritten:

  1. Rufen Sie in der Google Cloud Console die Seite für Vertex AI-Batchvorhersagen auf.

    Zur Seite "Batchvorhersagen"

  2. Wählen Sie die erstellte Vorhersage aus.
  3. Das Ausgabe-Dataset ist unter Exportspeicherort angegeben. Der Dataset-Name wird so erstellt: prediction_MODEL_NAME_TIMESTAMP
Ausgabetabellen

Das Ausgabe-Dataset enthält eine oder mehrere der folgenden drei Ausgabetabellen:

  • Vorhersagetabelle

    Diese Tabelle enthält eine Zeile für jede Zeile in Ihren Eingabedaten, in der eine Vorhersage angefordert wurde (d. h., wenn TARGET_COLUMN_NAME = null ist).

  • Fehlertabelle

    Diese Tabelle enthält eine Zeile für jeden nicht kritischen Fehler, der während der Batchvorhersage aufgetreten ist. Jeder nicht kritische Fehler entspricht einer Zeile in den Eingabedaten, für die Vertex AI keine Prognose zurückgeben konnte.

Vorhersagetabelle

Der Name der Tabelle (BQ_PREDICTIONS_TABLE_NAME) wird durch Anfügen von "predictions_" mit dem Zeitstempel gebildet, wann der Batchvorhersagejob gestartet wurde: predictions_TIMESTAMP

Rufen Sie zum Abrufen von Vorhersagen die BigQuery-Seite auf.

BigQuery aufrufen

Das Format der Abfrage hängt vom Modelltyp ab.

Klassifikation:

SELECT predicted_TARGET_COLUMN_NAME.classes AS classes,
predicted_TARGET_COLUMN_NAME.scores AS scores
FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME

classes ist die Liste der möglichen Klassen und scores die entsprechenden Konfidenzwerte.

Regression:

SELECT predicted_TARGET_COLUMN_NAME.value,
predicted_TARGET_COLUMN_NAME.lower_bound,
predicted_TARGET_COLUMN_NAME.upper_bound
FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME

Wenn Sie Featureattributionen aktiviert haben, finden Sie diese auch in der Vorhersagetabelle. Führen Sie die folgende Abfrage aus, um auf Zuordnungen für ein Feature BQ_FEATURE_NAME zuzugreifen:

SELECT explanation.attributions[OFFSET(0)].featureAttributions.BQ_FEATURE_NAME FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
  

Fehlertabelle

Der Name der Tabelle (BQ_ERRORS_TABLE_NAME) wird durch Anfügen von errors_ mit dem Zeitstempel erstellt, zu dem der Batchvorhersagejob gestartet wurde: errors_TIMESTAMP. So rufen Sie die Fehlervalidierungstabelle ab:
  1. Rufen Sie in der Console die Seite "BigQuery" auf.

    BigQuery aufrufen

  2. Führen Sie die folgende Abfrage aus:
    SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
          
Die Fehler werden in den folgenden Spalten gespeichert:
  • errors_TARGET_COLUMN_NAME.code
  • errors_TARGET_COLUMN_NAME.message

Cloud Storage

Wenn Sie Cloud Storage als Ausgabeziel angegeben haben, werden die Ergebnisse Ihrer Batchvorhersageanfrage als CSV-Dateien in einem neuen Ordner in dem von Ihnen angegebenen Bucket zurückgegeben. Der Name des Ordners ist der Name Ihres Modells, dem "prediction_" vorangestellt wird und der Zeitstempel vom Start des Vorhersagejobs angehängt wird. Sie finden den Namen des Cloud Storage-Ordners auf dem Tab Batchvorhersagen für Ihr Modell.

Der Cloud Storage-Ordner enthält zwei Arten von Objekten:
  • Vorhersageobjekte

    Die Vorhersageobjekte heißen "predictions_1.csv", "predictions_2.csv" usw. Sie enthalten eine Kopfzeile mit den Spaltennamen und eine Zeile für jede zurückgegebene Vorhersage. In den Vorhersageobjekten gibt Vertex AI Ihre Vorhersagedaten zurück und erstellt basierend auf Modelltyp eine oder mehrere neue Spalten für die Vorhersageergebnisse:

    • Klassifizierung: Für jeden potenziellen Wert Ihrer Zielspalte wird eine Spalte mit dem Namen TARGET_COLUMN_NAME_VALUE_score den Ergebnissen hinzugefügt. Diese Spalte enthält den Wert oder die Konfidenzschätzung für diesen Wert.
    • Regression: Der vorhergesagte Wert für diese Zeile wird in einer Spalte mit dem Namen predicted_TARGET_COLUMN_NAME zurückgegeben. Das Vorhersageintervall wird für die CSV-Ausgabe nicht zurückgegeben.
  • Fehlerobjekte

    Die Fehlerobjekte heißen "errors_1.csv", "errors_2.csv" usw. Sie enthalten eine Kopfzeile und eine Zeile für jede Zeile in Ihren Eingabedaten, für die Vertex AI keine Vorhersage zurückgeben konnte, z. B. wenn eine Funktion, die keinen Nullwert zulässt, null war.

Hinweis: Wenn die Ergebnisse umfangreich sind, werden sie in mehrere Objekte aufgeteilt.

Feature-Attributionen sind für Batchvorhersageergebnisse, die in Cloud Storage zurückgegeben werden, nicht verfügbar.

Vorhersageergebnisse interpretieren

Klassifizierung

Klassifizierungsmodelle geben einen Konfidenzwert zurück.

Der Konfidenzwert gibt an, wie stark Ihr Modell die einzelnen Klassen oder Labels mit einem Testelement verknüpft. Je höher die Zahl, desto höher die Konfidenz des Modells, dass das Label auf dieses Element angewendet werden sollte. Sie entscheiden, wie hoch der Konfidenzwert für die Annahme der Ergebnisse des Modells sein muss.

Regression

Regressionsmodelle geben einen Vorhersagewert zurück. Für BigQuery-Ziele geben sie auch ein Vorhersageintervall zurück. Das Vorhersageintervall bietet einen Wertebereich, bei dem das Modell eine Konfidenz von 95 % hat, dass er das tatsächliche Ergebnis enthält.

Erläuterungsergebnisse interpretieren

Wenn die Ergebnisse der Batchvorhersage in BigQuery gespeichert sind und Sie Featureattributionen aktivieren möchten, finden Sie die Werte der Feature-Attribution in der Vorhersagetabelle.

Zur Berechnung der lokalen Featurewichtigkeit wird zuerst der Baseline-Vorhersagewert berechnet. Die Basiswerte werden aus den Trainingsdaten berechnet, wobei der Medianwert für numerische Features und der Modus für kategoriale Features verwendet werden. Die aus den Basiswerten generierte Vorhersage ist der Basis-Vorhersagewert. Baselinewerte werden für ein Modell einmal berechnet und bleiben unverändert.

Bei einer bestimmten Vorhersage zeigt Ihnen die lokale Featurewichtigkeit für jedes Feature an, wie viel dieses Feature im Vergleich zum Baseline-Vorhersagewert zum Ergebnis hinzugefügt oder davon abgezogen hat. Die Summe aller Featurewichtigkeitswerte entspricht der Differenz zwischen dem Baseline-Vorhersagewert und dem Vorhersageergebnis.

Bei Klassifizierungsmodellen liegt die Punktzahl immer zwischen 0,0 und 1,0 (einschließlich). Daher liegen die lokalen Featurewichtigkeitswerte für Klassifizierungsmodelle immer zwischen -1.0 und 1.0 (einschließlich).

Beispiele für Feature-Attributionsabfragen und weitere Informationen finden Sie unter Featureattributionen für Klassifizierung und Regression.

Nächste Schritte