Menggunakan titik pemeriksaan dalam penyesuaian model Gemini

Checkpoint adalah snapshot status model pada titik tertentu dalam proses penyesuaian. Anda dapat menggunakan checkpoint perantara dalam penyesuaian model Gemini untuk melakukan hal berikut:

  • Menyimpan progres penyesuaian.
  • Membandingkan performa checkpoint perantara.
  • Memilih checkpoint dengan performa terbaik sebelum overfitting menjadi checkpoint default.

Untuk tugas penyesuaian dengan kurang dari 10 epoch, satu checkpoint akan disimpan kira-kira setelah setiap epoch. Untuk tugas penyesuaian dengan lebih dari 10 epoch, sekitar 10 checkpoint akan disimpan dengan distribusi yang merata, kecuali checkpoint akhir, yang disimpan segera setelah semua epoch dilatih.

Checkpoint perantara di-deploy ke endpoint baru secara berurutan saat penyesuaian berlangsung. Endpoint model yang disesuaikan mewakili endpoint checkpoint default, dan checkpoint model yang disesuaikan mencakup semua checkpoint dan endpoint yang sesuai.

Model yang didukung

Model Gemini berikut mendukung checkpoint:

Untuk mengetahui informasi mendetail tentang versi model Gemini, lihat Model Google serta Versi dan siklus proses model.

Membuat tugas penyesuaian yang mengekspor checkpoint

Anda dapat membuat tugas penyesuaian yang mengekspor checkpoint menggunakan Google Gen AI SDK atau Google Cloud konsol.

Konsol

Untuk membuat tugas penyesuaian yang mengekspor checkpoint, buka halaman Vertex AI Studio dan pilih tab Penyesuaian. Untuk mengetahui informasi selengkapnya, lihat Menyesuaikan model.

Google Gen AI SDK

(Pratinjau) Anda dapat mengonfigurasi layanan evaluasi AI Generatif untuk menjalankan evaluasi secara otomatis setelah setiap checkpoint. Konfigurasi evaluasi ini tersedia di region us-central1.

Instal Google Gen AI SDK:

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:

# 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_VERTEXAI=True

Buat tugas penyesuaian:

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'

Mencantumkan checkpoint untuk tugas penyesuaian

Anda dapat melihat checkpoint untuk tugas penyesuaian yang telah selesai di Google Cloud konsol atau mencantumkannya menggunakan Google Gen AI SDK.

Jika checkpoint perantara dinonaktifkan, hanya checkpoint akhir yang akan ditampilkan atau ditampilkan.

Konsol

  1. Untuk menemukan model yang disesuaikan di Google Cloud konsol, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di tab Penyesuaian , temukan model Anda, lalu klik Pantau.

    Metrik penyesuaian dan checkpoint model Anda akan ditampilkan. Di setiap grafik metrik, nomor checkpoint ditampilkan sebagai anotasi sebagai berikut:

    • Untuk setiap epoch, Anda akan melihat nomor langkah dan nomor epoch.
    • Nomor langkah adalah langkah yang tepat saat checkpoint disimpan.
    • Nomor epoch adalah perkiraan nomor epoch yang dimiliki checkpoint, kecuali checkpoint akhir untuk tugas penyesuaian yang telah selesai, yang memiliki nomor epoch yang tepat.

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'

Melihat detail dan checkpoint model

Anda dapat melihat model yang disesuaikan di Google Cloud konsol atau menggunakan Google Gen AI SDK untuk mendapatkan detail model, termasuk endpoint dan checkpoint.

Kolom Endpoint model diperbarui sebagai berikut:

  • Kolom ini diperbarui berdasarkan checkpoint default, dan mewakili endpoint yang dibuat tugas penyesuaian untuk checkpoint default yang diperbarui selama penyesuaian.
  • Jika model tidak ada, atau jika tugas penyesuaian gagal mendapatkan model, nilai Endpoint akan kosong.
  • Jika checkpoint default tidak di-deploy (karena penyesuaian masih berlangsung atau karena deployment gagal), nilai Endpoint akan kosong.

Konsol

Anda dapat melihat model yang disesuaikan di Vertex AI Model Registry di halaman Endpoint prediksi Online.

  1. Buka halaman Model Registry dari bagian Vertex AI di Google Cloud konsol.

    Buka halaman Model Registry

  2. Klik nama model Anda.

    Versi default model Anda akan muncul.

  3. Klik tab Detail versi untuk melihat informasi tentang versi model Anda.

    Perhatikan bahwa Tujuan adalah Large model, Jenis model adalah Foundation, dan Sumber adalah Vertex AI Studio tuning.

  4. Klik tab Deploy &test untuk melihat endpoint tempat model di-deploy.

  5. Klik nama endpoint untuk membuka halaman Endpoint guna melihat daftar checkpoint yang di-deploy ke endpoint. Untuk setiap checkpoint, ID versi model dan ID checkpoint akan ditampilkan. Checkpoint default ditunjukkan dengan kata default di samping ID checkpoint.

Atau, checkpoint juga dapat dilihat di halaman Detail Tugas Penyesuaian. Untuk melihat halaman ini, buka halaman Penyesuaian dan klik salah satu tugas penyesuaian.

Buka halaman Penyesuaian

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

Jika Anda mengonfigurasi layanan evaluasi AI Generatif untuk menjalankan evaluasi setelah setiap checkpoint, lihat bucket Cloud Storage yang Anda konfigurasi untuk hasil evaluasi.

Menguji checkpoint

Anda dapat melihat daftar checkpoint di Vertex AI Model Registry dan menguji setiap checkpoint. Atau, Anda dapat menggunakan Google Gen AI SDK untuk mencantumkan dan menguji checkpoint.

Konsol

  1. Untuk menemukan model yang disesuaikan di Google Cloud konsol, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di tab Penyesuaian , temukan model Anda, lalu klik Pantau.

  3. Di tabel checkpoint di panel Pantau, di samping checkpoint yang diinginkan, klik link Uji.

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

Memilih checkpoint default baru

Anda dapat menggunakan checkpoint default untuk mewakili checkpoint dengan performa terbaik. Secara default, checkpoint default adalah checkpoint akhir dari tugas penyesuaian.

Saat men-deploy model dengan checkpoint, checkpoint default akan di-deploy.

Saat menyalin model dengan checkpoint, model tujuan akan memiliki ID checkpoint default yang sama dengan model sumber. Semua checkpoint akan disalin, sehingga Anda dapat memilih checkpoint default baru untuk model tujuan.

Endpoint tugas penyesuaian akan diperbarui jika Anda memperbarui checkpoint default, dan Anda dapat menggunakan endpoint baru untuk inferensi.

Konsol

  1. Untuk menemukan model yang disesuaikan di Google Cloud konsol, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di tab Penyesuaian , temukan model Anda, lalu klik Pantau.

  3. Di tabel checkpoint di panel Pantau , di samping checkpoint yang diinginkan , klik Tindakan , lalu pilih Tetapkan sebagai default.

  4. Klik Konfirmasi.

    Grafik metrik dan tabel checkpoint diperbarui untuk menampilkan checkpoint default baru. Endpoint di halaman detail TuningJob diperbarui untuk menampilkan Endpoint checkpoint default baru.

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

Langkah berikutnya