02_応用

セクション3 応用 — プロトタイプから ML モデルへのスケール

🔧 対象:中堅エンジニア。分散訓練・大規模ファインチューニング・トラブルシューティング・ハードウェア選定の判断力を養う。


1. 分散訓練戦略

1.1 3つの並列化

戦略 何を分散 強み 弱み
Data Parallelism 同じモデルを複製、データを分割 実装が単純、ほとんどの場合 OK モデルが 1 GPU に乗らないと使えない
Model Parallelism (Tensor Parallelism) モデル層内のテンソルを分割 巨大モデルを分割可能 GPU 間通信が頻繁
Pipeline Parallelism モデル層をステージに分割 スループット向上 パイプライン詰まり (bubble) が起きる

1.2 3D 並列

1.3 ZeRO / FSDP(メモリ最適化)

1.4 Google Cloud での実装


2. TPU の応用

2.1 Multislice

2.2 Pathways

2.3 TPU を選ぶ判断


3. ファインチューニングの応用

3.1 手法の選択基準

データ量と精度要件は?
├─ < 1,000 件 + プロンプトで微改善したい
│   → Prompt Tuning(最軽量)
├─ 数千件 + ドメイン特化
│   → LoRA / PEFT(コスト効率良い)
├─ 数万件 + 高精度
│   → Full Fine-tuning
├─ チャット品質・人間の好み調整
│   → RLHF / DPO
└─ 出力フォーマット厳密化
    → Supervised Fine-tuning(少量データで OK)

3.2 LoRA の仕組み

3.3 BigQuery 経由の Gemini ファインチューニング

CREATE MODEL `project.dataset.tuned_gemini`
REMOTE WITH CONNECTION `project.us.vertex_conn`
OPTIONS (
  endpoint = 'gemini-2.0-flash-001',
  training_data = (SELECT prompt, expected_output FROM `project.dataset.train`),
  tuning_method = 'supervised_fine_tuning'
);

3.4 ファインチューニング後の検証

3.5 Continual Fine-tuning


4. 訓練の主要なトラブルシューティング

4.1 訓練が始まらない / 即時失敗

症状 原因 対処
PERMISSION_DENIED サービスアカウントに権限不足 aiplatform.user, storage.objectViewer 等を付与
IMAGE_NOT_FOUND コンテナイメージの URI 誤り Artifact Registry のパス確認
Quota error GPU/TPU 上限超過 リージョン別 quota 確認・引き上げ申請
OOM (Out of Memory) バッチサイズ過大 バッチを下げる / 勾配蓄積 / 混合精度

4.2 訓練が遅い

4.3 損失が NaN / 発散

4.4 過学習

4.5 訓練が不安定(毎回 loss が違う)


5. 大規模訓練のチェックポイントとリトライ

5.1 チェックポイント

5.2 プリエンプティブル / Spot VM


6. ハードウェア選定の応用

6.1 マシンサイズの選び方

6.2 GPU vs TPU の決定木

1. フレームワークは?
   ├─ JAX / TF → TPU が第一候補
   ├─ PyTorch → GPU 推奨(XLA で TPU も可)
   └─ scikit-learn / XGBoost → CPU で十分(GPU 版もある)
2. モデルサイズは?
   ├─ < 1B → GPU 単機 or 少数 GPU 分散
   ├─ 1B〜100B → 多数 GPU or TPU Pod
   └─ > 100B → TPU Multislice
3. コスト性能比は?
   → 同等性能なら TPU が安いケースが多い(TF/JAX なら)

6.3 推論ハードウェア


7. Tabular Workflows の応用

7.1 Tabular Workflows とは

7.2 いつ使う


8. 試験での頻出ひっかけ

シナリオ 不正解になりがち 正解の方向
「100B パラメータの LLM を訓練したい」 A100 単機 TPU v5p Multislice + Pathways
「PyTorch で 7B モデルをチューニング」 フルファインチューニング LoRA / PEFT
「BigQuery のデータで分類モデル、SQL で完結」 Custom Training BigQuery ML
「テーブルデータで高精度、ML 専門家少」 DNN フルカスタム Tabular Workflows
「訓練データが急増、コスト最適化」 通常 GPU 連続使用 Spot VM / プリエンプティブル + チェックポイント
「分散訓練で All-reduce が遅い」 バッチサイズ縮小 Reduction Server
「Vision Transformer の訓練が OOM」 バッチ拡大 勾配蓄積 / 混合精度 / FSDP
「推論レイテンシ厳しく、コスト抑えたい」 A100 オンデマンド L4 GPU / TPU v5e
「ハイパラ探索を自動化」 Grid Search 自作 Vizier (HyperparameterTuningJob)
「訓練ジョブの quota が出ない」 待つ リージョン変更 or quota 引き上げ申請
「Gemini に厳格な JSON 出力をさせたい」 プロンプトで頑張る Supervised Fine-tuning
「数千件で Gemini をドメイン特化」 フルチューニング LoRA / PEFT が現実的

9. ベンチマーク・実例の感覚

次は 03_要点と暗記.md で意思決定ツリーと暗記カードを集めます。