Skip to content

モデルデプロイとロールアウト

TL;DR

モデルデプロイは、モデルファイルを配置するだけではありません。特徴量契約、しきい値、キャリブレーション、セグメントルーティング、遅延ラベルに依存する意思決定ポリシーを変更します。安全なロールアウトには、成果物互換性チェック、シャドー実行、カナリー、ガードレール、ロールバック、デプロイ後の品質監視が必要です。


なぜ通常のデプロイと違うのか

アプリケーションデプロイでは「新しいコードが動き、テストに通るか」が中心です。モデルデプロイではさらに次を確認します。

  • サービング経路が提供する特徴量スキーマと一致するか。
  • スコア分布は既存のしきい値や下流ポリシーと合うか。
  • 重要スライスで安全に動くか。
  • 遅延ラベルが来る前に品質低下を検知できるか。
  • アプリケーションコードを戻さずに旧モデルへ戻せるか。

リリース単位はモデルファイルではなく、意思決定システム全体です。


成果物契約

デプロイ可能なモデルには、昇格前に検証できるメタデータを持たせます。

項目目的
モデル名とバージョン人間とプログラムの識別
学習データスナップショット再現性と監査
特徴量スキーマ版オンライン特徴量との互換性
出力契約スコア範囲、クラス、確率の意味
実行環境依存関係とハードウェア互換
評価レポートオフライン指標、スライス、ガードレール
サービング制約レイテンシ、メモリ、アクセラレータ
ロールバック先既知の正常版
所有者承認とオンコール責任

何から作られたか説明できない成果物を昇格させないことが基本です。


ロールアウト制御

制御プレーンは、トラフィック比率、セグメント、モデル版固定、ロールバック、監査ログを管理します。個別チームがビジネスロジック内に手書きするべきではありません。


ロールアウトパターン

パターン検証するもの強み見えないもの
オフライン評価履歴品質安く速いライブのフィードバックループ
シャドー実トラフィックで動くかユーザー影響なし実意思決定の影響
カナリー小量本番で安全かブラスト半径が小さい遅延ラベルによる品質劣化
Champion/Challenger現行モデルとの比較比較が明確十分なトラフィックが必要
A/Bテスト因果的に良いかプロダクト成果を測れる遅く統計設計が必要
キルスイッチ悪いモデルを止める被害を限定安全なフォールバックが必要

カナリーは「続けて安全か」を答えます。A/Bテストは「良くなったか」を答えます。


しきい値とポリシー

多くのモデルは最終アクションではなくスコアを返します。最終判断はポリシー層が行います。

text
score >= 0.95  -> ブロック
score >= 0.70  -> 手動レビュー
otherwise      -> 許可

新モデルのスコア分布が変わると、古いしきい値を再利用するだけで事故になります。しきい値はモデルと同じくバージョン管理されたポリシー成果物です。


ロールバック設計

依存関係ロールバック時の問い
モデル成果物旧成果物はすぐ使えるか
特徴量スキーマ新特徴量を旧モデルが安全に無視できるか
しきい値ポリシーを独立して戻せるか
予測ログラベル結合は継続できるか
バッチ出力古い事前計算スコアを無効化できるか
下流意思決定不可逆アクションはレビューや補償で守られているか

高リスクシステムでは「旧サービスを再デプロイ」より「候補モデルを無効化」を優先します。


障害モード

スキーマ互換だが意味が違う

特徴量は存在し型も合うが意味が変わっています。例: total_spend_30d が総額から純額に変わる。

対策: 特徴量契約、所有者、意味論バージョン、分布検証、変更レビュー。

遅延ラベルでカナリーが良く見える

短期代理指標は問題ないが、数日後に真のラベルで劣化が判明します。

対策: 遅延ラベル領域ではランプを保守的にし、代理指標と真の指標を分けます。

シャドーが依存先を過負荷にする

レスポンスには影響しなくても、特徴量取得と推論の負荷は発生します。

対策: サンプリング、リソース隔離、依存先負荷を計画に含める。


運用メトリクス

分類メトリクス
リリース昇格率、ロールバック率、ロールバック時間、失敗ゲート
実行時p99、タイムアウト率、特徴量ミス率、ロード失敗
トラフィック割当比率、サンプル比率不一致、セグメント網羅
モデル挙動スコア分布、クラス比率、フォールバック率
品質代理指標、遅延ラベル、スライス劣化、キャリブレーション

重要なポイント

  1. デプロイ対象はモデルファイルではなく意思決定システム。
  2. シャドーは実行安全性、カナリーは継続安全性、実験は改善を検証する。
  3. 特徴量スキーマ、しきい値、セグメントはモデルリリースの一部。
  4. ロールバックはプラットフォーム操作であるべき。
  5. 遅延ラベルがある領域では保守的なランプが必要。

参考文献

  1. Hidden Technical Debt in Machine Learning Systems
  2. TensorFlow Serving: Flexible, High-Performance ML Serving
  3. MLflow Model Registry
  4. KServe Documentation

MITライセンスの下で公開。Babushkaiコミュニティが構築。