Utiliser des points de contrôle dans l'affinage supervisé pour les modèles Gemini

Un point de contrôle est un instantané de l'état d'un modèle à un moment précis du processus d'affinage. Vous pouvez utiliser des points de contrôle intermédiaires dans le réglage fin des modèles Gemini pour effectuer les opérations suivantes :

  • Enregistrez la progression du réglage.
  • Comparez les performances des points de contrôle intermédiaires.
  • Sélectionnez le point de contrôle le plus performant avant le surapprentissage pour qu'il devienne le point de contrôle par défaut.

Pour les jobs de réglage avec moins de 10 époques, un point de contrôle est enregistré environ après chaque époque. Pour les jobs de réglage comportant plus de 10 époques, une dizaine de points de contrôle sont enregistrés de manière uniforme, à l'exception du point de contrôle final, qui est enregistré immédiatement après l'entraînement de toutes les époques.

Les points de contrôle intermédiaires sont déployés sur de nouveaux points de terminaison de manière séquentielle à mesure que le réglage progresse. Le point de terminaison du modèle réglé représente le point de terminaison du point de contrôle par défaut, et les points de contrôle du modèle réglé incluent tous les points de contrôle et leurs points de terminaison correspondants.

Modèles compatibles

Les modèles Gemini suivants sont compatibles avec les points de contrôle :

  • gemini-2.0-flash-001
  • gemini-2.0-flash-lite-001
  • gemini-2.5-flash
  • gemini-2.5-flash-lite
  • gemini-2.5-pro

Pour en savoir plus sur les versions des modèles Gemini, consultez Modèles Google et Versions et cycle de vie des modèles.

Créer un job de réglage qui exporte des points de contrôle

Vous pouvez créer un job de réglage supervisé qui exporte des points de contrôle à l'aide du SDK Google Gen AI ou de la console Google Cloud .

Console

Pour créer un job de réglage qui exporte des points de contrôle, accédez à la page Vertex AI Studio et sélectionnez l'onglet Réglage. Pour en savoir plus, consultez Régler un modèle.

SDK Google Gen AI

(Aperçu) Vous pouvez configurer le service d'évaluation Gen AI pour qu'il exécute automatiquement des évaluations après chaque point de contrôle. Cette configuration d'évaluation est disponible dans la région 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 {response}"""
        )
    ],
    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'

Lister les points de contrôle d'un job de réglage

Vous pouvez afficher les points de contrôle de votre job de réglage terminé dans la consoleGoogle Cloud ou les lister à l'aide du SDK Google Gen AI.

Si les points de contrôle intermédiaires sont désactivés, seul le point de contrôle final est affiché ou renvoyé.

Console

  1. Pour trouver votre modèle réglé dans la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Dans l'onglet Réglages, recherchez votre modèle et cliquez sur Surveiller.

    Les métriques de réglage et les points de contrôle de votre modèle s'affichent. Dans chaque graphique de métriques, les numéros de points de contrôle sont affichés sous forme d'annotations comme suit :

    • Pour chaque époque, vous voyez un numéro d'étape et un numéro d'époque.
    • Le numéro de l'étape correspond à l'étape exacte à laquelle un point de contrôle est enregistré.
    • Le numéro d'époque est une estimation de l'époque à laquelle appartient le point de contrôle, à l'exception du point de contrôle final d'un job de réglage terminé, qui comporte le numéro d'époque exact.

SDK 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'

Afficher les détails et les points de contrôle du modèle

Vous pouvez afficher votre modèle réglé dans la console Google Cloud ou utiliser le SDK Google Gen AI pour obtenir des informations sur le modèle, y compris les points de terminaison et les points de contrôle.

