Vorhersagen mit Remote-Modellen in Vertex AI treffen


In dieser Anleitung registrieren Sie einen Vertex AI-Endpunkt als Remote-Modell in BigQuery. Anschließend verwenden Sie die ML.PREDICT-Funktion, um mit dem Remote-Modell Vorhersagen zu treffen.

Sie können Remote-Modelle verwenden, wenn ein Modell zu groß ist, um in BigQuery importiert zu werden. Sie sind auch nützlich, wenn Sie einen einzigen Inferenzpunkt für Online-, Batch- und Mikro-Batch-Anwendungsfälle haben möchten.

Lernziele

  • Importieren Sie ein vortrainiertes TensorFlow-Modell in die Vertex AI Model Registry.
  • Stellen Sie das Modell in einem Vertex AI-Endpunkt bereit.
  • Erstellen Sie eine Cloud-Ressourcen-Verbindung.
  • Verwenden Sie die CREATE MODEL-Anweisung, um ein Remote-Modell in BigQuery zu erstellen.
  • Verwenden Sie die Funktion ML.PREDICT, um Vorhersagen mit dem Remote-Modell zu treffen.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the BigQuery, Vertex AI, Cloud Storage, and BigQuery Connection APIs.

    Enable the APIs

  6. Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben, um die Aufgaben in diesem Dokument ausführen zu können.

Erforderliche Rollen

Wenn Sie ein neues Projekt erstellen, sind Sie der Projektinhaber und erhalten alle erforderlichen IAM-Berechtigungen, die Sie für die Durchführung dieses Tutorials benötigen.

Wenn Sie ein vorhandenes Projekt verwenden, gehen Sie so vor:

Make sure that you have the following role or roles on the project:

Check for the roles

  1. In the Google Cloud console, go to the IAM page.

    Go to IAM
  2. Select the project.
  3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

  4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

Grant the roles

  1. In the Google Cloud console, go to the IAM page.

    IAM aufrufen
  2. Wählen Sie das Projekt aus.
  3. Klicken Sie auf Zugriff erlauben.
  4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.

  5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
  6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
  7. Klicken Sie auf Speichern.
  8. Weitere Informationen zu IAM-Berechtigungen in BigQuery finden Sie unter BigQuery-Berechtigungen.

Modell in die Vertex AI Model Registry importieren

In dieser Anleitung verwenden Sie ein vortrainiertes TensorFlow-Modell, das in Cloud Storage unter gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/ verfügbar ist. Der Cloud Storage-Bucket befindet sich am multiregionalen Standort US.

Das Modell ist ein TensorFlow-Modell mit dem Namen saved_model.pb. Es ist ein benutzerdefiniertes Sentimentanalysemodell, das durch die Feinabstimmung eines BERT-Modells mit Nur-Text-IMDB-Filmrezensionen erstellt wurde. Das Modell verwendet Texteingaben aus den Filmrezensionen und gibt Sentimentwerte zwischen null und eins zurück. Wenn Sie das Modell in die Modellregistrierung importieren, verwenden Sie einen vordefinierten TensorFlow-Container.

So importieren Sie das Modell:

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Model Registry auf.

    Zu Model Registry

  2. Klicken Sie auf Importieren.

  3. Gehen Sie für Schritt 1: Name und Region so vor:

    1. Wählen Sie Als neues Modell importieren aus.

    2. Geben Sie für Name bert_sentiment ein.

    3. Geben Sie unter Beschreibung BQML tutorial model ein.

    4. Wählen Sie bei Region die Option us-central1 aus. Sie müssen eine Region in den USA auswählen, da sich der Cloud Storage-Bucket am multiregionalen Standort US befindet.

    5. Klicken Sie auf Weiter.

  4. Führen Sie für Schritt 2: Modelleinstellungen die folgenden Schritte aus:

    1. Wählen Sie Modellartefakte in einen neuen vordefinierten Container importieren aus.

    2. Gehen Sie im Bereich Vordefinierte Containereinstellungen folgendermaßen vor:

      1. Wählen Sie für Modell-Framework die Option TensorFlow aus.

      2. Wählen Sie für Modell-Framework-Version die Option 2.15 aus.

      3. Wählen Sie unter Beschleunigertyp die Option GPU aus.

      4. Geben Sie unter Speicherort des Modellartefakts gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/ ein.

      5. Lassen Sie für alle übrigen Optionen die Standardwerte bei und klicken Sie auf Importieren.

