AI・機械学習
上級
キャッシュ無効化戦略(セマンティックキャッシュ)(キャッシュムコウカセンリャク(セマンティックキャッシュ))
セマンティックキャッシュの無効化戦略は、TTL(時間ベース)、コンテキスト変化検出、手動パージの3手法を組み合わせ、古い応答を適切に排除する仕組みである。
0 回閲覧
0 いいね
概要
キャッシュ無効化はキャッシュ応答の正確性を維持するプロセス。LLM特有の課題: (1) モデルアップデートで応答が変化、(2) RAGのドキュメント更新でキャッシュが陳腐化、(3) 時間依存クエリの有効期間が極短。
TTLベース
| クエリカテゴリ | 推奨TTL | 理由 |
|---|---|---|
| 事実・知識ベース | 7〜30日 | 変更頻度低 |
| 技術ドキュメント | 1〜7日 | 更新あり |
| 商品情報 | 1〜24時間 | 価格変動 |
| リアルタイム情報 | キャッシュ不可 | 即時性必要 |
| 一般Q&A | 3〜7日 | バランス |
段階的TTL: 時間表現含むクエリは短TTL(1〜6時間)、普遍知識は長TTL(7〜30日)を動的設定。
コンテキスト変化検出
ドキュメントバージョンベース: 参照ドキュメントのハッシュ/タイムスタンプをメタデータ付与。キャッシュヒット時にバージョン比較し変更あれば無効化。変更影響範囲推定: 更新ドキュメントのEmbeddingと各キャッシュのクエリEmbeddingの類似度で影響範囲を限定。モデルバージョンタグ: モデルバージョンをキャッシュキーに含めアップデート時に自動ミス。
手動パージ
| 種別 | ユースケース |
|---|---|
| 全クリア | モデル大規模アップデート |
| キーワードパージ | 誤情報訂正 |
| セマンティックパージ | トピック単位の情報更新 |
エビクションポリシー
| ポリシー | 動作 |
|---|---|
| LRU | 最も長くアクセスされていないエントリを削除 |
| LFU | アクセス頻度最低のエントリを削除 |
| TTL+LRU | TTL切れ優先、残りは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が標準。