AI・機械学習
上級

LLM Cascade Routing(エルエルエムカスケードルーティング)

LLM Cascade Routing(カスケードルーティング)とは、安価な軽量モデルで最初に応答を生成し、品質が閾値未満の場合に段階的により高性能なモデルへエスカレーションする推論戦略である。FrugalGPT の研究で提唱され、最大 98% のコスト削減を品質維持しつつ達成する。

0 回閲覧
0 いいね

LLM カスケードルーティングは、複数のモデルを品質とコストの階層構造に並べ、安価なモデルから順に推論を試みる戦略である。各段階で応答品質を評価し、十分な品質が得られた時点で処理を完了する。FrugalGPT(Stanford、2023年)がこの概念を体系化し、GPT-4 単体と同等の品質を 2% のコストで達成できることを示した。

概要

カスケードの基本原理は「Easy queries are cheap, hard queries are expensive」に集約される。カスタマーサポートの FAQ 応答の 70% は GPT-4o-mini($0.15/1M tokens)で十分だが、契約条項の解釈や技術的トラブルシューティングは GPT-4o($2.50/1M tokens)や Claude 4 Opus が必要になる。カスケードルーティングは、この分布を自動的に活用する。

カスケード構成の典型例

3段カスケード

段階モデルコスト (1M tokens)用途処理割合
Tier 1GPT-4o-mini$0.15単純 FAQ・定型応答60-70%
Tier 2GPT-4o$2.50中程度の推論・分析20-30%
Tier 3Claude 4 Opus$15.00高度な推論・創造的タスク5-10%

混合コスト計算例(月間 10万クエリ、平均 1K tokens/クエリ)

  • カスケードなし(GPT-4o 全量): $2,500/月
  • 3段カスケード: (70K × $0.15 + 25K × $2.50 + 5K × $15.00) / 1000 = $10.50 + $62.50 + $75.00 = $148/月(94% 削減)

品質評価メカニズム

カスケードの成否は「現在の応答が十分な品質か」を正確に判定する品質評価器(Verifier)に依存する。

自己信頼度スコア

モデル自身の出力確率(logprobs)を品質指標とする。トップトークンの対数確率が閾値以上なら「自信あり」と判定。計算コストゼロだが、モデルの過信(calibration error)が課題。

LLM-as-Judge

別の軽量 LLM で応答品質を 1-5 スケールで評価する。GPT-4o-mini を Judge として使えば追加コストは微小。ただし Judge 自体の精度上限がボトルネック。

外部 Verifier

タスク固有のルールベース検証器。コード生成なら構文チェック + テスト実行、数学なら計算結果の検算。最も信頼性が高いが、汎用性に欠ける。

FrugalGPT の研究成果

Stanford の FrugalGPT(Chen et al., 2023)は 3 つの戦略を組み合わせた:

  1. Prompt Adaptation: 不要な例示を削除してトークン数を削減(最大 75% 削減)
  2. LLM Approximation: 小型モデルでファインチューニングして大型モデルの出力を模倣
  3. LLM Cascade: 安価 → 高価の順にモデルを試し、品質閾値を満たしたら停止

これら 3 戦略の組み合わせで、GPT-4 と同等の MMLU スコアを維持しつつ、API コストを 98% 削減した。

実装パターン

import litellm

async def cascade_completion(messages, quality_threshold=0.85):
    models = [
        ("gpt-4o-mini", 0.70),
        ("gpt-4o", 0.85),
        ("claude-opus-4-20250514", 1.00),
    ]

    for model, expected_quality in models:
        response = await litellm.acompletion(
            model=model,
            messages=messages,
            logprobs=True,
            top_logprobs=5
        )

        confidence = calculate_confidence(response)
        if confidence >= quality_threshold:
            return response

    return response

よくある質問(FAQ)

Q1: カスケードの段数は何段が最適ですか? A: 実用上は 2-3 段が最適。2段(mini + full)で十分なケースが多く、4段以上はレイテンシオーバーヘッドとシステム複雑性が品質改善を上回る。FrugalGPT の実験でも 3段以上の改善は限定的だった。

Q2: カスケードのレイテンシは単一モデルより悪化しますか? A: Tier 1 で処理完了する 60-70% のクエリは単一モデルより高速(軽量モデルの方が応答速度が速いため)。エスカレーションが発生するクエリは Tier 1 の処理時間分だけ増加するが、全体平均では同等かやや高速になることが多い。

Q3: カスケードはストリーミング応答と併用できますか? A: 可能だが工夫が必要。Tier 1 の応答をストリーミングしつつ品質評価を並行実行し、品質不足と判定された時点でストリームを中断して Tier 2 に切り替える実装が一般的。ユーザー体験上は応答の「やり直し」が発生するため、UI での適切なハンドリングが必要。

まとめ

  • カスケードルーティングは安価→高価モデルの段階的エスカレーション戦略
  • FrugalGPT の研究で GPT-4 品質を維持しつつ 98% コスト削減を実証
  • 品質評価器(Verifier)の精度がカスケード全体の性能を決定する
  • 実用上は 2-3 段構成で、自己信頼度 + LLM-as-Judge の組み合わせが推奨
  • 月間 API コスト $1,000 以上の環境で導入効果が顕著