03_要点と暗記

セクション3 要点と暗記 — プロトタイプから ML モデルへのスケール

🎯 最重要セクションの暗記版。意思決定ツリーと頻出問題パターン。


🌳 モデル選定ツリー

タスクは?
├─ テーブル分類/回帰
│  ├─ 解釈性必要 → Linear / Logistic / Tree
│  ├─ 高精度 → Boosted Trees (XGBoost/LightGBM)
│  ├─ SQL で完結 → BigQuery ML
│  └─ コードレスで高精度 → AutoML Tables / Tabular Workflows
├─ 時系列 → ARIMA_PLUS(BQML)/ Prophet
├─ 画像分類 → CNN (ResNet/EfficientNet) or AutoML Image
├─ 物体検出 → YOLO / Faster R-CNN
├─ テキスト生成・要約・分類 → Gemini(ファインチューニング検討)
└─ 推薦 → Matrix Factorization / Two-Tower

🌳 訓練プロダクト選定ツリー

コードを書きたい?
├─ NO → BigQuery ML(SQL) or AutoML(UI)
├─ YES + シンプルに済ませたい → Custom Training(Pre-built Container)
├─ YES + 既存 Kubeflow 資産 → Kubeflow on GKE
└─ YES + E2E パイプライン → Agent Platform Pipelines(中で Custom Training)

🌳 ハードウェア選定ツリー

1. フレームワーク
   ├─ JAX / TF → TPU
   ├─ PyTorch → GPU
   └─ sklearn/XGBoost → CPU
2. モデルサイズ
   ├─ 〜1B → GPU 単機
   ├─ 1B〜10B → A100 数枚
   ├─ 10B〜100B → A100/H100 多数 or TPU Pod
   └─ 100B+ → TPU Multislice
3. 推論用途
   ├─ オンライン低レイテンシ → L4 / TPU v5e
   ├─ バッチ → T4 / L4
   └─ エッジ → Edge TPU (Coral)

🌳 ファインチューニング手法選定ツリー

プロンプト/few-shot で精度足りる?
├─ YES → ファインチューニング不要、プロンプト改善 + RAG
└─ NO →
   データ量は?
   ├─ < 1,000 件 + 軽微改善 → Prompt Tuning
   ├─ 数千件 + ドメイン特化 → LoRA / PEFT
   ├─ 数万件 + 高精度 → Full Fine-tuning
   ├─ チャット好み調整 → RLHF / DPO
   └─ 出力形式厳密 → Supervised Fine-tuning(少量で OK)

🃏 暗記カード

Q A
BigQuery ML の時系列モデル名は? ARIMA_PLUS
Vizier のアルゴリズムは? Bayesian Optimization
訓練の並列化3種類は? Data / Tensor (Model) / Pipeline Parallelism
3D 並列 = ? 上記3つを組み合わせる
単一 GPU に乗らないモデルを訓練するには? ZeRO / FSDP / Model Parallelism
数千〜1万 TPU チップを束ねるには? Multislice
複数 TPU を単一プログラムで扱うランタイムは? Pathways
LoRA は何の略 + 何をする? Low-Rank Adaptation。低ランク行列で PEFT(パラメータ効率)
Spot VM / Preemptible を使う前提条件は? チェックポイント保存
Spot 枠を確保しやすくするサービスは? Dynamic Workload Scheduler (DWS)
大量分散の All-reduce を高速化するには? Reduction Server
訓練 loss が NaN になる主原因2つ 学習率高すぎ / 混合精度 overflow
過学習対策3つ Early stopping / Dropout / Augmentation / 正則化
AutoML より細かい制御がほしい・コードは少なめ Tabular Workflows
100B LLM を訓練する Google の標準構成 TPU v5p Multislice + Pathways
Gemini ファインチューニングを BigQuery で行う構文 CREATE MODEL ... REMOTE WITH CONNECTION ...

📊 対比表

BigQuery ML vs AutoML Tables vs Tabular Workflows vs Custom Training

BQML AutoML Tabular WF Custom
インターフェース SQL UI/SDK パイプライン Python
自動チューニング 自分で実装
カスタマイズ × ×
第一候補 データが BQ コードレス カスタマイズ + AutoML フル制御

CPU / GPU / TPU

CPU GPU TPU
汎用性
行列演算 × ◎◎
標準 FW 全部 PyTorch JAX/TF
巨大 LLM ×

並列化戦略

Data Tensor (Model) Pipeline
何を分割 データ テンソル
通信頻度 中(all-reduce) 低(パイプライン段間)
適用条件 モデルが1GPUに乗る 巨大モデル スループット重視

ファインチューニング手法

Prompt LoRA Full FT RLHF
データ量
コスト 非常に高
表現力
用途 軽微改善 ドメイン特化 完全特化 好み調整

🔥 頻出シナリオ → 即答パターン

シナリオ 即答
BigQuery に顧客テーブル、解約予測モデル BQML logistic_reg / boosted_tree
時系列予測 with BQML ARIMA_PLUS
100B LLM 訓練 TPU v5p Multislice + JAX/Pathways
7B LLM を 8 GPU でチューニング LoRA + FSDP
訓練ジョブが OOM 混合精度 + 勾配蓄積 + FSDP
Vision Transformer 訓練、データロード遅い TFRecord + tf.data prefetch
ハイパラ探索を効率化 Vizier (HyperparameterTuningJob)
訓練コスト 50% 削減 Spot VM + チェックポイント
Spot が確保できない Dynamic Workload Scheduler (DWS)
ストリーミング推論で低レイテンシ L4 GPU エンドポイント
Edge デプロイ TFLite + Edge TPU + 量子化
Gemini 出力フォーマットを安定化 Supervised Fine-tuning
自社ドメイン Q&A の精度向上 LoRA ファインチューニング + RAG
既存 PySpark で訓練 Dataproc Serverless for Spark
訓練と推論の前処理コードがずれる TFT または Feature Store

⚠️ ひっかけ警報

  1. 「コードを書きたくない」「ML 専門家がいない」 → Custom Training を選ばない(AutoML/BQML/Tabular Workflows)
  2. 「100B LLM を A100 単機で訓練」 → 不可能。TPU Multislice か多数 GPU
  3. 「LoRA は精度が低い」 → 多くの実用ケースでフルチューニングと近い精度、コスト1/100
  4. 「Spot VM はチェックポイントなしで OK」 → 必須。落ちると最初から
  5. 「Vizier は Grid Search」 → Bayesian Optimization が基本
  6. 「PyTorch なら TPU は使えない」 → PyTorch/XLA で可能。ただし GPU が普通
  7. 「ファインチューニングはどんなときも必要」 → プロンプト+RAG で十分なケースも多い。コスト的に最後の手段
  8. 「混合精度なら必ず速くなる」 → loss スケーリング忘れると発散

📝 一行サマリー

モデル選定はタスク・解釈性・コストで決まる。訓練は BQML→AutoML→Custom の順で重い。GPU は PyTorch・TPU は JAX/TF。LLM ファインチューニングは LoRA が現実解。