ML Model Deployment

article technology medium #ml-deployment#mlops#model-registry#canary-deployment#kubeflow#mlflow#kserve#argo-rollouts#continuous-training
Created: 2026-05-29 Updated:

ML モデルデプロイを 7 フェーズ・6 パターン・5 リリース戦略・5 環境・CT/CD・3 層ロールバック・12 AP・2026 フロンティアで俯瞰し tech-69 の上位プロセス層として配置。

ML Model Deployment(機械学習モデルのデプロイメント)

ML モデルデプロイメントは訓練済みアーティファクトを本番に到達・健全稼働させ必要時に安全ロールバックするライフサイクルで、推論サービング (tech-69) の上位プロセス層に位置する。本稿は 7 フェーズ・6 パターン・5 リリース戦略・5 環境・CT/CD・3 層ロールバック・12 AP・2026 フロンティアで俯瞰する。情報カットオフ ~2025-08 固定、バージョン・GA 日程は [VERIFY] 明示。

ライフサイクル全体像

7 フェーズで整理する。モデルレジストリが全フェーズ縦断の唯一 SoT として機能する。

フェーズ作業成果物代表ツール
1. Train学習・評価・実験追跡run_id, metrics, artifactsMLflow, W&B
2. Packageartifact + image + manifest 梱包OCI digest, MLmodelBentoML, MLflow Models
3. Registerバージョン登録 + 評価レポートModel Version (semver + lineage)MLflow / SageMaker / Vertex
4. Stageshadow / staging で smoke・bias 検証validation reportArgo Rollouts, Yatai, KServe
5. Releasecanary → progressive → 本番トラフィック重み, SLO ゲートFlagger, Argo Rollouts
6. Monitor品質・ドリフト・コスト・SLO 観測アラートEvidently, Arize (tech-83)
7. RollbackSLO 違反・ドリフトで旧版即時切替status=ArchivedArgo / SageMaker auto-rollback

通常 CI/CD と異なるのはフェーズ 6 のドリフト検出が自動でフェーズ 1 の再訓練を駆動し Continuous Training (CT) ループを形成する点。

パッケージング

デプロイ可能単位はモデル重み単体ではなくバンドル:model/ (weights + config + tokenizer)、preprocessing/postprocessing/runtime/ (Dockerfile + requirements lock)、manifest/ (MLmodel / ServiceSpec)。形式詳細は tech-77 / tech-78 委譲。

再現性は 3 セット:(1) weights hash SHA-256 を manifest 記録 + SafeTensors ヘッダ検証で RCE 回避、(2) base image digestFROM ...@sha256:<digest> 固定 [VERIFY]、(3) requirements lockuv pip compile / pip-compile --generate-hashes で全推移依存ハッシュ含めロック。MLflow は pyfunc flavor、BentoML は bentofile.yaml 宣言記述 [VERIFY]

モデルレジストリ & バージョニング

レジストリバージョニングステージ管理
MLflow Model Registry 2.x [VERIFY]semver + alias (champion/challenger)Registered→Staging→Production→Archived(alias 主体へ)
SageMaker Model Registryグループ + バージョン番号PendingManualApproval→Approved→Rejected
Vertex AI Model Registry [VERIFY]Model Resource + バージョンなし(Endpoint 重み分割で管理)
BentoML Yatai [VERIFY]Bento バージョン (tag)Deployment (K8s) 直結
HF Hub Privatecommit hash + tagなし(Git ブランチ運用)

リネージメタデータ必須 6 項目:training_dataset_hash / parent_model_version / evaluation_report_uri / bias_check_report_uri / training_pipeline_run_id / approved_by。揃わない登録は promotion 拒否の CI ゲートを置く。

デプロイメントパターン

パターン説明長所 / 短所
Single-model Endpoint1 EP = 1 モデル専有分離容易 / idle 課金
Multi-model Endpoint (MME)多モデル動的ロードコスト効率 / cold ロード遅延
Multi-container Endpoint (MCE)前/推/後処理チェーン [VERIFY]柔軟 / 設定複雑
ServerlessLambda/Cloud Run/Modal/Replicatescale-to-zero / cold start
Batch / Asyncキューバッファ非同期GPU 利用率最大 / 非リアルタイム
Multi-LoRA EPベース 1 + 複数 LoRA 動的切替 (vLLM --enable-lora [VERIFY])GPU メモリ節約 / 管理複雑

Modal と Replicate (Cog/Docker) は LLM・画像生成系の迅速デプロイに適する [VERIFY]。エンジン比較は tech-69 委譲。

リリース戦略

戦略切替SLO 違反時特徴
Shadow100% 旧 + コピーを新へ(結果破棄)影響なしゼロリスク検証
Canary旧 90% + 新 10% → 段階拡大自動 rollback最小ブラスト半径
Blue-GreenBlue 100% → Green 100% 瞬時Blue に戻す即時切替・2 倍リソース
A/Bセグメント分割手動判断統計的有意差検証
Interleaving同一ユーザに旧新混合提示手動判断レコメンダ系で高統計効率
Progressive1→5→25→50→100%各ステップで自動 rollback汎用標準

Argo RolloutsAnalysisTemplatesuccessCondition: result >= 0.95 自動評価 [VERIFY]Flagger は Istio メトリクスを Prometheus で判定 [VERIFY]。SLO ゲート例: p95 latency < 200ms (baseline +20% 以内)、error_rate < 0.5%accuracy_delta > -2%output_drift_score < thresholdSageMaker auto-rollback は CloudWatch アラーム発火で旧版へ自動復帰 [VERIFY]

