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.
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
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Vertex AI, Cloud Storage, and BigQuery Connection APIs.
- 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:
- BigQuery Studio Admin (
roles/bigquery.studioAdmin
) - Vertex AI User (
roles/aiplatform.user
) - BigQuery Connection Admin (
roles/bigquery.connectionAdmin
)
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
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.
- 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
-
In the Google Cloud console, go to the IAM page.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf Zugriff erlauben.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.
- Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
- Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
- Klicken Sie auf Speichern.
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:
Rufen Sie in der Google Cloud Console die Seite Vertex AI Model Registry auf.
Klicken Sie auf Importieren.
Gehen Sie für Schritt 1: Name und Region so vor:
Wählen Sie Als neues Modell importieren aus.
Geben Sie für Name
bert_sentiment
ein.Geben Sie unter Beschreibung
BQML tutorial model
ein.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 StandortUS
befindet.Klicken Sie auf Weiter.
Führen Sie für Schritt 2: Modelleinstellungen die folgenden Schritte aus:
Wählen Sie Modellartefakte in einen neuen vordefinierten Container importieren aus.
Gehen Sie im Bereich Vordefinierte Containereinstellungen folgendermaßen vor:
Wählen Sie für Modell-Framework die Option TensorFlow aus.
Wählen Sie für Modell-Framework-Version die Option 2.15 aus.
Wählen Sie unter Beschleunigertyp die Option GPU aus.
Geben Sie unter Speicherort des Modellartefakts
gs://cloud-samples-data/bigquery/ml/remote_model_tutorial/
ein.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.
Rufen Sie in der Google Cloud Console die Seite Vertex AI Model Registry auf.
Klicken Sie in der Spalte Name auf
bert_sentiment
.Klicken Sie auf den Tab Bereitstellen und Testen.
Klicken Sie auf In Endpunkt bereitstellen.
Führen Sie für Schritt 1, Endpunkt definieren, die folgenden Schritte aus:
Klicken Sie auf Neuen Endpunkt erstellen.
Geben Sie unter Endpunktname
bert sentiment endpoint
ein.Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Weiter.
Führen Sie für Schritt 2, Modelleinstellungen, die folgenden Schritte aus:
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.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.
Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Bereitstellen.
Wenn das Modell am Endpunkt bereitgestellt wurde, ändert sich der Status in
Active
.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
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.
Klicken Sie auf
Aktionen ansehen > Dataset erstellen.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.
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.
Erstellen Sie ein Dataset mit dem Namen
bqml_tutorial
, dessen Speicherort aufUS
festgelegt ist und das die BeschreibungBigQuery 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.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
Rufen Sie die Seite BigQuery auf.
Klicken Sie auf
Hinzufügen und dann auf Verbindungen zu externen Datenquellen, um eine Verbindung zu erstellen.Wählen Sie in der Liste Verbindungstyp die Option Vertex AI-Remote-Modelle, Remote-Funktionen und BigLake (Cloud Resource) aus.
Geben Sie im Feld Verbindungs-ID
bqml_tutorial
ein.Prüfen Sie, ob Mehrere Regionen – USA ausgewählt ist.
Klicken Sie auf Verbindung erstellen.
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.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
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...
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:
Zur Seite IAM & Verwaltung.
Klicken Sie auf
Zugriff gewähren.Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID der Cloud-Ressourcenverbindung ein, die Sie zuvor kopiert haben.
Wählen Sie im Feld Rolle auswählen die Option Vertex AI und dann Vertex AI-Nutzer aus.
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
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Klicken Sie unter Neu erstellen auf SQL-Abfrage.
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
zu erkennen.
Wenn Sie das neue Modell im Feld Ressourcen auswählen, werden Informationen zum Modell unter dem Abfrageeditor angezeigt.
bq
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.
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
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Klicken Sie im Bereich Neu erstellen auf SQL-Abfrage.
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:
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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- 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:
Nächste Schritte
- Eine Übersicht über BigQuery ML finden Sie unter Einführung in KI und ML in BigQuery ML.
- Weitere Informationen zur Verwendung der
CREATE MODEL
-Anweisung für Remote-Modelle finden Sie unter CREATE MODEL-Anweisung für Remote-Modelle über benutzerdefinierte Modelle. - Weitere Informationen zur Verwendung eines BigQuery-Notebooks finden Sie unter Einführung in Notebooks.
- Weitere Informationen zu Regionen und Multiregionen finden Sie auf der Seite Unterstützte Standorte.
- Weitere Informationen zum Importieren von Modellen in Vertex AI Model Registry finden Sie unter Modelle in Vertex AI importieren.
- Weitere Informationen zur Modellversionsverwaltung in Vertex AI Model Registry finden Sie unter Modellversionsverwaltung mit Model Registry.
- Informationen zur Verwendung von VPC Service Controls mit Vertex AI finden Sie unter VPC Service Controls mit Vertex AI.