Nach Abschluss des Imports wird das Modell auf der Seite Model Registry angezeigt.

Modell in einem Vertex AI-Endpunkt bereitstellen

Führen Sie die folgenden Schritte aus, um das Modell an einem Endpunkt bereitzustellen.

  1. Rufen Sie in der Google Cloud Console die Seite Vertex AI Model Registry auf.

    Zu Model Registry

  2. Klicken Sie in der Spalte Name auf bert_sentiment.

  3. Klicken Sie auf den Tab Bereitstellen und Testen.

  4. Klicken Sie auf In Endpunkt bereitstellen.

  5. Führen Sie für Schritt 1, Endpunkt definieren, die folgenden Schritte aus:

    1. Klicken Sie auf Neuen Endpunkt erstellen.

    2. Geben Sie unter Endpunktname bert sentiment endpoint ein.

    3. Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Weiter.

  6. Führen Sie für Schritt 2, Modelleinstellungen, die folgenden Schritte aus:

    1. Geben Sie im Abschnitt Compute-Einstellungen für Mindestanzahl von Computing-Knoten den Wert 1 ein. Dies ist die Anzahl der Knoten, die für das Modell jederzeit verfügbar sein müssen.

    2. Wählen Sie im Bereich Erweiterte Skalierungsoptionen unter Maschinentyp die Option Standard (n1-standard-2) aus. Da Sie beim Importieren des Modells „GPU“ als Beschleunigertyp ausgewählt haben, werden der Beschleunigertyp und die Beschleunigeranzahl automatisch festgelegt, nachdem Sie den Maschinentyp ausgewählt haben.

    3. Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Bereitstellen.

      Wenn das Modell am Endpunkt bereitgestellt wurde, ändert sich der Status in Active.

    4. Kopieren Sie die numerische Endpunkt-ID in der Spalte ID und den Wert in der Spalte Region. Sie benötigen sie später.

Dataset erstellen

Erstellen Sie ein BigQuery-Dataset, um Ihr ML-Modell zu speichern.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    Zur Seite „BigQuery“

  2. Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.

  3. Klicken Sie auf Aktionen ansehen > Dataset erstellen.

    Die Menüoption „Dataset erstellen“

  4. Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:

    • Geben Sie unter Dataset-ID bqml_tutorial ein.

    • Wählen Sie als Standorttyp die Option Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.

    Die öffentlichen Datasets sind am multiregionalen Standort US gespeichert. Der Einfachheit halber sollten Sie Ihr Dataset am selben Standort speichern.

    • Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.

    Die Seite „Dataset erstellen“ mit den ausgefüllten Werten

bq

Wenn Sie ein neues Dataset erstellen möchten, verwenden Sie den Befehl bq mk mit dem Flag --location. Eine vollständige Liste der möglichen Parameter finden Sie in der bq mk --dataset-Befehlsreferenz.

  1. Erstellen Sie ein Dataset mit dem Namen bqml_tutorial, dessen Speicherort auf US festgelegt ist und das die Beschreibung BigQuery ML tutorial dataset hat:

    bq --location=US mk -d \
     --description "BigQuery ML tutorial dataset." \
     bqml_tutorial

    Anstelle des Flags --dataset verwendet der Befehl die verkürzte Form -d. Wenn Sie -d und --dataset auslassen, wird standardmäßig ein Dataset erstellt.

  2. Prüfen Sie, ob das Dataset erstellt wurde:

    bq ls

API

Rufen Sie die Methode datasets.insert mit einer definierten Dataset-Ressource auf.

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

BigQuery-Cloud-Ressourcenverbindung erstellen

