PMLE 学習ハブ
🎯 最重要セクション

§4 モデルのサービングとスケール

訓練済みモデルを本番環境で配信する全領域。比重 ~20%、出題数の中核

このセクションの結論 オンラインは Endpoint + Feature Store、バッチは Batch Prediction or BQML。 ロールアウトは カナリア が安全、影響ゼロなら シャドウ。 LLM は L4/TPU v5e + vLLM + プロンプトキャッシング でコスト最適。

⚖ バッチ vs オンライン推論

バッチ推論オンライン推論
入力データセット(GCS/BQ)単発リクエスト(API)
レイテンシ数分〜時間ms〜100ms
スループット一度に大量高 QPS
用途夜間スコアリング、レポートチャット、推薦、検知
コスト安い高い(常時起動)

🏗 サービング基盤の選択肢

Agent Platform Inference

マネージド推論。Model Registry → Endpoint → API。第一候補。旧 Vertex AI Prediction / Endpoints。

Cloud Run

サーバーレスコンテナ。0 → N にスケール。軽量モデル + スパイク + アイドル長で最適。GPU 対応も登場。

GKE

完全制御。KServe / Triton / 独自構成。複雑なオートスケール・複数モデル併存に。

Model Garden (MaaS)

Gemini / Llama / Mistral 等を API としてそのまま利用。トークン課金、ホスティング不要。

📚 Model Registry

from google.cloud import aiplatform

# 訓練後にモデルアップロード
model = aiplatform.Model.upload(
    display_name="churn-predictor",
    artifact_uri="gs://my-bucket/models/churn/v2/",
    serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/sklearn-cpu.1-3:latest",
)

# Endpoint にデプロイ
endpoint = model.deploy(
    machine_type="n1-standard-4",
    min_replica_count=1,
    max_replica_count=3,
    traffic_split={"0": 100},
)
Endpoint ├─ Model v1 (50% traffic) ├─ Model v2 (40% traffic) └─ Model v3 (10% traffic) ← カナリア

🚦 ロールアウト戦略

A/B テストカナリアシャドウブルー/グリーン
目的勝者選定安全な切替性能観測即ロールバック
トラフィック例 50/505% → 段階拡大並行で新も処理、結果は返さない2 環境並列稼働
ユーザー影響ありなし切替時のみ
ひっかけ要注意 カナリア = 少量だがユーザー影響あり、シャドウ = 本番影響ゼロ。混同しないこと。

⚡ スケーリングとレイテンシ

主要ボトルネック

  • コールドスタート(min=0 で 5〜30秒)
  • モデル読み込み(10GB+ で数十秒)
  • 特徴量取得(DB アクセス 50〜200ms)
  • 推論計算(モデルサイズ比例)
  • ネットワーク(リージョン跨ぎで 100ms+)

主要対策

  • min_replicas ≥ 1 でコールドスタート回避
  • Feature Store Online で ms 級取得
  • 量子化 / GPU 化 / バッチ化
  • 同一リージョン配置
  • vLLM / Triton で LLM 高スループット

LLM 特有の最適化

vLLM / Continuous Batching

生成中のリクエストにも動的に合流させてスループット最大化

KV キャッシング

プロンプト共通部分のキャッシュ。プロンプトキャッシングと組み合わせ

量子化(INT8 / GGUF)

VRAM 削減、小型 GPU で大型モデルを動かす

モデル蒸留

大モデル → 小モデルで知識転移

🗂 Feature Store オンライン取得

# 推論サーバ側のコード(疑似)
features = feature_store.get_online_features(
    entity_type="user",
    entity_ids=[user_id],
    feature_ids=["avg_purchase_30d", "session_count_7d", "ltv"],
)
prediction = model.predict([request_features + features])

Online Store の選択肢:Bigtable-backed(高スループット)か Optimized Online Store(マネージド)。

📱 Edge デプロイ

TFLiteEdge TPU (Coral)Gemini Nano
対応TF / KerasTFLite + 量子化Android Edge AI
強み軽量・モバイル標準低消費電力・高速オンデバイス LLM
用途モバイル分類IoT 物体検出モバイル AI
Edge には量子化必須 INT8 / Float16 量子化 でサイズ縮小・推論高速化・消費電力削減。TFLite Converter で post-training quantization。

🛡 セキュアなサービング

Private Endpoint

VPC ピアリング / Private Service Connect 経由。インターネット非経由でセキュリティ強化

IAM + API Gateway

サービスアカウントベース認証、API Key / OAuth / JWT

CMEK + TLS

暗号化キー自社管理 + TLS 必須

⚠️ 試験での頻出ひっかけ

シナリオ不正解正解
"夜間に全顧客スコアリング"Endpoint で順次Batch Prediction Job
"リアルタイム推薦 50ms"バッチ + キャッシュEndpoint + Feature Store
"軽量、アイドル長、コスト最優先"Endpoint min=1Cloud Run min=0
"100B LLM 高スループット"T4A100/H100 or TPU v5e + vLLM
"機密データの推論"Public EndpointPrivate Endpoint (PSC)
"新モデル安全に展開"即時全置換カナリア
"性能比較で本番影響ゼロ"A/Bシャドウデプロイ
"IoT カメラで物体検出"クラウド APIEdge TPU (Coral)
"訓練/推論で前処理ズレ"クライアント側で全部TFT or Feature Store
"複数モデル切替で各々別 Endpoint"そのまま同 Endpoint の traffic_split

📝 セルフチェック(6 問)

Q1

夜間に全顧客の解約スコアを計算する。最適な推論方式は?

正解: A。コスト最適。
Q2

新モデルを 5% から段階的に拡大したい。戦略は?

正解: B
Q3

新モデルの性能を本番ユーザーに影響ゼロで計測したい。

正解: C。シャドウは結果を返さず観測のみ。
Q4

軽量モデル、アイドル時間が長い、コスト最優先。

正解: B。スケールゼロでコスト最適。
Q5

機密データを処理する LLM 推論。インターネット非経由が必須。

正解: B
Q6 複数選択

PyTorch と TensorFlow を同 Endpoint に同居させたい。実装 2 つ:

正解: A, B
全問題集へ →