LESSON

コスト・レイテンシ最適化

「エージェントは品質もHITLもできた。最後は運用コストとレスポンス速度だ。」

田中VPoEが運用コスト表を見せる。

「LLM APIの呼び出しコスト、SHAP分析の計算時間。これらを最適化しないと、営業チームが日常的に使うツールにはならない。」

コスト最適化

LLM API コストの削減

手法効果実装難易度
モデル選択の最適化コスト50-80%削減
プロンプトの簡素化トークン数30%削減
キャッシングAPI呼び出し70%削減
バッチ処理単価低下
# モデル選択の最適化
# 意図分類: 安価なモデルで十分
# 応答生成: 高品質モデルが必要
model_config = {
    "classify_intent": "gpt-4o-mini",   # 安価・高速
    "respond": "gpt-4o",                # 高品質
}

キャッシング戦略

from functools import lru_cache
import hashlib
import json

class PredictionCache:
    def __init__(self, max_size=1000):
        self.cache = {}
        self.max_size = max_size

    def _key(self, features):
        return hashlib.md5(json.dumps(features, sort_keys=True).encode()).hexdigest()

    def get(self, features):
        return self.cache.get(self._key(features))

    def set(self, features, result):
        if len(self.cache) >= self.max_size:
            oldest = next(iter(self.cache))
            del self.cache[oldest]
        self.cache[self._key(features)] = result

cache = PredictionCache()

レイテンシ最適化

ボトルネック分析

import time

def profile_pipeline(app, query):
    """各ノードの実行時間を計測"""
    timings = {}
    start = time.time()
    result = app.invoke({"query": query})
    total = time.time() - start

    # 典型的な内訳
    print(f"総実行時間: {total:.2f}s")
    print(f"  意図分類(LLM): ~0.5s")
    print(f"  データ取得: ~0.01s")
    print(f"  前処理: ~0.01s")
    print(f"  予測: ~0.01s")
    print(f"  SHAP分析: ~0.5-2.0s")
    print(f"  応答生成(LLM): ~1.0-2.0s")

最適化手法

# 1. SHAP分析の事前計算(バッチ処理)
def precompute_shap(model, X_all):
    """全顧客のSHAP値を事前計算"""
    import shap
    explainer = shap.TreeExplainer(model)
    shap_values = explainer.shap_values(X_all)
    return shap_values  # キャッシュに保存

# 2. 意図分類のルールベース化(LLM呼び出し不要)
import re

def rule_based_intent(query: str) -> str:
    """ルールベースの意図分類(LLM不要)"""
    if re.search(r'\d{4}-[A-Z]{5}', query):
        return "individual"
    elif any(kw in query for kw in ["セグメント", "全体", "分布"]):
        return "segment"
    elif any(kw in query for kw in ["一括", "バッチ", "リスト"]):
        return "batch"
    return "general"

コストとレイテンシのトレードオフ

設定コストレイテンシ品質
全LLM(GPT-4o)遅い最高
ハイブリッド(mini+4o)中程度
ルールベース+mini速い
全キャッシュ最低最速古い可能性

まとめ

項目ポイント
モデル選択タスクに応じてmini/標準を使い分け
キャッシング同一顧客の再問い合わせを高速化
バッチ処理SHAP値の事前計算
ルールベース意図分類をLLM不要に
トレードオフコスト-速度-品質のバランスを取る

チェックリスト

  • LLM APIコストの削減手法を3つ挙げられる
  • キャッシング戦略を実装できる
  • ボトルネックを特定し最適化できる
  • コスト-速度-品質のトレードオフを説明できる

次のステップへ

最適化の方針が固まった。次は演習で、品質改善計画を策定してみよう。

推定読了時間: 15分