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 Datentabelle bigquery-public-data.bbc_news.fulltext mit der gespeicherten Prozedur bqutil.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 und resourcemanager.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.

Neuen Trusted Cloud Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

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

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.

    Enable the APIs

Dataset erstellen

Erstellen Sie ein BigQuery-Dataset zum Speichern Ihrer Modelle und Beispieldaten:

  1. Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.

    Zur Seite „BigQuery“

  2. Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.

  3. Klicken Sie auf Aktionen ansehen > Dataset erstellen.

  4. Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:

    1. Geben Sie unter Dataset-ID sample ein.

    2. Wählen Sie als Standorttyp die Option Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.

    3. Ü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:

  1. Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. 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 im sample-Dataset des Bereichs Explorer angezeigt. Da die Abfrage eine CREATE 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:

  1. Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. 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 Funktion ML.GENERATE_TEXT enthält.

  3. 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

  1. In the Trusted Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.