AI・機械学習
上級

キャッシュ無効化戦略(セマンティックキャッシュ)(キャッシュムコウカセンリャク(セマンティックキャッシュ))

セマンティックキャッシュの無効化戦略は、TTL(時間ベース)、コンテキスト変化検出、手動パージの3手法を組み合わせ、古い応答を適切に排除する仕組みである。

0 回閲覧
0 いいね

概要

キャッシュ無効化はキャッシュ応答の正確性を維持するプロセス。LLM特有の課題: (1) モデルアップデートで応答が変化、(2) RAGのドキュメント更新でキャッシュが陳腐化、(3) 時間依存クエリの有効期間が極短。

TTLベース

クエリカテゴリ推奨TTL理由
事実・知識ベース7〜30日変更頻度低
技術ドキュメント1〜7日更新あり
商品情報1〜24時間価格変動
リアルタイム情報キャッシュ不可即時性必要
一般Q&A3〜7日バランス

段階的TTL: 時間表現含むクエリは短TTL(1〜6時間)、普遍知識は長TTL(7〜30日)を動的設定。

コンテキスト変化検出

ドキュメントバージョンベース: 参照ドキュメントのハッシュ/タイムスタンプをメタデータ付与。キャッシュヒット時にバージョン比較し変更あれば無効化。変更影響範囲推定: 更新ドキュメントのEmbeddingと各キャッシュのクエリEmbeddingの類似度で影響範囲を限定。モデルバージョンタグ: モデルバージョンをキャッシュキーに含めアップデート時に自動ミス。

手動パージ

種別ユースケース
全クリアモデル大規模アップデート
キーワードパージ誤情報訂正
セマンティックパージトピック単位の情報更新

エビクションポリシー

ポリシー動作
LRU最も長くアクセスされていないエントリを削除
LFUアクセス頻度最低のエントリを削除
TTL+LRUTTL切れ優先、残りはLRU
コストベースLLM推論コスト高のエントリを優先保持

よくある質問(FAQ)

Q1: 古い情報が返されるリスクは?

Stale-While-Revalidateパターンが有効。キャッシュ応答を即返しつつバックグラウンドでLLM再推論し更新。

Q2: RAGでドキュメント頻繁更新時は?

日次更新ならTTL 12〜24時間+ドキュメントバージョンチェックで有効。リアルタイム更新ならEmbeddingキャッシュに絞る方が実用的。

Q3: キャッシュ容量の目安は?

1エントリ約8KB(Embedding 6KB+応答2KB)。10万件で800MB、100万件で8GB。Redis Stack 16GBで100万件以上保持可能。

まとめ

TTL、コンテキスト変化検出、手動パージの3手法を組み合わせるのが実用的。RAG環境ではドキュメントバージョン管理とStale-While-Revalidateの併用を推奨。エビクションはLRU+TTLが標準。