Bilder mit einem Gemini-Modell analysieren
In dieser Anleitung erfahren Sie, wie Sie ein BigQuery ML
Remote-Modell
erstellen, das auf dem
gemini-2.5-flash Modellbasiert,
und dieses Modell dann mit der
AI.GENERATE_TEXT Funktion
zum Analysieren einer Reihe von Filmposterbildern verwenden.
In dieser Anleitung werden die folgenden Aufgaben behandelt:
- Erstellen einer BigQuery-Objekttabelle mit Bilddaten in einem Cloud Storage-Bucket
- Erstellen eines BigQuery ML-Remote-Modells, das auf das Vertex AI-Modell
gemini-2.5-flashausgerichtet ist - Verwenden des Remote-Modells mit der Funktion
AI.GENERATE_TEXT, um die Filme zu identifizieren, die mit einer Reihe von Filmplakaten verknüpft sind
Die Filmposterdaten sind im öffentlichen Cloud Storage-Bucket gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters verfügbar.
Erforderliche Rollen
Zum Ausführen dieser Anleitung benötigen Sie die folgenden IAM-Rollen (Identity and Access Management):
- BigQuery-Datasets, -Verbindungen und -Modelle erstellen und verwenden: BigQuery-Administrator (
roles/bigquery.admin) - Berechtigungen für das Dienstkonto der Verbindung erteilen: Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin)
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen der Aufgaben in diesem Dokument erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
- Dataset erstellen:
bigquery.datasets.create - Verbindung erstellen, delegieren und verwenden:
bigquery.connections.* - Standardverbindung festlegen:
bigquery.config.* - Berechtigungen für Dienstkonten festlegen:
resourcemanager.projects.getIamPolicyundresourcemanager.projects.setIamPolicy - Objekttabelle erstellen:
bigquery.tables.createundbigquery.tables.update - Modell erstellen und Inferenzen ausführen:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Vertex AI: You incur costs for calls to the Vertex AI model that is represented by the BigQuery remote model.
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Verwenden Sie den Preisrechner.
Weitere Informationen zu den Preisen von BigQuery finden Sie unter BigQuery: Preise in der BigQuery-Dokumentation.
Weitere Informationen zu den Preisen für generative KI in Vertex AI finden Sie auf der Seite Vertex AI: Preise.
Hinweis
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Projekt vonaus oder erstellen Sie eines Google Cloud .
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle gewährt wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Informationen zum Zuweisen von Rollen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
-
Aktivieren Sie die BigQuery API, die BigQuery Connection API und die Vertex AI API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Administrator der Dienstnutzung“ (
roles/serviceusage.serviceUsageAdmin), die dieserviceusage.services.enableBerechtigung enthält. Informationen zum Zuweisen von Rollen.
Dataset erstellen
Erstellen Sie ein BigQuery-Dataset, um Ihr ML-Modell zu speichern.
Console
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
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_tutorialein.Wählen Sie unter Standorttyp die Option Multi-Region und dann USA aus.
Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.
bq
Verwenden Sie den
bq mk --dataset Befehl, um ein neues Dataset zu erstellen.
Erstellen Sie ein Dataset mit dem Namen
bqml_tutorialund legen Sie den Datenstandort aufUSfest.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Prüfen Sie, ob das Dataset erstellt wurde:
bq ls
API
Rufen Sie die datasets.insert
Methode mit einer definierten Dataset-Ressource auf.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Objekttabelle erstellen
Erstellen Sie eine Objekttabelle mit den Filmposterbildern im öffentlichen Cloud Storage Bucket. Mit der Objekttabelle können Sie die Bilder analysieren, ohne sie aus Cloud Storage zu verschieben.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um die Objekttabelle zu erstellen:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.movie_posters` WITH CONNECTION DEFAULT OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*']);
Remote-Modell erstellen
Erstellen Sie ein Remote-Modell, das ein Vertex AI-Modell gemini-2.5-flash darstellt:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um das Remote-Modell zu erstellen:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini-vision` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-flash');
Die Abfrage dauert mehrere Sekunden. Anschließend wird das Modell
gemini-visionimbqml_tutorial-Dataset des Bereichs Explorer angezeigt. Da die Abfrage eineCREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Filmposter analysieren
Analysieren Sie mit dem Remote-Modell die Filmposter, ermitteln Sie, welchen Film jedes Poster darstellt, und schreiben Sie diese Daten in eine Tabelle.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um die Filmposterbilder zu analysieren:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results` AS ( SELECT uri, result FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini-vision`, TABLE `bqml_tutorial.movie_posters`, STRUCT( 0.2 AS temperature, 'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT)));
Führen Sie im Abfrageeditor folgende Anweisung aus, um die Tabellendaten aufzurufen:
SELECT * FROM `bqml_tutorial.movie_posters_results`;
Die Ausgabe sieht in etwa so aus:
+--------------------------------------------+----------------------------------+ | uri | result | +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |
json | | management/datasets/classic-movie- | { | | posters/little_annie_rooney.jpg | "title": "Little Annie Rooney", | | | "year": 1912 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/mighty_like_a_mouse.jpg | "title": "Mighty Like a Moose", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/brown_of_harvard.jpeg | "title": "Brown of Harvard", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+
Modellausgabe formatieren
Formatieren Sie die vom Modell zurückgegebenen Filmanalysedaten, um den Filmtitel und die Jahresdaten besser lesbar zu machen.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um die Daten zu formatieren:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results_formatted` AS ( SELECT uri, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.title") AS title, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.year") AS year FROM `bqml_tutorial.movie_posters_results` results );
Führen Sie im Abfrageeditor folgende Anweisung aus, um die Tabellendaten aufzurufen:
SELECT * FROM `bqml_tutorial.movie_posters_results_formatted`;
Die Ausgabe sieht in etwa so aus:
+--------------------------------------------+----------------------------+------+ | uri | title | year | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Barque sortant du port" | 1895 | | management/datasets/classic-movie- | | | | posters/barque_sortant_du_port.jpeg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "The Great Train Robbery" | 1903 | | management/datasets/classic-movie- | | | | posters/the_great_train_robbery.jpg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Little Annie Rooney" | 1912 | | management/datasets/classic-movie- | | | | posters/little_annie_rooney.jpg | | | +--------------------------------------------+----------------------------+------+
Bereinigen
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.