Usar puntos de control en el ajuste fino supervisado de modelos de Gemini

Un punto de control es una captura del estado de un modelo en un momento concreto del proceso de ajuste. Puedes usar puntos de control intermedios en la puesta a punto de modelos de Gemini para hacer lo siguiente:

  • Guarda el progreso de la optimización.
  • Comparar el rendimiento de los puntos de control intermedios.
  • Selecciona el punto de control con mejor rendimiento antes de que el sobreajuste sea el punto de control predeterminado.

En las tareas de ajuste con menos de 10 épocas, se guarda un punto de control aproximadamente después de cada época. En las tareas de ajuste con más de 10 épocas, se guardan alrededor de 10 puntos de control con una distribución uniforme, a excepción del punto de control final, que se guarda inmediatamente después de entrenar todas las épocas.

Los puntos de control intermedios se implementan en los nuevos endpoints de forma secuencial a medida que avanza la optimización. El endpoint del modelo ajustado representa el endpoint del punto de control predeterminado, y los puntos de control del modelo ajustado incluyen todos los puntos de control y sus endpoints correspondientes.

Modelos admitidos

Los siguientes modelos de Gemini admiten puntos de control:

Para obtener información detallada sobre las versiones del modelo Gemini, consulta los artículos Modelos de Google y Versiones y ciclo de vida de los modelos.

Crear una tarea de ajuste que exporte puntos de control

Puedes crear un trabajo de ajuste fino supervisado que exporte puntos de control mediante el SDK de Gen AI de Google o la Google Cloud consola.

Consola

Para crear una tarea de ajuste que exporte puntos de control, ve a la página Vertex AI Studio y selecciona la pestaña Ajuste. Para obtener más información, consulta Ajustar un modelo.

SDK de Google Gen AI

(Vista previa) Puedes configurar el servicio de evaluación de IA generativa para que ejecute evaluaciones automáticamente después de cada punto de control. Esta configuración de evaluación está disponible en la región us-central1.

import time

from google import genai
from google.genai.types import HttpOptions, CreateTuningJobConfig, TuningDataset, EvaluationConfig, OutputConfig, GcsDestination, Metric

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

client = genai.Client(http_options=HttpOptions(api_version="v1beta1"))

training_dataset = TuningDataset(
    gcs_uri="gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_train_data.jsonl",
)
validation_dataset = TuningDataset(
    gcs_uri="gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_validation_data.jsonl",
)

evaluation_config = EvaluationConfig(
    metrics=[
        Metric(
            name="FLUENCY",
            prompt_template="""Evaluate this {prediction}"""
        )
    ],
    output_config=OutputConfig(
        gcs_destination=GcsDestination(
            output_uri_prefix=output_gcs_uri,
        )
    ),
)

tuning_job = client.tunings.tune(
    base_model="gemini-2.5-flash",
    training_dataset=training_dataset,
    config=CreateTuningJobConfig(
        tuned_model_display_name="Example tuning job",
        # Set to True to disable tuning intermediate checkpoints. Default is False.
        export_last_checkpoint_only=False,
        validation_dataset=validation_dataset,
        evaluation_config=evaluation_config,
    ),
)

running_states = set([
    "JOB_STATE_PENDING",
    "JOB_STATE_RUNNING",
])

while tuning_job.state in running_states:
    print(tuning_job.state)
    tuning_job = client.tunings.get(name=tuning_job.name)
    time.sleep(60)

