Este tutorial mostra como ajustar um modelo que enriquece uma 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 Plataforma de Agentes do Gemini Enterprise,
usa o
ajuste supervisionado,
e avalia o modelo ajustado com a
ML.EVALUATE função.
O ajuste ajuda a personalizar o modelo hospedado da Plataforma de Agentes, como quando o comportamento esperado é difícil de definir em um comando ou quando os comandos não produzem 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 é 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ê 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,
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). - Conceder 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.* - Definir a conexão padrão:
bigquery.config.* - Definir permissões da conta de serviço:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - 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.
-
No Google Cloud console do, na página do seletor de projetos, escolha 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, Agent Platform e Compute Engine.
Funções necessárias para ativar APIs
Para ativar as APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, você pode receber essa permissão pelo papel de Administrador de uso do serviço (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 Google Cloud console, 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 o 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.Para Local dos dados, selecione EUA.
Não altere as outras configurações padrão.
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 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 datasets.insert
método 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
do 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. Cada comando inclui o mesmo conjunto de dois exemplos positivos e dois negativos, além de uma frase a ser reescrita. A saída é a frase mais detalhada produzida pelo modelo.
No Google Cloud console, acesse a página BigQuery.
No editor de consultas, execute a seguinte instrução para conferir 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 Google Cloud console, 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 conferir o desempenho do modelo remoto nos dados de avaliação sem nenhum
ajuste, execute a
AI.GENERATE_TEXT função:
No Google Cloud console, 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 referência gere um texto que reflita com precisão os fatos fornecidos no conteúdo de informações empíricas, 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
ML.EVALUATE função.
Essa função calcula as métricas do modelo que medem a precisão e a qualidade do texto gerado para conferir como as respostas do modelo se comparam às respostas ideais.
No Google Cloud console, 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 fornecem uma maneira quantitativa de medir o desempenho. As próximas seções mostram como criar um modelo ajustado e comparar o desempenho dele com o modelo de referência.
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 para ajustar o modelo.
No Google Cloud console, 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 conferir o desempenho do modelo ajustado nos dados de avaliação, execute a função AI.GENERATE_TEXT:
No Google Cloud console, 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 um estilo muito mais semelhante ao conteúdo de informações empíricas.
Avaliar o modelo ajustado
Para conferir como as respostas do modelo ajustado se comparam às respostas ideais, use a função ML.EVALUATE:
No Google Cloud console, 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 no desempenho 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 Google Cloud projeto do:
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 tabelas.No painel Explorer, expanda o projeto e clique em Conjuntos de dados.
Na lista Conjuntos de dados, clique no conjunto de dados
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
ML.EVALUATEfunção. - Saiba mais sobre a
AI.GENERATE_TEXTfunção. - Confira as opções de ajuste supervisionado para modelos remotos.