Sie benötigen eine Cloud-Ressourcenverbindung, um eine Verbindung zu einem Vertex AI-Endpunkt herzustellen.

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie auf Hinzufügen und dann auf Verbindungen zu externen Datenquellen, um eine Verbindung zu erstellen.

  3. Wählen Sie in der Liste Verbindungstyp die Option Vertex AI-Remote-Modelle, Remote-Funktionen und BigLake (Cloud Resource) aus.

  4. Geben Sie im Feld Verbindungs-ID bqml_tutorial ein.

  5. Prüfen Sie, ob Mehrere Regionen – USA ausgewählt ist.

  6. Klicken Sie auf Verbindung erstellen.

  7. Klicken Sie unten im Fenster auf Verbindung aufrufen. Alternativ können Sie im Bereich Explorer Externe Verbindungen maximieren und dann auf us.bqml_tutorial klicken.

  8. Kopieren Sie im Bereich Verbindungsinformationen die Dienstkonto-ID. Sie benötigen diese ID, wenn Sie Berechtigungen für die Verbindung konfigurieren. Wenn Sie eine Verbindungsressource erstellen, erstellt BigQuery ein eindeutiges Systemdienstkonto und ordnet es der Verbindung zu.

bq

  1. Verbindung herstellen:

    bq mk --connection --location=US --project_id=PROJECT_ID \
        --connection_type=CLOUD_RESOURCE bqml_tutorial

    Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID. Der Parameter --project_id überschreibt das Standardprojekt.

    Wenn Sie eine Verbindungsressource herstellen, erstellt BigQuery ein eindeutiges Systemdienstkonto und ordnet es der Verbindung zu.

    Fehlerbehebung:Wird der folgende Verbindungsfehler angezeigt, aktualisieren Sie das Google Cloud SDK:

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. Rufen Sie die Dienstkonto-ID ab und kopieren Sie sie zur Verwendung in einem späteren Schritt:

    bq show --connection PROJECT_ID.us.bqml_tutorial

    Die Ausgabe sieht in etwa so aus:

    name                          properties
    1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
    

Verbindungszugriff einrichten

Weisen Sie dem Dienstkonto der Cloud-Ressourcenverbindung die Rolle „Vertex AI-Nutzer“ zu. Sie müssen diese Rolle in demselben Projekt gewähren, in dem Sie den Endpunkt des Remote-Modells erstellt haben.

So weisen Sie die Rolle zu:

  1. Zur Seite IAM & Verwaltung.

    IAM & Verwaltung aufrufen

  2. Klicken Sie auf Zugriff gewähren.

  3. Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID der Cloud-Ressourcenverbindung ein, die Sie zuvor kopiert haben.

  4. Wählen Sie im Feld Rolle auswählen die Option Vertex AI und dann Vertex AI-Nutzer aus.

  5. Klicken Sie auf Speichern.

BigQuery ML-Remote-Modell erstellen

Sie erstellen ein BigQuery ML-Remote-Modell mit der CREATE MODEL-Anweisung und der REMOTE WITH CONNECTION-Klausel. Weitere Informationen zur CREATE MODEL-Anweisung finden Sie unter CREATE MODEL-Anweisung für Remote-Modelle im Vergleich zu benutzerdefinierten Modellen.

Sie erstellen Ihr Modell am multiregionalen Standort US. In einem BigQuery-Dataset mit mehreren Regionen (US, EU) können Sie nur ein Remote-Modell erstellen, das eine Verbindung zu einem Endpunkt herstellt, der in einer Region innerhalb desselben multiregionalen Standorts (US, EU) bereitgestellt wird.

