Gerar texto usando um modelo aberto do Gemma e a função AI.GENERATE_TEXT
Neste tutorial, mostramos como criar um
modelo remoto
baseado no
modelo Gemma,
e como usá-lo com a
AI.GENERATE_TEXT função
para extrair palavras-chave e realizar análises de sentimento em resenhas de filmes da
tabela pública bigquery-public-data.imdb.reviews.
Permissões necessárias
Para seguir este tutorial, você precisa dos seguintes papéis do Identity and Access Management (IAM):
- Criar e usar conjuntos de dados, conexões e modelos do BigQuery: administrador do BigQuery (
roles/bigquery.admin). - Conceder permissões à conta de serviço da conexão: administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin). - Implantar e cancelar a implantação de modelos na Gemini Enterprise Agent Platform: administrador da Vertex AI (
roles/aiplatform.admin).
Esses papéis predefinidos contêm as permissões necessárias para executar as tarefas neste documento. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
- Criar um conjunto de dados:
bigquery.datasets.create - Criar, delegar e usar uma conexão:
bigquery.connections.* - Definir a conexão padrão:
bigquery.config.* - Definir permissões da conta de serviço:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - Implantar e cancelar a implantação de um modelo do Agent Platform:
aiplatform.endpoints.deployaiplatform.endpoints.undeploy
- Criar um modelo e executar a inferência:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model that's represented by the remote model.
Para gerar uma estimativa de custo baseada na projeção de uso,
use a calculadora de preços.
Para mais informações, consulte Preços do BigQuery em a documentação do BigQuery.
Os modelos abertos implantados na plataforma de agentes são cobrados por hora de máquina. Isso significa que o faturamento começa assim que o endpoint é totalmente configurado e continua até que você cancele a implantação. Para mais informações sobre os preços da Agent Platform, consulte a página de preços da Agent Platform.
Antes de começar
-
No Google Cloud console do, na página do seletor de projetos, selecione ou crie um Google Cloud projeto do.
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, você precisa do papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
-
Ative as APIs BigQuery, BigQuery Connection e Agent Platform.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.
crie um conjunto de dados
Crie um conjunto de dados do BigQuery para armazenar o modelo de ML.
Console
No Google Cloud console, acesse a página BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em Ver ações > Criar conjunto de dados
Na página Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial.Em Tipo de local, selecione Multirregião e selecione EUA.
Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
bq
Para criar um novo conjunto de dados, use o
bq mk --dataset comando.
Crie um conjunto de dados chamado
bqml_tutorialcom o local de dados definido comoUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Confirme se o conjunto de dados foi criado:
bq ls
API
Chame o datasets.insert
método com um recurso de conjunto de dados definido.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Criar o modelo remoto
Crie um modelo remoto que represente uma Agent Platform hospedada:
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução:
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' );
A consulta leva até 20 minutos para ser concluída. Depois disso, o modelo gemma_model aparece no conjunto de dados bqml_tutorial no painel Explorer. Como a consulta usa uma instrução CREATE MODEL para criar um modelo, não há resultados de consulta.
Realizar extração de palavra-chave
Realize a extração de palavra-chave em IMDB avaliações de filmes usando o modelo remoto e a função AI.GENERATE_TEXT:
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, insira a seguinte instrução para realizar a extração de palavra-chave em 10 avaliações de filmes:
SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT '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));
A saída é semelhante à seguinte, com as colunas não geradas omitidas para fins de esclarecimento:
+----------------------------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Romance:** | | the movie review below: | | | "romantic tryst," "elope" * **Comedy:** | | Linda Arvidson (as Jennie) | | | "Contrived Comedy" * **Burglary:** | | and Harry Solter (as Frank) | | | "burglar," "rob," "booty" * **Chase:** | | are enjoying a romantic | | | "chases," "escape" * **Director:** "D.W. | | tryst, when in walks her... | | | Griffith" * **Actors:** "Linda Arvidson,"... | | | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Elderbush Gilch:** The | | the movie review below: | | | name of the movie being reviewed. * | | This is the second addition | | | **Disappointment:** The reviewer's | | to Frank Baum's personally | | | overall feeling about the film. * | | produced trilogy of Oz | | | **Dim-witted:** Describes the story | | films. It's essentially ... | | | line negatively. * **Moronic, sadistic,... | | | | +----------------------------------------------+-------------------------+-----------------------------+-----+Os resultados incluem as seguintes colunas:
result: o texto gerado.status: o status da resposta da API sobre a linha correspondente. Se a operação tiver sido bem-sucedida, esse valor estará vazio.prompt: o comando usado para a análise de sentimento.- Todas as colunas da tabela
bigquery-public-data.imdb.reviews.
Realizar análise de sentimento
Realize a análise de sentimento nas avaliações de filmes do IMDB usando o modelo remoto e a função AI.GENERATE_TEXT:
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução para realizar a análise de sentimento em 10 avaliações de filmes:
SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT '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));
A saída é semelhante à seguinte, com as colunas não geradas omitidas para fins de esclarecimento:
+-----------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | 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** | | 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... | | +-----------------------------+-------------------------+-----------------------------+-----+Os resultados incluem as mesmas colunas documentadas para Realizar a extração de palavra-chave.
Cancelar a implantação do modelo
Se você optar por não excluir o projeto conforme recomendado, cancele a implantação do modelo Gemma no Agent Platform para evitar o faturamento contínuo. O BigQuery cancela automaticamente a implantação do modelo após um período especificado de inatividade (6,5 horas por padrão).
Como alternativa, você pode cancelar imediatamente a implantação do modelo usando a
ALTER MODEL instrução,
conforme mostrado no exemplo a seguir:
ALTER MODEL `bqml_tutorial.gemma_model` SET OPTIONS (deploy_model = false);
Para mais informações, consulte Cancelamento automático ou imediato da implantação de modelos abertos.
Limpar
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.