AIインフォグラフィックス集

AI Infographics Collection

転移学習ロードマップ

転移学習ロードマップ

3ステージでマスターする『学習済みモデルの賢い使い方』
📅 2025-04-28

🔍 なぜ転移学習か?

フルスクラッチ 転移学習
学習データ 数十万〜数千万 100〜数千で OK 👍
学習時間 数時間〜数週間 数分〜数時間 ⏱️
GPU コスト $$$ $ 💰
精度 データが多ければ最強 小データでも高精度 📈
エッセンス:大規模データで得た"基礎知識"を 再利用 し、少データのタスクへ "引き継ぐ"

🗺️ ロードマップ全体像

Stage 0
特徴量抽出
(Feature Extract)
Stage 1
フルファインチューン
(Full Fine-tune)
Stage 2
軽量微調整
(LoRA / QLoRA)
Stage 3
Few-shot
Prompting

• Stage 0: 重みを凍結し「特徴量抽出器」として使う

• Stage 1: 全層を再学習=フルファインチューニング

• Stage 2: アダプタ層のみ学習=軽量ファインチューニング

• Stage 3: 重みを一切触らず、プロンプトや数個の例で性能を引き出す

0️⃣ Stage 0 — 特徴量抽出(全凍結)

使いどころ 🎯
  • データがごく少量(<1k)
  • モデルを"下流モデル"の前処理に使いたい
実装例(画像分類 × PyTorch) 💻
from torchvision import models backbone = models.efficientnet_b0(weights="IMAGENET1K_V1") backbone.classifier[1].requires_grad_(False) # 全層凍結 # 特徴量 1280-d → 自前分類器 import torch.nn as nn model = nn.Sequential( backbone, nn.Linear(1000, 128), nn.ReLU(), nn.Linear(128, 5) # クラス数 )

• メリット:学習パラメータが最後の層のみ → 過学習しにくい

• デメリット:データが増えても"基礎特徴"を更新できない

1️⃣ Stage 1 — フルファインチューニング

使いどころ 🎯
  • データ 5k〜数万
  • ハード要件:GPU RAM ≧ 24 GB(Vision) / 48 GB(LLM)
実装例(NLP × Hugging Face) 💻
from transformers import AutoModelForSequenceClassification, Trainer model = AutoModelForSequenceClassification.from_pretrained( "microsoft/deberta-v3-base", num_labels=3 ) trainer = Trainer( model=model, train_dataset=train_ds, eval_dataset=val_ds ) trainer.train()

• テクニック:学習率を 1e-5〜2e-5、Layer-wise LR Decay を使うと安定

• 注意:Catastrophic Forgetting(元知識の喪失)を避けるため小 LR & Early Stop

2️⃣ Stage 2 — 軽量ファインチューニング

メソッド 仕組み メモリ削減
LoRA 重みに ΔW = ABᵀ を追加(低ランク行列のみ学習) ↓ 10–30×
QLoRA 4bit 量子化 + LoRA ↓ 20–40×
IA³, Adapter 各層に 1D ゲインを学習 ↓ 15×
実装例(QLoRA × 8 GB GPU) 💻
from peft import LoraConfig, get_peft_model base = "meta-llama3-8b" model = AutoModelForCausalLM.from_pretrained( base, load_in_4bit=True ) lora_cfg = LoraConfig( task_type="CAUSAL_LM", r=8, lora_alpha=32, target_modules=["q_proj","v_proj"] ) model = get_peft_model(model, lora_cfg) model.train() # 数時間で完了

3️⃣ Stage 3 — Few-shot / Prompt Tuning

パターン 🔄
  1. Few-shot Prompt
    Q: テキスト → ポジ/ネガ? A: ネガ ...
  2. Instruction Tuning(例: Alpaca, Flan)
    ・ 既存データを"指示+応答"形式へ再構成
  3. Prefix / Soft Prompt
    ・ Embedding に学習可能な"仮想トークン"を追加(パラメータ 1–5 %)
データ量 ベストプラクティス
10 件未満 Zero/Few-shot Prompt
10–1000 Prefix Tuning / Soft Prompt
1k 以上 LoRA → フルファイン ←データが多ければ

📊 ケーススタディ

業界 タスク Stage 成果
医療 CT 画像の腫瘍分類 Stage 0 (EffNet) 精度 89→94 % / データ 800 枚
チャットサポート FAQ ボット Stage 2 (QLoRA) 精度 74→92 %、RAM 12 GB
金融 決算要約 Stage 3 (Instr. Tuned Llama) 要約品質 +1.2 ROUGE

よくある Q&A

Q1. どのプレトレモデルを選ぶ?
Vision: 自然画像→ImageNet ViT/ConvNeXt。特殊なら MedSAM・PlantDoc 等を探す
NLP : モノリンガル→Llama-3, 多言語→XLM-R or mT5
Q2. データが極端に偏っている
Stage 0 or 2 で Class Weight/ Focal Loss。必要なら Data Augment (MixUp, CutMix)
Q3. ライセンス問題は?
商用利用なら Apache-2 or MIT を選択。Llama-3 は Community License で制限あり。

チェックリスト

  • プレトレモデルとタスクのドメイン整合を確認
  • GPU/VRAM とメソッド選択 (LoRA ≒ 8 GB, QLoRA ≒ 6 GB)
  • 評価指標(F1, ROUGE, mAP …)を事前定義
  • 早期停止 & 学習曲線で過学習監視
  • 推論時量子化 (INT8) の有無でサービングコスト最小化

📝 まとめ

  1. 1
    転移学習は Stage 0 → 3 の階段。データ量・リソース・精度で選択。
  2. 2
    軽量化手法(LoRA/QLoRA)により ノート PC でも LLM 微調整が現実的。
  3. 3
    成功の鍵は ドメイン近接性 と 適切な正則化。
  4. 4
    実装は Hugging Face + PEFT が最速。まずは Stage 0 → 逐次アップグレードがおすすめ。
行動アイテム
  1. 自分のデータサイズを数えて Stage を決定
  2. ベースモデルをライセンス込みで選定
  3. PEFT or Trainer でファインチューニングを試してみましょう!
転移学習ロードマップ — 3 ステージでマスターする『学習済みモデルの賢い使い方』 | 2025-04-28