セクション4 要点と暗記 — モデルのサービングとスケール
🎯 暗記版。意思決定ツリー、対比表、頻出シナリオ。
🌳 推論方式選定ツリー
1. レイテンシ要件は?
├─ 数 ms〜100ms → オンライン推論
└─ 数分〜時間 OK → バッチ推論
2. オンライン推論ならインフラは?
├─ ML 標準、最も簡単 → Agent Platform Inference
├─ 軽量モデル + スパイク + アイドル長 → Cloud Run
├─ 複雑な構成 / KServe / Triton → GKE
├─ 基盤モデルそのまま → Model Garden (MaaS)
└─ エッジデバイス → TFLite / Edge TPU
3. バッチ推論ならどう走らせる?
├─ データが BigQuery → BigQuery ML / ML.PREDICT
├─ ML モデルが Model Registry にある → Batch Prediction Job
└─ ストリーミング ETL + 推論 → Dataflow
🌳 ロールアウト戦略選定ツリー
新モデルを本番へ:
├─ ビジネス指標で勝者決定したい → A/B テスト
├─ リスク最小・段階拡大 → カナリア(5% → 25% → 50% → 100%)
├─ 本番影響ゼロで性能比較 → シャドウデプロイ
├─ 即ロールバック必須 → ブルー/グリーン
└─ インフラ更新 → ローリング
🌳 ハードウェア選定(推論)
モデルサイズと QPS は?
├─ 軽量 ML (< 100MB) → CPU
├─ 中規模 NN / 小 LLM → L4 GPU
├─ 大規模 LLM (Gemini Pro 級) → A100/H100/TPU v5e
├─ 推論コスト最優先 → L4 / TPU v5e
└─ エッジ・モバイル → Edge TPU / TFLite / Gemini Nano
🃏 暗記カード
| Q |
A |
| Agent Platform Inference の旧名は? |
Vertex AI Prediction / Endpoints |
| Model Registry の役割は? |
モデルの 中央カタログ・バージョン管理・系統 |
Endpoint の traffic_split で何ができる? |
複数 DeployedModel に % でトラフィック分割 |
| A/B / カナリア / シャドウの違い |
A/B = 同時比較、カナリア = 段階拡大、シャドウ = 本番影響なし |
| Feature Store Online Store のレイテンシ目安 |
ms 級 |
| パブリック vs プライベートエンドポイント |
パブリック = インターネット可、プライベート = PSC/VPC 内のみ |
| Cloud Run の min-instances=0 のデメリットは? |
コールドスタート(数秒) |
| 軽量モデル + スパイク + アイドル長 → 何を選ぶ? |
Cloud Run |
| 推論用コスト最適 GPU は? |
L4 |
| 推論用コスト最適 TPU は? |
TPU v5e |
| Edge デプロイの前処理として必須なのは? |
量子化 (INT8 / Float16) |
| LLM 推論の高スループット OSS は? |
vLLM / Triton |
| 動的バッチング / Continuous batching は何のため? |
LLM 推論のスループット向上 |
| バッチ推論を BQ で完結させる関数 |
ML.PREDICT |
| シャドウデプロイの最大の利点 |
本番に 一切影響を出さず 新モデル性能を測れる |
| エッジ向け Gemini モデル名 |
Gemini Nano |
📊 対比表
推論基盤の比較
|
Agent Platform Inference |
Cloud Run |
GKE |
Model Garden |
| マネージド度 |
◎ |
◎ |
△ |
◎ (MaaS) |
| スケールゼロ |
△ (min=0 可) |
◎ |
△ |
◎ |
| GPU |
○ |
○ (新) |
○ |
– |
| カスタム構成 |
△ |
○ |
◎ |
× |
| 第一候補 |
標準 ML 推論 |
軽量・スパイク |
複雑構成 |
基盤モデルそのまま |
A/B vs カナリア vs シャドウ
|
A/B テスト |
カナリア |
シャドウ |
| 目的 |
勝者選定 |
安全な切替 |
性能観測 |
| トラフィック |
例 50/50 |
5% → 段階拡大 |
100% 旧 + 並行で新へ複製 |
| ユーザー影響 |
あり (両方使う) |
小 (新は少量) |
なし |
| 統計分析 |
必須 |
任意 |
あり |
バッチ vs オンライン推論
|
バッチ |
オンライン |
| レイテンシ |
数分〜時間 |
ms〜100ms |
| コスト |
安 |
高(常時起動) |
| 用途 |
夜間スコアリング・レポート |
チャット・推薦・検知 |
| Google サービス |
Batch Prediction Job, BQML |
Endpoint, Cloud Run, GKE |
推論用 GPU 比較
|
T4 |
L4 |
A100 |
H100 |
| メモリ |
16GB |
24GB |
40/80GB |
80GB |
| 主用途 |
軽量推論 |
生成 AI 推論 |
LLM 訓練・大型推論 |
最新 LLM 訓練 |
| コスト |
最低 |
低 |
高 |
最高 |
🔥 頻出シナリオ → 即答パターン
| シナリオ |
即答 |
| 夜間バッチスコアリング、コスト最優先 |
Batch Prediction Job or ML.PREDICT |
| ECサイトのリアルタイム推薦 (< 100ms) |
Endpoint + Feature Store Online |
| 新モデルを段階展開、リスク回避 |
カナリア (5% → 25% → 100%) |
| 新モデルの性能を本番影響ゼロで測る |
シャドウデプロイ |
| 軽量モデル + アイドル時間長い |
Cloud Run min=0 |
| 100B LLM の高スループット |
A100/H100/TPU v5e + vLLM |
| 機密データの推論エンドポイント |
Private Endpoint (PSC) |
| IoT カメラで物体検出 |
Edge TPU (Coral) |
| モバイルアプリでオフライン翻訳 |
TFLite or Gemini Nano |
| 複数モデルバージョンを同時運用 |
Endpoint の traffic_split |
| TF と PyTorch を同 Endpoint で |
異なるカスタムコンテナで DeployedModel |
| Gemini 推論コストを 50% 下げたい |
Flash + プロンプトキャッシング + Batch API |
| コールドスタートを短縮 |
min_replicas ≥ 1 + イメージ最適化 |
| 推論前に複雑な前処理 |
Custom Container 内で実装 |
| 訓練/推論の前処理一致 |
TFT or Feature Store |
| 同 Endpoint 内で複数モデル比較 (50/50) |
A/B テスト |
⚠️ ひっかけ警報
- 「リアルタイム要件があるのにバッチ」 → 推論方式の取り違え、必ずレイテンシ要件を読む
- 「アイドルが長いのに Endpoint min=1」 → Cloud Run の方がコスト効率良いケース多い
- 「機密データを Public Endpoint」 → Private Service Connect でプライベートエンドポイントへ
- 「ロールアウトに毎回全置換」 → カナリアやブルー/グリーンで安全に
- 「Feature Store なしでオンライン特徴量を BigQuery から毎回」 → レイテンシ要件満たせない
- 「100B LLM を T4 で推論」 → メモリ不足、A100/H100 or TPU v5e
- 「Edge デプロイで量子化スキップ」 → サイズ・速度の両面で必須
- 「複数モデル切替のため Endpoint を都度作り直す」 → 同 Endpoint の traffic_split で十分
- 「カナリアとシャドウを混同」 → カナリア = ユーザー影響あり (少量)、シャドウ = なし
- 「バッチ予測でも Endpoint デプロイ必須」 → Model から直接 batch_predict 可能
📝 一行サマリー
オンラインは Endpoint + Feature Store、バッチは Batch Prediction or BQML。ロールアウトはカナリアが安全、影響ゼロならシャドウ。LLM は L4/TPU v5e + vLLM + プロンプトキャッシングでコスト最適。