LESSON 30分

ストーリー

田中VPoE
Step 2ではモデルデプロイとサービング基盤を構築する。まずはデプロイ戦略だ。LLMアプリケーションのデプロイは従来のWebアプリとは異なるリスクがある
あなた
プロンプトを変更しただけで応答品質が激変することがありますよね。先週のCS-AIでも、プロンプト修正後に「敬語が崩れた」とクレームが入りました
田中VPoE
そうだ。コードの変更とプロンプトの変更では影響範囲の予測が難しい。だからこそ、段階的なデプロイ戦略が重要になる

デプロイ戦略の概要

LLMアプリケーション固有のデプロイリスク

リスク説明従来のWebアプリとの違い
品質の非決定性同じプロンプトでも出力が毎回異なるテストで100%の品質保証ができない
プロバイダ依存モデルバージョンの変更が外部起因で発生自社コントロール外の変更リスク
評価の遅延品質劣化が統計的に有意になるまで時間がかかる即座にバグを検出できない
コスト変動デプロイ変更がトークン使用量に影響性能以外のコスト影響がある

主要なデプロイ戦略

カナリアリリース

一部のトラフィックだけを新バージョンに振り分け、品質を確認してから全体に展開します。

カナリアリリースの流れ:

Phase 1: 5%のトラフィックを新バージョンに
┌────────────────────────────────────┐
│ 旧バージョン (95%) ████████████████ │
│ 新バージョン (5%)  █               │
└────────────────────────────────────┘
  → 品質メトリクスを監視(1-2時間)

Phase 2: 問題なければ25%に拡大
┌────────────────────────────────────┐
│ 旧バージョン (75%) ████████████████ │
│ 新バージョン (25%) ████            │
└────────────────────────────────────┘
  → 品質メトリクスを監視(2-4時間)

Phase 3: 問題なければ100%に展開
┌────────────────────────────────────┐
│ 新バージョン (100%) ███████████████ │
└────────────────────────────────────┘
項目内容
適した場面プロンプトの大幅変更、新機能追加
メリットリスクを最小化しながら段階的に展開できる
デメリット展開完了まで時間がかかる
自動ロールバック条件品質スコアが閾値以下、エラー率が基準超過

ブルーグリーンデプロイ

新旧2つの環境を用意し、トラフィックを瞬時に切り替えます。

ブルーグリーンデプロイ:

   トラフィック


  ┌─────────┐
  │  Router  │
  └────┬────┘

  ┌────┼────────────┐
  │    │            │
  ▼    │            ▼
Blue   │          Green
(現行)  │          (新版)

    切替時にRouterの
    向き先を変更
項目内容
適した場面モデルバージョンの切替、インフラ更新
メリット即時ロールバック可能、ダウンタイムなし
デメリット2倍のインフラコストが必要
注意点切替前にGreen環境で十分な品質テストを実施

シャドウデプロイ

新バージョンを並行実行するが、ユーザーには旧バージョンの結果を返します。

シャドウデプロイ:

リクエスト ──→ Router ──→ 旧バージョン ──→ ユーザーに返却

                 └──→ 新バージョン ──→ 結果をログに記録
                                      (ユーザーには返さない)


                                   品質比較分析
項目内容
適した場面リスクの高い変更、新モデルの評価
メリットユーザー影響ゼロで新バージョンを評価できる
デメリット2倍のAPIコストが発生、リアルタイム性の評価は不可
注意点コスト増加を許容できる期間を事前に決める

フィーチャーフラグ

ユーザー属性や条件に応じてバージョンを切り替えます。

項目内容
適した場面A/Bテスト、段階的ロールアウト、ベータテスト
メリットきめ細かい制御が可能
デメリットフラグの管理が複雑化する
ツール例LaunchDarkly, Unleash, 自前実装

デプロイ戦略の選択基準

変更の種類推奨戦略理由
プロンプトの軽微な修正カナリア(5%→100%)影響が小さいため短時間で展開
プロンプトの大幅変更カナリア(5%→25%→50%→100%)段階的に品質を確認
モデルバージョン変更ブルーグリーン即時ロールバックが必要
新モデルプロバイダの導入シャドウ→カナリアまずシャドウで品質比較、確認後にカナリア展開
A/Bテストフィーチャーフラグユーザーセグメント単位の制御が必要

ロールバック設計

自動ロールバックの条件

# ロールバック設定例
rollback:
  automatic:
    conditions:
      - metric: "error_rate"
        threshold: 5          # エラー率5%超過
        window: "5m"
      - metric: "quality_score"
        threshold: 0.7        # 品質スコア0.7未満
        window: "15m"
      - metric: "latency_p95"
        threshold: 5000       # P95レイテンシ5秒超過
        window: "5m"
    action: "rollback_to_previous"
    notification:
      - channel: "slack"
        target: "#llmops-alerts"
ロールバックの種類説明所要時間
プロンプトロールバックプロンプトのバージョンを戻す数秒〜数分
モデルロールバックフォールバックモデルに切替数秒
環境ロールバックブルーグリーンの切戻し数秒
コードロールバックアプリケーションコードの前バージョンデプロイ数分〜数十分

まとめ

ポイント内容
LLM固有のリスク非決定性・プロバイダ依存・評価遅延・コスト変動の4つのリスクを考慮する
戦略の使い分け変更の種類とリスクに応じてカナリア・ブルーグリーン・シャドウ・フィーチャーフラグを選択
段階的展開プロンプト変更は必ず段階的に展開し、品質メトリクスで確認してから拡大する
ロールバック自動ロールバック条件を事前に定義し、問題発生時に即座に戻せる設計にする

チェックリスト

  • 4つのデプロイ戦略の違いと適した場面を説明できる
  • 変更の種類に応じた戦略選択ができる
  • 自動ロールバックの条件設計を理解した
  • プロンプトロールバックとコードロールバックの違いを把握した

推定読了時間: 30分