Multimodale Daten in Python mit BigQuery DataFrames analysieren
In dieser Anleitung erfahren Sie, wie Sie multimodale Daten in einem Python-Notebook mithilfe von Klassen und Methoden von BigQuery DataFrames analysieren.
In dieser Anleitung wird der Produktkatalog aus dem öffentlichen Dataset des Cymbal-Zoofachgeschäfts verwendet.
Ein Notebook, das bereits die in diesem Tutorial behandelten Aufgaben enthält, können Sie unter BigFrames-Multimodal-DataFrame hochladen.
Lernziele
- Multimodale DataFrames erstellen
- Strukturierte und unstrukturierte Daten in einem DataFrame kombinieren
- Bilder transformieren
- Text und Einbettungen basierend auf Bilddaten generieren
- PDFs in kleinere Teile für die weitere Analyse aufteilen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Trusted Cloud by S3NS:
- 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 Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Make sure that billing is enabled for your Trusted 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
) -
Gewähren Sie dem Dienstkonto der Verbindung Berechtigungen:
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 User (
roles/aiplatform.notebookRuntimeUser
) -
Notebook Runtime User (
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 der umgewandelten Objekte:
Rufen Sie in der Trusted 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, um auf Objekte in Cloud Storage zuzugreifen.
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 Nach im Abschnitt Datenquellentyp die Option Geschäftsanwendungen aus.
Alternativ können Sie im Feld Nach Datenquellen suchen den Wert
Vertex AI
eingeben.Klicken Sie im Abschnitt Empfohlene Datenquellen auf Vertex AI.
Klicken Sie auf die Lösungskarte Vertex AI-Modelle: BigQuery-Verknüpfung.
Wählen Sie in der Liste Verbindungstyp die Option Vertex AI-Remote-Modelle, 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 es für den Zugriff auf Cloud Storage und Vertex AI benötigt. 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 Object User 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 Verbinden > Mit einer Laufzeit verbinden.
Wenn Sie bereits eine Laufzeit haben, akzeptieren 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.
Die Einrichtung der Laufzeit kann einige Minuten dauern.
Multimodalen DataFrame erstellen
Erstellen Sie mit der Methode from_glob_path
der Klasse Session
einen multimodalen DataFrame, der strukturierte und unstrukturierte Daten enthält:
- 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
alice
ist.
Bildtransformationen durchführen
Sie können Bilddaten mit den folgenden Methoden der Klasse Series.BlobAccessor
transformieren:
Die umgewandelten 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
Mit der Methode predict
der Klasse GeminiTextGenerator
Text aus multimodalen Daten generieren:
- 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
sowie Text zurück, der für beide Bilder als Antwort auf die Fragewhat item is it?
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 generiert, der auf die Fragewhat item is it?
antwortet, und für das zweite Bild wird Text generiert, der auf die Fragewhat color is the picture?
antwortet.
Einbettungen generieren
Mit der Methode predict
der Klasse MultimodalEmbeddingGenerator
können Sie Einbettungen für multimodale Daten generieren:
- 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 an ein Einbettungsmodell generiert wurden.
PDFs in mehrere Teile aufteilen
PDF-Objekte in kleinere Teile aufteilen, indem Sie die Methode pdf_chunk
der Klasse Series.BlobAccessor
verwenden:
- Erstellen Sie im Notebook eine Codezelle und kopieren Sie den folgenden Code hinein:
Klicken Sie auf Ausführen
.Der Code gibt die in Chunks vorliegenden PDF-Daten zurück.
Bereinigen
- In the Trusted 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.