Le champ Endpoint du modèle est mis à jour comme suit :

  • Il est mis à jour en fonction du point de contrôle par défaut et représente le point de terminaison que la tâche de réglage a créé pour le point de contrôle par défaut mis à jour lors du réglage.
  • Si aucun modèle n'est présent ou si la tâche d'optimisation ne parvient pas à obtenir de modèle, la valeur Endpoint est vide.
  • Si le point de contrôle par défaut n'est pas déployé (parce que l'ajustement est toujours en cours ou parce que le déploiement a échoué), la valeur Endpoint est vide.

Console

Vous pouvez afficher votre modèle réglé dans Vertex AI Model Registry sur la page Points de terminaison de la section "Prédiction en ligne".

  1. Accédez à la page Model Registry depuis la section Vertex AI de la console Google Cloud .

    Accéder à la page "Registre de modèles"

  2. Cliquez sur le nom de votre modèle.

    La version par défaut de votre modèle s'affiche.

  3. Cliquez sur l'onglet Détails de la version pour afficher des informations sur la version de votre modèle.

    Notez que l'objectif est Large model, le type de modèle est Foundation et la source est Vertex AI Studio tuning.

  4. Cliquez sur l'onglet Déployer et tester pour afficher le point de terminaison sur lequel le modèle est déployé.

  5. Cliquez sur le nom du point de terminaison pour accéder à la page Point de terminaison et afficher la liste des points de contrôle déployés sur le point de terminaison. Pour chaque point de contrôle, l'ID de version du modèle et l'ID du point de contrôle sont affichés.

Vous pouvez également afficher les points de contrôle sur la page Détails de la tâche d'optimisation. Pour afficher cette page, accédez à la page Réglage et cliquez sur l'un des jobs de réglage.

Accéder à la page "Paramètres"

SDK 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 vous avez configuré le service d'évaluation de l'IA générative pour qu'il exécute des évaluations après chaque point de contrôle, consultez le bucket Cloud Storage que vous avez configuré pour les résultats des évaluations.

Tester les points de contrôle

Vous pouvez afficher la liste des points de contrôle dans Vertex AI Model Registry et tester chacun d'eux. Vous pouvez également utiliser le SDK Google Gen AI pour lister et tester vos points de contrôle.

Console

  1. Pour trouver votre modèle réglé dans la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Dans l'onglet Réglages, recherchez votre modèle et cliquez sur Surveiller.

  3. Dans le tableau des points de contrôle du volet Surveiller, cliquez sur le lien Tester à côté du point de contrôle souhaité.

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

Sélectionner un nouveau point de contrôle par défaut

Vous pouvez utiliser le point de contrôle par défaut pour représenter le point de contrôle le plus performant. Par défaut, le point de contrôle par défaut est le point de contrôle final d'une tâche de réglage.

Lorsque vous déployez un modèle avec des points de contrôle, le point de contrôle par défaut est déployé.

Lorsque vous copiez un modèle avec des points de contrôle, le modèle de destination possède le même ID de point de contrôle par défaut que le modèle source. Tous les points de contrôle sont copiés. Vous pouvez donc sélectionner un nouveau point de contrôle par défaut pour le modèle de destination.

Le point de terminaison du job de réglage sera mis à jour si vous modifiez un point de contrôle par défaut. Vous pourrez alors utiliser le nouveau point de terminaison pour la prédiction.

Console

  1. Pour trouver votre modèle réglé dans la console Google Cloud , accédez à la page Vertex AI Studio.

    Accéder à Vertex AI Studio

  2. Dans l'onglet Réglages, recherchez votre modèle et cliquez sur Surveiller.

  3. Dans le tableau des points de contrôle du volet Surveiller, à côté du point de contrôle souhaité, cliquez sur Actions, puis sélectionnez Définir par défaut.

  4. Cliquez sur Confirmer.

    Les graphiques de métriques et le tableau des points de contrôle sont mis à jour pour afficher le nouveau point de contrôle par défaut. Le point de terminaison sur la page "Détails de TuningJob" est mis à jour pour afficher le point de terminaison du nouveau point de contrôle par défaut.

SDK 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

Étapes suivantes