Wenn Sie das Remote-Modell erstellen, benötigen Sie die Endpunkt-ID, die beim Bereitstellen des Modells in Vertex AI generiert wurde. Außerdem müssen die Namen und Typen der Eingabe- und Ausgabefelder genau mit der Ein- und Ausgabe des Vertex AI-Modells übereinstimmen. In diesem Beispiel ist die Eingabe ein Text STRING und die Ausgabe ein ARRAY vom Typ FLOAT64.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie unter Neu erstellen auf SQL-Abfrage.

  3. Geben Sie im Abfrageeditor die folgende CREATE MODEL-Anweisung ein und klicken Sie dann auf Ausführen:

    CREATE OR REPLACE MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment`
    INPUT (text STRING)
    OUTPUT(scores ARRAY)
    REMOTE WITH CONNECTION `PROJECT_ID.us.bqml_tutorial`
    OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID')

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist der Name Ihres Projekts.
    • ENDPOINT_ID: die Endpunkt-ID, die Sie zuvor kopiert haben.

    Wenn der Vorgang abgeschlossen ist, wird eine Meldung wie Successfully created model named bert_sentiment angezeigt.

    Ihr neues Modell wird im Bereich Ressourcen angezeigt. Modelle sind am Modellsymbol Modellsymbol zu erkennen.

    Wenn Sie das neue Modell im Feld Ressourcen auswählen, werden Informationen zum Modell unter dem Abfrageeditor angezeigt.

bq

  1. Erstellen Sie das Remote-Modell mit der folgenden CREATE MODEL-Anweisung:

    bq query --use_legacy_sql=false \
    "CREATE OR REPLACE MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment`
    INPUT (text STRING)
    OUTPUT(scores ARRAY)
    REMOTE WITH CONNECTION `PROJECT_ID.us.bqml_tutorial`
    OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpoints/ENDPOINT_ID')"

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist der Name Ihres Projekts.
    • ENDPOINT_ID: die Endpunkt-ID, die Sie zuvor kopiert haben.
  2. Prüfen Sie nach dem Erstellen des Modells, ob es im Datensatz angezeigt wird:

    bq ls -m bqml_tutorial

    Die Ausgabe sieht in etwa so aus:

    Id               Model Type   Labels    Creation Time
    ---------------- ------------ -------- -----------------
    bert_sentiment                         28 Jan 17:39:43

Vorhersagen mit ML.PREDICT abrufen

Mit der Funktion ML.PREDICT können Sie Stimmungsvorhersagen aus dem Remote-Modell abrufen. Die Eingabe ist eine Textspalte (review), die Rezensionen von Filmen aus der Tabelle bigquery-public-data.imdb.reviews enthält.

In diesem Beispiel werden 10.000 Datensätze ausgewählt und für die Vorhersage gesendet. Das Remote-Modell verwendet für Anfragen standardmäßig eine Batchgröße von 128.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie im Bereich Neu erstellen auf SQL-Abfrage.

  3. Geben Sie im Abfrageeditor die folgende Abfrage mit der Funktion ML.PREDICT ein und klicken Sie auf Ausführen.

    SELECT *
    FROM ML.PREDICT (
        MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment`,
        (
            SELECT review as text
            FROM `bigquery-public-data.imdb.reviews`
            LIMIT 10000
        )
    )

    Die Abfrageergebnisse sollten in etwa so aussehen:

    Abfrageergebnisse

bq

Geben Sie diesen Befehl ein, um die Abfrage mit ML.PREDICT auszuführen.

bq query --use_legacy_sql=false \
'SELECT *
FROM ML.PREDICT (
MODEL `PROJECT_ID.bqml_tutorial.bert_sentiment`,
  (
    SELECT review as text
    FROM `bigquery-public-data.imdb.reviews`
    LIMIT 10000
  )
)'

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Projekt löschen

Console

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

gcloud

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

Einzelne Ressourcen löschen

Alternativ können Sie die einzelnen Ressourcen entfernen, die in dieser Anleitung verwendet werden:

  1. Löschen Sie das Modell.

  2. Optional: Dataset löschen

  3. Heben Sie die Bereitstellung des Modells auf und löschen Sie den Endpunkt.

  4. Löschen Sie das Modell aus der Model Registry.

  5. Löschen Sie die Cloud-Ressourcen-Verbindung.

Nächste Schritte