Genera testo utilizzando un modello aperto Gemma e la funzione AI.GENERATE_TEXT
Questo tutorial mostra come creare un
modello remoto
basato sul
modello Gemma
e come utilizzare questo modello con la
funzione AI.GENERATE_TEXT
per estrarre parole chiave ed eseguire l'analisi del sentiment sulle recensioni di film dalla
tabella pubblica bigquery-public-data.imdb.reviews.
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 al account di servizio della connessione: Project IAM Admin
(
roles/resourcemanager.projectIamAdmin). - Esegui il deployment e l'annullamento del deployment dei modelli in Vertex AI: Vertex AI Administrator
(
roles/aiplatform.admin).
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 del account di servizio:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - Esegui il deployment e l'undeployment di un modello Vertex AI:
aiplatform.endpoints.deployaiplatform.endpoints.undeploy
- Crea un modello ed esegui l'inferenza:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.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 that's represented by the remote model.
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Per ulteriori informazioni sui prezzi di BigQuery, consulta la sezione Prezzi di BigQuery nella documentazione di BigQuery.
I modelli aperti di cui esegui il deployment su Vertex AI vengono addebitati per ora di macchina. Ciò significa che la fatturazione inizia non appena l'endpoint è completamente configurato e continua fino a quando non lo annulli. Per saperne di più sui prezzi di Vertex AI, consulta la pagina Prezzi di Vertex AI.
Prima di iniziare
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il tuo modello ML.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sul nome del progetto.
Fai clic su Visualizza azioni > Crea set di dati.
Nella pagina Crea set di dati:
In ID set di dati, inserisci
bqml_tutorial.Per Tipo di località, seleziona Multi-regione e poi Stati Uniti (più regioni negli Stati Uniti).
Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il
comando bq mk
con il flag --location. Per un elenco completo dei possibili parametri, consulta la documentazione di riferimento del
comando bq mk --dataset.
Crea un set di dati denominato
bqml_tutorialcon la località dei dati impostata suUSe una descrizione diBigQuery ML tutorial dataset:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Anziché utilizzare il flag
--dataset, il comando utilizza la scorciatoia-d. Se ometti-de--dataset, il comando crea per impostazione predefinita un dataset.Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il metodo datasets.insert con una risorsa dataset definita.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
BigQuery DataFrames
Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery per l'utilizzo di BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura ADC per un ambiente di sviluppo locale.
Crea il modello remoto
Crea un modello remoto che rappresenti un modello Vertex AI ospitato:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
CREATE OR REPLACE MODEL `bqml_tutorial.gemma_model` REMOTE WITH CONNECTION DEFAULT OPTIONS ( MODEL_GARDEN_MODEL_NAME = 'publishers/google/models/gemma3@gemma-3-270m-it', MACHINE_TYPE = 'g2-standard-12' );
Il completamento della query richiede fino a 20 minuti, dopodiché il modello gemma_model
viene visualizzato nel set di dati bqml_tutorial nel riquadro Explorer. Poiché la query utilizza un'istruzione CREATE MODEL per creare un modello, non sono presenti risultati della query.
Eseguire l'estrazione delle parole chiave
Esegui l'estrazione delle parole chiave dalle recensioni dei film di IMDB utilizzando il modello remoto e la funzione AI.GENERATE_TEXT:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione per eseguire l'estrazione delle parole chiave su 10 recensioni di film:
-- This function takes your instruction and wraps it with chat template for -- better output quality. -- This is usually the recommended way when using Gemma instruction-tuned models. CREATE TEMP FUNCTION FormatPromptWithChatTemplate(user_instruction STRING) AS ( CONCAT( '<start_of_turn>user\n', user_instruction, '<end_of_turn>\n<start_of_turn>model\n' ) ); SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT FormatPromptWithChatTemplate( 'Extract the key words from the movie review below: ' || review) AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 100 AS max_output_tokens));
Per ulteriori informazioni sull'utilizzo dei modelli di chat con Gemma, vedi Formattazione e istruzioni di sistema di Gemma.
L'output è simile al seguente, con le colonne non generate omesse per chiarezza:
+----------------------------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +----------------------------------------------+-------------------------------------------------------+-----+ | Here are some key words from the | | <start_of_turn>user | | | movie review: * **Romance:** | | Extract the key words from | | | "romantic tryst," "elope" * **Comedy:** | | the movie review below: | | | "Contrived Comedy" * **Burglary:** | | Linda Arvidson (as Jennie) | | | "burglar," "rob," "booty" * **Chase:** | | and Harry Solter (as Frank) | | | "chases," "escape" * **Director:** "D.W. | | are enjoying a romantic | | | Griffith" * **Actors:** "Linda Arvidson,"... | | tryst, when in walks her... | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | <start_of_turn>user | | | movie review: * **Elderbush Gilch:** The | | Extract the key words from | | | name of the movie being reviewed. * | | the movie review below: | | | **Disappointment:** The reviewer's | | This is the second addition | | | overall feeling about the film. * | | to Frank Baum's personally | | | **Dim-witted:** Describes the story | | produced trilogy of Oz | | | line negatively. * **Moronic, sadistic,... | | films. It's essentially ... | | +----------------------------------------------+-------------------------+-----------------------------+-----+I risultati includono le seguenti colonne:
result: il testo generato.status: lo stato della risposta dell'API per la riga corrispondente. Se l'operazione è andata a buon fine, questo valore è vuoto.prompt: il prompt utilizzato per l'analisi del sentiment.- Tutte le colonne della tabella
bigquery-public-data.imdb.reviews.
Eseguire l'analisi del sentiment
Esegui l'analisi del sentiment sulle recensioni dei film di IMDB utilizzando il modello remoto e la funzione AI.GENERATE_TEXT:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione per eseguire l'analisi del sentiment su 10 recensioni di film:
-- This function takes your instruction and wraps it with chat template for -- better output quality. -- This is usually the recommended way when using Gemma instruction-tuned models. CREATE TEMP FUNCTION FormatPromptWithChatTemplate(user_instruction STRING) AS ( CONCAT( '<start_of_turn>user\n', user_instruction, '<end_of_turn>\n<start_of_turn>model\n' ) ); SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT FormatPromptWithChatTemplate( 'Analyze the sentiment of the following movie review and classify it as either POSITIVE or NEGATIVE. \nMovie Review: ' || review) AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 128 AS max_output_tokens));
Per ulteriori informazioni sull'utilizzo dei modelli di chat con Gemma, vedi Formattazione e istruzioni di sistema di Gemma.
L'output è simile al seguente, con le colonne non generate omesse per chiarezza:
+-----------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +-----------------------------+-------------------------------------------------------+-----+ | **NEGATIVE** | | <start_of_turn>user | | | | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Although Charlie Chaplin | | | | | made some great short | | | | | comedies in the late... | | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | <start_of_turn>user | | | | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Opulent sets and sumptuous | | | | | costumes well photographed | | | | | by Theodor Sparkuhl, and... | | +-----------------------------+-------------------------+-----------------------------+-----+I risultati includono le stesse colonne documentate per Esegui l'estrazione delle parole chiave.
Annulla il deployment del modello
Se scegli di non eliminare il progetto come consigliato, devi annullare il deployment del modello Gemma in Vertex AI per evitare la fatturazione continua. BigQuery esegue automaticamente il deploiment
del modello dopo un periodo di inattività specificato (6,5 ore per impostazione predefinita).
In alternativa, puoi annullare immediatamente la distribuzione del modello utilizzando l'istruzione
ALTER MODEL,
come mostrato nell'esempio seguente:
ALTER MODEL `bqml_tutorial.gemma_model` SET OPTIONS (deploy_model = false);
Per saperne di più, consulta Ritiro automatico o immediato del modello open.
Esegui la pulizia
- In the Google 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.