セマンティックキャッシュは、繰り返される質問や似た質問に、モデルを呼び出す代わりにメモリから回答することで、LLMへの支出を削減できるとうたわれています。私たちはこれをエンドツーエンドで測定しました。同じ3,000件のカスタマーサポートのリクエストを、4つのClaudeモデルそれぞれに2回ずつ送信しました。1回はモデルに直接、もう1回はHotKVを前段に置いて送信し、どちらの実行でもAnthropic自身のプロンプトキャッシュは有効のままにしました。ここでは、実行した内容と得られた結果を、不十分な点も含めてそのままお伝えします。
要点。 HotKVは、4つのモデルそれぞれで、モデル呼び出し、入力と出力を合わせたトークン、APIコストを約70%削減しました。その大部分はまったく同じ形で繰り返される質問によるもので、セマンティックレイヤーがさらに約12ポイントを上乗せしています。デフォルトの類似度しきい値0.81では、キャッシュ回答が質問そのものに適合すると判定された頻度は、新規回答より5.8~10.7パーセントポイント低くなりました。しきい値を変えて測定した唯一のモデル(Sonnet 5.5)では、0.88以上のしきい値でそのような差は見られませんでした。
2026年10月12日更新:この記事は、現行の4つのClaudeモデルで行った、より大規模な実行の結果を掲載するようになりました。これは、GPTとClaude Sonnet 5で1,500件のリクエストを使って行い、トークンが約60%減ったと測定した以前の実行に代わるもので、以前の実行の結果はもう掲載していません。
テストの内容
ワークロード
77のインテントでラベル付けされた短い銀行関連の質問からなる公開データセット、Banking77(PolyAI、CC BY 4.0)のテスト分割から、カスタマーサポートの質問を再生しました。このデータセットはCasanueva et al., 2020で発表されました。3,000件のリクエストは固定シードで抽出しました。インテントの人気度は指数1.0のZipf分布に従います。これは、一部のインテントが他よりはるかに頻繁に現れる人工的な偏りです。インテント内の質問は一様に、重複ありで選んでいます。77のインテントすべてが登場し、3,000件のリクエストのうち1,264件が異なる質問です(シード付きのリクエスト生成器を再実行して数えました)。銀行とそのサポートポリシーは架空のものです。約2,200トークンのポリシーを作成し、すべてのリクエストでシステムプロンプトとして送信しました。このポリシーは、2~4文の短い回答を求めています。
モデルと設定
claude-fable-5-1、claude-opus-5-5、claude-sonnet-5-5、claude-haiku-5-5を実行しました。Fable 5.1とOpus 5.5はthinkingをオフにできないため、最も低い推論レベル(reasoning effort)で実行しました。Sonnet 5.5は最も低い設定であるup-front thinkingオフで、Haiku 5.5はthinkingを無効にして実行しました。最大出力はFableとOpusが2,000トークン、SonnetとHaikuが400トークンで、すべての回答は途中で打ち切られることなく正常に完了しました。どちらのモードでも8件のリクエストを同時に実行し、呼び出しはストリーミングせず、各条件は1回ずつ実行しました。
2つの実行
- ベースライン: すべてのリクエストをモデルに直接送信し、Anthropicのプロンプトキャッシュを有効にしました(システムプロンプトに
cache_control、デフォルトの5分間の有効期間)。これはここで使用するために設定したベースラインであり、プロバイダー側のあらゆる最適化を尽くしたと主張するものではありません。 - HotKVあり: 同じトラフィックと同じシステムプロンプトの前段にHotKVを置き、キャッシュは空の状態から開始しました。
集計の方法
トークン数はすべて、API応答のusageブロックから取得しています。内訳は、キャッシュされていない入力、キャッシュの読み取りと書き込み、出力(thinkingを含む)です。埋め込みのトークンは別に扱っています。コストは2026年10月11日時点のAnthropicの定価を使用し、セマンティックルックアップのための埋め込み呼び出しを含み、HotKVのホスティングと運用は含みません。現在の価格の見積もりではありません。
キャッシュの仕組み
HotKVは、質問ごとに、モデルを呼び出す前に2つのルックアップを試みます:
- 完全一致: モデル、システムプロンプトのバージョン、正規化した質問(小文字化し、空白をまとめたもの)から作ったSHA-256キーに対する
GETです。まったく同じ言葉で尋ねられた質問を捕捉します。 - セマンティック一致: 質問の埋め込み(OpenAIの
text-embedding-3-small、コサイン類似度)を使ったSCACHE.GET呼び出しです。似た質問を探しますが、類似度スコアだけでは、キャッシュされた回答が適合することを保証できません。
両方でミスした場合のみモデルに到達し、その回答はSETとSCACHE.SETで書き戻されます。セマンティックヒットの類似度しきい値は、実行前に0.81に固定しました。この値は、別途Banking77の訓練分割を用いて、0.01刻みで、セマンティックヒットが98%以上の割合で同じインテントを指す最小値として選びました(訓練分割では98.2%)。今回の実行では、手を付けていないテスト分割で、セマンティックヒットの96.7%~96.8%が質問のインテントと一致しました。誤ったインテントへのヒットは、モデルごとに926~936件中30件または31件でした。
結果
呼び出し、トークン、コスト
| モデル | モデル呼び出し数 | トークン(入力と出力の合計) | APIコスト |
|---|---|---|---|
| Claude Fable 5.1 | 3,000 → 896 | 7.25M → 2.16M(70%削減) | $30.31 → $9.18(70%削減) |
| Claude Opus 5.5 | 3,000 → 898 | 7.34M → 2.20M(70%削減) | $14.60 → $4.50(69%削減) |
| Claude Sonnet 5.5 | 3,000 → 897 | 7.16M → 2.14M(70%削減) | $5.51 → $1.66(70%削減) |
| Claude Haiku 5.5 | 3,000 → 897 | 7.08M → 2.11M(70%削減) | $0.27 → $0.08(70%削減) |
4つのモデル全体で、呼び出しは12,000回から3,588回に減り、トークンは70.1%、コストは69.6%減少しました。どのモデルでもリクエストの約70%がキャッシュから回答され、その内訳は完全一致が約39%、セマンティック一致が約31%でした。
HotKVは呼び出しそのものをなくすため、呼び出し、トークン、金額はそろって減少します。トークンの数値は注意してお読みください。集計したトークンの90%~93%は、同じ2,200トークンのポリシープロンプトのキャッシュ読み取りで、Anthropicはこれを通常の入力価格のごく一部で課金しています。出力トークンはトークン全体の6%~9%にすぎませんが、ベースラインのコストの73%~92%を占めています。
速度
実行全体の応答時間の中央値は、Fable 5.1で2.7秒から127 ms、Opus 5.5で2.9秒から126 ms、Sonnet 5.5で1.8秒から128 ms、Haiku 5.5で1.4秒から125 msに短縮され、11~23倍高速になりました。繰り返された質問は中央値約0.05 msで返りました。これはHotKVと同じマシン上で、ループバック経由のPythonクライアントで測定したもので、ネットワーク越しではなくローカルでの数値です。言い換えられた質問をセマンティックキャッシュから返すには約130 msかかり、そのほぼすべてが埋め込みAPIの呼び出しでした。
実行全体の中央値がセマンティックヒットの範囲に収まるのは、完全一致ヒット(リクエストの約39%)だけでは中央値を左右するには少なすぎる一方、完全一致ヒットとセマンティックヒットを合わせると(70%)半数を超えるためです。遅い側はあまり変わりません。リクエストの30%は依然としてモデルを呼び出すからです。99パーセンタイルは、Fable 5.1ではHotKVありで約6.4秒、なしで6.6秒で、Haiku 5.5でもほぼ同じでした。Opus 5.5(4.7秒対約6秒)とSonnet 5.5(2.7秒対3.3秒)では低くなりました。呼び出しはストリーミングしていないため、これらは最初のトークンまでではなく、回答全体が返るまでの時間です。
ウォームアップ
キャッシュは空の状態から始まるため、初期のリクエストはモデルに到達します。キャッシュから応答したリクエストの割合は、最初の1,000件で約52%、最後の1,000件で約81%でした。
削減効果はどこから来るのか
削減効果の大部分は単純な繰り返しによるものです。完全一致キャッシュだけなら、3,000件中、異なる質問ごとに1回ずつ、最大1,264回のモデル呼び出しが必要だったはずで、これは約58%の削減です。セマンティックレイヤーがそれを約70%まで引き上げたので、このワークロードでのセマンティックレイヤーの寄与は約12ポイントです。次のセクションで示すとおり、回答の品質のリスクを伴うのもこの部分です。これはリクエストの順序とログから導いたもので、別途測定した実行ではありません。
回答の品質
セマンティックヒットは、同じインテントであることを意味し、同じ正しい回答であることを意味しません。正しさを測定するため、すべてのセマンティックヒットを別のClaudeモデルに判定させました。判定役は、顧客の質問と2つの回答をランダムな順序で受け取りました。HotKVが返したキャッシュ回答と、ベースラインの実行で同じモデルがその質問そのものに返した新規回答です。判定役は、それぞれの回答がその質問そのものに正しく答えているかを判定しました。Opus 5.5がFable 5.1、Sonnet 5.5、Haiku 5.5の回答を、Fable 5.1がOpus 5.5の回答を判定したため、自身の出力を採点したモデルはありません。
デフォルトのしきい値での結果
| モデル | 判定したセマンティックヒット | キャッシュ回答が適合 | 新規回答が適合 | 差 |
|---|---|---|---|---|
| Claude Fable 5.1 | 926 | 83.3% | 90.2% | 6.9ポイント |
| Claude Opus 5.5 | 935 | 93.3% | 99.0% | 5.8ポイント |
| Claude Sonnet 5.5 | 936 | 77.9% | 86.1% | 8.2ポイント |
| Claude Haiku 5.5 | 936 | 67.9% | 78.6% | 10.7ポイント |
0.81では、キャッシュ回答が質問そのものに適合する頻度は、同じモデルの新規回答より5.8~10.7パーセントポイント低くなりました。セマンティックヒットはリクエストの約31%なので、完全一致ヒットを中立とみなすと、全応答では概ね2~3ポイント(1.8~3.3)に相当します。判定役によって厳しさが異なるため、キャッシュ回答と新規回答の比較は同じモデル内でのみ行ってください。
しきい値を上げた場合
Sonnet 5.5を、さらに4つのしきい値で、それぞれ空のキャッシュから、同じ判定役で再実行しました。ベースラインのコストは$5.51でした。
| しきい値 | APIコスト | 削減率 | モデル呼び出し数 | セマンティックヒット | キャッシュ回答が適合 | 新規回答が適合 |
|---|---|---|---|---|---|---|
| 0.81 | $1.66 | 70% | 897 | 936 | 77.9% | 86.1% |
| 0.85 | $1.88 | 66% | 1,024 | 609 | 80.3% | 85.6% |
| 0.88 | $1.99 | 64% | 1,110 | 382 | 89.5% | 83.8% |
| 0.90 | $2.13 | 61% | 1,160 | 281 | 87.9% | 86.5% |
| 0.95 | $2.22 | 60% | 1,247 | 50 | 92.0% | 90.0% |
0.88以上では、キャッシュ回答は新規回答に対して劣る傾向を示さず、それでもコストを0.88で64%、0.90で61%削減しました。ただし、根拠は限られています。0.90では、差の95%区間は約4ポイント悪い側から7ポイント良い側にまで及び、0.95の行にはヒットが50件しかなく、各行は異なるヒットの部分集合を判定しています。しきい値ごとに1つのモデル、1つの判定役、1回の実行による結果なので、同等の品質や、どこでも通用する安全なしきい値を証明するものではありません。
ほぼ同一の質問
本当のリスクは、入金と出金のように、ほぼ同一に見えても異なる回答が必要な質問です。Opus 5.5に119組のペアを作成させました。各ペアは、訓練分割の実際の質問と、決定的な細部を1つ変えたバージョンからなります。そして、元の質問だけを保持したキャッシュに対して、変更した質問のうちいくつがしきい値を超えるかを数えました。これらのペアは意図的に難しく作られており、人によるレビューは受けておらず、実際のトラフィックでの発生頻度ではなく最悪のケースを示しています。
| しきい値 | 0.81 | 0.85 | 0.88 | 0.90 | 0.95 |
|---|---|---|---|---|---|
| 一致してしまう変更済みの質問 | 62% | 45% | 30% | 25% | 10% |
| 一致する本当の言い換え | 39% | 23% | 7% | 4% | 0% |
しきい値を上げるとリスクは減りますが、なくなりはしません。0.90でも、意図的に似せたペアの25%が一致し、本当の言い換えが一致する割合も下がります。
大規模運用での意味
測定したリクエストあたりのコストを、1日100万リクエスト、30日間の月に外挿し、同じトラフィックパターンを仮定すると、月額は次のようになります:
claude-fable-5-1:HotKVなしで約$303,100、HotKVありで$91,800、節約額は約$211,300です。claude-opus-5-5:HotKVなしで約$146,000、HotKVありで$45,000、節約額は約$101,000です。claude-sonnet-5-5:HotKVなしで約$55,100、HotKVありで$16,600、節約額は約$38,500です。claude-haiku-5-5:HotKVなしで約$2,700、HotKVありで$800、節約額は約$1,900です。
これは測定したリクエストあたりのコストに基づく計算であり、別途測定した実行ではありません。ホスティングは含まれておらず、この量に必要な処理能力は測定していません。実際に実行した3,000件のリクエストでは、節約額はHaiku 5.5でわずか$0.19、Fable 5.1で$21.12です。4つのモデルは短い回答で実行し、Fable 5.1とOpus 5.5は最も低い推論レベルで実行したため、より長い回答や推論の多い回答では、回避した呼び出し1回あたりの価値はさらに大きくなります。
制約事項
これは「HotKVで70%節約できる」という一般的な主張ではありません。このワークロードで測定した結果であり、結果を大きく左右しているのはワークロードです。
- 削減効果は繰り返しに連動します。 インテントの出現をZipf分布で偏らせず、すべて同じ確率にした場合、Sonnet 5.5とHaiku 5.5でコストは56%減少しました。3,000件がすべて異なる質問の場合は38%減少し、これはすべて同じインテントに属する異なる質問同士のセマンティック一致によるもので、Banking77にはそうした質問が多く含まれています。繰り返しや類似の質問がないワークロードでは、削減効果はありません。
- 人工的なトラフィック。 抽出は独立しており、バースト、セッション、マルチターンの文脈はありません。短い銀行関連の質問からなる1つの公開データセット、このテストのために書いた架空のポリシー、約3,080件のテスト質問という有限のプールを使用しています。
- 回答を判定するのはモデル。 人によるレビューは行っておらず、2つ目の判定役もなく、判定役はすべてClaudeモデルです。新規回答も1%~21%の割合で判定役の「適合」テストに不合格となっているため、厳しい基準です。
- 同じインテントは同じ回答ではない。 しきい値0.81は、回答の品質ではなくインテントのラベルに基づいて調整したものです。しきい値を変えた実行とほぼ同一の質問のテストは、1つのモデルと1つの埋め込みモデルのみを対象としています。
- 小規模なテスト環境。 条件ごとに1回の実行、クライアントと同じマシン上にある4 vCPUのサーバー1台、HotKVの実行前にウォームアップしていないキャッシュです。
- コストはAPIコスト。 HotKVのホスティングと運用は含みません。回答の品質はご自身の質問で検証し、セマンティックな再利用が適さない場面では、完全一致キャッシュか新規回答を使用してください。
モデルごとの数値はAIページにも掲載しています。
試してみる
このテストの完全一致キャッシュは通常のGETとSETを使用しており、HotKVのすべてのプランに含まれています。セマンティックキャッシュ(SCACHE.*)はPerformanceプラン以上で利用できます(料金)。HotKV Cloudで始めて既存のトラフィックを向けるか、まずご自身のワークロードで数値を検討したい場合は営業チームにご相談ください。



会話を続けましょう
コメント
手法について質問がありますか?お使いのハードウェアで異なる結果が出ましたか?わかったことをぜひ共有してください。コメントは審査後に表示されます。