ふくふくHukuhuku Inc.
EP.08RAG 10分公開: 2026-05-10

コスト最適化:トークン数を半分にする手法

RAG の本番運用で、月 10 万円超えがちなトークン費用を半減する 5 つの手法。プロンプトキャッシング・Reranker・モデル分岐・埋め込みキャッシュ・Streaming。

#コスト#トークン#最適化
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

を本番投入すると、トークン費用が想像以上に膨らみます。社内 100 名で日に 5 質問ずつ → 月 1.5 万質問 → 月 10 万円〜30 万円が普通。本記事は 「精度は落とさず、コストを半分に」する 5 つの手法を、削減率の計算とともに共有します。

コストの内訳を理解する

1 質問あたりのトークン消費(典型例)
フェーズInput トークンOutput トークン単価感
(質問)100$0.0001
生成(質問+ヒット 10 件)8,000500$0.05〜0.10
合計8,100500$0.05〜0.10

LLM 生成の Input トークンが圧倒的。8000 のうち 7000+ は「ヒット文書」由来。ここをどう減らすかがコスト最適化の本質

手法 ① 再ランクで Top-3 のみ LLM へ渡す

ベクトル検索で 10 件取得 → そのまま LLM に投げると 7000 トークン。Reranker(Cohere / Voyage / 自前 Cross-encoder)で Top-3 に絞ると 2000 トークン70% 削減で精度はほぼ落ちない。EP.04 でも扱った定石。

手法 ② プロンプトキャッシング

Anthropic / OpenAI ともに 「同じシステムプロンプトを使い回せば 90% 割引」 のキャッシング機能あり。RAG はシステムプロンプト(ロール定義 + ガードレール)が長い割に毎回同じなので、ここをキャッシュすると Input コストが大幅減。

Anthropic のプロンプトキャッシング
Python
client.messages.create(    model="claude-sonnet-4-6",    system=[        {            "type": "text",            "text": LONG_SYSTEM_PROMPT,  # ロール定義 + ガードレール(5000+ tokens)            "cache_control": {"type": "ephemeral"}  # ← これでキャッシュ        }    ],    messages=[        {"role": "user", "content": user_question_with_context}    ])# 2 回目以降のリクエストは system 部分が 90% 割引

手法 ③ モデル分岐(質問の難易度で振り分け)

全質問を Sonnet で答えると過剰。簡単な質問は Haiku(1/10 価格)、複雑な質問は Sonnet/Opus に振り分ける。質問の前段に分類器を置くだけで実装可能。

  • Tier 1(Haiku):定型 FAQ、文書要約、抽出系 → 質問の 60〜70%
  • Tier 2(Sonnet):説明・比較・推論 → 質問の 25〜35%
  • Tier 3(Opus):複雑な多段推論、戦略立案 → 質問の 5% 未満
分岐ルーターも Haiku で

「どのモデルに振り分けるか」自体を Sonnet で判定するとコストが付加される。Haiku で分類すれば 1 質問 $0.0001 で済む。ルーター → 実モデルの 2 段構成。

手法 ④ 埋め込みキャッシュ

同じ質問が来たら前回の Embedding を使い回す。「特定の社内 FAQ 系」では同じ質問が頻出するので、Redis / Memcached + ハッシュキーで 30〜50% カットできる。

手法 ⑤ Streaming で早期終了

ユーザーが回答途中で離脱した場合、残りの生成を止める。SSE / WebSocket で abort シグナルを受信したら LLM のリクエストを cancel。生成中断率 20% × 平均断点 50% なら 10% カット

実例:5 手法の合算効果

ベースライン(最適化なし)月 30 万円のケース
手法削減率残コスト
(最適化なし)300,000 円
+ Reranker Top-3-70% on input180,000 円
+ プロンプトキャッシング-30% on cached130,000 円
+ モデル分岐(70% を Haiku)-50% on output75,000 円
+ 埋め込みキャッシュ-10%68,000 円
+ Streaming 早期終了-5%約 65,000 円(-78%)

見落としがちな「観測コスト」

ログ・トレースのコスト

LangSmith / Langfuse で全トレースを記録するとストレージ・転送コストが膨らむ。本番でサンプリング(10〜30%)したり、異常時のみフルログにする運用を。コスト最適化ではここも見落とせない。

ふくふくの進め方

RAG の月額が膨らんで困っている」というご相談には、現状トレース分析(1 週間)→ ボトルネック特定 → 5 手法の段階適用で 70〜80% 削減を狙います。精度ベンチマークを取りながら進めるので、コスト削減と引き換えに回答品質が落ちる事故を防げます。

次回予告

EP.09 はマルチモーダル RAG・画像・動画を扱う実装パターンと、テキスト RAG とのコスト比較。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp