Chuyển đến nội dung chính

レッスン 7: Gemini Flash の微調整 — 教師付きチューニングのステップバイステップ

Vertex AI で Gemini 2.0 Flash を実際に微調整します。データセットを GCS にアップロードします。チューニングジョブを設定します。トレーニングをモニターします。エンドポイントをデプロイします。テストモデル。

🧠 AI と ML — レッスン 6 レッスン 7: Gemini Flash の微調整 — 監視あり 段階的なチューニング

LLM の微調整: AI チューニングの技術

パート 3: Google Gemini / Vertex AI での微調整

xdev.asia

はじめに

これは最も重要なレッスンです。Vertex AI で Gemini モデルを A から Z まで微調整します。


1. データセットの準備

import json

# Dataset format cho Gemini
training_examples = [
    {
        "messages": [
            {"role": "user", "content": "Phân tích code này và đề xuất cải thiện:\n```Python\ndef calc(x,y): x+y を返します```"},
            {"role": "model", "content": "## Code Review\n\n### Vấn đề:\n1. Tên hàm `calc` không rõ ràng\n2. Thiếu type hints\n3. Thiếu docstring\n\n### Đề xuất:\n```python\ndef add_numbers(x: float, y: float) -> float:\n \"\"\"2 つの数値を合計します。\"\"\"\n return x + y\n```"}
        ]
    },
    # ... 100+ examples
]

# Save as JSONL
with open("gemini_training.jsonl", "w") as f:
    for ex in training_examples:
        f.write(json.dumps(ex, ensure_ascii=False) + "\n")

2. チューニング ジョブのアップロードと起動

from google.cloud import aiplatform

aiplatform.init(project="my-project", location="us-central1")

# Launch supervised tuning
tuning_job = aiplatform.SupervisedTuningJob(
    source_model="gemini-2.0-flash",
    train_dataset="gs://my-bucket/gemini_training.jsonl",
    validation_dataset="gs://my-bucket/gemini_validation.jsonl",
    tuned_model_display_name="code-reviewer-v1",
    epochs=3,
    learning_rate_multiplier=1.0,
)

tuning_job.run()
print(f"Tuned model: {tuning_job.tuned_model_endpoint_name}")

3. 微調整されたモデルと基本モデルのテスト

from google import genai

client = genai.Client()

# Base model
base_response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents="Review this code: def f(x): return x*2"
)

# Fine-tuned model
ft_response = client.models.generate_content(
    model=tuning_job.tuned_model_name,
    contents="Review this code: def f(x): return x*2"
)

print("=== BASE ===")
print(base_response.text)
print("\n=== FINE-TUNED ===")
print(ft_response.text)

概要

  • Gemini の微調整 = JSONL のアップロード → ジョブの起動 → 待機 → テスト
  • Vertex AI が GPU 自体を管理するため、必要なのはデータのみです
  • 基本と微調整を比較 → 改善を測定
  • 反復: データを調整し、達成できなかった場合は再トレーニングします

演習

  1. 選択したユースケースに合わせて 100 以上の例を使用して Gemini Flash を微調整します
  2. 出力の比較: 基本モデルと微調整済みモデル (10 のテスト ケース)
  3. エポックを変更してみる (2 vs 3 vs 5) → 改善を測定する
  4. この微調整にかかる実際のコストを計算します。