Bilder analysieren
In dieser Anleitung erfahren Sie, wie Sie mit der Integration von BigQuery ML in Gemini Erkenntnisse aus unstrukturierten Bilddaten gewinnen. In der 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 Filmplakaten zu extrahieren.
Ziele
- Erstellen Sie eine BigQuery-Objekttabelle für Bilddaten in einem Cloud Storage-Bucket.
- Erstellen Sie ein BigQuery ML-Remote-Modell, das auf das
gemini-2.5-flash-Modell von Vertex AI ausgerichtet ist. - Verwenden Sie das Remote-Modell mit der Funktion
AI.GENERATE_TEXT, 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 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.
Hinweis
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Projekt von aus 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 zugewiesen 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 für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Aktivieren Sie die BigQuery-, BigQuery Connection- und Vertex AI-APIs.
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. 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). - Berechtigungen für das Dienstkonto der Verbindung gewähren: 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 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.
Umgebung vorbereiten
Wenn Sie BigQuery ML-Inferenzen für Objekttabellen mit gemini-2.5-flashausfü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.
- Übernehmen Sie die verbleibenden 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 > Zuweisung erstellen.
Klicken Sie unter Zuweisung erstellen auf Durchsuchen und wählen Sie Ihr Projekt aus.
Wählen Sie unter Jobtyp die Option ABFRAGE aus. Durch diese Auswahl wird sichergestellt, dass Ihre SQL-Abfragen die Slots dieser Reservierung verwenden.
Klicken Sie auf Erstellen.
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 Multiregional 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 Speicherort der Daten 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 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 von Vertex AI 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 Modell
gemini-visionwird dann im Datasetbqml_tutorialim Bereich Explorer angezeigt. Da die Abfrage eineCREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Filmposter analysieren
Verwenden Sie das Remote-Modell, um die Filmplakate zu analysieren und zu ermitteln, welchen Film jedes Plakat darstellt. 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 Bilder von Filmplakaten 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 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 | | | +--------------------------------------------+----------------------------+------+
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 (Herunterfahren), 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 alle zugehörigen Inhalte, indem Sie den folgenden SQL-Befehl ausführen:
DROP SCHEMA IF EXISTS `bqml_tutorial` CASCADE;
bq
Löschen Sie das gesamte Dataset bqml_tutorial und alle zugehörigen Inhalte:
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 Slotreservierungen 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 Optimieren eines Modells mit Ihren Daten.
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center