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

レッスン 8: 実稼働用に Gemini を微調整する — 高度なテクニック

大型→小型モデルへの蒸留。ハイパーパラメータの最適化。統合された評価パイプライン。 A/B テスト。マルチタスクの微調整。コストの最適化。

🧠 AI と ML — レッスン 7 レッスン 8: 実稼働用に Gemini を微調整する — 高度なテクニック

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

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

xdev.asia

はじめに

一度の微調整はプロトタイプであり、実稼働用の微調整には 反復、評価、最適化 が必要です。


1. 蒸留:大型モデル → 小型モデル

# Step 1: Dùng Gemini Pro (lớn) để generate training data
# Step 2: Fine-tune Gemini Flash (nhỏ) trên data đó
# → Flash performs gần Pro nhưng rẻ hơn 10x

def distill_dataset(prompts, teacher_model="gemini-2.0-pro"):
    training_data = []
    for prompt in prompts:
        response = client.models.generate_content(
            model=teacher_model, contents=prompt
        )
        training_data.append({
            "messages": [
                {"role": "user", "content": prompt},
                {"role": "model", "content": response.text}
            ]
        })
    return training_data

2. ハイパーパラメータの最適化

パラムデフォルト増やす時期いつ削減するか
エポック3小規模なデータセット (<200)大規模なデータセット (>2000)
学習率1.0遅い学習モデルモデルは古い知識を「忘れる」

3. A/B テストのフレームワーク

import random

def ab_test(query, model_a, model_b, n_trials=100):
    results = {"a_wins": 0, "b_wins": 0, "tie": 0}
    for _ in range(n_trials):
        resp_a = call_model(model_a, query)
        resp_b = call_model(model_b, query)
        winner = llm_judge(query, resp_a, resp_b)
        results[winner] += 1
    return results

概要

  • 蒸留: 大→小さいモデルの知識を蒸留し、推論を 10 倍節約します
  • ハイパーパラメータ調整: エポック、学習率、バッチ サイズ
  • 本番環境に移行する前に A/B テストが必要
  • マルチタスクの微調整: 1 つのモデル、多くの機能

演習

  1. 蒸留を実行します: Gemini Pro → Gemini Flash
  2. 異なるエポックで 3 つの実験を実行し、結果を比較します。
  3. A/B テストのフレームワークを構築する
  4. コスト削減の計算: 蒸留モデルとオリジナルの Pro モデル