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 scorrere le chiamate alla funzione ML.GENERATE_TEXT. Chiamando la funzione in modo iterativo, puoi risolvere eventuali errori riprovabili che si verificano a causa del superamento delle quote e dei limiti applicati alla funzione.

Per esaminare il codice sorgente della stored procedure bqutil.procedure.bqml_generate_text 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 guiderà attraverso le seguenti attività:

  • Creazione di un modello remoto su un modello gemini-2.0-flash.
  • Iterando le 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 IAM (Identity and Access Management):

  • Crea e utilizza set di dati, connessioni e modelli BigQuery: Amministratore BigQuery (roles/bigquery.admin).
  • Concedi le 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 vedere quali sono esattamente le autorizzazioni 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 utilizzi i seguenti componenti fatturabili di 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.

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

I nuovi utenti di Trusted Cloud potrebbero avere diritto a una prova gratuita.

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

Per saperne di più sui prezzi di Vertex AI, consulta la pagina Prezzi di Vertex AI.

Prima di iniziare

  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

Crea un set di dati

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

  1. Nella console Trusted Cloud , 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:

    1. In ID set di dati, inserisci sample.

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

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

Crea il modello di generazione del testo

Crea un modello remoto che rappresenti un modello gemini-2.0-flash Vertex AI ospitato:

  1. Nella console Trusted Cloud , 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.0-flash');

    Il completamento della query richiede diversi 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 sono presenti risultati della query.

Esegui la stored procedure

Esegui la stored procedure bqutil.procedure.bqml_generate_text, che scorre le chiamate alla funzione ML.GENERATE_TEXT utilizzando il modello sample.generate_text e la tabella dei dati pubblici bigquery-public-data.bbc_news.fulltext:

  1. Nella console Trusted Cloud , 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 utilizzi 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 non siano presenti righe nella tabella sample.news_generated_text che contengono un errore riprovabile. 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.

Esegui la pulizia

  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.