LLMレスポンスのセマンティックキャッシュ
完全一致ではなく意味で照合して類似クエリの回答を再利用するセマンティックキャッシュの仕組みを学び、LLMのコストとレイテンシーを大幅に削減します。
「LLMレスポンスのセマンティックキャッシュ」はCoddyKit上の無料LLM Apps in Production (RAG + Vector DB + Caching)レッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLLM Apps in Production (RAG + Vector DB + Caching)学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 LLM Apps in Production (RAG + Vector DB + Caching)コースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Beyond Exact-Match Caching
A normal cache only hits when the key is byte-identical. But 'What is your refund policy?' and 'How do refunds work?' mean the same thing yet miss an exact cache.
Semantic caching matches on meaning, so paraphrases reuse the same answer.
How It Works
The flow:
- Embed the incoming query into a vector
- Search the cache for a near-by stored query
- If similarity exceeds a threshold, return the cached answer
- Otherwise call the LLM and store the new pair
Embedding the Query
Each query is converted to a vector by an embedding model. Similar meanings produce nearby vectors.
def embed(text):
return [len(text), text.count('refund'), text.count('?')]
print(embed('How do refunds work?'))Cosine Similarity
Similarity between query vectors is usually measured with cosine similarity.
import math
def cosine(a, b):
dot = sum(x*y for x, y in zip(a, b))
na = math.sqrt(sum(x*x for x in a))
nb = math.sqrt(sum(y*y for y in b))
return dot / (na * nb)
print(round(cosine([1,2,1],[1,2,0]), 3))Choosing the Threshold
The similarity threshold is the key tuning knob:
- Too low -> false hits, wrong answers served
- Too high -> few hits, little savings
Tune it on real traffic and err conservative for high-stakes domains.
A Minimal Semantic Cache
Putting embedding, similarity, and a threshold together.
cache = []
THRESH = 0.95
def get(query, qvec):
for stored_vec, ans in cache:
if cosine(qvec, stored_vec) >= THRESH:
return ans
return None
def cosine(a, b):
return 1.0 if a == b else 0.0
cache.append(([1,0], 'Refunds take 5 days'))
print(get('q', [1,0]))When NOT to Cache
Semantic caching is wrong for queries whose answer depends on changing or personal state:
- 'What is my account balance?'
- 'What is today's weather?'
- Anything user-specific or time-sensitive
Cache only stable, general knowledge.
Scoping the Cache
To avoid leaking one user's data to another, scope cache keys by tenant, language, and any relevant context. A global cache for personalized answers is a privacy bug.
Eviction and Freshness
Cached answers go stale when source data changes. Add TTLs and invalidate entries when underlying documents update, so the cache does not serve outdated answers.
Measuring Savings
Track hit rate, cost saved, and latency improvement. A 40 percent semantic hit rate can roughly translate into a 40 percent reduction in LLM spend for cacheable traffic.
Production Stack
In production, store query embeddings in a vector DB or Redis with vector search, set a tuned threshold, scope by tenant, apply TTLs, and monitor hit rate. Combine with exact caching for the best coverage.
Quick Check
Test your understanding of semantic caching.
Recap
You learned that semantic caching reuses answers for paraphrased queries by embedding them and matching via cosine similarity above a tuned threshold. Cache only stable knowledge, scope by tenant for privacy, apply TTLs for freshness, and monitor hit rate to quantify savings.
よくある質問
「LLMレスポンスのセマンティックキャッシュ」レッスンは無料ですか?
はい。「LLMレスポンスのセマンティックキャッシュ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、LLM Apps in Production (RAG + Vector DB + Caching)コースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 LLM Apps in Production (RAG + Vector DB + Caching)コースには全4レッスンが含まれています。
「LLMレスポンスのセマンティックキャッシュ」で何を学びますか?
完全一致ではなく意味で照合して類似クエリの回答を再利用するセマンティックキャッシュの仕組みを学び、LLMのコストとレイテンシーを大幅に削減します。 ブラウザで直接実行するハンズオンコードでLLM Apps in Production (RAG + Vector DB + Caching)を演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
LLM Apps in Production (RAG + Vector DB + Caching)を始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLLM Apps in Production (RAG + Vector DB + Caching)は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「LLMレスポンスのセマンティックキャッシュ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLLM Apps in Production (RAG + Vector DB + Caching)レッスンでコードを書いて実行できますか?
はい。すべてのLLM Apps in Production (RAG + Vector DB + Caching)レッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Redis/Memcachedによる分散キャッシュ
- セッション管理とコンテキストの永続化
- 高度なキャッシュ無効化戦略
- LLMレスポンスのセマンティックキャッシュ