Multimodale Daten in Python mit BigQuery DataFrames analysieren
In dieser Anleitung erfahren Sie, wie Sie multimodale Daten in einem Python-Notebook mit BigQuery DataFrames-Klassen und -Methoden analysieren.
In dieser Anleitung wird der Produktkatalog aus dem öffentlichen Dataset des Cymbal-Tierbedarfsgeschäfts verwendet.
Informationen zum Hochladen eines Notebooks, das bereits mit den in diesem Tutorial behandelten Aufgaben gefüllt ist, finden Sie unter BigFrames Multimodal DataFrame.
Lernziele
- Multimodale DataFrames erstellen
- Strukturierte und unstrukturierte Daten in einem DataFrame kombinieren
- Bilder transformieren.
- Text und Einbettungen basierend auf Bilddaten generieren
- PDFs für die weitere Analyse in Chunks aufteilen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- BigQuery: you incur costs for the data that you process in BigQuery.
- BigQuery Python UDFs: you incur costs for using BigQuery DataFrames image transformation and chunk PDF methods.
- Cloud Storage: you incur costs for the objects stored in Cloud Storage.
- Vertex AI: you incur costs for calls to Vertex AI models.
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Weitere Informationen finden Sie auf den folgenden Preisseiten:
Hinweise
-
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, BigQuery Connection, Cloud Storage, and Vertex AI APIs.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
-
Verbindung erstellen:
BigQuery-Verbindungsadministrator (
roles/bigquery.connectionAdmin
) -
Dem Dienstkonto der Verbindung Berechtigungen gewähren:
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) -
Cloud Storage-Bucket erstellen:
Storage-Administrator (
roles/storage.admin
) -
BigQuery-Jobs ausführen:
BigQuery-Nutzer (
roles/bigquery.user
) -
Python-UDFs erstellen und aufrufen:
BigQuery-Dateneditor (
roles/bigquery.dataEditor
) -
URLs erstellen, mit denen Sie Cloud Storage-Objekte lesen und ändern können:
BigQuery ObjectRef Admin (
roles/bigquery.objectRefAdmin
) -
Notebooks verwenden:
-
BigQuery Read Session-Nutzer ()
roles/bigquery.readSessionUser
-
Notebook Runtime-Nutzer (
roles/aiplatform.notebookRuntimeUser
) -
Notebook Runtime-Nutzer (
roles/aiplatform.notebookRuntimeUser
) -
Code Creator (
roles/dataform.codeCreator
)
-
BigQuery Read Session-Nutzer ()
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Einrichten
In diesem Abschnitt erstellen Sie den Cloud Storage-Bucket, die Verbindung und das Notebook, die in dieser Anleitung verwendet werden.
Bucket erstellen
Erstellen Sie einen Cloud Storage-Bucket zum Speichern transformierter Objekte:
Rufen Sie in der Google Cloud Console die Seite Buckets auf.
Klicken Sie auf
Erstellen.Geben Sie auf der Seite Bucket erstellen im Bereich Einstieg einen global eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht.
Klicken Sie auf Erstellen.
Verbindung herstellen
Erstellen Sie eine Cloud-Ressourcenverbindung und rufen Sie das Dienstkonto der Verbindung ab. BigQuery verwendet die Verbindung für den Zugriff auf Objekte in Cloud Storage.
Rufen Sie die Seite BigQuery auf.
Klicken Sie im Bereich Explorer auf
Daten hinzufügen.Das Dialogfeld Daten hinzufügen wird geöffnet.
Wählen Sie im Bereich Filtern nach im Abschnitt Datenquellentyp die Option Geschäftsanwendungen aus.
Alternativ können Sie im Feld Nach Datenquellen suchen
Vertex AI
eingeben.Klicken Sie im Abschnitt Empfohlene Datenquellen auf Vertex AI.
Klicken Sie auf die Lösungsübersichtskarte Vertex AI-Modelle: BigQuery Federation.
Wählen Sie in der Liste Verbindungstyp die Option Remote-Modelle in Vertex AI, Remote-Funktionen und BigLake (Cloud-Ressource) aus.
Geben Sie im Feld Verbindungs-ID
bigframes-default-connection
ein.Klicken Sie auf Verbindung erstellen.
Klicken Sie auf Zur Verbindung.
Kopieren Sie im Bereich Verbindungsinformationen die Dienstkonto-ID zur Verwendung in einem späteren Schritt.
Dem Dienstkonto der Verbindung Berechtigungen gewähren
Weisen Sie dem Dienstkonto der Verbindung die Rollen zu, die für den Zugriff auf Cloud Storage und Vertex AI erforderlich sind. Sie müssen diese Rollen in demselben Projekt gewähren, das Sie im Abschnitt Vorbereitung erstellt oder ausgewählt haben.
So weisen Sie die Rolle zu:
Zur Seite IAM & Verwaltung.
Klicken Sie auf
Zugriff erlauben.Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID ein, die Sie zuvor kopiert haben.
Wählen Sie im Feld Rolle auswählen die Option Cloud Storage und dann Storage-Objekt-Nutzer aus.
Klicken Sie auf Weitere Rolle hinzufügen.
Wählen Sie im Feld Rolle auswählen die Option Vertex AI und dann Vertex AI-Nutzer aus.
Klicken Sie auf Speichern.
Notebook erstellen
Erstellen Sie ein Notebook, in dem Sie Python-Code ausführen können:
Rufen Sie die Seite BigQuery auf.
Klicken Sie in der Tableiste des Editorbereichs auf den
Drop-down-Pfeil neben SQL-Abfrage und dann auf Notebook.Klicken Sie im Bereich Mit einer Vorlage beginnen auf Schließen.
Klicken Sie auf VerbindenMit einer Laufzeit verbinden.
Wenn Sie bereits eine Laufzeit haben, übernehmen Sie die Standardeinstellungen und klicken Sie auf Verbinden. Wenn Sie noch keine Laufzeit haben, wählen Sie Neue Laufzeit erstellen aus und klicken Sie dann auf Verbinden.
Es kann einige Minuten dauern, bis die Laufzeit eingerichtet ist.
Multimodales DataFrame erstellen
Erstellen Sie einen multimodalen DataFrame, in dem strukturierte und unstrukturierte Daten mit der from_glob_path
-Methode der Session
-Klasse zusammengeführt werden:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf
Ausführen.Der letzte Aufruf von
df_image
gibt die Bilder zurück, die dem DataFrame hinzugefügt wurden. Alternativ können Sie die Methode.display
aufrufen.
Strukturierte und unstrukturierte Daten im DataFrame kombinieren
Text- und Bilddaten im multimodalen DataFrame kombinieren:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt die DataFrame-Daten zurück.
Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt Bilder aus dem DataFrame zurück, bei denen der Wert der Spalte
author
gleichalice
ist.
Bildtransformationen durchführen
Bilddaten mit den folgenden Methoden der Series.BlobAccessor
-Klasse transformieren:
Die transformierten Bilder werden in Cloud Storage geschrieben.
Bilder transformieren:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
- Aktualisieren Sie alle Verweise auf
{dst_bucket}
so, dass sie auf den von Ihnen erstellten Bucket im Formatgs://mybucket
verweisen. Klicken Sie auf Ausführen
.Der Code gibt die Originalbilder sowie alle ihre Transformationen zurück.
Text generieren
Generieren Sie Text aus multimodalen Daten mit der Methode predict
der Klasse GeminiTextGenerator
:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt die ersten beiden Bilder in
df_image
zusammen mit Text zurück, der als Antwort auf die Fragewhat item is it?
für beide Bilder generiert wurde.Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt die ersten beiden Bilder in
df_image
zurück. Für das erste Bild wird Text als Antwort auf die Fragewhat item is it?
generiert und für das zweite Bild Text als Antwort auf die Fragewhat color is the picture?
.
Einbettungen generieren
Generieren Sie Einbettungen für multimodale Daten mit der predict
-Methode der MultimodalEmbeddingGenerator
-Klasse:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt die Einbettungen zurück, die durch einen Aufruf eines Einbettungsmodells generiert wurden.
PDFs in Chunks aufteilen
Teilen Sie PDF-Objekte mit der pdf_chunk
-Methode der Series.BlobAccessor
-Klasse in Chunks auf:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt die in Chunks aufgeteilten PDF-Daten zurück.
Bereinigen
- 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.