正解が週替わりで変わる話題を使うと、2週目以降は100%が古い答えを返し続けました。
似ているかどうかだけを見て、当たった時点で差し替えていないためです。
似ている問いを見つけて当たり率を上げます。ただし正解が変わる話題では、その仕組みが裏目に出ます。
セマンティックキャッシュは、似ている問いをまとめて扱います。公式は意味によるキャッシュは、似ている、あるいは関連する問いを見つけて保存し、それによって当たる確率を上げ、キャッシュ全体の効率を高めると述べています。
「似ている」と「正解が同じ」は別のことです。実際に流して確かめました。
話題 40種(正解が週替わりで変わる)。1週間 500件、8週ぶん 見出しの意味は変わらないが、正解の中身は週ごとに更新される(キャンペーン内容など) 似ているかどうかだけで答えを使い回すと、更新後も前週の答えを返し続けることがある 週 その週の当たり 前週以前の答えを返した件数 古い答えの割合 1週目 460件 0件 0.0% 2週目 500件 500件 100.0% 3週目 500件 500件 100.0% 4週目 500件 500件 100.0% 5週目 500件 500件 100.0% 6週目 500件 500件 100.0% 7週目 500件 500件 100.0% 8週目 500件 500件 100.0%
1週目は0.0%です。まだ何も保存されていないので、答え合わせのしようがありません。
2週目からは100.0%です。問いの聞き方は変わっていないので、毎回1週目の答えが返ります。
当たったとき、多くの実装は答えを使い回すだけで置き場を更新しません。次に同じ問いが来ても、最初の答えのままです。
だから一度キャッシュに入った答えは、手動で消さない限り古びたまま残り続けます。話題の聞き方が変わらない限り、当たり続けるからです。
似た問題はAmazon CloudFrontの記事でも扱っていて、そちらは期限を切って自動で古くなります。
1週目だけ空振りし、2週目から先はずっと古い答えのまま。
Semantic caching identifies and stores similar or related queries, thereby increasing cache hit probability and enhancing overall caching efficiency.原文GPTCache 公式リポジトリ README この内容の有効期限2027-02-18
似ているとみなす境目を選べます。広げるほど当たりは増えますが、別の意味を流用する誤りも増えます。
セマンティックキャッシュのひとつであるGPTCacheは、意味によるキャッシュという方式を採っています。公式はGPTCacheは意味によるキャッシュのような、別の方式を採用すると述べています。
似ているとみなす境目で何が変わるのか。実際に境目を動かして数えました。
意味の異なる問い 400種・言い換え 30件ずつ。似ているとみなす境目を変える
境目より近い問いが先に来ていれば、答えを使い回す(当たり)とする
境目(距離) 当たった件数 正しい当たり 誤った当たり(別の意味なのに流用) 誤りの割合
0.3 11,263件 11,263件 0件 0.0%
0.6 11,548件 11,548件 0件 0.0%
0.9 11,600件 11,600件 0件 0.0%
1.3 11,678件 11,600件 78件 0.7%
1.8 11,906件 11,600件 306件 2.6%
2.5 11,999件 11,600件 399件 3.3%
境目0.9までは誤り0.0%です。正しい当たりが11,600件で頭打ちになっています。
1.3を超えると誤りが出はじめ、2.5では3.3%です。正しい当たりの件数はもう増えていません。
正しい当たりは0.9のときの11,600件から、2.5でも同じ11,600件です。
つまり0.9を超えて境目を広げても、増えるのは誤った当たりだけでした。境目は広げすぎない方が安全です。
似ている度合いの測り方は近似最近傍の再現率の記事でも扱いました。
GPTCache adopt alternative strategies like semantic caching.原文GPTCache 公式リポジトリ README この内容の有効期限2027-02-18
料金は件数とトークン数で決まります。当たった分だけ計算を省けますが、探す費用は毎回かかります。
セマンティックキャッシュを検討する背景には、課金の仕組みがあります。多くのLLMサービスは、件数とトークン数で課金されます。公式はほとんどのLLMサービスは、要求の数とトークン数を組み合わせて料金を課すと述べています。
当たった分を省けば費用は減ります。どれだけ減るのか実際に計算して数えました。
100,000件の問い。1回ふつうに答えると 1、似ている問いを探すだけなら 0.02
当たり率 当たった件数 探すだけで済んだ費用 外れて答えた費用 合計 使わない場合との比
10% 10,000件 2000 90000 92000 0.92倍
30% 30,000件 2000 70000 72000 0.72倍
50% 50,000件 2000 50000 52000 0.52倍
70% 70,000件 2000 30000 32000 0.32倍
当たり率70%なら、費用は0.32倍まで下がります。3件に2件は普通に答える費用が要らなくなります。
10%だと0.92倍で、ほとんど下がりません。探す費用が毎回かかるので、その分が相殺します。
境目を広げれば当たり率は上がります。しかし前の節で見たとおり、広げすぎると誤りも増えます。
そして正解が変わる話題では、当たり率が高いほど古い答えを返す機会も増えます。費用と正確さは、単純にどちらか一方を選べる関係ではありません。
3つの計測はいずれも手元で書いた模型で、実際のGPTCacheを動かしたものではありません。境目の値や、探す費用0.02・答える費用1.0といった比はすべて置いたものです。正解が変わる話題の実験も、当たった時点で置き場を更新しないという実装を仮定しており、実際の製品が同じ挙動をするとは限りません。ここで見せているのは、境目を広げても正しい当たりは頭打ちで誤りだけが増えるという点と、当たった時点で更新しなければ古い答えが残り続けるという点の2つです。
Most LLM services charge fees based on a combination of number of requests and token count.原文GPTCache 公式リポジトリ README この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る