Usa puntos de control en el ajuste de modelos de Gemini

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

  • Guardar el progreso del ajuste
  • Comparar el rendimiento de los puntos de control intermedios
  • Seleccionar el punto de control con mejor rendimiento antes de que se produzca un sobreajuste para que sea el punto de control predeterminado

Para los trabajos de ajuste con menos de 10 épocas, se guarda un punto de control aproximadamente después de cada época. Para los trabajos de ajuste con más de 10 épocas, se guardan alrededor de 10 puntos de control con una distribución uniforme, con la 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 el ajuste. 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:

Haz clic para expandir los modelos compatibles

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

Crea un trabajo de ajuste que exporte puntos de control

Puedes crear un trabajo de ajuste que exporte puntos de control con el SDK de IA generativa de Google o la Google Cloud consola.

Console

Para crear un trabajo de ajuste que exporte puntos de control, ve a la página Agent Platform Studio y selecciona la pestaña Ajuste. Para obtener más información, consulta Ajusta un modelo.

SDK de IA generativa de Google

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

Instala el SDK de IA generativa de Google:

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Configura las variables de entorno para usar el SDK de IA generativa con Gemini Enterprise Agent Platform:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_ENTERPRISE=True

Crea el trabajo de ajuste:

import time

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

# 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-3.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 la Google Cloud consola o enumerarlos con el SDK de IA generativa de Google.

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

Console

  1. Para ubicar tu modelo ajustado en la Google Cloud consola, ve a la página Agent Platform Studio.

    Ir a Agent Platform 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 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 de época estimado al que pertenece el punto de control, excepto el punto de control final de un trabajo de ajuste completado, que tiene el número de época exacto.

SDK de IA generativa de Google

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'

Visualiza los detalles y los puntos de control del modelo

Puedes ver tu modelo ajustado en la Google Cloud consola 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 en función del punto de control predeterminado y representa el extremo que creó el trabajo de ajuste para el punto de control predeterminado actualizado durante el ajuste.
  • Si no hay un modelo o si el trabajo de ajuste no puede obtener un modelo, el valor Endpoint está 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 Endpoint está vacío.

Console

Puedes ver tu modelo ajustado en Model Registry de Gemini Enterprise Agent Platform en la página Endpoints de Predicción en línea.

  1. Ve a la página Model Registry desde la sección Agent Platform 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 implementa el modelo.

  5. Haz clic en el nombre del extremo para ir a la página Extremo y ver la lista de puntos de control que se implementan 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. El punto de control predeterminado se indica con la palabra default junto al ID del punto de control.

Como alternativa, los puntos de control también se pueden ver 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

SDK de IA generativa de Google

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 puntos de control en Model Registry de Gemini Enterprise Agent Platform y probar cada uno. 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 Google Cloud consola, ve a la página Agent Platform Studio.

    Ir a Agent Platform 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 Supervisar, junto al punto de control deseado, haz clic en el vínculo Probar.

SDK de IA generativa de Google

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

Se actualizará el extremo del trabajo de ajuste si actualizas un punto de control predeterminado, y puedes usar el extremo nuevo para la inferencia.

Console

  1. Para ubicar tu modelo ajustado en la Google Cloud consola, ve a la página Agent Platform Studio.

    Ir a Agent Platform 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 Supervisar, junto al punto de control deseado punto de control, 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 en la página de detalles de TuningJob se actualiza para mostrar el extremo del nuevo punto de control predeterminado.

SDK de IA generativa de Google

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?