print(tuning_job.tuned_model.model)
print(tuning_job.tuned_model.endpoint)
print(tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# projects/123456789012/locations/us-central1/metadataStores/default/contexts/tuning-experiment-2025010112345678

if tuning_job.tuned_model.checkpoints:
    for i, checkpoint in enumerate(tuning_job.tuned_model.checkpoints):
        print(f"Checkpoint {i + 1}: ", checkpoint)
    # Example response:
    # Checkpoint 1:  checkpoint_id='1' epoch=1 step=10 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789000000'
    # Checkpoint 2:  checkpoint_id='2' epoch=2 step=20 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789012345'

Lista los puntos de control de un trabajo de ajuste

Puedes ver los puntos de control de tu tarea de ajuste completada en laGoogle Cloud consola o enumerarlos mediante el SDK de IA generativa de Google.

Si los puntos de control intermedios están inhabilitados, solo se muestra o se devuelve el punto de control final.

Consola

  1. Para localizar tu modelo ajustado en la Google Cloud consola, ve a la página Vertex AI Studio.

    Ve a Vertex AI Studio.

  2. En la pestaña Ajuste, busca tu modelo y haz clic en Monitorizar.

    Se muestran las métricas de ajuste y los puntos de control de tu modelo. En cada gráfico de métricas, los números de los puntos de control se muestran como anotaciones de la siguiente manera:

    • En cada época, se muestra un número de paso y un número de época.
    • El número de paso es el paso exacto en el que se guarda un punto de control.
    • El número de época es un número de época estimado al que pertenece el punto de control, excepto en el caso del punto de control final de un trabajo de ajuste completado, que tiene el número de época exacto.

SDK de Google Gen AI

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)

if tuning_job.tuned_model.checkpoints:
    for i, checkpoint in enumerate(tuning_job.tuned_model.checkpoints):
        print(f"Checkpoint {i + 1}: ", checkpoint)
# Example response:
# Checkpoint 1:  checkpoint_id='1' epoch=1 step=10 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789000000'
# Checkpoint 2:  checkpoint_id='2' epoch=2 step=20 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789012345'

Ver los detalles y los puntos de control de un modelo

Puedes ver tu modelo ajustado en la Google Cloud consola o usar el SDK de IA generativa de Google para obtener los detalles del modelo, incluidos los endpoints y los puntos de control.

El campo Endpoint del modelo se actualiza de la siguiente manera:

  • Se actualiza en función del punto de control predeterminado y representa el endpoint que el trabajo de ajuste ha creado para el punto de control predeterminado actualizado durante el ajuste.
  • Si no hay ningún modelo o si el trabajo de ajuste no consigue obtener un modelo, el valor de Endpoint estará vacío.
  • Si el punto de control predeterminado no se ha implementado (porque el ajuste aún está en curso o porque la implementación ha fallado), el valor de Endpoint estará vacío.

Consola

Puedes ver tu modelo ajustado en el registro de modelos de Vertex AI, en la página Endpoints (Puntos finales) de la sección Online prediction (Predicción online).

  1. Ve a la página Registro de modelos de la sección Vertex AI de la consola de Google Cloud .

    Ve a la página Registro de modelos.

  2. Haz clic en el nombre del modelo.

    Aparecerá la versión predeterminada del modelo.

  3. Haz clic en la pestaña Detalles de la versión para ver información sobre la versión de tu modelo.

    Ten en cuenta que el Objetivo es Large model, el Tipo de modelo es Foundation y la Fuente es Vertex AI Studio tuning.

  4. Haga clic en la pestaña Implementar y probar para ver el endpoint en el que se ha implementado el modelo.

  5. Haz clic en el nombre del endpoint para ir a la página Endpoint (Endpoint) y ver la lista de puntos de control que se han implementado en el endpoint. En cada punto de control, se muestran el ID de versión del modelo y el ID del punto de control.

También se pueden ver los puntos de control en la página Detalles de la tarea de ajuste. Para ver esta página, ve a la página Ajuste y haz clic en uno de los trabajos de ajuste.

Ir a la página Ajuste

SDK de Google Gen AI

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)
tuned_model = client.models.get(model=tuning_job.tuned_model.model)
print(tuned_model)
# Example response:
# Model(name='projects/123456789012/locations/us-central1/models/1234567890@1', ...)

print(f"Default checkpoint: {tuned_model.default_checkpoint_id}")
# Example response:
# Default checkpoint: 2

if tuned_model.checkpoints:
    for _, checkpoint in enumerate(tuned_model.checkpoints):
        print(f"Checkpoint {checkpoint.checkpoint_id}: ", checkpoint)
# Example response:
# Checkpoint 1:  checkpoint_id='1' epoch=1 step=10
# Checkpoint 2:  checkpoint_id='2' epoch=2 step=20

