Kontingentfehler durch iteratives Aufrufen von ML.GENERATE_TEXT verarbeiten
In dieser Anleitung erfahren Sie, wie Sie mit der öffentlichen gespeicherten Prozedur bqutil.procedure.bqml_generate_text
in BigQuery Aufrufe der Funktion ML.GENERATE_TEXT
durchlaufen.
Durch iteratives Aufrufen der Funktion können Sie alle wiederholbaren Fehler beheben, die aufgrund der Überschreitung der für die Funktion geltenden Kontingente und Limits auftreten.
Den Quellcode für die bqutil.procedure.bqml_generate_text
-Speicherprozedur auf GitHub finden Sie unter bqml_generate_text.sqlx
.
Weitere Informationen zu den Parametern und zur Verwendung der gespeicherten Prozedur finden Sie in der README-Datei.
In dieser Anleitung werden Sie durch die folgenden Aufgaben geführt:
- Remote-Modell über ein
gemini-2.0-flash
-Modell erstellen - Aufrufe der Funktion
ML.GENERATE_TEXT
unter Verwendung des Remote-Modells und der öffentlichen Datentabellebigquery-public-data.bbc_news.fulltext
mit der gespeicherten Prozedurbqutil.procedure.bqml_generate_text
iterativ aufrufen.
Erforderliche Berechtigungen
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.getIamPolicy
undresourcemanager.projects.setIamPolicy
- Modell erstellen und Inferenz ausführen:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.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 Trusted Cloud by S3NS:
- 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.
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Weitere Informationen zu den Preisen von BigQuery finden Sie unter BigQuery-Preise.
Weitere Informationen zu den Preisen für Vertex AI finden Sie unter Vertex AI-Preise.
Hinweise
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Dataset erstellen
Erstellen Sie ein BigQuery-Dataset zum Speichern Ihrer Modelle und Beispieldaten:
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.
Klicken Sie auf > Dataset erstellen.
Aktionen ansehenFühren Sie auf der Seite Dataset erstellen die folgenden Schritte aus:
Geben Sie unter Dataset-ID
sample
ein.Wählen Sie als Standorttyp die Option Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.
Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.
Textgenerierungsmodell erstellen
Erstellen Sie ein Remote-Modell, das ein gehostetes gemini-2.0-flash
-Modell von Vertex AI darstellt:
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor folgende Abfrage aus:
CREATE OR REPLACE MODEL `sample.generate_text` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.0-flash');
Die Abfrage dauert mehrere Sekunden. Anschließend wird das Modell
generate_text
imsample
-Dataset des Bereichs Explorer angezeigt. Da die Abfrage eineCREATE MODEL
-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Führen Sie die gespeicherte Prozedur aus.
Führen Sie die gespeicherte Prozedur bqutil.procedure.bqml_generate_text
aus, die die Aufrufe der Funktion ML.GENERATE_TEXT
mithilfe des Modells sample.generate_text
und der öffentlichen Datentabelle bigquery-public-data.bbc_news.fulltext
iterativ durchläuft:
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor folgende Abfrage aus:
CALL `bqutil.procedure.bqml_generate_text`( "bigquery-public-data.bbc_news.fulltext", -- source table "PROJECT_ID.sample.news_generated_text", -- destination table "PROJECT_ID.sample.generate_text", -- model "body", -- content column ["filename"], -- key columns '{}' -- optional arguments );
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID des Projekts, das Sie für diese Anleitung verwenden.Die gespeicherte Prozedur erstellt eine
sample.news_generated_text
-Tabelle, die die Ausgabe der FunktionML.GENERATE_TEXT
enthält.Wenn die Abfrage abgeschlossen ist, bestätigen Sie, dass die Tabelle
sample.news_generated_text
keine Zeilen mit einem wiederholbaren Fehler enthält. Führen Sie im Abfrageeditor folgende Abfrage aus:SELECT * FROM `sample.news_generated_text` WHERE ml_generate_text_status LIKE '%A retryable error occurred%';
Die Abfrage gibt die Nachricht
No data to display
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.