Neste tutorial, mostramos como ajustar um modelo que enriquece uma determinada frase
fornecendo uma redação mais precisa ou adicionando qualificadores sem
mudar o significado geral. Você cria um
modelo remoto
que faz referência a um
modelo da Gemini Enterprise Agent Platform,
usa o
ajuste supervisionado
e avalia o modelo ajustado com a
função ML.EVALUATE.
O ajuste ajuda a personalizar o modelo hospedado da Agent Platform, como quando o comportamento esperado é difícil de definir em um comando ou quando os comandos não produzem os resultados esperados de forma consistente. O ajuste supervisionado também influencia o modelo das seguintes maneiras:
- Orienta o modelo a retornar estilos de resposta específicos, por exemplo, sendo mais conciso ou detalhado.
- Ensina novos comportamentos ao modelo, por exemplo, respondendo a comandos como uma persona específica.
- Faz com que o modelo se atualize com novas informações.
Neste tutorial, o objetivo é fazer com que o modelo gere um texto cujo estilo e conteúdo estejam o mais próximo possível do conteúdo de informações empíricas fornecido.
Objetivos
- Crie um conjunto de dados.
- Importe dados de treinamento e avaliação para tabelas.
- Crie um modelo de referência.
- Avalie o desempenho do modelo de referência.
- Crie um modelo ajustado.
- Avalie o desempenho do modelo ajustado.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
- BigQuery. You incur costs for the queries that you run in BigQuery.
- BigQuery ML. You incur costs for the model that you create and the processing that you perform in BigQuery ML.
- Gemini Enterprise Agent Platform. You incur costs for calls to and supervised tuning of the Gemini model.
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Para saber mais, acesse os recursos a seguir:
Antes de começar
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).
Esses papéis predefinidos contêm as permissões necessárias para executar as tarefas neste documento. Para conferir 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 uma tabela:
bigquery.tables.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 - 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.
-
No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .
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 Google Cloud .
-
Ative as APIs BigQuery, BigQuery Connection, Agent Platform e Compute Engine, se alguma delas ainda não estiver ativada.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.
Criar um conjunto de dados
Para criar um conjunto de dados do BigQuery, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página BigQuery.
No painel à esquerda, clique em Explorer:

Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.
Em Explorer, expanda seu projeto e clique em Conjuntos de dados.
Na página Conjuntos de dados, clique em Criar conjunto de dados.
No painel Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial.Em Local dos dados, selecione US.
Não mude as outras configurações padrão.
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 tabelas de teste
Crie tabelas de dados de treinamento e avaliação com base no conjunto de dados público task955_wiki_auto_style_transfer da Hugging Face.
Abra o Cloud Shell.
No Cloud Shell, crie tabelas de dados de teste e avaliação:
python3 -m pip install pandas pyarrow fsspec huggingface_hub python3 -c "import pandas as pd; df_train = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/train-00000-of-00001.parquet').drop('id', axis=1); df_train['output'] = [x[0] for x in df_train['output']]; df_train.to_json('wiki_auto_style_transfer_train.jsonl', orient='records', lines=True);" python3 -c "import pandas as pd; df_valid = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/valid-00000-of-00001.parquet').drop('id', axis=1); df_valid['output'] = [x[0] for x in df_valid['output']]; df_valid.to_json('wiki_auto_style_transfer_valid.jsonl', orient='records', lines=True);" bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_train wiki_auto_style_transfer_train.jsonl input:STRING,output:STRING bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_valid wiki_auto_style_transfer_valid.jsonl input:STRING,output:STRING
Conferir os dados de treinamento
Os dados de treinamento de entrada são um comando que pede ao modelo para elaborar uma frase sem mudar o significado geral dela. Cada comando inclui o mesmo conjunto de dois exemplos positivos e dois negativos, além de uma frase para reescrever. A saída é a frase mais detalhada produzida pelo modelo.
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução para ver um exemplo de dados de entrada e saída:
SELECT * FROM bqml_tutorial.wiki_auto_style_transfer_train LIMIT 1;
O resultado será semelhante ao seguinte:
+-----------------------------------------------+-------------------------------------------------+ | input | output | +-----------------------------------------------+-------------------------------------------------+ | Definition: In this task, we ask you to | Merton College ( in full : The House or College | | elaborate the sentence without changing its | of Scholars of Merton in the University of | | general meaning. You can do so by explaining | Oxford ) is one of the constituent colleges of | | further the input sentence, using more | the University of Oxford in England . | | precise wording, adding qualifiers and | | | auxiliary information etc. | | | | | | Positive Example 1 - | | | Input: The Inheritance Cycle is a series of | | | fantasy books written by Christopher Paolini. | | | Output: The Inheritance Cycle is a tetralogy | | | of young adult high fantasy novels written by | | | American author Christopher Paolini. | | | | | | Positive Example 2 - | | | Input: The Greco-Roman or Graeco-Roman world, | | | refers to geographical regions and countries | | | who had the language , culture , government | | | or religion of the ancient Greeks and Romans. | | | Output: The Greco-Roman world , Greco-Roman | | | culture , or the term Greco-Roman (spelled | | | Graeco-Roman in the United Kingdom and the | | | Commonwealth), when used as an adjective , as | | | understood by modern scholars and writers , | | | refers to those geographical regions and | | | countries that culturally ( and so | | | historically ) were directly , long-term , | | | and intimately influenced by the language , | | | culture , government and religion of the | | | ancient Greeks and Romans. | | | | | | Negative Example 1 - | | | Input: Boryla, an American football | | | quarterback, did not participate in the 1952 | | | playoffs. | | | Output: Boryla was not in the 1952 playoffs. | | | | | | Negative Example 2 - | | | Input: The wild population in China decreased | | | to around 2,000 in 2005. | | | Output: By 2005, the wild population | | | decreased to about 2,000. | | | | | | Now complete the following example - | | | Input: Merton College is one of the colleges | | | of the University of Oxford . | | | Output: | | +-----------------------------------------------+-------------------------------------------------+
Criar um modelo de referência
Crie um modelo remoto em um modelo do Gemini:
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução para criar um modelo remoto:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_baseline` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-pro');
A consulta leva alguns segundos para ser concluída. Depois disso, o modelo
gemini_baselineaparece no conjunto de dadosbqml_tutorialno painel Explorer. Como a consulta usa uma instruçãoCREATE MODELpara criar um modelo, não há resultados de consulta.
Verificar o desempenho do modelo de referência
Para ver como o modelo remoto é executado nos dados de avaliação sem nenhum
ajuste, execute a
função AI.GENERATE_TEXT:
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução:
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
O resultado será semelhante ao seguinte:
+-------------------------------------------------+-------------------------------------------------+ | result | ground_truth | +-------------------------------------------------+-------------------------------------------------+ | In mathematics, and more specifically in graph | In mathematics , and more specifically in graph | | theory, a graph is an abstract structure that | theory , a graph is a structure amounting to a | | is used to model pairwise relationships between | set of objects in which some pairs of the | | objects. A graph in this context is made up of | objects are in some sense " related " . | | vertices (also called nodes or points) and | | | edges (also called links or lines) that connect | | | pairs of vertices. | | | ... | ... | +-------------------------------------------------+-------------------------------------------------+
Embora o modelo de base gere texto que reflete com precisão os fatos fornecidos no conteúdo de verdade embasada, o estilo do texto às vezes é diferente. O modelo de referência tende a produzir elaborações mais longas do que as informações empíricas desejadas.
Avaliar o modelo de referência
Para realizar uma avaliação mais detalhada do desempenho do modelo, use a
função ML.EVALUATE.
Essa função calcula métricas do modelo que medem a acurácia e a qualidade do texto gerado para ver como as respostas do modelo se comparam às respostas ideais.
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução:
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS input_text, output AS output_text FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
O resultado será semelhante ao seguinte:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.32571814014498979 | 0.45752569962901607 | 0.557224161991254 | 0.49205029983307907 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Essas pontuações oferecem uma maneira quantitativa de medir a performance. As próximas seções mostram como criar um modelo ajustado e comparar a performance dele com o modelo de base.
Criar um modelo ajustado
Crie um modelo remoto semelhante ao criado em
Criar um modelo, mas desta vez especifique a
cláusula AS SELECT
para fornecer os dados de treinamento e ajustar o modelo.
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução para criar um modelo remoto:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_tuned` REMOTE WITH CONNECTION DEFAULT OPTIONS ( endpoint = 'gemini-2.5-pro', max_iterations = 500, data_split_method = 'no_split') AS SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_train`;
A consulta leva alguns minutos para ser concluída. Depois disso, o modelo
gemini_tunedaparece no conjunto de dadosbqml_tutorialno painel Explorer. Como a consulta usa uma instruçãoCREATE MODELpara criar um modelo, não há resultados de consulta.
Verificar o desempenho do modelo ajustado
Para ver o desempenho do modelo ajustado nos
dados de avaliação, execute a função AI.GENERATE_TEXT:
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução:
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
O modelo ajustado produz um texto com estilo muito mais parecido com o conteúdo de informações empíricas.
Avaliar o modelo ajustado
Para ver como as respostas do modelo ajustado se comparam às respostas ideais, use
a função ML.EVALUATE:
No console do Google Cloud , acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução:
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
O resultado será semelhante ao seguinte:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.44878025403825506 | 0.57236062510796448 | 0.638794269320597 | 0.59591519400141835 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
O modelo ajustado mostra uma melhoria significativa na performance e supera o modelo de referência em todas as métricas de avaliação.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
Excluir recursos individuais
Se você quiser reutilizar o projeto, exclua os recursos criados para este tutorial.
Acessar a página do BigQuery.
Exclua o conjunto de dados
bqml_tutorial. A exclusão do conjunto de dados também exclui os modelos e as tabelas.No painel Explorer, expanda o projeto e clique em Conjuntos de dados.
Na lista Conjuntos de dados, clique no conjunto
bqml_tutorial.No painel de detalhes, clique em Excluir.
Na caixa de diálogo Excluir conjunto de dados, clique em Excluir.
A seguir
- Saiba mais sobre a função
ML.EVALUATE. - Saiba mais sobre a função
AI.GENERATE_TEXT. - Revise as opções de ajuste supervisionado para modelos remotos.