最近KVキャッシュを深掘りして、実際の数字をアーキテクチャごとに並べて見ると、その進化の流れが非常に面白いと感じました。
セバスチャン・ラシュカのLLM Architecture Galleryには、数十のモデルファミリについて、トークンごとのKVキャッシュコストが掲載されています。軌跡は次のとおりです:
• GPT-2(2019):300 KiB/トークン。マルチヘッド注意では、各ヘッドがそれぞれ独自のキーとバリューを保持します。共有なし。4,000トークンの会話 = モデルの重みとは別に、キャッシュだけでGPUメモリ約1.2GB。
• Llama 3(2024):128 KiB/トークン。グループ化クエリ注意(GQA)で、複数のクエリヘッドが同じKVペアを共有します。GPT-2のコストの半分未満。洞察は、実際には多くのヘッドが冗長な表現を学習していた、という点です。
• DeepSeek V3(2024):68.6 KiB/トークン。マルチヘッドの潜在注意がKVペアを低次元の潜在空間に圧縮し、推論時にデコンプレスします。これは671Bパラメータのモデル(MoEにより37Bが有効)です。V3のアーキテクチャが土台にしているDeepSeek V2のアブレーション研究では、圧縮表現が複数のベンチマークで標準のMHAと同等、あるいはわずかに上回ることが示されました。損失のある圧縮が、元のものを上回る。
• Gemma 3(2025):GQAに加えてスライディングウィンドウ:ローカル〜グローバルの注意層が5:1、ローカル層は最大1,024トークンにのみ注意します。攻撃的なフィルタリングによるパープレキシティ損失はほとんどありません。
• Mamba/SSM(2023):そもそもKVキャッシュがありません。固定サイズの隠れ状態を持ち、トークンごとに更新します。モデルは、すべてを保存して後から注意するのではなく、リアルタイムに何を圧縮するかを決めます。
私が最も関心を持っているのは、「作業メモリ」と「恒久的な知識」のギャップです。KVキャッシュは数秒〜数分持続します(報告されているキャッシュ寿命は、おおむね5〜10分で、提供元や負荷によって変動します)。そして、その後は消えます。学習済みのモデル重みは恒久的です。この2つの間には何もありません。ネイティブな中期記憶はなく、「先週の火曜日にこのユーザーと話した」というためのアーキテクチャ上の枠もありません。単なるギャップです。
そのギャップを埋めるものはすべてヒューリスティックです。RAG、ファイルシステム、ベクトルDB、厳選されたコンテキストを運ぶシステムプロンプト。アーキテクチャ上の空白に架け橋をかけるものです。動きますが、内部に中期記憶を持たないモデルに対して、モデル外のルックアップシステムを後付けしただけです。
この圧縮(compaction)の問題がそれを象徴しています。コンテキストが大きくなりすぎると、モデルは自分自身の履歴を要約し、キャッシュをクリアして、その要約から続行します。6つのルールからなる出版方針は「編集方針に関する何か」になります。金額は精密さを失い、モデルは何を失ったのかを知る方法がありません。それでもモデルは自信を持って、劣化したコンテキスト上で動作し続けます。
Cursorの学習による圧縮アプローチ(プロンプトで圧縮させるだけでなく、RLでモデルがうまく自己要約できるように学習させる)は有望ですが、その証拠は1つのコーディングベンチマークだけです。コードには明確な報酬シグナルがあります。テストに通るか、通らないかです。編集メモ、戦略的計画を圧縮する場合はどうでしょうか。あるいは、別の40メッセージ先では重要な詳細が不要になるような会話では? 隠れた失敗(サイレントな失敗)では、圧縮は盲目のままです。
ローカルで長い会話を動かしている人たちが、コンテキスト劣化について何か気づいたことはありますか。モデルがはっきりと筋を見失うところに到達しますか? そしてMambaや他のSSMを扱っている人にとっては、長いコンテキストでの固定状態というトレードオフは、TransformerのKVキャッシュと比べて実際にはどう感じられますか?
[link] [comments]




