第9章 · Best Practices
コスト最適化
Cost Optimization
→ で次のスライド · F でフルスクリーン · N で講師ノート · Esc で終了
重要キーワード
Routing
ルーティング
簡単/難しいでモデルを使い分ける
Quota
クォータ
ユーザーごとの利用上限
Output Compression
出力圧縮
不要な前置きを省いて応答を短くする工夫
コスト最適化
LLM 運用は意外とコストがかさみます。以下のレバーを意識しましょう。
組み合わせれば 元コストの 5-10% まで圧縮可能。, 難しいときだけ klzzwxh:0002。
1. モデル選択 (Routing)
簡単なタスクは Haiku, ほどほどは 元コストの 5-10% まで圧縮可能。, 難しいときだけ klzzwxh:0002。2 段階ルーティング
def route_and_answer(question: str) -> str:
# 1. Haiku に難易度判定させる
judge = client.messages.create(
model="claude-haiku-4-5",
max_tokens=10,
messages=[{"role": "user", "content": f"次の質問の難易度を easy/hard で答えてください: {question}"}],
)
level = judge.content[0].text.strip().lower()
# 2. 結果に応じて本処理モデルを選ぶ
target = "claude-opus-4-7" if "hard" in level else "claude-sonnet-4-6"
return client.messages.create(model=target, ...).content[0].text
2. Prompt Caching
固定的な system / RAG コンテキストはキャッシュ。 ヒット率 60-80% を目標に (第4章参照)。3. Output 削減
- 不要な前置き「承知しました、〜」を出さないよう指示。
- 出力は 最小限の構造化形式 (JSON / 短いリスト)。
- max_tokens を適切に絞る。
- stop_sequences で早期停止。
4. Batch API
リアルタイム不要な処理は Batch で 50% 引き。5. 入力削減
- RAG のチャンク数を絞る (Top-K=3 で十分なことが多い)。
- 長い履歴は要約で圧縮。
- 不要な空白・コメントは事前に削除。
- system に重複情報を書かない。
6. キャッシング (アプリレベル)
- 同じ質問は アプリ側でも結果キャッシュ (Redis 等)。
- 質問正規化 (lowercase, 句読点除去) でヒット率向上。
- 短時間の再質問だけ 60 秒キャッシュなど。
7. ガードレール
- ループや無限呼び出しを検知 (max iterations)。
- ユーザーごとの クォータ を設ける。
- 異常パターンをアラート。
- 過剰な max_tokens をリクエスト時に拒否。
8. 監視と継続改善
- リクエスト単位で
usageを記録。 - ダッシュボードで モデル別・エンドポイント別コスト を可視化。
- 月次でチューニング。
- 上位 10 ユーザーの使い方をスポットチェック。
コスト計算ツール
Anthropic 価格ページ で モデル別の token 単価を確認できます。 ざっくり計算式:月間コスト ≈ (input_tokens × 入力単価) + (output_tokens × 出力単価)
典型的な節約パターン
| 施策 | 削減幅 |
|---|---|
| Sonnet → Haiku への切替 | 60-80% |
| Prompt Caching (高ヒット率) | 50-90% |
| Batch API | 50% |
| 出力圧縮 (前置き除去 + max_tokens 短縮) | 10-30% |
| RAG Top-K 削減 (10→3) | 20-50% |
Anti-pattern
❌ 何でも Opus を使う ❌ システム入力をキャッシュしない ❌ 出力に max_tokens を設定しない ❌ ユーザー間で無制限に呼び出させる ❌ 監視せずデプロイ試す
コスト改善の提案を Claude に。 ▶ コスト診断Hands-on Exercise
演習: コスト推定スクリプト
リクエスト 1 件のトークン消費を見積もって月間コストを算出するスクリプトを書いてください。
入力: - system 文字数, 平均 user 文字数, 平均 assistant 文字数 - 1 日のリクエスト数 - モデル選択 (haiku/sonnet/opus) - prompt cache のヒット率
出力: 月間コスト (USD) と内訳。
🎉
まとめ
お疲れ様でした!