Bilder analysieren
In dieser Anleitung erfahren Sie, wie Sie durch die Integration von BigQuery ML mit Gemini Erkenntnisse aus unstrukturierten Bilddaten gewinnen können. In dieser Anleitung erstellen Sie ein Remote-Modell, das auf gemini-2.5-flash basiert, und verwenden die Funktion AI.GENERATE_TEXT, um automatisch Metadaten wie Titel und Erscheinungsjahre aus einer Sammlung von Filmpostern zu extrahieren.
Ziele
- BigQuery-Objekttabelle für Bilddaten in einem Cloud Storage-Bucket erstellen
- Erstellen Sie ein BigQuery ML-Remote-Modell, das auf das
gemini-2.5-flash-Modell der Gemini Enterprise Agent Platform ausgerichtet ist. - Verwenden Sie das Remote-Modell mit der
AI.GENERATE_TEXT-Funktion, um die Filme zu identifizieren, die mit einer Reihe von Filmplakaten verknüpft sind.
Kosten
In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloudverwendet:
Mit dem Preisrechner können Sie eine Kostenschätzung Ihrer voraussichtlichen 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.
Hinweis
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Google Cloud -Projekt aus oder erstellen Sie eines.
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 jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Aktivieren Sie die APIs für BigQuery, BigQuery Connection und die Agent Platform.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen
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). - Gewähren Sie dem Dienstkonto der Verbindung Berechtigungen: 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.* - Dienstkontoberechtigungen festlegen:
resourcemanager.projects.getIamPolicyundresourcemanager.projects.setIamPolicy - Objekttabelle erstellen:
bigquery.tables.createundbigquery.tables.update - Modell erstellen und Inferenz 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.
Umgebung vorbereiten
Wenn Sie BigQuery ML-Inferenz für Objekttabellen mit gemini-2.5-flash ausführen möchten, müssen Sie Ihrem Projekt eine BigQuery-Reservierung zuweisen. Wenn Ihrem Projekt bereits eine Reservierung zugewiesen ist, können Sie diesen Schritt überspringen.
Reservierung erstellen
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.
Klicken Sie auf Reservierung erstellen.
Führen Sie auf der Seite Reservierung erstellen die folgenden Schritte aus:
- Geben Sie unter Name der Reservierung
bqml-tutorial-reservationein. - Wählen Sie unter Standort die Option USA (mehrere Regionen in den USA) aus.
- Lassen Sie die anderen Standardeinstellungen unverändert und klicken Sie auf Speichern.
- Geben Sie unter Name der Reservierung
Reservierung zuweisen
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.
Suchen Sie in der Tabelle Slotreservierungen nach der Reservierung, die Sie Ihrem Projekt zuweisen möchten.
Klicken Sie auf Aktionen ansehen > Aufgabe erstellen.
Klicken Sie unter Aufgabe erstellen auf Durchsuchen und wählen Sie Ihr Projekt aus.
Wählen Sie als Jobtyp die Option QUERY aus. Mit dieser Auswahl wird sichergestellt, dass für Ihre SQL-Abfragen die Slots dieser Reservierung verwendet werden.
Klicken Sie auf Erstellen.
Dataset erstellen
Erstellen Sie ein BigQuery-Dataset zum Speichern Ihres ML-Modells.
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 als Standorttyp die Option Multiregional und dann USA aus.
Ü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 --dataset.
Erstellen Sie ein Dataset mit dem Namen
bqml_tutorialund legen Sie den Datenspeicherort 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 Methode datasets.insert mit einer definierten Dataset-Ressource auf.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Objekttabelle erstellen
Erstellen Sie eine Objekttabelle für die Bilder von Filmplakaten 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 gemini-2.5-flash-Modell der Agent Platform 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');
Es kann einige Minuten dauern, bis die Abfrage abgeschlossen ist. Das
gemini-visionModell erscheint danach imbqml_tutorialDataset im Bereich Explorer. Da die Abfrage eineCREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Filmposter analysieren
Analysieren Sie mit dem Remote-Modell die Filmplakate, um zu ermitteln, welcher Film auf jedem Plakat zu sehen ist, und schreiben Sie diese Daten dann 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 Daten, 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 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 | | | +--------------------------------------------+----------------------------+------+
Projekt löschen
- 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.
Einzelne Ressourcen löschen
Wenn Sie das Projekt wiederverwenden möchten, löschen Sie die für die Anleitung erstellten Ressourcen.
Dataset löschen
Console
Löschen Sie das gesamte Dataset bqml_tutorial und seinen gesamten Inhalt, indem Sie den folgenden SQL-Befehl ausführen:
DROP SCHEMA IF EXISTS `bqml_tutorial` CASCADE;
bq
Das gesamte bqml_tutorial-Dataset und alle zugehörigen Inhalte löschen:
bq rm -r bqml_tutorial
Reservierung löschen
Console
Wenn Sie im Rahmen dieser Anleitung eine BigQuery-Reservierung erstellt haben, sollten Sie sie entfernen, um weitere Slotgebühren zu vermeiden.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.
Suchen Sie in der Tabelle Slot-Reservierungen nach
bqml-tutorial-reservation.Klicken Sie auf Aktionen ansehen > Löschen.
bq
Wenn Sie eine BigQuery-Reservierung mit dem Namen bqml-tutorial-reservation am Standort us erstellt haben, verwenden Sie den folgenden Befehl, um sie zu entfernen:
bq rm --reservation --location=us bqml-tutorial-reservation
Verbindung löschen
Console
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im linken Bereich auf Explorer, suchen Sie nach Ihrem Projekt und klicken Sie dann auf Verbindungen.
Suchen Sie in der Tabelle nach Ihrer Verbindung.
Klicken Sie auf Aktionen ansehen > Löschen.
bq
Verbindung löschen:
bq rm --connection --location=us CONNECTION_ID
Ersetzen Sie CONNECTION_ID durch die tatsächliche ID Ihrer Verbindung.
Nächste Schritte
- Weitere Informationen zu generativen KI-Funktionen in BigQuery
- Informationen zum Abstimmen eines Modells mit Ihren Daten
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center