Gemini モデルで継続的チューニングを使用する

継続的なチューニングでは、エポックやトレーニング例を追加して、チューニング済みのモデルまたはモデル チェックポイントのチューニングを継続できます。すでにチューニングされたモデルまたはチェックポイントをベースモデルとして使用すると、チューニング テストをより効率的に行えます。

継続的なチューニングは、次の目的で使用できます。

  • 既存のチューニング済みモデルが過小適合している場合に、より多くのデータでチューニングするため。
  • パフォーマンスを向上させる、または新しいデータでモデルを最新の状態に保つため。
  • 既存のチューニング済みモデルをさらにカスタマイズするため。

継続的なチューニングは、次の Gemini モデルでサポートされています。

Gemini モデル バージョンの詳細については、Google モデルモデルのバージョンとライフサイクルをご覧ください。

継続的なチューニングを構成する

継続的なチューニング ジョブを作成する際は、次の点に注意してください。

  • 継続的なチューニングは Google Gen AI SDK でサポートされています。Vertex AI SDK for Python ではサポートされていません。
  • モデルリソース名を指定する必要があります。

    • Google Cloud コンソールでは、モデルリソース名は [Vertex AI チューニング] ページの [チューニングの詳細] > [モデル名] フィールドに表示されます。
    • モデルリソース名には次の形式を使用します。
    projects/{project}/locations/{location}/models/{modelId}@{version_id}
    
    • {version_id} は省略可能で、生成されたバージョン ID またはユーザーが指定したバージョン エイリアスのいずれかになります。省略すると、デフォルトのバージョンが使用されます。
  • モデルのバージョンを指定しない場合は、デフォルトのバージョンが使用されます。

  • チェックポイントをベースモデルとして使用し、チェックポイント ID を指定しない場合は、デフォルトのチェックポイントが使用されます。詳細については、Gemini モデルの教師ありファインチューニングでチェックポイントを使用するをご覧ください。 Google Cloud コンソールで、デフォルトのチェックポイントは次のように確認できます。

    1. [Model Registry] ページに移動します。
    2. モデルの [モデル名] をクリックします。
    3. [すべてのバージョンを表示] をクリックします。
    4. 目的のバージョンをクリックして、チェックポイントのリストを表示します。デフォルトのチェックポイントは、チェックポイント ID の横に default という単語で示されます。
  • デフォルトでは、新しいモデル バージョンは、事前チューニング済みモデルと同じ親モデルの下に作成されます。新しいチューニング済みモデルの表示名を指定すると、新しいモデルが作成されます。

  • 継続的なチューニングのベースモデルとして使用できるのは、2025 年 7 月 11 日以降にチューニングされた教師ありチューニング ベースモデルのみです。

  • 顧客管理の暗号鍵(CMEK)を使用している場合、継続的なチューニング ジョブでは、事前チューニングされたモデルのチューニング ジョブで使用されたものと同じ CMEK を使用する必要があります。

コンソール

Google Cloud コンソールを使用して事前チューニング済みモデルの継続的なチューニングを構成する手順は次のとおりです。

  1. Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。

    Vertex AI Studio に移動

  2. [チューニング済みモデルを作成] をクリックします。

  3. [モデルの詳細] で、次のように構成します。

    1. [事前チューニング済みモデルをチューニングする] を選択します。
    2. [事前チューニング済みモデル] フィールドで、事前チューニング済みモデルの名前を選択します。
    3. モデルに 1 つ以上のチェックポイントがある場合は、[チェックポイント] プルダウン フィールドが表示されます。目的のチェックポイントを選択します。
  4. [続行] をクリックします。

Google Gen AI SDK

次の例では、Google Gen AI SDK を使用して継続的なチューニングを構成する方法を示します。

import time

from google import genai
from google.genai.types import HttpOptions, TuningDataset, CreateTuningJobConfig

# TODO(developer): Update and un-comment below line
# tuned_model_name = "projects/123456789012/locations/us-central1/models/1234567890@1"
# checkpoint_id = "1"

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",
)

tuning_job = client.tunings.tune(
    base_model=tuned_model_name,  # Note: Using a Tuned Model
    training_dataset=training_dataset,
    config=CreateTuningJobConfig(
        tuned_model_display_name="Example tuning job",
        validation_dataset=validation_dataset,
        pre_tuned_model_checkpoint_id=checkpoint_id,
    ),
)

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@2
# 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'