Menggunakan checkpoint dalam penyesuaian yang diawasi untuk model Gemini

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

  • Simpan progres penyesuaian.
  • Bandingkan performa pos pemeriksaan menengah.
  • Pilih titik pemeriksaan dengan performa terbaik sebelum overfitting menjadi titik pemeriksaan default.

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

Checkpoint perantara di-deploy ke endpoint baru secara berurutan seiring dengan kemajuan penyesuaian. Endpoint model yang disesuaikan merepresentasikan endpoint checkpoint default, dan checkpoint model yang disesuaikan mencakup semua checkpoint dan endpoint yang sesuai.

Model yang didukung

Model Gemini berikut mendukung titik pemeriksaan:

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

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

Membuat tugas penyesuaian yang mengekspor checkpoint

Anda dapat membuat tugas penyesuaian terperinci yang diawasi yang mengekspor titik pemeriksaan menggunakan Google Gen AI SDK atau Google Cloud konsol.

Konsol

Untuk membuat tugas penyesuaian yang mengekspor checkpoint, buka halaman Vertex AI Studio, lalu pilih tab Tuning. 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 titik pemeriksaan. Konfigurasi evaluasi ini tersedia di wilayah 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'

Mencantumkan checkpoint untuk tugas penyesuaian

Anda dapat melihat titik pemeriksaan untuk tugas penyesuaian yang telah selesai di konsolGoogle Cloud atau mencantumkannya menggunakan Google Gen AI SDK.

Jika titik pemeriksaan perantara dinonaktifkan, hanya titik pemeriksaan akhir yang ditampilkan atau ditampilkan.

Konsol

  1. Untuk menemukan model yang disesuaikan di konsol Google Cloud , 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. Dalam setiap grafik metrik, nomor titik pemeriksaan ditampilkan sebagai anotasi sebagai berikut:

    • Untuk setiap epoch, Anda akan melihat nomor langkah dan nomor epoch.
    • Nomor langkah adalah langkah persis saat titik pemeriksaan disimpan.
    • Nomor epoch adalah perkiraan nomor epoch tempat checkpoint berada, kecuali untuk checkpoint akhir tugas penyetelan 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 titik pemeriksaan model

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

Kolom Endpoint model diperbarui sebagai berikut:

  • Nilai ini diperbarui berdasarkan checkpoint default, dan merepresentasikan 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 titik pemeriksaan 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 Endpoints prediksi online.

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

    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 titik pemeriksaan, ID versi model dan ID titik pemeriksaan akan ditampilkan.

Atau, titik pemeriksaan juga dapat dilihat di halaman Tuning Job Details. Untuk melihat halaman ini, buka halaman Penyetelan dan klik salah satu tugas penyetelan.

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 titik pemeriksaan, lihat bucket Cloud Storage yang Anda konfigurasi untuk hasil evaluasi.

Menguji titik pemeriksaan

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

Konsol

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

    Buka Vertex AI Studio

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

  3. Di tabel titik pemeriksaan di panel Monitor, di samping titik pemeriksaan 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 ...

Pilih titik pemeriksaan default baru

Anda dapat menggunakan checkpoint default untuk merepresentasikan checkpoint berperforma terbaik. Secara default, checkpoint default adalah checkpoint akhir tugas penyesuaian.

Saat men-deploy model dengan titik pemeriksaan, titik pemeriksaan default akan di-deploy.

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

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

Konsol

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

    Buka Vertex AI Studio

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

  3. Di tabel titik pemeriksaan di panel Monitor, di samping titik pemeriksaan yang diinginkan, klik Tindakan, lalu pilih Tetapkan sebagai default.

  4. Klik Konfirmasi.

    Grafik metrik dan tabel titik pemeriksaan diperbarui untuk menampilkan titik pemeriksaan default baru. Endpoint di halaman detail TuningJob diperbarui untuk menampilkan Endpoint dari titik pemeriksaan 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