Si has configurado el servicio de evaluación de la IA generativa para que ejecute evaluaciones después de cada punto de control, consulta el bucket de Cloud Storage que has configurado para los resultados de las evaluaciones.

Probar los puntos de control

Puedes ver una lista de puntos de control en el registro de modelos de Vertex AI y probar cada uno de ellos. También puedes usar el SDK de IA generativa de Google para enumerar y probar tus puntos de control.

Consola

  1. Para localizar tu modelo ajustado en la Google Cloud consola, ve a la página Vertex AI Studio.

    Ve a Vertex AI Studio.

  2. En la pestaña Ajuste, busca tu modelo y haz clic en Monitorizar.

  3. En la tabla de puntos de control del panel Monitor (Monitor), junto al punto de control que quieras, haz clic en el enlace Test (Prueba).

SDK de Google Gen AI

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)

contents = "Why is the sky blue?"

# Predicts with the default checkpoint.
response = client.models.generate_content(
    model=tuning_job.tuned_model.endpoint,
    contents=contents,
)
print(response.text)
# Example response:
# The sky is blue because ...

# Predicts with Checkpoint 1.
checkpoint1_response = client.models.generate_content(
    model=tuning_job.tuned_model.checkpoints[0].endpoint,
    contents=contents,
)
print(checkpoint1_response.text)
# Example response:
# The sky is blue because ...

# Predicts with Checkpoint 2.
checkpoint2_response = client.models.generate_content(
    model=tuning_job.tuned_model.checkpoints[1].endpoint,
    contents=contents,
)
print(checkpoint2_response.text)
# Example response:
# The sky is blue because ...

Seleccionar un nuevo punto de control predeterminado

Puedes usar el punto de control predeterminado para representar el punto de control con mejor rendimiento. De forma predeterminada, el punto de control predeterminado es el punto de control final de un trabajo de ajuste.

Cuando se despliega un modelo con puntos de control, se despliega el punto de control predeterminado.

Al copiar un modelo con puntos de control, el modelo de destino tendría el mismo ID de punto de control predeterminado que el modelo de origen. Todos los puntos de control se copian, por lo que puedes seleccionar un nuevo punto de control predeterminado para el modelo de destino.

El endpoint del trabajo de ajuste se actualizará si actualizas un punto de control predeterminado y podrás usar el nuevo endpoint para hacer predicciones.

Consola

  1. Para localizar tu modelo ajustado en la Google Cloud consola, ve a la página Vertex AI Studio.

    Ve a Vertex AI Studio.

  2. En la pestaña Ajuste, busca tu modelo y haz clic en Monitorizar.

  3. En la tabla de puntos de control del panel Monitor, junto al punto de control que quieras, haz clic en Acciones y selecciona Definir como predeterminado.

  4. Haz clic en Confirmar.

    Los gráficos de métricas y la tabla de puntos de control se actualizan para mostrar el nuevo punto de control predeterminado. El endpoint de la página de detalles de TuningJob se actualiza para mostrar el endpoint del nuevo punto de control predeterminado.

SDK de Google Gen AI

from google import genai
from google.genai.types import HttpOptions, UpdateModelConfig

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)
tuned_model = client.models.get(model=tuning_job.tuned_model.model)

print(f"Default checkpoint: {tuned_model.default_checkpoint_id}")
print(f"Tuned model endpoint: {tuning_job.tuned_model.endpoint}")
# Example response:
# Default checkpoint: 2
# projects/123456789012/locations/us-central1/endpoints/123456789012345

# Set a new default checkpoint.
# Eg. checkpoint_id = "1"
tuned_model = client.models.update(
    model=tuned_model.name,
    config=UpdateModelConfig(default_checkpoint_id=checkpoint_id),
)

print(f"Default checkpoint: {tuned_model.default_checkpoint_id}")
print(f"Tuned model endpoint: {tuning_job.tuned_model.endpoint}")
# Example response:
# Default checkpoint: 1
# projects/123456789012/locations/us-central1/endpoints/123456789000000

Siguientes pasos