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. Creas un modelo remoto que hace referencia a un modelo de Gemini Enterprise Agent Platform, usas el ajuste supervisado y, luego, evalúas el modelo ajustado con la función ML.EVALUATE.
El ajuste te ayuda a personalizar el modelo alojado de Agent Platform, por ejemplo, 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
- Importa datos de entrenamiento y evaluación en tablas.
- Crea un modelo de referencia.
- Evalúa el rendimiento del modelo de referencia.
- Crea un modelo ajustado.
- Evalúa 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):
- Crear y usar 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
- Selecciona 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.
-
Crear 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 Compute Engine si alguna de ellas aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar 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 obtener este permiso 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 US.
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 de 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
Cómo ver 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 ejemplos negativos, junto con una oración para reescribir. El resultado es la oración más detallada que produce el modelo.
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente instrucción para ver un ejemplo de 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. | | | ... | ... | +-------------------------------------------------+-------------------------------------------------+
Si bien el modelo de referencia genera texto que refleja con precisión los hechos proporcionados en el contenido de referencia, 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 precisión 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 del modelo de referencia.
Crea un modelo ajustado
Crea un modelo remoto muy similar al que creaste en
Crear 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 con un estilo mucho más similar al contenido de la 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 Google Cloud proyecto:
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.