簡介
這是最重要的課程 - 您將在 Vertex AI 上從頭到尾微調 Gemini 模型。
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 \"\"\"對兩個數字求和。\"\"\"\n 回傳 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 本身,您只需要數據
- 比較基礎與微調 → 衡量改進
- 迭代:調整數據,如果未達到則重新訓練
練習
- 使用超過 100 個範例針對您選擇的用例微調 Gemini Flash
- 比較輸出:基本模型與微調模型(10 個測試案例) 3.嘗試改變時期(2 vs 3 vs 5)→衡量改進 4.計算本次微調的實際成本