Use pontos de verificação na otimização detalhada supervisionada para modelos Gemini

Um ponto de verificação é um resumo do estado de um modelo num ponto específico do processo de ajuste fino. Pode usar pontos de verificação intermédios no ajuste fino do modelo Gemini para fazer o seguinte:

  • Guardar o progresso da otimização.
  • Compare o desempenho dos pontos de verificação intermédios.
  • Selecione o posto de controlo com melhor desempenho antes de ajustar em excesso para que seja o posto de controlo predefinido.

Para tarefas de otimização com menos de 10 épocas, é guardado um ponto de verificação aproximadamente após cada época. Para tarefas de otimização com mais de 10 épocas, são guardados cerca de 10 pontos de verificação com uma distribuição uniforme, com exceção do ponto de verificação final, que é guardado imediatamente após a formação de todas as épocas.

Os pontos de verificação intermédios são implementados em novos pontos finais sequencialmente à medida que a otimização progride. O ponto final do modelo otimizado representa o ponto final do ponto de verificação predefinido, e os pontos de verificação do modelo otimizado incluem todos os pontos de verificação e os respetivos pontos finais.

Modelos suportados

Os seguintes modelos Gemini suportam pontos de verificação:

Para obter informações detalhadas sobre as versões do modelo Gemini, consulte os artigos Modelos Google e Versões e ciclo de vida dos modelos.

Crie uma tarefa de ajuste que exporte pontos de verificação

Pode criar uma tarefa de ajuste fino supervisionado que exporte pontos de verificação através do SDK de IA gen da Google ou da Google Cloud consola.

Consola

Para criar uma tarefa de ajuste que exporte pontos de verificação, aceda à página do Vertex AI Studio e selecione o separador Ajuste. Para mais informações, consulte o artigo Ajuste um modelo.

SDK Google Gen AI

(Pré-visualização) Pode configurar o serviço de avaliação de IA gen para executar avaliações automaticamente após cada ponto de verificação. Esta configuração de avaliação está disponível na região 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'

Liste os pontos de restauro de uma tarefa de ajuste

Pode ver os pontos de verificação da tarefa de otimização concluída na Google Cloud consola ou listá-los através do SDK de IA gen da Google.

Se os pontos de verificação intermédios estiverem desativados, apenas é apresentado ou devolvido o ponto de verificação final.

Consola

  1. Para localizar o seu modelo otimizado na Google Cloud consola, aceda à página do Vertex AI Studio.

    Aceda ao Vertex AI Studio

  2. No separador Ajuste, encontre o seu modelo e clique em Monitorizar.

    São apresentadas as métricas de otimização e os pontos de verificação do seu modelo. Em cada gráfico de métricas, os números dos pontos de verificação são apresentados como anotações da seguinte forma:

    • Para cada época, vê um número de passos e um número de épocas.
    • O número do passo é o passo exato quando um ponto de verificação é guardado.
    • O número de épocas é um número de épocas estimado a que o ponto de verificação pertence, exceto no caso do ponto de verificação final de uma tarefa de ajuste concluída, que tem o número de épocas exato.

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'

Veja detalhes e pontos de verificação do modelo

Pode ver o seu modelo otimizado na Google Cloud consola ou usar o SDK de IA gen da Google para obter detalhes do modelo, incluindo pontos finais e pontos de verificação.

O campo Endpoint do modelo é atualizado da seguinte forma:

  • É atualizado com base no controlo de segurança predefinido e representa o ponto final que a tarefa de otimização criou para o controlo de segurança predefinido atualizado durante a otimização.
  • Se não estiver presente um modelo ou se a tarefa de otimização não conseguir obter um modelo, o valor de Endpoint está vazio.
  • Se o ponto de verificação predefinido não estiver implementado (porque o ajuste ainda está em curso ou porque a implementação falhou), o valor Endpoint está vazio.

Consola

Pode ver o modelo otimizado no Registo de modelos do Vertex AI na página Pontos finais de previsão online.

  1. Aceda à página Registo de modelos na secção Vertex AI da Google Cloud consola.

    Aceda à página Registo de modelos

  2. Clique no nome do modelo.

    É apresentada a versão predefinida do modelo.

  3. Clique no separador Detalhes da versão para ver informações sobre a versão do modelo.

    Tenha em atenção que o Objetivo é Large model, o Tipo de modelo é Foundation e a Origem é Vertex AI Studio tuning.

  4. Clique no separador Implementar e testar para ver o ponto final onde o modelo está implementado.

  5. Clique no nome do ponto final para aceder à página Ponto final e ver a lista de pontos de verificação implementados no ponto final. Para cada ponto de verificação, são apresentados o ID da versão do modelo e o ID do ponto de verificação.

Em alternativa, os pontos de verificação também podem ser vistos na página Detalhes da tarefa de ajuste. Para ver esta página, aceda à página Ajuste e clique num dos trabalhos de ajuste.

Aceda à página Ajuste

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

Se configurou o serviço de avaliação de IA gen para executar avaliações após cada ponto de verificação, consulte o contentor do Cloud Storage que configurou para os resultados da avaliação.

Teste os controlos de segurança

Pode ver uma lista de pontos de verificação no Registo de modelos do Vertex AI e testar cada um deles. Em alternativa, pode usar o SDK de IA gen da Google para listar e testar os seus pontos de verificação.

Consola

  1. Para localizar o seu modelo otimizado na Google Cloud consola, aceda à página do Vertex AI Studio.

    Aceda ao Vertex AI Studio

  2. No separador Ajuste, encontre o seu modelo e clique em Monitorizar.

  3. Na tabela de pontos de verificação no painel Monitorizar, junto ao ponto de verificação desejado, clique no link Testar.

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

Selecione um novo ponto de verificação predefinido

Pode usar o ponto de verificação predefinido para representar o ponto de verificação com melhor desempenho. Por predefinição, o ponto de verificação predefinido é o ponto de verificação final de uma tarefa de otimização.

Quando implementa um modelo com pontos de verificação, é implementado o ponto de verificação predefinido.

Quando copia um modelo com pontos de verificação, o modelo de destino tem o mesmo ID do ponto de verificação predefinido que o modelo de origem. Todos os pontos de verificação são copiados, para que possa selecionar um novo ponto de verificação predefinido para o modelo de destino.

O ponto final da tarefa de otimização é atualizado se atualizar um ponto de verificação predefinido e pode usar o novo ponto final para a previsão.

Consola

  1. Para localizar o seu modelo otimizado na Google Cloud consola, aceda à página do Vertex AI Studio.

    Aceda ao Vertex AI Studio

  2. No separador Ajuste, encontre o seu modelo e clique em Monitorizar.

  3. Na tabela de pontos de verificação no painel Monitorizar, junto ao ponto de verificação pretendido, clique em Ações e selecione Predefinir.

  4. Clique em Confirm.

    Os gráficos de métricas e a tabela de pontos de verificação são atualizados para mostrar o novo ponto de verificação predefinido. O ponto final na página de detalhes do TuningJob é atualizado para mostrar o ponto final do novo controlo de segurança predefinido.

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

O que se segue?