02_応用

セクション4 応用 — モデルのサービングとスケール

🔧 対象:中堅エンジニア。ロールアウト戦略・スケーリング・コスト最適化・Edge デプロイの実務観点を押さえる。


1. ロールアウト戦略

1.1 A/B テスト

1.2 カナリアデプロイ

1.3 シャドウデプロイ

1.4 ブルー/グリーン

1.5 ローリング

1.6 試験での頻出シナリオ

シナリオ 戦略
「新モデルが本当に良いかビジネス指標で測りたい」 A/B テスト
「リスクを最小化して新モデルを徐々に展開」 カナリアデプロイ
「本番影響を一切出さず性能比較」 シャドウデプロイ
「即ロールバック可能な切替」 ブルー/グリーン

2. オートスケーリング

2.1 Agent Platform Endpoint のオートスケール

2.2 Cloud Run のオートスケール

2.3 GKE のオートスケール

2.4 スケール戦略の選び方

条件 推奨
ベースラインの常時トラフィック有 Endpoint with min_replicas ≥ 1
スパイク + アイドル時間長 Cloud Run (0→N) or Endpoint with min=0
複雑な複数モデル併存 GKE + KServe

3. レイテンシ最適化

3.1 主要ボトルネック

3.2 対策

ボトルネック 対策
コールドスタート min_replicas を増やす、Cloud Run keep-warm
モデル読み込み プレロード、shared memory、コンテナイメージ最適化
特徴量取得 Feature Store Online Store で ms 級
推論計算 GPU 化 / 量子化 / バッチ化
ネットワーク 同一リージョン、プライベートエンドポイント

3.3 量子化と最適化


4. LLM サービング特有の論点

4.1 LLM 推論の特徴

4.2 LLM デプロイ選択肢

選択肢 説明
Model Garden (MaaS) Gemini / Llama / Mistral を API として
Agent Platform Inference + LLM container カスタムモデルを Endpoint に
GKE + vLLM 高スループット、自前運用
Cloud Run + GPU スパイク対応、コスト効率

4.3 LLM コスト最適化


5. バッチ推論の応用

5.1 Agent Platform Batch Prediction

batch_prediction_job = model.batch_predict(
    job_display_name="nightly-churn-scoring",
    gcs_source="gs://my-bucket/input/customers/*.csv",
    gcs_destination_prefix="gs://my-bucket/output/scores/",
    machine_type="n1-standard-4",
    accelerator_type=None,  # GPU 不要ならコスト削減
    starting_replica_count=10,
    max_replica_count=50,
)

5.2 BigQuery ML での予測

5.3 Dataflow + サイドカー推論


6. Edge / オンデバイス推論

6.1 Edge デプロイの選択肢

TFLite Edge TPU (Coral) ONNX Runtime
対応 TF / Keras TFLite (量子化必須) 多フレームワーク
強み 軽量・モバイル標準 低消費電力・高速 クロスプラットフォーム

6.2 モデル準備

6.3 Gemini Nano

6.4 試験での頻出シナリオ


7. セキュアなサービング

7.1 認証

7.2 ネットワーク

7.3 暗号化

7.4 ロギング・監査


8. コスト最適化

戦略 効果
min_replicas を 0 にしてスケールイン アイドル時コストゼロ(コールドスタート受容)
L4 / T4 などの低価格 GPU A100 比 1/5 程度のコスト
TPU v5e コスト性能比が良い
バッチ推論を夜間に Spot で オンライン比 1/10
モデル量子化 同性能で小型 GPU で済む
プロンプトキャッシング (LLM) 再利用部分 75% 割引
コンテナイメージ最適化 コールドスタート短縮
常時アクセスを Cloud Run min=1 スパイク対応 + コスト適度

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

シナリオ 不正解になりがち 正解の方向
「夜間に全顧客スコアリング」 オンライン Endpoint で順次 Batch Prediction Job
「リアルタイム推薦で 50ms 以内」 バッチ + キャッシュ オンライン Endpoint + Feature Store
「軽量モデルで、リクエストない時はゼロにしたい」 Endpoint min=1 Cloud Run (0→N)
「100B LLM の高スループット推論」 T4 GPU A100/H100 or TPU v5e + vLLM
「機微データの推論」 パブリック Endpoint Private Endpoint (PSC)
「新モデルを安全に展開」 即時全置換 カナリア(5% → 段階拡大)
「新旧の精度をユーザー影響なしで比較」 A/B シャドウデプロイ
「IoT カメラで物体検出」 クラウド API 呼び出し Edge TPU (Coral)
「モデル読み込みが遅くてコールドスタート長い」 何もしない min_replicas ≥ 1 / イメージ最適化
「特徴量取得で 300ms かかる」 DB を素のままたたく Feature Store Online Store
「LLM 推論コスト高すぎ」 Pro 使い続ける Flash + プロンプトキャッシング + Batch API
「複数モデルを切り替えながら使う」 各々別 Endpoint 同一 Endpoint で traffic_split
「TF と PyTorch の両モデルを同居」 サーバを別立て Endpoint で異なるコンテナ DeployedModel
「推論前に複雑な前処理が必要」 クライアント側で実装 Custom Container で前処理込み

10. 設計パターン例

10.1 標準的なオンライン推論

[Client] → [API Gateway] → [Agent Platform Endpoint (Model Registry v3)]
                                    ↓ feature lookup
                              [Feature Store Online]
                                    ↓
                              [Model Container (FastAPI)]
                                    ↓
                              [Response]

10.2 LLM チャットボット

[Client] → [Cloud Run (FastAPI + RAG orchestration)]
                   ↓
              [Vector Search] (関連文書取得)
                   ↓
              [Gemini (Model Garden)] (生成)
                   ↓
              [Model Armor] (出力フィルタ)
                   ↓
              [Response]

10.3 夜間バッチスコアリング

[Cloud Scheduler] → [Cloud Workflows] → [Agent Platform Batch Prediction Job]
                                                ↓ input: BigQuery
                                          [model: Model Registry v3]
                                                ↓ output: BigQuery / GCS
                                          [Downstream: Looker dashboard]

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