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:

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

Para los trabajos de ajuste con menos de 10 ciclos de entrenamiento, se guarda un punto de control aproximadamente después de cada ciclo. En el caso de los trabajos de ajuste con más de 10 ciclos de entrenamiento, 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 todos los ciclos de entrenamiento.

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 de los modelos de Gemini, consulta Modelos de Google y Versiones y ciclo de vida de los modelos.

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 de Google o la consola de Cloud de Confiance .

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.

Establece variables de entorno para usar el SDK de IA generativa de Google 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 consola deCloud de Confiance o enumerarlos con el SDK de IA generativa de Google.

Si se inhabilitan los puntos de control intermedios, solo se muestra o se devuelve el punto de control final.

Console

  1. Para ubicar tu modelo ajustado en la consola de Cloud de Confiance , ve a la página Ajuste.

    Ir a Ajuste

  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 punto de control se muestran como anotaciones de la siguiente manera:

    • Para cada ciclo, verás un número de paso y un número de ciclo.
    • El número de paso es el paso exacto en el que se guarda un punto de control.
    • El número de ciclo de entrenamiento es un número 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 ciclo de entrenamiento 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 el modelo ajustado en la consola de Cloud de Confiance 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 creó el trabajo de ajuste para el punto de control predeterminado actualizado durante el ajuste.
  • Si no hay un modelo presente o si el trabajo de ajuste no puede obtener un modelo, 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 la implementación falló), el valor Endpoint está vacío.

Console

Puedes ver tu modelo ajustado en el registro de modelos de Gemini Enterprise Agent Platform en la página Extremos de predicción en línea.

  1. Ve a la página Model Registry desde la sección Agent Platform en la consola de Cloud de Confiance .

    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 implementaron 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 el 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 consola de Cloud de Confiance , ve a la página Ajuste.

    Ir a Ajuste

  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 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 copias 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 puedes usar el extremo nuevo para la inferencia.

Console

  1. Para ubicar tu modelo ajustado en la consola de Cloud de Confiance , ve a la página Ajuste.

    Ir a Ajuste

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