En este instructivo, se muestra cómo ajustar un modelo que enriquece una oración determinada
proporcionando una redacción más precisa o agregando calificadores sin
cambiar el significado general. Crea un
modelo remoto
que haga referencia a un
modelo de Gemini Enterprise Agent Platform,
usa
ajuste supervisado
y, luego, evalúa el modelo ajustado con la
función ML.EVALUATE.
El ajuste te ayuda a personalizar el modelo alojado de Agent Platform, como cuando el comportamiento esperado es difícil de definir en una instrucción o cuando las instrucciones no producen los resultados esperados de forma coherente. El ajuste supervisado también influye en el modelo de las siguientes maneras:
- Guía al modelo para que devuelva estilos de respuesta específicos, por ejemplo, ser más conciso o más detallado.
- Enseña al modelo nuevos comportamientos, por ejemplo, responde a las instrucciones como un arquetipo específico.
- Hace que el modelo se actualice con información nueva.
En este instructivo, el objetivo es que el modelo genere texto cuyo estilo y contenido se ajusten lo más posible al contenido de verdad fundamental proporcionado.
Objetivos
- Crear un conjunto de datos
- Importar datos de entrenamiento y evaluación a tablas
- Crear un modelo de referencia
- Evaluar el rendimiento del modelo de referencia
- Crea un modelo ajustado.
- Evaluar el rendimiento del modelo ajustado
Costos
En este documento, usarás los siguientes componentes facturables de 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 generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Para obtener más información, consulta los siguientes recursos:
Antes de comenzar
Para ejecutar este instructivo, necesitas los siguientes roles de Identity and Access Management (IAM):
- Crea y usa conjuntos de datos, conexiones y modelos de BigQuery:
Administrador de BigQuery (
roles/bigquery.admin). - Otorga permisos a la cuenta de servicio de la conexión: Administrador de IAM del proyecto
(
roles/resourcemanager.projectIamAdmin).
Estos roles predefinidos contienen los permisos necesarios para realizar las tareas de este documento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
- Crea un conjunto de datos:
bigquery.datasets.create - Crea una tabla:
bigquery.tables.create - Crea, delega y usa una conexión:
bigquery.connections.* - Establece la conexión predeterminada:
bigquery.config.* - Configura los permisos de la cuenta de servicio:
resourcemanager.projects.getIamPolicyyresourcemanager.projects.setIamPolicy - Crea un modelo y ejecuta la inferencia:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
-
En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
Habilita las APIs de BigQuery, BigQuery Connection, Agent Platform y API de Compute Engine, si es que aún no están habilitadas.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.
Crea un conjunto de datos
Para crear un conjunto de datos de BigQuery, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar:

Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
En Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.
En la página Conjuntos de datos, haz clic en Crear conjunto de datos.
En el panel Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, ingresa
bqml_tutorial.En Ubicación de los datos, selecciona EE.UU..
Deja el resto de la configuración predeterminada como está.
Haz clic en Crear conjunto de datos.
bq
Para crear un conjunto de datos nuevo, usa el
comando bq mk --dataset.
Crea un conjunto de datos llamado
bqml_tutorialcon la ubicación de los datos establecida enUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Confirma que se haya creado el conjunto de datos:
bq ls
API
Llama al método datasets.insert
con un recurso de conjunto de datos definido:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Crea tablas de prueba
Crea tablas de datos de entrenamiento y evaluación basadas en el conjunto de datos públicos
task955_wiki_auto_style_transfer
de Hugging Face.
Abre Cloud Shell.
En Cloud Shell, crea tablas de datos de prueba y evaluación:
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
Visualiza los datos de entrenamiento
Los datos de entrenamiento de entrada son una instrucción que le pide al modelo que elabore una oración sin cambiar su significado general. Cada instrucción incluye el mismo conjunto de dos ejemplos positivos y dos negativos, junto con una oración para reescribir. El resultado es la oración más detallada que genera el modelo.
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente sentencia para ver un ejemplo de los datos de entrada y salida:
SELECT * FROM bqml_tutorial.wiki_auto_style_transfer_train LIMIT 1;
El resultado es similar al siguiente:
+-----------------------------------------------+-------------------------------------------------+ | 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: | | +-----------------------------------------------+-------------------------------------------------+
Crea un modelo de referencia
Crea un modelo remoto sobre un modelo de Gemini:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente declaración para crear un modelo remoto:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_baseline` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-pro');
La consulta tarda varios segundos en completarse, después de eso, el modelo
gemini_baselineaparece en el conjunto de datosbqml_tutorialen el panel Explorador. Debido a que la consulta usa una declaraciónCREATE MODELpara crear un modelo, no hay resultados de consultas.
Verifica el rendimiento del modelo de referencia
Para ver cómo se desempeña el modelo remoto en los datos de evaluación sin ningún
ajuste, ejecuta la
función AI.GENERATE_TEXT:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente declaración:
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 ));
El resultado es similar al siguiente:
+-------------------------------------------------+-------------------------------------------------+ | 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. | | | ... | ... | +-------------------------------------------------+-------------------------------------------------+
Aunque el modelo de referencia genera texto que refleja con precisión los hechos proporcionados en el contenido de verdad fundamental, el estilo del texto a veces es diferente. El modelo de referencia tiende a producir elaboraciones más largas que la verdad fundamental deseada.
Evalúa el modelo de referencia
Para realizar una evaluación más detallada del rendimiento del modelo, usa la
función ML.EVALUATE.
Esta función calcula las métricas del modelo que miden la exactitud y la calidad del
texto generado para ver cómo se comparan las respuestas del modelo con las respuestas
ideales.
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente declaración:
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));
El resultado es similar al siguiente:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | 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 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Estas puntuaciones proporcionan una forma cuantitativa de medir el rendimiento. En las siguientes secciones, se muestra cómo crear un modelo ajustado y comparar su rendimiento con el modelo de referencia.
Crea un modelo ajustado
Crea un modelo remoto muy similar al que creaste en
Crea un modelo, pero esta vez especifica la
cláusula AS SELECT
para proporcionar los datos de entrenamiento para ajustar el modelo.
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente declaración para crear un 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`;
La consulta tarda unos minutos en completarse, después de eso, el modelo
gemini_tunedaparece en el conjunto de datosbqml_tutorialen el panel Explorador. Debido a que la consulta usa una declaraciónCREATE MODELpara crear un modelo, no hay resultados de consultas.
Verifica el rendimiento del modelo ajustado
Para ver el rendimiento del modelo ajustado en los
datos de evaluación, ejecuta la función AI.GENERATE_TEXT:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente declaración:
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 ));
El modelo ajustado produce texto que es mucho más similar en estilo al contenido de verdad fundamental.
Evalúa el modelo ajustado
Para ver cómo se comparan las respuestas del modelo ajustado con las respuestas ideales, usa
la función ML.EVALUATE:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente declaración:
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));
El resultado es similar al siguiente:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | 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 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
El modelo ajustado muestra una mejora notable en el rendimiento y supera al modelo de referencia en todas las métricas de evaluación.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
Borra un proyecto de Google Cloud :
gcloud projects delete PROJECT_ID
Borra los recursos individuales
Si deseas volver a usar el proyecto, borra los recursos que creaste para este instructivo.
Ve a la página de BigQuery.
Borra el conjunto de datos
bqml_tutorialSi borras el conjunto de datos, también se borrarán los modelos y las tablas.En el panel Explorador, expande tu proyecto y haz clic en Conjuntos de datos.
En la lista Conjuntos de datos, haz clic en el conjunto de datos
bqml_tutorial.En el panel de detalles, haz clic en Borrar.
En el cuadro de diálogo Borrar conjunto de datos, haz clic en Borrar.
¿Qué sigue?
- Obtén más información sobre la función
ML.EVALUATE. - Obtén más información sobre la función
AI.GENERATE_TEXT. - Revisa las opciones de ajuste supervisado para los modelos remotos.