Usa puntos de control en el ajuste supervisado para modelos de Gemini

Un punto de control es una instantánea del estado de un modelo en un punto específico del proceso de ajuste. Puedes usar puntos de control intermedios en el ajuste de modelos de Gemini para hacer lo siguiente:

  • Guarda el progreso del ajuste.
  • Compara el rendimiento de los puntos de control intermedios.
  • Selecciona el punto de control con el mejor rendimiento antes de que se produzca un sobreajuste para que sea el punto de control predeterminado.

En el caso de los trabajos de ajuste con menos de 10 épocas, se guarda un punto de control aproximadamente después de cada época. En el caso de los trabajos 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 que se entrenan todas las épocas.

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

Modelos compatibles

Los siguientes modelos de Gemini admiten puntos de control:

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

Crea un trabajo de ajuste que exporte puntos de control

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

Console

Para crear un trabajo 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 Cómo ajustar un modelo.

Google Gen AI SDK

(Versión preliminar) 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'

Enumera los puntos de control de un trabajo de ajuste

Puedes ver los puntos de control de tu trabajo de ajuste completado en laGoogle Cloud consola o enumerarlos con el SDK de Google Gen AI.

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

Console

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

    Ir a Vertex AI Studio

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

    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:

    • Para cada época, verás 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 estimado de la época a la 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.

Google Gen AI SDK

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'

Cómo ver los detalles y los puntos de control del modelo

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

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

  • Se actualiza según el punto de control predeterminado y representa el extremo que el trabajo de ajuste creó para el punto de control predeterminado actualizado durante el ajuste.
  • Si no hay un modelo o si el trabajo de ajuste no puede obtener uno, el valor de Endpoint estará vacío.
  • Si no se implementa el punto de control predeterminado (porque el ajuste aún está en curso o porque falló la implementación), el valor de Endpoint estará vacío.

Console

Puedes ver tu modelo ajustado en Vertex AI Model Registry en la página Endpoints de predicción en línea.

  1. Ve a la página Model Registry desde la sección Vertex AI en la Google Cloud consola.

    Ir a la página Model Registry

  2. Haz clic en el nombre de tu modelo.

    Aparecerá la versión predeterminada de tu 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. Haz clic en la pestaña Implementar y probar para ver el extremo en el que se implementó el modelo.

  5. Haz clic en el nombre del extremo para ir a la página Endpoint y ver la lista de puntos de control implementados en el extremo. Para cada punto de control, se muestran el ID de la versión del modelo y el ID del punto de control.

También puedes ver los puntos de control en la página Detalles del trabajo 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

Google Gen AI SDK

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 configuraste el servicio de evaluación de IA generativa para que ejecute evaluaciones después de cada punto de control, consulta el bucket de Cloud Storage que configuraste para los resultados de la evaluación.

Prueba los puntos de control

Puedes ver una lista de los puntos de control en Vertex AI Model Registry 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.

Console

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

    Ir a Vertex AI Studio

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

  3. En la tabla de puntos de control del panel Monitor, haz clic en el vínculo Test junto al punto de control deseado.

Google Gen AI SDK

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 ...

Selecciona un nuevo punto de control predeterminado

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

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

Cuando se copia un modelo con puntos de control, el modelo de destino tendrá el mismo ID de punto de control predeterminado que el modelo de origen. Se copian todos los puntos de control, por lo que puedes seleccionar un nuevo punto de control predeterminado para el modelo de destino.

El extremo del trabajo de ajuste se actualizará si actualizas un punto de control predeterminado, y podrás usar el nuevo extremo para la predicción.

Console

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

    Ir a Vertex AI Studio

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

  3. En la tabla de puntos de control del panel Monitor, junto al punto de control deseado, haz clic en Acciones y selecciona Establecer 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 extremo de la página de detalles de TuningJob se actualiza para mostrar el extremo del nuevo punto de control predeterminado.

Google Gen AI SDK

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

¿Qué sigue?