Gestire gli errori di quota chiamando ML.GENERATE_TEXT in modo iterativo

Questo tutorial mostra come utilizzare la stored procedure pubblica bqutil.procedure.bqml_generate_text di BigQuery per eseguire l'iterazione delle chiamate alla ML.GENERATE_TEXT funzione. La chiamata iterativa della funzione consente di risolvere eventuali errori ripetibili che si verificano a causa del superamento delle quote e dei limiti applicabili alla funzione.

Per esaminare il codice sorgente della bqutil.procedure.bqml_generate_text stored procedure in GitHub, consulta bqml_generate_text.sqlx. Per ulteriori informazioni sui parametri e sull'utilizzo della stored procedure, consulta il file README.

Questo tutorial ti guida attraverso le seguenti attività:

  • Creazione di un modello remoto su un gemini-2.5-flash modello.
  • Esecuzione dell'iterazione delle chiamate alla funzione ML.GENERATE_TEXT utilizzando il modello remoto e la tabella di dati pubblici bigquery-public-data.bbc_news.fulltext con la stored procedure bqutil.procedure.bqml_generate_text.

Autorizzazioni obbligatorie

Per eseguire questo tutorial, devi disporre dei seguenti ruoli Identity and Access Management (IAM):

  • Creare e utilizzare set di dati, connessioni e modelli BigQuery: Amministratore BigQuery (roles/bigquery.admin).
  • Concedere autorizzazioni all'account di servizio della connessione: Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin).

Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire le attività descritte in questo documento. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • Crea un set di dati: bigquery.datasets.create
  • Crea, delega e utilizza una connessione: bigquery.connections.*
  • Imposta la connessione predefinita: bigquery.config.*
  • Imposta le autorizzazioni dell'account di servizio: resourcemanager.projects.getIamPolicy e resourcemanager.projects.setIamPolicy
  • Crea un modello ed esegui l'inferenza:
    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

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

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi Google Cloud utenti potrebbero avere diritto a una prova senza costi.

Per ulteriori informazioni sui prezzi di BigQuery, consulta Prezzi di BigQuery.

Per ulteriori informazioni sui prezzi di Vertex AI, consulta Prezzi di Vertex AI.

Prima di iniziare

  1. Nella Google Cloud console, nella pagina di selezione del progetto, seleziona o crea un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l' resourcemanager.projects.create autorizzazione. Scopri come concedere i ruoli.

    Vai al selettore di progetti

  2. Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.

  3. Abilita le API BigQuery, BigQuery Connection e Vertex AI.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilita le API

Crea un set di dati

Crea un set di dati BigQuery per archiviare i modelli e i dati di esempio:

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Nel riquadro Explorer, fai clic sul nome del progetto.

  3. Fai clic su Visualizza azioni > Crea set di dati.

  4. Nella pagina Crea set di dati, procedi nel seguente modo:

    1. In ID set di dati, inserisci sample.

    2. Per Tipo di località, seleziona Multi-regione e poi seleziona Stati Uniti (più regioni negli Stati Uniti).

    3. Lascia invariate le impostazioni predefinite rimanenti e fai clic su Crea set di dati.

Crea il modello di generazione del testo

Crea un modello remoto che rappresenta un modello gemini-2.5-flash di Vertex AI ospitato:

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente istruzione:

    CREATE OR REPLACE MODEL `sample.generate_text`
      REMOTE WITH CONNECTION DEFAULT
      OPTIONS (ENDPOINT = 'gemini-2.5-flash');

    L'esecuzione della query richiede alcuni secondi, dopodiché il modello generate_text viene visualizzato nel set di dati sample nel riquadro Explorer. Poiché la query utilizza un'istruzione CREATE MODEL per creare un modello, non vengono visualizzati i risultati della query.

Esegui la stored procedure

Esegui la stored procedure bqutil.procedure.bqml_generate_text , che esegue l'iterazione delle chiamate alla funzione ML.GENERATE_TEXT utilizzando il modello sample.generate_text e la tabella di dati pubblici bigquery-public-data.bbc_news.fulltext:

  1. Nella Google Cloud console, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente istruzione:

    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
    );

    Sostituisci PROJECT_ID con l'ID progetto del progetto che stai utilizzando per questo tutorial.

    La stored procedure crea una tabella sample.news_generated_text per contenere l'output della funzione ML.GENERATE_TEXT.

  3. Al termine dell'esecuzione della query, verifica che nella tabella sample.news_generated_text non siano presenti righe contenenti un errore ripetibile. Nell'editor di query, esegui la seguente istruzione:

    SELECT *
    FROM `sample.news_generated_text`
    WHERE ml_generate_text_status LIKE '%A retryable error occurred%';

    La query restituisce il messaggio No data to display.

Libera spazio

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare e fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.