環境マトリクス

カテゴリ代表実装制御ロックインScale-to-0規制
Cloud Managed (ML PaaS)SageMaker / Vertex / Azure ML部分HIPAA/SOC2 標準
Self-managed K8sKServe v0.13 / Seldon v2 / Ray Serve / BentoML [VERIFY]可 (KEDA)フル制御
ServerlessLambda / Cloud Run / Modal / Replicate完全Cloud Run CMEK [VERIFY]
Edge / On-deviceCoreML / LiteRT / ExecuTorch (tech-81)最高高 (OS)N/Aデバイス内完結
On-prem Bare-metalTriton 25.x [VERIFY] + NVIDIA GPU最高なしなし最高 (air-gap)

選定軸 4 つ:(1) 制御 vs ロックイン、(2) scale-to-zero vs スループット (Serverless は cold start が p99 汚染)、(3) 規制 (医療・金融は VPC 内、air-gap は on-prem Triton 一択)、(4) コスト (GPU 専有/MME/serverless 使い分け)。K8s 基礎は tech-66、クラウド比較は tech-74

CI/CD/CT パイプライン

ML CI/CD は通常 CI/CD に Continuous Training (CT) が加わる。データ検証→訓練→モデル評価→レジストリ登録→カナリア→progressive rollout の流れ。

プラットフォーム特徴
Kubeflow Pipelines 2.x [VERIFY]K8s ネイティブ、KFP SDK v2、Vertex 互換
Vertex AI PipelinesKubeflow 互換、GCP マネージド
SageMaker PipelinesStep Functions 風 DAG、SM ジョブ統合
MLflow Projects / Recipes [VERIFY]シンプル、CI 統合容易
ZenML 0.6x [VERIFY]マルチスタック抽象 (SM/Vertex/K8s 切替)
MetaflowNetflix 発、@step デコレータ

CI テスト 5 種:データ検証 (Great Expectations/Pandera) [VERIFY]モデル検証 (accuracy/latency 閾値回帰)、偏り検査 (Fairlearn/Aequitas) [VERIFY]セキュリティ (Trivy + SLSA、tech-66)、スモーク (ステージング疎通)。CT トリガー 4 種:ドリフトアラート (PSI > 0.2 / KS p < 0.05、Evidently/Arize Webhook)、スケジュールデータ閾値ビジネスイベント。CT は tech-83 と密結合しフィードバックループを閉じる。

ロールバック & インシデント対応

対象実行方法SLA
モデル重み + ランタイムレジストリで前版 promote → 再デプロイ< 5 分
前処理feature pipeline / tokenizerpreprocessing_version 連動アトミック復帰< 5 分
トラフィックゲートウェイ重みweight=0 で即時切替 (停止なし)< 1 分

自動条件: SLO 違反 5 分継続、error_rate > baseline + 2σ、出力分布 KL divergence 超過。手動手順: PagerDuty → kubectl argo rollouts abort → SageMaker は update_endpoint() で旧 EndpointConfigArn → Grafana 回復確認。ブラスト半径最小化: per-tenant routing (LiteLLM/Envoy)、Feature Flag、Namespace per tier。

アンチパターン

#AP対策
1Notebook → 本番直コピーパイプラインへ移行、CI ゲート必須
2pickle in prod (RCE)SafeTensors + weights_only=True (tech-77)
3モデルレジストリなしMLflow Registry 最低、lineage + approval
4Training-Serving Skew前処理コードをモデルと同一バンドル
5shadow なしで canary 直行shadow→canary→progressive 順序遵守
6全テナント共有 EPper-tenant rate limit + routing or MME
7手動 rollback のみSLO ゲートで自動 rollback
8後付けオブザーバビリティデプロイ前に監視設計完了 (tech-83)
9前処理バージョン未ピン留めpreprocessing_versionmodel_version 1:1
10ドリフト信号なし再訓練CT トリガーは drift 根拠条件のみ
11:latest タグimage digest (@sha256:...) ピン留め
12評価なし promotionレジストリ Staging ゲート + CI 通過必須

2026 フロンティア

LLM 特有: vLLM V1 の Disaggregated PD で prefill/decode 分離 + KVCache 転送が実験的、KServe v0.13+ との production 展開が 2025 後半から [VERIFY]tech-69/tech-46/tech-79)。Multi-LoRA hot-swap はテナント別 FT を 1 GPU 多重化、デプロイ層は アダプタレジストリバージョニング が課題。Prefix-cache-aware routing はゲートウェイがプレフィックスハッシュで同一キャッシュ保持ワーカーへ優先ルーティング [VERIFY]

エージェントデプロイ: 数分〜数時間セッション維持で Pod lifecycle と整合せず StatefulSet + PVC または外部セッションストア (Redis) が必要 [VERIFY]ツールレジストリ がモデルレジストリとは別レイヤとして登場 [VERIFY]。ループ高額請求は per-session token budget + hard cutoff (LiteLLM Budget Manager 等 [VERIFY]) で抑制。

Confidential Inference: AWS Nitro Enclaves 隔離、AMD SEV-SNP Confidential VM (Azure + AMD EPYC)、NVIDIA H100 Confidential Computing ハードウェア TEE で重み隔離 + 証明書発行 [VERIFY]

Green Deployment: Carbon-aware scheduling で再エネ発電が多い地域・時間帯に batch をシフト、WattTime / Electricity Maps API + Kubeflow scheduler 統合の実験的実装 [VERIFY]

Local graph