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 usar esse modelo com a
função AI.GENERATE_TEXT
para extrair palavras-chave e realizar análises de sentimento em resenhas de filmes
na 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). - Conceda permissões à conta de serviço da conexão: administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin). - Implantar e remover a implantação de modelos na Vertex AI: 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.* - Defina a conexão padrão:
bigquery.config.* - Defina as permissões da conta de serviço:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - Implantar e remover a implantação de um modelo da Vertex AI:
aiplatform.endpoints.deployaiplatform.endpoints.undeploy
- Crie um modelo e execute 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ê vai usar os seguintes componentes faturáveis do Cloud de Confiance 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 that's represented by the remote model.
Para mais informações, consulte Preços do BigQuery na documentação do BigQuery.
Os modelos abertos implantados na Vertex AI 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ê o remova. Para mais informações sobre preços da Vertex AI, consulte esta página.
Antes de começar
-
No console do Cloud de Confiance , na página do seletor de projetos, selecione ou crie um projeto do Cloud de Confiance .
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Verifique se o faturamento está ativado para o projeto do Cloud de Confiance .
-
Ative as APIs BigQuery, BigQuery Connection e Vertex AI.
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 seu modelo de ML.
Console
No console do Cloud de Confiance , acesse a página BigQuery.
No painel Explorer, clique no nome do seu projeto.
Clique em Conferir 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 EUA.
Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.
bq
Para criar um conjunto de dados, use o
comando bq mk --dataset.
Crie um conjunto de dados chamado
bqml_tutorialcom o local dos 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 método datasets.insert com um recurso de conjunto de dados definido.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Criar o modelo remoto
Crie um modelo remoto que represente um modelo da Vertex AI:
No console do Cloud de Confiance , 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 avaliações de filmes do IMDB usando o modelo remoto e a função AI.GENERATE_TEXT:
No console do Cloud de Confiance , 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 console do Cloud de Confiance , 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, será necessário desimplantar o modelo Gemma na Vertex AI 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 desimplantar o modelo imediatamente usando a
instrução ALTER MODEL,
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 console Cloud de Confiance , 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.